webcit-dfsg.orig/0000755000175000017500000000000013223654433014006 5ustar michaelmichaelwebcit-dfsg.orig/serv_func.c0000644000175000017500000004011513223341037016136 0ustar michaelmichael #include "webcit.h" #include "webserver.h" int is_uds = 0; char serv_sock_name[PATH_MAX] = ""; HashList *EmbeddableMimes = NULL; StrBuf *EmbeddableMimeStrs = NULL; void SetInlinMimeRenderers(void) { StrBuf *Buf; Buf = NewStrBuf(); /* Tell the server what kind of richtext we prefer */ serv_putbuf(EmbeddableMimeStrs); StrBuf_ServGetln(Buf); FreeStrBuf(&Buf); } void DeleteServInfo(ServInfo **FreeMe) { if (*FreeMe == NULL) return; FreeStrBuf(&(*FreeMe)->serv_nodename); FreeStrBuf(&(*FreeMe)->serv_humannode); FreeStrBuf(&(*FreeMe)->serv_fqdn); FreeStrBuf(&(*FreeMe)->serv_software); FreeStrBuf(&(*FreeMe)->serv_bbs_city); FreeStrBuf(&(*FreeMe)->serv_sysadm); FreeStrBuf(&(*FreeMe)->serv_default_cal_zone); FreeStrBuf(&(*FreeMe)->serv_svn_revision); free(*FreeMe); *FreeMe = NULL; } /* * get info about the server we've connected to * * browser_host the citadel we want to connect to * user_agent which browser uses our client? */ ServInfo *get_serv_info(StrBuf *browser_host, StrBuf *user_agent) { ServInfo *info; StrBuf *Buf; int a; int rc; Buf = NewStrBuf(); /* Tell the server what kind of client is connecting */ serv_printf("IDEN %d|%d|%d|%s|%s", DEVELOPER_ID, CLIENT_ID, CLIENT_VERSION, ChrPtr(user_agent), ChrPtr(browser_host) ); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { syslog(LOG_WARNING, "get_serv_info(IDEN): unexpected answer [%s]\n", ChrPtr(Buf)); FreeStrBuf(&Buf); return NULL; } /* * Tell the server that when we save a calendar event, we * want invitations to be generated by the Citadel server * instead of by the client. */ serv_puts("ICAL sgi|1"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { syslog(LOG_WARNING, "get_serv_info(ICAL sgi|1): unexpected answer [%s]\n", ChrPtr(Buf)); FreeStrBuf(&Buf); return NULL; } /* Now ask the server to tell us a little bit about itself... */ serv_puts("INFO"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 1) { syslog(LOG_WARNING, "get_serv_info(INFO sgi|1): unexpected answer [%s]\n", ChrPtr(Buf)); FreeStrBuf(&Buf); return NULL; } info = (ServInfo*)malloc(sizeof(ServInfo)); memset(info, 0, sizeof(ServInfo)); a = 0; while (rc = StrBuf_ServGetln(Buf), (rc >= 0) && ((rc != 3) || strcmp(ChrPtr(Buf), "000"))) { switch (a) { case 0: info->serv_pid = StrToi(Buf); WC->ctdl_pid = info->serv_pid; break; case 1: info->serv_nodename = NewStrBufDup(Buf); break; case 2: info->serv_humannode = NewStrBufDup(Buf); break; case 3: info->serv_fqdn = NewStrBufDup(Buf); break; case 4: info->serv_software = NewStrBufDup(Buf); break; case 5: info->serv_rev_level = StrToi(Buf); break; case 6: info->serv_bbs_city = NewStrBufDup(Buf); break; case 7: info->serv_sysadm = NewStrBufDup(Buf); break; case 14: info->serv_supports_ldap = StrToi(Buf); break; case 15: info->serv_newuser_disabled = StrToi(Buf); break; case 16: info->serv_default_cal_zone = NewStrBufDup(Buf); break; case 20: info->serv_supports_sieve = StrToi(Buf); break; case 21: info->serv_fulltext_enabled = StrToi(Buf); break; case 22: info->serv_svn_revision = NewStrBufDup(Buf); break; case 23: info->serv_supports_openid = StrToi(Buf); break; case 24: info->serv_supports_guest = StrToi(Buf); break; } ++a; } FreeStrBuf(&Buf); return info; } int GetConnected (void) { StrBuf *Buf; wcsession *WCC = WC; if (WCC->ReadBuf == NULL) WCC->ReadBuf = NewStrBufPlain(NULL, SIZ * 4); if (is_uds) /* unix domain socket */ WCC->serv_sock = uds_connectsock(serv_sock_name); else /* tcp socket */ WCC->serv_sock = tcp_connectsock(ctdlhost, ctdlport); if (WCC->serv_sock < 0) { WCC->connected = 0; FreeStrBuf(&WCC->ReadBuf); return 1; } else { long Status; int short_status; Buf = NewStrBuf(); WCC->connected = 1; StrBuf_ServGetln(Buf); /* get the server greeting */ short_status = GetServerStatus(Buf, &Status); FreeStrBuf(&Buf); /* Server isn't ready for us? */ if (short_status != 2) { if (Status == 551) { hprintf("HTTP/1.1 503 Service Unavailable\r\n"); hprintf("Content-type: text/plain; charset=utf-8\r\n"); wc_printf(_("This server is already serving its maximum number of users and cannot accept any additional logins at this time. Please try again later or contact your system administrator.")); } else { wc_printf("%ld %s\n", Status, _("Received unexpected answer from Citadel server; bailing out.") ); hprintf("HTTP/1.1 502 Bad Gateway\r\n"); hprintf("Content-type: text/plain; charset=utf-8\r\n"); } end_burst(); end_webcit_session(); return 1; } /* * From what host is our user connecting? Go with * the host at the other end of the HTTP socket, * unless we are following X-Forwarded-For: headers * and such a header has already turned up something. */ if ( (!follow_xff) || (StrLength(WCC->Hdr->HR.browser_host) == 0) ) { if (WCC->Hdr->HR.browser_host == NULL) { WCC->Hdr->HR.browser_host = NewStrBuf(); Put(WCC->Hdr->HTTPHeaders, HKEY("FreeMeWithTheOtherHeaders"), WCC->Hdr->HR.browser_host, HFreeStrBuf); } locate_host(WCC->Hdr->HR.browser_host, WCC->Hdr->http_sock); } if (WCC->serv_info == NULL) { WCC->serv_info = get_serv_info(WCC->Hdr->HR.browser_host, WCC->Hdr->HR.user_agent); } if (WCC->serv_info == NULL){ begin_burst(); wc_printf(_("Received unexpected answer from Citadel server; bailing out.")); hprintf("HTTP/1.1 502 Bad Gateway\r\n"); hprintf("Content-type: text/plain; charset=utf-8\r\n"); end_burst(); end_webcit_session(); return 1; } if (WCC->serv_info->serv_rev_level < MINIMUM_CIT_VERSION) { begin_burst(); wc_printf(_("You are connected to a Citadel " "server running Citadel %d.%02d. \n" "In order to run this version of WebCit " "you must also have Citadel %d.%02d or" " newer.\n\n\n"), WCC->serv_info->serv_rev_level / 100, WCC->serv_info->serv_rev_level % 100, MINIMUM_CIT_VERSION / 100, MINIMUM_CIT_VERSION % 100 ); hprintf("HTTP/1.1 200 OK\r\n"); hprintf("Content-type: text/plain; charset=utf-8\r\n"); end_burst(); end_webcit_session(); return 1; } SetInlinMimeRenderers(); } return 0; } void FmOut(StrBuf *Target, const char *align, const StrBuf *Source) { const char *ptr, *pte; const char *BufPtr = NULL; StrBuf *Line = NewStrBufPlain(NULL, SIZ); StrBuf *Line1 = NewStrBufPlain(NULL, SIZ); StrBuf *Line2 = NewStrBufPlain(NULL, SIZ); int bn = 0; int bq = 0; int i; long len; int intext = 0; StrBufAppendPrintf(Target, "
\n", align); if (StrLength(Source) > 0) do { StrBufSipLine(Line, Source, &BufPtr); bq = 0; i = 0; ptr = ChrPtr(Line); len = StrLength(Line); pte = ptr + len; if ((intext == 1) && (isspace(*ptr))) { StrBufAppendBufPlain(Target, HKEY("
"), 0); } intext = 1; if (isspace(*ptr)) while ((ptr < pte) && ((*ptr == '>') || isspace(*ptr))) { if (*ptr == '>') bq++; ptr ++; i++; } /* * Quoted text should be displayed in italics and in a * different colour. This code understands Citadel-style * " >" quotes and will convert to
tags. */ if (i > 0) StrBufCutLeft(Line, i); for (i = bn; i < bq; i++) StrBufAppendBufPlain(Target, HKEY("
"), 0); for (i = bq; i < bn; i++) StrBufAppendBufPlain(Target, HKEY("
"), 0); bn = bq; if (StrLength(Line) == 0) continue; /* Activate embedded URL's */ UrlizeText(Line1, Line, Line2); StrEscAppend(Target, Line1, NULL, 0, 0); StrBufAppendBufPlain(Target, HKEY("\n"), 0); } while ((BufPtr != StrBufNOTNULL) && (BufPtr != NULL)); for (i = 0; i < bn; i++) { StrBufAppendBufPlain(Target, HKEY("
"), 0); } StrBufAppendBufPlain(Target, HKEY("

\n"), 0); FreeStrBuf(&Line); FreeStrBuf(&Line1); FreeStrBuf(&Line2); } /* * Transmit message text (in memory) to the server. */ void text_to_server(char *ptr) { char buf[256]; int ch, a, pos, len; pos = 0; buf[0] = 0; while (ptr[pos] != 0) { ch = ptr[pos++]; if (ch == 10) { len = strlen(buf); while ( (isspace(buf[len - 1])) && (buf[0] != '\0') && (buf[1] != '\0') ) buf[--len] = 0; serv_puts(buf); buf[0] = 0; if (ptr[pos] != 0) strcat(buf, " "); } else { a = strlen(buf); buf[a + 1] = 0; buf[a] = ch; if ((ch == 32) && (strlen(buf) > 200)) { buf[a] = 0; serv_puts(buf); buf[0] = 0; } if (strlen(buf) > 250) { serv_puts(buf); buf[0] = 0; } } } serv_puts(buf); } /* * Transmit message text (in memory) to the server, converting to Quoted-Printable encoding as we go. */ void text_to_server_qp(const StrBuf *SendMeEncoded) { StrBuf *ServBuf; ServBuf = StrBufRFC2047encodeMessage(SendMeEncoded); serv_putbuf(ServBuf); FreeStrBuf(&ServBuf); } /* * translate server message output to text (used for editing room info files and such) */ void server_to_text() { char buf[SIZ]; int count = 0; while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { if ((buf[0] == 32) && (count > 0)) { wc_printf("\n"); } wc_printf("%s", buf); ++count; } } /* * Read text from server, appending to a string buffer until the * usual 000 terminator is found. Caller is responsible for freeing * the returned pointer. */ int read_server_text(StrBuf *Buf, long *nLines) { wcsession *WCC = WC; StrBuf *ReadBuf; long nRead; long nTotal = 0; long nlines; nlines = 0; ReadBuf = NewStrBuf(); while ((WCC->serv_sock!=-1) && (nRead = StrBuf_ServGetln(ReadBuf), (nRead >= 0) && ((nRead != 3)||(strcmp(ChrPtr(ReadBuf), "000") != 0)))) { StrBufAppendBuf(Buf, ReadBuf, 0); StrBufAppendBufPlain(Buf, HKEY("\n"), 0); nTotal += nRead; nlines ++; } FreeStrBuf(&ReadBuf); *nLines = nlines; return nTotal; } int GetServerStatusMsg(StrBuf *Line, long* FullState, int PutImportantMessage, int MajorOK) { int rc; if (FullState != NULL) *FullState = StrTol(Line); rc = ChrPtr(Line)[0] - 48; if ((!PutImportantMessage) || (MajorOK == rc)|| (StrLength(Line) <= 4)) return rc; AppendImportantMessage(ChrPtr(Line) + 4, StrLength(Line) - 4); return rc; } void tmplput_serv_ip(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendPrintf(Target, "%d", WC->ctdl_pid); } void tmplput_serv_admin(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return; StrBufAppendTemplate(Target, TP, WCC->serv_info->serv_sysadm, 0); } void tmplput_serv_nodename(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return; StrBufAppendTemplate(Target, TP, WCC->serv_info->serv_nodename, 0); } void tmplput_serv_humannode(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return; StrBufAppendTemplate(Target, TP, WCC->serv_info->serv_humannode, 0); } void tmplput_serv_fqdn(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return; StrBufAppendTemplate(Target, TP, WCC->serv_info->serv_fqdn, 0); } void tmplput_serv_software(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return; StrBufAppendTemplate(Target, TP, WCC->serv_info->serv_software, 0); } void tmplput_serv_rev_level(StrBuf *Target, WCTemplputParams *TP) { if (WC->serv_info == NULL) return; StrBufAppendPrintf(Target, "%d", WC->serv_info->serv_rev_level); } int conditional_serv_newuser_disabled(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return 0; return WCC->serv_info->serv_newuser_disabled != 0; } int conditional_serv_supports_guest(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return 0; return WCC->serv_info->serv_supports_guest != 0; } int conditional_serv_supports_openid(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return 0; return WCC->serv_info->serv_supports_openid != 0; } int conditional_serv_fulltext_enabled(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return 0; return WCC->serv_info->serv_fulltext_enabled != 0; } int conditional_serv_ldap_enabled(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return 0; return WCC->serv_info->serv_supports_ldap != 0; } void tmplput_serv_bbs_city(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->serv_info == NULL) return; StrBufAppendTemplate(Target, TP, WC->serv_info->serv_bbs_city, 0); } void tmplput_mesg(StrBuf *Target, WCTemplputParams *TP) { int n = 0; int Done = 0; StrBuf *Line; StrBuf *Buf; Buf = NewStrBuf(); Line = NewStrBuf(); serv_printf("MESG %s", TP->Tokens->Params[0]->Start); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { while (!Done && (StrBuf_ServGetln(Line)>=0)) { if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) Done = 1; else { if (n > 0) StrBufAppendBufPlain(Buf, "\n", 1, 0); StrBufAppendBuf(Buf, Line, 0); } n++; } FlushStrBuf(Line); FmOut(Line, "center", Buf); StrBufAppendTemplate(Target, TP, Line, 1); } FreeStrBuf(&Buf); FreeStrBuf(&Line); } void tmplput_site_prefix(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if ((WCC != NULL) && (WCC->Hdr->HostHeader != NULL)) { StrBufAppendTemplate(Target, TP, WCC->Hdr->HostHeader, 0); } } void RegisterEmbeddableMimeType(const char *MimeType, long MTLen, int Priority) { StrBuf *MT; MT = NewStrBufPlain(MimeType, MTLen); Put(EmbeddableMimes, IKEY(Priority), MT, HFreeStrBuf); } void CreateMimeStr(void) { HashPos *it; void *vMime; long len = 0; const char *Key; it = GetNewHashPos(EmbeddableMimes, 0); while (GetNextHashPos(EmbeddableMimes, it, &len, &Key, &vMime) && (vMime != NULL)) { if (StrLength(EmbeddableMimeStrs) > 0) StrBufAppendBufPlain(EmbeddableMimeStrs, HKEY("|"), 0); else StrBufAppendBufPlain(EmbeddableMimeStrs, HKEY("MSGP "), 0); StrBufAppendBuf(EmbeddableMimeStrs, (StrBuf*) vMime, 0); } DeleteHashPos(&it); } void ServerStartModule_SERV_FUNC (void) { EmbeddableMimes = NewHash(1, Flathash); EmbeddableMimeStrs = NewStrBuf(); } void ServerShutdownModule_SERV_FUNC (void) { FreeStrBuf(&EmbeddableMimeStrs); DeleteHash(&EmbeddableMimes); } void InitModule_SERVFUNC (void) { is_uds = strcasecmp(ctdlhost, "uds") == 0; if (is_uds) snprintf(serv_sock_name, PATH_MAX, "%s/citadel.socket", ctdlport); RegisterConditional("COND:SERV:OPENID", 2, conditional_serv_supports_openid, CTX_NONE); RegisterConditional("COND:SERV:NEWU", 2, conditional_serv_newuser_disabled, CTX_NONE); RegisterConditional("COND:SERV:FULLTEXT_ENABLED", 2, conditional_serv_fulltext_enabled, CTX_NONE); RegisterConditional("COND:SERV:LDAP_ENABLED", 2, conditional_serv_ldap_enabled, CTX_NONE); RegisterConditional("COND:SERV:SUPPORTS_GUEST", 2, conditional_serv_supports_guest, CTX_NONE); RegisterNamespace("SERV:PID", 0, 0, tmplput_serv_ip, NULL, CTX_NONE); RegisterNamespace("SERV:NODENAME", 0, 1, tmplput_serv_nodename, NULL, CTX_NONE); RegisterNamespace("SERV:HUMANNODE", 0, 1, tmplput_serv_humannode, NULL, CTX_NONE); RegisterNamespace("SERV:FQDN", 0, 1, tmplput_serv_fqdn, NULL, CTX_NONE); RegisterNamespace("SERV:SOFTWARE", 0, 1, tmplput_serv_software, NULL, CTX_NONE); RegisterNamespace("SERV:REV_LEVEL", 0, 0, tmplput_serv_rev_level, NULL, CTX_NONE); RegisterNamespace("SERV:BBS_CITY", 0, 1, tmplput_serv_bbs_city, NULL, CTX_NONE); RegisterNamespace("SERV:MESG", 1, 2, tmplput_mesg, NULL, CTX_NONE); RegisterNamespace("SERV:ADMIN", 0, 1, tmplput_serv_admin, NULL, CTX_NONE); RegisterNamespace("SERV:SITE:PREFIX", 0, 1, tmplput_site_prefix, NULL, CTX_NONE); } void SessionDestroyModule_SERVFUNC (wcsession *sess) { DeleteServInfo(&sess->serv_info); } webcit-dfsg.orig/utils.c0000644000175000017500000001012413223341037015301 0ustar michaelmichael/* * de/encoding stuff. hopefully mostly to be depricated in favour of subst.c + strbuf */ #define SHOW_ME_VAPPEND_PRINTF #include #include #include "webcit.h" /* * remove escaped strings from i.e. the url string (like %20 for blanks) */ long unescape_input(char *buf) { unsigned int a, b; char hex[3]; long buflen; long len; buflen = strlen(buf); while ((buflen > 0) && (isspace(buf[buflen - 1]))){ buf[buflen - 1] = 0; buflen --; } a = 0; while (a < buflen) { if (buf[a] == '+') buf[a] = ' '; if (buf[a] == '%') { /* don't let % chars through, rather truncate the input. */ if (a + 2 > buflen) { buf[a] = '\0'; buflen = a; } else { hex[0] = buf[a + 1]; hex[1] = buf[a + 2]; hex[2] = 0; b = 0; b = decode_hex(hex); buf[a] = (char) b; len = buflen - a - 2; if (len > 0) memmove(&buf[a + 1], &buf[a + 3], len); buflen -=2; } } a++; } return a; } /* * Copy a string, escaping characters which have meaning in HTML. * * target target buffer * strbuf source buffer * nbsp If nonzero, spaces are converted to non-breaking spaces. * nolinebreaks if set, linebreaks are removed from the string. */ long stresc(char *target, long tSize, char *strbuf, int nbsp, int nolinebreaks) { char *aptr, *bptr, *eptr; *target = '\0'; aptr = strbuf; bptr = target; eptr = target + tSize - 6; /* our biggest unit to put in... */ while ((bptr < eptr) && !IsEmptyStr(aptr) ){ if (*aptr == '<') { memcpy(bptr, "<", 4); bptr += 4; } else if (*aptr == '>') { memcpy(bptr, ">", 4); bptr += 4; } else if (*aptr == '&') { memcpy(bptr, "&", 5); bptr += 5; } else if (*aptr == '\"') { memcpy(bptr, """, 6); bptr += 6; } else if (*aptr == '\'') { memcpy(bptr, "'", 5); bptr += 5; } else if (*aptr == LB) { *bptr = '<'; bptr ++; } else if (*aptr == RB) { *bptr = '>'; bptr ++; } else if (*aptr == QU) { *bptr ='"'; bptr ++; } else if ((*aptr == 32) && (nbsp == 1)) { memcpy(bptr, " ", 6); bptr += 6; } else if ((*aptr == '\n') && (nolinebreaks)) { *bptr='\0'; /* nothing */ } else if ((*aptr == '\r') && (nolinebreaks)) { *bptr='\0'; /* nothing */ } else{ *bptr = *aptr; bptr++; } aptr ++; } *bptr = '\0'; if ((bptr = eptr - 1 ) && !IsEmptyStr(aptr) ) return -1; return (bptr - target); } /* * static wrapper for ecsputs1 */ void escputs(const char *strbuf) { StrEscAppend(WC->WBuf, NULL, strbuf, 0, 0); } /* * urlescape buffer and print it to the client */ void urlescputs(const char *strbuf) { StrBufUrlescAppend(WC->WBuf, NULL, strbuf); } /** * urlescape buffer and print it as header */ void hurlescputs(const char *strbuf) { StrBufUrlescAppend(WC->HBuf, NULL, strbuf); } /* * Output a string to the client as a CDATA block */ void cdataout(char *rawdata) { char *ptr = rawdata; wc_printf("", 3)) { wc_printf("]]]]>"); ++ptr; ++ptr; ++ptr; } else { wc_printf("%c", ptr[0]); ++ptr; } } wc_printf("]]>"); } webcit-dfsg.orig/smtpqueue.c0000644000175000017500000003022213223341037016172 0ustar michaelmichael/* * Display the outbound SMTP queue */ #include "webcit.h" CtxType CTX_MAILQITEM = CTX_NONE; CtxType CTX_MAILQ_RCPT = CTX_NONE; HashList *QItemHandlers = NULL; typedef struct _mailq_entry { StrBuf *Recipient; StrBuf *StatusMessage; int Status; /**< * 0 = No delivery has yet been attempted * 2 = Delivery was successful * 3 = Transient error like connection problem. Try next remote if available. * 4 = A transient error was experienced ... try again later * 5 = Delivery to this address failed permanently. The error message * should be placed in the fourth field so that a bounce message may * be generated. */ int n; int Active; }MailQEntry; typedef struct queueitem { long MessageID; long QueMsgID; long Submitted; int FailNow; HashList *MailQEntries; /* copy of the currently parsed item in the MailQEntries list; * if null add a new one. */ MailQEntry *Current; time_t ReattemptWhen; time_t Retry; long ActiveDeliveries; StrBuf *EnvelopeFrom; StrBuf *BounceTo; StrBuf *SenderRoom; ParsedURL *URL; ParsedURL *FallBackHost; } OneQueItem; typedef void (*QItemHandler)(OneQueItem *Item, StrBuf *Line, const char **Pos); typedef struct __QItemHandlerStruct { QItemHandler H; } QItemHandlerStruct; void RegisterQItemHandler(const char *Key, long Len, QItemHandler H) { QItemHandlerStruct *HS = (QItemHandlerStruct*)malloc(sizeof(QItemHandlerStruct)); HS->H = H; Put(QItemHandlers, Key, Len, HS, NULL); } void FreeMailQEntry(void *qv) { MailQEntry *Q = qv; FreeStrBuf(&Q->Recipient); FreeStrBuf(&Q->StatusMessage); free(Q); } void FreeQueItem(OneQueItem **Item) { DeleteHash(&(*Item)->MailQEntries); FreeStrBuf(&(*Item)->EnvelopeFrom); FreeStrBuf(&(*Item)->BounceTo); FreeStrBuf(&(*Item)->SenderRoom); FreeURL(&(*Item)->URL); free(*Item); Item = NULL; } void HFreeQueItem(void *Item) { FreeQueItem((OneQueItem**)&Item); } OneQueItem *DeserializeQueueItem(StrBuf *RawQItem, long QueMsgID) { OneQueItem *Item; const char *pLine = NULL; StrBuf *Line; StrBuf *Token; Item = (OneQueItem*)malloc(sizeof(OneQueItem)); memset(Item, 0, sizeof(OneQueItem)); Item->Retry = 0; Item->MessageID = -1; Item->QueMsgID = QueMsgID; Token = NewStrBuf(); Line = NewStrBufPlain(NULL, 128); while (pLine != StrBufNOTNULL) { const char *pItemPart = NULL; void *vHandler; StrBufExtract_NextToken(Line, RawQItem, &pLine, '\n'); if (StrLength(Line) == 0) continue; StrBufExtract_NextToken(Token, Line, &pItemPart, '|'); if (GetHash(QItemHandlers, SKEY(Token), &vHandler)) { QItemHandlerStruct *HS; HS = (QItemHandlerStruct*) vHandler; HS->H(Item, Line, &pItemPart); } } FreeStrBuf(&Line); FreeStrBuf(&Token); /* Put(ActiveQItems, LKEY(Item->MessageID), Item, HFreeQueItem); */ return Item; } void tmplput_MailQID(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); StrBufAppendPrintf(Target, "%ld", Item->QueMsgID);; } void tmplput_MailQPayloadID(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); StrBufAppendPrintf(Target, "%ld", Item->MessageID); } void tmplput_MailQBounceTo(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); StrBufAppendTemplate(Target, TP, Item->BounceTo, 0); } void tmplput_MailQAttempted(StrBuf *Target, WCTemplputParams *TP) { char datebuf[64]; OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); webcit_fmt_date(datebuf, 64, Item->ReattemptWhen, DATEFMT_BRIEF); StrBufAppendBufPlain(Target, datebuf, -1, 0); } void tmplput_MailQSubmitted(StrBuf *Target, WCTemplputParams *TP) { char datebuf[64]; OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); webcit_fmt_date(datebuf, 64, Item->Submitted, DATEFMT_BRIEF); StrBufAppendBufPlain(Target, datebuf, -1, 0); } void tmplput_MailQEnvelopeFrom(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); StrBufAppendTemplate(Target, TP, Item->EnvelopeFrom, 0); } void tmplput_MailQSourceRoom(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); StrBufAppendTemplate(Target, TP, Item->SenderRoom, 0); } int Conditional_MailQ_HaveSourceRoom(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); return StrLength(Item->SenderRoom) > 0; } void tmplput_MailQRetry(StrBuf *Target, WCTemplputParams *TP) { char datebuf[64]; OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); if (Item->Retry == 0) { StrBufAppendBufPlain(Target, _("First Attempt pending"), -1, 0); } else { webcit_fmt_date(datebuf, sizeof(datebuf), Item->Retry, DATEFMT_BRIEF); StrBufAppendBufPlain(Target, datebuf, -1, 0); } } void tmplput_MailQRCPT(StrBuf *Target, WCTemplputParams *TP) { MailQEntry *Entry = (MailQEntry*) CTX(CTX_MAILQ_RCPT); StrBufAppendTemplate(Target, TP, Entry->Recipient, 0); } void tmplput_MailQRCPTStatus(StrBuf *Target, WCTemplputParams *TP) { MailQEntry *Entry = (MailQEntry*) CTX(CTX_MAILQ_RCPT); StrBufAppendPrintf(Target, "%ld", Entry->Status); } void tmplput_MailQStatusMsg(StrBuf *Target, WCTemplputParams *TP) { MailQEntry *Entry = (MailQEntry*) CTX(CTX_MAILQ_RCPT); StrBufAppendTemplate(Target, TP, Entry->StatusMessage, 0); } HashList *iterate_get_Recipients(StrBuf *Target, WCTemplputParams *TP) { OneQueItem *Item = (OneQueItem*) CTX(CTX_MAILQITEM); return Item->MailQEntries; } void NewMailQEntry(OneQueItem *Item) { Item->Current = (MailQEntry*) malloc(sizeof(MailQEntry)); memset(Item->Current, 0, sizeof(MailQEntry)); if (Item->MailQEntries == NULL) Item->MailQEntries = NewHash(1, Flathash); Item->Current->StatusMessage = NewStrBuf(); Item->Current->n = GetCount(Item->MailQEntries); Put(Item->MailQEntries, IKEY(Item->Current->n), Item->Current, FreeMailQEntry); } void QItem_Handle_MsgID(OneQueItem *Item, StrBuf *Line, const char **Pos) { Item->MessageID = StrBufExtractNext_long(Line, Pos, '|'); } void QItem_Handle_EnvelopeFrom(OneQueItem *Item, StrBuf *Line, const char **Pos) { if (Item->EnvelopeFrom == NULL) Item->EnvelopeFrom = NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_NextToken(Item->EnvelopeFrom, Line, Pos, '|'); } void QItem_Handle_BounceTo(OneQueItem *Item, StrBuf *Line, const char **Pos) { if (Item->BounceTo == NULL) Item->BounceTo = NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_NextToken(Item->BounceTo, Line, Pos, '|'); } void QItem_Handle_SenderRoom(OneQueItem *Item, StrBuf *Line, const char **Pos) { if (Item->SenderRoom == NULL) Item->SenderRoom = NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_NextToken(Item->SenderRoom, Line, Pos, '|'); } void QItem_Handle_Recipient(OneQueItem *Item, StrBuf *Line, const char **Pos) { const char *pch; if (Item->Current == NULL) NewMailQEntry(Item); if (Item->Current->Recipient == NULL) Item->Current->Recipient=NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_NextToken(Item->Current->Recipient, Line, Pos, '|'); Item->Current->Status = StrBufExtractNext_int(Line, Pos, '|'); StrBufExtract_NextToken(Item->Current->StatusMessage, Line, Pos, '|'); pch = ChrPtr(Item->Current->StatusMessage); while ((pch != NULL) && (*pch != '\0')) { pch = strchr(pch, ';'); if (pch != NULL) { pch ++; if (*pch == ' ') { StrBufPeek(Item->Current->StatusMessage, pch, -1, '\n'); } } } Item->Current = NULL; // TODO: is this always right? } void QItem_Handle_retry(OneQueItem *Item, StrBuf *Line, const char **Pos) { Item->Retry = StrBufExtractNext_int(Line, Pos, '|'); } void QItem_Handle_Submitted(OneQueItem *Item, StrBuf *Line, const char **Pos) { Item->Submitted = atol(*Pos); } void QItem_Handle_Attempted(OneQueItem *Item, StrBuf *Line, const char **Pos) { Item->ReattemptWhen = StrBufExtractNext_int(Line, Pos, '|'); } void render_QUEUE(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = CTX(CTX_MIME_ATACH); WCTemplputParams SubTP; OneQueItem* Context; Context = DeserializeQueueItem(Mime->Data, Mime->msgnum); StackContext(TP, &SubTP, Context, CTX_MAILQITEM, 0, TP->Tokens); { DoTemplate(HKEY("view_mailq_message"), NULL, &SubTP); } UnStackContext(&SubTP); FreeQueItem (&Context); } void ServerShutdownModule_SMTP_QUEUE (void) { DeleteHash(&QItemHandlers); } void ServerStartModule_SMTP_QUEUE (void) { QItemHandlers = NewHash(0, NULL); } int qview_PrintPageHeader(SharedMessageStatus *Stat, void **ViewSpecific) { if (yesbstr("ListOnly")) output_headers(1, 0, 0, 0, 0, 0); else output_headers(1, 1, 1, 0, 0, 0); return 0; } int qview_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { if (!WC->is_aide) { DoTemplate(HKEY("aide_required"), NULL, NULL); end_burst(); return 300; } else { snprintf(cmd, len, "MSGS ALL|0|1"); snprintf(filter, flen, "SUBJ|QMSG"); if (yesbstr("ListOnly")) DoTemplate(HKEY("view_mailq_table"), NULL, NULL); else DoTemplate(HKEY("view_mailq_header"), NULL, NULL); return 200; } } /* * Display task view */ int qview_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i) { wcsession *WCC = WC; const StrBuf *Mime; /* Not (yet?) needed here? calview *c = (calview *) *ViewSpecific; */ read_message(WCC->WBuf, HKEY("view_mailq_message_bearer"), Msg->msgnum, NULL, &Mime, NULL); return 0; } int qview_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { wcsession *WCC = WC; WCTemplputParams SubTP; memset(&SubTP, 0, sizeof(WCTemplputParams)); if (yesbstr("ListOnly")) DoTemplate(HKEY("view_mailq_footer_listonly"),NULL, &SubTP); else { if (GetCount(WCC->summ) == 0) DoTemplate(HKEY("view_mailq_footer_empty"),NULL, &SubTP); else DoTemplate(HKEY("view_mailq_footer"),NULL, &SubTP); } return 0; } int qview_Cleanup(void **ViewSpecific) { wDumpContent(yesbstr("ListOnly")?0:1); return 0; } void InitModule_SMTP_QUEUE (void) { RegisterCTX(CTX_MAILQITEM); RegisterCTX(CTX_MAILQ_RCPT); RegisterQItemHandler(HKEY("msgid"), QItem_Handle_MsgID); RegisterQItemHandler(HKEY("envelope_from"), QItem_Handle_EnvelopeFrom); RegisterQItemHandler(HKEY("retry"), QItem_Handle_retry); RegisterQItemHandler(HKEY("attempted"), QItem_Handle_Attempted); RegisterQItemHandler(HKEY("remote"), QItem_Handle_Recipient); RegisterQItemHandler(HKEY("bounceto"), QItem_Handle_BounceTo); RegisterQItemHandler(HKEY("source_room"), QItem_Handle_SenderRoom); RegisterQItemHandler(HKEY("submitted"), QItem_Handle_Submitted); RegisterMimeRenderer(HKEY("application/x-citadel-delivery-list"), render_QUEUE, 1, 9000); RegisterNamespace("MAILQ:ID", 0, 0, tmplput_MailQID, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:PAYLOAD:ID", 0, 0, tmplput_MailQPayloadID, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:BOUNCETO", 0, 1, tmplput_MailQBounceTo, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:ATTEMPTED", 0, 0, tmplput_MailQAttempted, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:SUBMITTED", 0, 0, tmplput_MailQSubmitted, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:ENVELOPEFROM", 0, 1, tmplput_MailQEnvelopeFrom, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:SRCROOM", 0, 1, tmplput_MailQSourceRoom, NULL, CTX_MAILQITEM); RegisterConditional("COND:MAILQ:HAVESRCROOM", 0, Conditional_MailQ_HaveSourceRoom, CTX_MAILQITEM); RegisterNamespace("MAILQ:RETRY", 0, 0, tmplput_MailQRetry, NULL, CTX_MAILQITEM); RegisterNamespace("MAILQ:RCPT:ADDR", 0, 1, tmplput_MailQRCPT, NULL, CTX_MAILQ_RCPT); RegisterNamespace("MAILQ:RCPT:STATUS", 0, 0, tmplput_MailQRCPTStatus, NULL, CTX_MAILQ_RCPT); RegisterNamespace("MAILQ:RCPT:STATUSMSG", 0, 1, tmplput_MailQStatusMsg, NULL, CTX_MAILQ_RCPT); RegisterIterator("MAILQ:RCPT", 0, NULL, iterate_get_Recipients, NULL, NULL, CTX_MAILQ_RCPT, CTX_MAILQITEM, IT_NOFLAG); RegisterReadLoopHandlerset( VIEW_QUEUE, qview_GetParamsGetServerCall, qview_PrintPageHeader, NULL, /* TODO: is this right? */ NULL, qview_LoadMsgFromServer, qview_RenderView_or_Tail, qview_Cleanup, NULL); } webcit-dfsg.orig/ical_subst.c0000644000175000017500000003774413223341037016312 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" extern IcalKindEnumMap icalproperty_kind_map[]; extern IcalMethodEnumMap icalproperty_method_map[]; HashList *IcalComponentMap = NULL; CtxType CTX_ICAL = CTX_NONE; CtxType CTX_ICALPROPERTY = CTX_NONE; CtxType CTX_ICALMETHOD = CTX_NONE; CtxType CTX_ICALTIME = CTX_NONE; CtxType CTX_ICALATTENDEE = CTX_NONE; CtxType CTX_ICALCONFLICT = CTX_NONE; #if 0 void SortPregetMatter(HashList *Cals) { disp_cal *Cal; void *vCal; const char *Key; long KLen; IcalEnumMap *SortMap[10]; IcalEnumMap *Map; void *vSort; const char *Next = NULL; const StrBuf *SortVector; StrBuf *SortBy; int i = 0; HashPos *It; SortVector = SBSTR("ICALSortVec"); if (SortVector == NULL) return; for (i = 0; i < 10; i++) SortMap[i] = NULL; SortBy = NewStrBuf(); while (StrBufExtract_NextToken(SortBy, SortVector, &Next, ':') > 0) { GetHash(IcalComponentMap, SKEY(SortBy), &vSort); Map = (IcalEnumMap*) vSort; SortMap[i] = Map; i++; if (i > 9) break; } if (i == 0) return; switch (SortMap[i - 1]->map) { /* case */ default: break; } It = GetNewHashPos(Cals, 0); while (GetNextHashPos(Cals, It, &KLen, &Key, &vCal)) { i = 0; Cal = (disp_cal*) vCal; Cal->Status = icalcomponent_get_status(Cal->cal); Cal->SortBy = Cal->cal; while ((SortMap[i] != NULL) && (Cal->SortBy != NULL)) { /****Cal->SortBy = icalcomponent_get_first_property(Cal->SortBy, SortMap[i++]->map); */ } } } #endif void tmplput_ICalItem(StrBuf *Target, WCTemplputParams *TP) { icalcomponent *cal = (icalcomponent *) CTX(CTX_ICAL); icalproperty *p; icalproperty_kind Kind; const char *str; Kind = (icalproperty_kind) GetTemplateTokenNumber(Target, TP, 0, ICAL_ANY_PROPERTY); p = icalcomponent_get_first_property(cal, Kind); if (p != NULL) { str = icalproperty_get_comment (p); StrBufAppendTemplateStr(Target, TP, str, 1); } } void tmplput_CtxICalProperty(StrBuf *Target, WCTemplputParams *TP) { icalproperty *p = (icalproperty *) CTX(CTX_ICALPROPERTY); const char *str; str = icalproperty_get_comment (p); StrBufAppendTemplateStr(Target, TP, str, 0); } int ReleaseIcalSubCtx(StrBuf *Target, WCTemplputParams *TP) { WCTemplputParams *TPP = TP; UnStackContext(TP); free(TPP); return 0; } int cond_ICalIsA(StrBuf *Target, WCTemplputParams *TP) { icalcomponent *cal = (icalcomponent *) CTX(CTX_ICAL); icalcomponent_kind c = GetTemplateTokenNumber(Target, TP, 2, ICAL_NO_COMPONENT); return icalcomponent_isa(cal) == c; } int cond_ICalHaveItem(StrBuf *Target, WCTemplputParams *TP) { icalcomponent *cal = (icalcomponent *) CTX(CTX_ICAL); icalproperty *p; icalproperty_kind Kind; Kind = (icalproperty_kind) GetTemplateTokenNumber(Target, TP, 2, ICAL_ANY_PROPERTY); p = icalcomponent_get_first_property(cal, Kind); if (p != NULL) { WCTemplputParams *DynamicTP; DynamicTP = (WCTemplputParams*) malloc(sizeof(WCTemplputParams)); StackDynamicContext (TP, DynamicTP, p, CTX_ICALPROPERTY, 0, TP->Tokens, ReleaseIcalSubCtx, TP->Tokens->Params[1]->lvalue); return 1; } return 0; } int ReleaseIcalTimeCtx(StrBuf *Target, WCTemplputParams *TP) { WCTemplputParams *TPP = TP; UnStackContext(TP); free(TPP); return 0; } int cond_ICalHaveTimeItem(StrBuf *Target, WCTemplputParams *TP) { icalcomponent *cal = (icalcomponent *) CTX(CTX_ICAL); icalproperty *p; icalproperty_kind Kind; Kind = (icalproperty_kind) GetTemplateTokenNumber(Target, TP, 2, ICAL_ANY_PROPERTY); p = icalcomponent_get_first_property(cal, Kind); if (p != NULL) { struct icaltimetype *t; struct icaltimetype tt; WCTemplputParams *DynamicTP; DynamicTP = (WCTemplputParams*) malloc(sizeof(WCTemplputParams) + sizeof(struct icaltimetype)); t = (struct icaltimetype *) &DynamicTP[1]; memset(&tt, 0, sizeof(struct icaltimetype)); switch (Kind) { case ICAL_DTSTART_PROPERTY: tt = icalproperty_get_dtstart(p); break; case ICAL_DTEND_PROPERTY: tt = icalproperty_get_dtend(p); break; default: break; } memcpy(t, &tt, sizeof(struct icaltimetype)); StackDynamicContext (TP, DynamicTP, t, CTX_ICALTIME, 0, TP->Tokens, ReleaseIcalTimeCtx, TP->Tokens->Params[1]->lvalue); return 1; } return 0; } int cond_ICalTimeIsDate(StrBuf *Target, WCTemplputParams *TP) { struct icaltimetype *t = (struct icaltimetype *) CTX(CTX_ICALTIME); return t->is_date; } void tmplput_ICalTime_Date(StrBuf *Target, WCTemplputParams *TP) { struct tm d_tm; long len; char buf[256]; struct icaltimetype *t = (struct icaltimetype *) CTX(CTX_ICALTIME); memset(&d_tm, 0, sizeof d_tm); d_tm.tm_year = t->year - 1900; d_tm.tm_mon = t->month - 1; d_tm.tm_mday = t->day; len = wc_strftime(buf, sizeof(buf), "%x", &d_tm); StrBufAppendBufPlain(Target, buf, len, 0); } void tmplput_ICalTime_Time(StrBuf *Target, WCTemplputParams *TP) { long len; char buf[256]; struct icaltimetype *t = (struct icaltimetype *) CTX(CTX_ICALTIME); time_t tt; tt = icaltime_as_timet(*t); len = webcit_fmt_date(buf, sizeof(buf), tt, DATEFMT_FULL); StrBufAppendBufPlain(Target, buf, len, 0); } void tmplput_ICalDate(StrBuf *Target, WCTemplputParams *TP) { icalcomponent *cal = (icalcomponent *) CTX(CTX_ICAL); icalproperty *p; icalproperty_kind Kind; struct icaltimetype t; time_t tt; char buf[256]; Kind = (icalproperty_kind) GetTemplateTokenNumber(Target, TP, 0, ICAL_ANY_PROPERTY); p = icalcomponent_get_first_property(cal, Kind); if (p != NULL) { long len; t = icalproperty_get_dtend(p); tt = icaltime_as_timet(t); len = webcit_fmt_date(buf, 256, tt, DATEFMT_FULL); StrBufAppendBufPlain(Target, buf, len, 0); } } void tmplput_CtxICalPropertyDate(StrBuf *Target, WCTemplputParams *TP) { icalproperty *p = (icalproperty *) CTX(CTX_ICALPROPERTY); struct icaltimetype t; time_t tt; char buf[256]; long len; t = icalproperty_get_dtend(p); tt = icaltime_as_timet(t); len = webcit_fmt_date(buf, sizeof(buf), tt, DATEFMT_FULL); StrBufAppendBufPlain(Target, buf, len, 0); } void render_MIME_ICS_TPL(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = CTX(CTX_MIME_ATACH); icalproperty_method the_method = ICAL_METHOD_NONE; icalproperty *method = NULL; icalcomponent *cal = NULL; icalcomponent *c = NULL; WCTemplputParams SubTP; WCTemplputParams SuperTP; static int divcount = 0; if (StrLength(Mime->Data) == 0) { MimeLoadData(Mime); } if (StrLength(Mime->Data) > 0) { cal = icalcomponent_new_from_string(ChrPtr(Mime->Data)); } if (cal == NULL) { StrBufAppendPrintf(Mime->Data, _("There was an error parsing this calendar item.")); StrBufAppendPrintf(Mime->Data, "
\n"); return; } putlbstr("divname", ++divcount); putbstr("cal_partnum", NewStrBufDup(Mime->PartNum)); putlbstr("msgnum", Mime->msgnum); memset(&SubTP, 0, sizeof(WCTemplputParams)); memset(&SuperTP, 0, sizeof(WCTemplputParams)); /*//ical_dezonify(cal); */ /* If the component has subcomponents, recurse through them. */ c = icalcomponent_get_first_component(cal, ICAL_ANY_COMPONENT); c = (c != NULL) ? c : cal; method = icalcomponent_get_first_property(cal, ICAL_METHOD_PROPERTY); if (method != NULL) { the_method = icalproperty_get_method(method); } StackContext (TP, &SuperTP, &the_method, CTX_ICALMETHOD, 0, TP->Tokens); StackContext (&SuperTP, &SubTP, c, CTX_ICAL, 0, SuperTP.Tokens); FlushStrBuf(Mime->Data); /// DoTemplate(HKEY("ical_attachment_display"), Mime->Data, &SubTP); DoTemplate(HKEY("ical_edit"), Mime->Data, &SubTP); /*/ cal_process_object(Mime->Data, cal, 0, Mime->msgnum, ChrPtr(Mime->PartNum)); */ /* Free the memory we obtained from libical's constructor */ StrBufPlain(Mime->ContentType, HKEY("text/html")); StrBufAppendPrintf(WC->trailing_javascript, "eventEditAllDay(); \n" "RecurrenceShowHide(); \n" "EnableOrDisableCheckButton(); \n" ); UnStackContext(&SuperTP); UnStackContext(&SubTP); icalcomponent_free(cal); } void CreateIcalComponendKindLookup(void) { int i = 0; IcalComponentMap = NewHash (1, NULL); while (icalproperty_kind_map[i].NameLen != 0) { RegisterNS(icalproperty_kind_map[i].Name, icalproperty_kind_map[i].NameLen, 0, 10, tmplput_ICalItem, NULL, CTX_ICAL); Put(IcalComponentMap, icalproperty_kind_map[i].Name, icalproperty_kind_map[i].NameLen, &icalproperty_kind_map[i], reference_free_handler); i++; } } int cond_ICalIsMethod(StrBuf *Target, WCTemplputParams *TP) { icalproperty_method *the_method = (icalproperty_method *) CTX(CTX_ICALMETHOD); icalproperty_method which_method; which_method = GetTemplateTokenNumber(Target, TP, 2, ICAL_METHOD_X); return *the_method == which_method; } typedef struct CalendarConflict { long is_update; long existing_msgnum; StrBuf *conflict_event_uid; StrBuf *conflict_event_summary; }CalendarConflict; void DeleteConflict(void *vConflict) { CalendarConflict *c = (CalendarConflict *) vConflict; FreeStrBuf(&c->conflict_event_uid); FreeStrBuf(&c->conflict_event_summary); free(c); } HashList *iterate_FindConflict(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Line; HashList *Conflicts = NULL; CalendarConflict *Conflict; wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); serv_printf("ICAL conflicts|%ld|%s|", Mime->msgnum, ChrPtr(Mime->PartNum)); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { const char *Pos = NULL; int Done = 0; int n = 0; Conflicts = NewHash(1, Flathash); while(!Done && (StrBuf_ServGetln(Line) >= 0) ) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { Conflict = (CalendarConflict *) malloc(sizeof(CalendarConflict)); Conflict->conflict_event_uid = NewStrBufPlain(NULL, StrLength(Line)); Conflict->conflict_event_summary = NewStrBufPlain(NULL, StrLength(Line)); Conflict->existing_msgnum = StrBufExtractNext_long(Line, &Pos, '|'); StrBufSkip_NTokenS(Line, &Pos, '|', 1); StrBufExtract_NextToken(Conflict->conflict_event_uid, Line, &Pos, '|'); StrBufExtract_NextToken(Conflict->conflict_event_summary, Line, &Pos, '|'); Conflict->is_update = StrBufExtractNext_long(Line, &Pos, '|'); Put(Conflicts, IKEY(n), Conflict, DeleteConflict); n++; Pos = NULL; } } FreeStrBuf(&Line); syslog(LOG_DEBUG, "...done.\n"); return Conflicts; } void tmplput_ConflictEventMsgID(StrBuf *Target, WCTemplputParams *TP) { CalendarConflict *C = (CalendarConflict *) CTX(CTX_ICALCONFLICT); char buf[sizeof(long) * 16]; snprintf(buf, sizeof(buf), "%ld", C->existing_msgnum); StrBufAppendTemplateStr(Target, TP, buf, 0); } void tmplput_ConflictEUID(StrBuf *Target, WCTemplputParams *TP) { CalendarConflict *C = (CalendarConflict *) CTX(CTX_ICALCONFLICT); StrBufAppendTemplate(Target, TP, C->conflict_event_uid, 0); } void tmplput_ConflictSummary(StrBuf *Target, WCTemplputParams *TP) { CalendarConflict *C = (CalendarConflict *) CTX(CTX_ICALCONFLICT); StrBufAppendTemplate(Target, TP, C->conflict_event_summary, 0); } int cond_ConflictIsUpdate(StrBuf *Target, WCTemplputParams *TP) { CalendarConflict *C = (CalendarConflict *) CTX(CTX_ICALCONFLICT); return C->is_update; } typedef struct CalAttendee { StrBuf *AttendeeStr; icalparameter_partstat partstat; } CalAttendee; void DeleteAtt(void *vAtt) { CalAttendee *att = (CalAttendee*) vAtt; FreeStrBuf(&att->AttendeeStr); free(vAtt); } HashList *iterate_get_ical_attendees(StrBuf *Target, WCTemplputParams *TP) { icalcomponent *cal = (icalcomponent *) CTX(CTX_ICAL); icalparameter *partstat_param; icalproperty *p; CalAttendee *Att; HashList *Attendees = NULL; const char *ch; int n = 0; /* If the component has attendees, iterate through them. */ for (p = icalcomponent_get_first_property(cal, ICAL_ATTENDEE_PROPERTY); (p != NULL); p = icalcomponent_get_next_property(cal, ICAL_ATTENDEE_PROPERTY)) { ch = icalproperty_get_attendee(p); if ((ch != NULL) && !strncasecmp(ch, "MAILTO:", 7)) { Att = (CalAttendee*) malloc(sizeof(CalAttendee)); /** screen name or email address */ Att->AttendeeStr = NewStrBufPlain(ch + 7, -1); StrBufTrim(Att->AttendeeStr); /** participant status */ partstat_param = icalproperty_get_first_parameter( p, ICAL_PARTSTAT_PARAMETER ); if (partstat_param == NULL) { Att->partstat = ICAL_PARTSTAT_X; } else { Att->partstat = icalparameter_get_partstat(partstat_param); } if (Attendees == NULL) Attendees = NewHash(1, Flathash); Put(Attendees, IKEY(n), Att, DeleteAtt); n++; } } return Attendees; } void tmplput_ICalAttendee(StrBuf *Target, WCTemplputParams *TP) { CalAttendee *Att = (CalAttendee*) CTX(CTX_ICALATTENDEE); StrBufAppendTemplate(Target, TP, Att->AttendeeStr, 0); } int cond_ICalAttendeeState(StrBuf *Target, WCTemplputParams *TP) { CalAttendee *Att = (CalAttendee*) CTX(CTX_ICALATTENDEE); icalparameter_partstat which_partstat; which_partstat = GetTemplateTokenNumber(Target, TP, 2, ICAL_PARTSTAT_X); return Att->partstat == which_partstat; } /* If the component has subcomponents, recurse through them. * / for (c = icalcomponent_get_first_component(cal, ICAL_ANY_COMPONENT); (c != 0); c = icalcomponent_get_next_component(cal, ICAL_ANY_COMPONENT)) { // Recursively process subcomponent cal_process_object(Target, c, recursion_level+1, msgnum, cal_partnum); } */ void InitModule_ICAL_SUBST (void) { RegisterCTX(CTX_ICAL); /* RegisterMimeRenderer(HKEY("text/calendar"), render_MIME_ICS_TPL, 1, 501); RegisterMimeRenderer(HKEY("application/ics"), render_MIME_ICS_TPL, 1, 500); */ CreateIcalComponendKindLookup (); RegisterConditional("COND:ICAL:PROPERTY", 1, cond_ICalHaveItem, CTX_ICAL); RegisterConditional("COND:ICAL:IS:A", 1, cond_ICalIsA, CTX_ICAL); RegisterIterator("ICAL:CONFLICT", 0, NULL, iterate_FindConflict, NULL, DeleteHash, CTX_MIME_ATACH, CTX_ICALCONFLICT, IT_NOFLAG); RegisterNamespace("ICAL:CONFLICT:MSGID", 0, 1, tmplput_ConflictEventMsgID, NULL, CTX_ICALCONFLICT); RegisterNamespace("ICAL:CONFLICT:EUID", 0, 1, tmplput_ConflictEUID, NULL, CTX_ICALCONFLICT); RegisterNamespace("ICAL:CONFLICT:SUMMARY", 0, 1, tmplput_ConflictSummary, NULL, CTX_ICALCONFLICT); RegisterConditional("ICAL:CONFLICT:IS:UPDATE", 0, cond_ConflictIsUpdate, CTX_ICALCONFLICT); RegisterCTX(CTX_ICALATTENDEE); RegisterIterator("ICAL:ATTENDEES", 0, NULL, iterate_get_ical_attendees, NULL, DeleteHash, CTX_ICALATTENDEE, CTX_ICAL, IT_NOFLAG); RegisterNamespace("ICAL:ATTENDEE", 1, 2, tmplput_ICalAttendee, NULL, CTX_ICALATTENDEE); RegisterConditional("COND:ICAL:ATTENDEE", 1, cond_ICalAttendeeState, CTX_ICALATTENDEE); RegisterCTX(CTX_ICALPROPERTY); RegisterNamespace("ICAL:ITEM", 1, 2, tmplput_ICalItem, NULL, CTX_ICAL); RegisterNamespace("ICAL:PROPERTY:STR", 0, 1, tmplput_CtxICalProperty, NULL, CTX_ICALPROPERTY); RegisterNamespace("ICAL:PROPERTY:DATE", 0, 1, tmplput_CtxICalPropertyDate, NULL, CTX_ICALPROPERTY); RegisterCTX(CTX_ICALMETHOD); RegisterConditional("COND:ICAL:METHOD", 1, cond_ICalIsMethod, CTX_ICALMETHOD); RegisterCTX(CTX_ICALTIME); RegisterConditional("COND:ICAL:DT:PROPERTY", 1, cond_ICalHaveTimeItem, CTX_ICAL); RegisterConditional("COND:ICAL:DT:ISDATE", 0, cond_ICalTimeIsDate, CTX_ICALTIME); RegisterNamespace("ICAL:DT:DATE", 0, 1, tmplput_ICalTime_Date, NULL, CTX_ICALTIME); RegisterNamespace("ICAL:DT:DATETIME", 0, 1, tmplput_ICalTime_Time, NULL, CTX_ICALTIME); } void ServerShutdownModule_ICAL (void) { DeleteHash(&IcalComponentMap); } webcit-dfsg.orig/downloads.c0000644000175000017500000003274613223341037016151 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" CtxType CTX_FILELIST = CTX_NONE; extern void output_static(const char* What); extern char* static_dirs[]; typedef struct _FileListStruct { StrBuf *Filename; long FileSize; StrBuf *MimeType; StrBuf *Comment; int IsPic; int Sequence; } FileListStruct; void FreeFiles(void *vFile) { FileListStruct *F = (FileListStruct*) vFile; FreeStrBuf(&F->Filename); FreeStrBuf(&F->MimeType); FreeStrBuf(&F->Comment); free(F); } /* -------------------------------------------------------------------------------- */ void tmplput_FILE_NAME(StrBuf *Target, WCTemplputParams *TP) { FileListStruct *F = (FileListStruct*) CTX(CTX_FILELIST); StrBufAppendTemplate(Target, TP, F->Filename, 0); } void tmplput_FILE_SIZE(StrBuf *Target, WCTemplputParams *TP) { FileListStruct *F = (FileListStruct*) CTX(CTX_FILELIST); StrBufAppendPrintf(Target, "%ld", F->FileSize); } void tmplput_FILEMIMETYPE(StrBuf *Target, WCTemplputParams *TP) { FileListStruct *F = (FileListStruct*) CTX(CTX_FILELIST); StrBufAppendTemplate(Target, TP, F->MimeType, 0); } void tmplput_FILE_COMMENT(StrBuf *Target, WCTemplputParams *TP) { FileListStruct *F = (FileListStruct*) CTX(CTX_FILELIST); StrBufAppendTemplate(Target, TP, F->Comment, 0); } /* -------------------------------------------------------------------------------- */ int Conditional_FILE_ISPIC(StrBuf *Target, WCTemplputParams *TP) { FileListStruct *F = (FileListStruct*) CTX(CTX_FILELIST); return F->IsPic; } /* -------------------------------------------------------------------------------- */ int CompareFilelistByMime(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); if (File1->IsPic != File2->IsPic) return File1->IsPic > File2->IsPic; return strcasecmp(ChrPtr(File1->MimeType), ChrPtr(File2->MimeType)); } int CompareFilelistByMimeRev(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); if (File1->IsPic != File2->IsPic) return File1->IsPic < File2->IsPic; return strcasecmp(ChrPtr(File2->MimeType), ChrPtr(File1->MimeType)); } int GroupchangeFilelistByMime(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) vFile1; FileListStruct *File2 = (FileListStruct*) vFile2; if (File1->IsPic != File2->IsPic) return File1->IsPic > File2->IsPic; return strcasecmp(ChrPtr(File1->MimeType), ChrPtr(File2->MimeType)) != 0; } int CompareFilelistByName(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); if (File1->IsPic != File2->IsPic) return File1->IsPic > File2->IsPic; return strcasecmp(ChrPtr(File1->Filename), ChrPtr(File2->Filename)); } int CompareFilelistByNameRev(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); if (File1->IsPic != File2->IsPic) return File1->IsPic < File2->IsPic; return strcasecmp(ChrPtr(File2->Filename), ChrPtr(File1->Filename)); } int GroupchangeFilelistByName(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) vFile1; FileListStruct *File2 = (FileListStruct*) vFile2; return ChrPtr(File1->Filename)[0] != ChrPtr(File2->Filename)[0]; } int CompareFilelistBySize(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); if (File1->FileSize == File2->FileSize) return 0; return (File1->FileSize > File2->FileSize); } int CompareFilelistBySizeRev(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); if (File1->FileSize == File2->FileSize) return 0; return (File1->FileSize < File2->FileSize); } int GroupchangeFilelistBySize(const void *vFile1, const void *vFile2) { return 0; } int CompareFilelistByComment(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); return strcasecmp(ChrPtr(File1->Comment), ChrPtr(File2->Comment)); } int CompareFilelistByCommentRev(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); return strcasecmp(ChrPtr(File2->Comment), ChrPtr(File1->Comment)); } int GroupchangeFilelistByComment(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) vFile1; FileListStruct *File2 = (FileListStruct*) vFile2; return ChrPtr(File1->Comment)[9] != ChrPtr(File2->Comment)[0]; } int CompareFilelistBySequence(const void *vFile1, const void *vFile2) { FileListStruct *File1 = (FileListStruct*) GetSearchPayload(vFile1); FileListStruct *File2 = (FileListStruct*) GetSearchPayload(vFile2); return (File2->Sequence > File1->Sequence); } int GroupchangeFilelistBySequence(const void *vFile1, const void *vFile2) { return 0; } /* -------------------------------------------------------------------------------- */ HashList* LoadFileList(StrBuf *Target, WCTemplputParams *TP) { FileListStruct *Entry; StrBuf *Buf; HashList *Files; int Done = 0; int sequence = 0; char buf[1024]; CompareFunc SortIt; int HavePic = 0; WCTemplputParams SubTP; memset(&SubTP, 0, sizeof(WCTemplputParams)); serv_puts("RDIR"); serv_getln(buf, sizeof buf); if (buf[0] != '1') return NULL; Buf = NewStrBuf(); Files = NewHash(1, NULL); while (!Done && (StrBuf_ServGetln(Buf)>=0)) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; continue; } Entry = (FileListStruct*) malloc(sizeof (FileListStruct)); Entry->Filename = NewStrBufPlain(NULL, StrLength(Buf)); Entry->MimeType = NewStrBufPlain(NULL, StrLength(Buf)); Entry->Comment = NewStrBufPlain(NULL, StrLength(Buf)); Entry->Sequence = sequence++; StrBufExtract_token(Entry->Filename, Buf, 0, '|'); Entry->FileSize = StrBufExtract_long(Buf, 1, '|'); StrBufExtract_token(Entry->MimeType, Buf, 2, '|'); StrBufExtract_token(Entry->Comment, Buf, 3, '|'); Entry->IsPic = (strstr(ChrPtr(Entry->MimeType), "image") != NULL); if (Entry->IsPic) { HavePic = 1; } Put(Files, SKEY(Entry->Filename), Entry, FreeFiles); } if (HavePic) putbstr("__HAVE_PIC", NewStrBufPlain(HKEY("1"))); SubTP.Filter.ContextType = CTX_FILELIST; SortIt = RetrieveSort(&SubTP, NULL, 0, HKEY("fileunsorted"), 0); if (SortIt != NULL) SortByPayload(Files, SortIt); else SortByPayload(Files, CompareFilelistBySequence); FreeStrBuf(&Buf); return Files; } void display_mime_icon(void) { char FileBuf[SIZ]; const char *FileName; char *MimeType; size_t tlen; MimeType = xbstr("type", &tlen); FileName = GetIconFilename(MimeType, tlen); if (FileName == NULL) snprintf (FileBuf, SIZ, "%s%s", static_dirs[0], "/webcit_icons/essen/16x16/file.png"); else snprintf (FileBuf, SIZ, "%s%s", static_dirs[3], FileName); output_static(FileBuf); } void download_file(void) { wcsession *WCC = WC; StrBuf *Buf; off_t bytes; StrBuf *ContentType = NewStrBufPlain(HKEY("application/octet-stream")); /* Setting to nonzero forces a MIME type of application/octet-stream */ int force_download = 1; Buf = NewStrBuf(); StrBufExtract_token(Buf, WCC->Hdr->HR.ReqLine, 0, '/'); StrBufUnescape(Buf, 1); serv_printf("OPEN %s", ChrPtr(Buf)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); StrBufExtract_token(ContentType, Buf, 3, '|'); CheckGZipCompressionAllowed (SKEY(ContentType)); if (force_download) FlushStrBuf(ContentType); serv_read_binary_to_http(ContentType, bytes, 0, 0); serv_puts("CLOS"); StrBuf_ServGetln(Buf); // http_transmit_thing(ChrPtr(ContentType), 0); } else { StrBufCutLeft(Buf, 4); hprintf("HTTP/1.1 404 %s\n", ChrPtr(Buf)); output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-Type: text/plain\r\n"); wc_printf(_("An error occurred while retrieving this file: %s\n"), ChrPtr(Buf)); end_burst(); } FreeStrBuf(&ContentType); FreeStrBuf(&Buf); } void delete_file(void) { const StrBuf *MimeType; StrBuf *Line; char buf[256]; safestrncpy(buf, bstr("file"), sizeof buf); unescape_input(buf); serv_printf("DELF %s", buf); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); MimeType = DoTemplate(HKEY("files"), NULL, &NoCtx); http_transmit_thing(ChrPtr(MimeType), 0); FreeStrBuf(&Line); } void upload_file(void) { const StrBuf *RetMimeType; const char *MimeType; StrBuf *Line; long bytes_transmitted = 0; long blocksize; const StrBuf *Desc; wcsession *WCC = WC; /* stack this for faster access (WC is a function) */ MimeType = GuessMimeType(ChrPtr(WCC->upload), WCC->upload_length); Desc = sbstr("description"); serv_printf("UOPN %s|%s|%s", ChrPtr(WCC->upload_filename), MimeType, ChrPtr(Desc)); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) { RetMimeType = DoTemplate(HKEY("files"), NULL, &NoCtx); http_transmit_thing(ChrPtr(RetMimeType), 0); FreeStrBuf(&Line); return; } while (bytes_transmitted < WCC->upload_length) { blocksize = 4096; if (blocksize > (WCC->upload_length - bytes_transmitted)) { blocksize = (WCC->upload_length - bytes_transmitted); } serv_printf("WRIT %ld", blocksize); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 0, 0) == 7) { blocksize = atoi(ChrPtr(Line) + 4); serv_write(&ChrPtr(WCC->upload)[bytes_transmitted], blocksize); bytes_transmitted += blocksize; } else break; } serv_puts("UCLS 1"); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); RetMimeType = DoTemplate(HKEY("files"), NULL, &NoCtx); http_transmit_thing(ChrPtr(RetMimeType), 0); FreeStrBuf(&Line); } /* * When the browser requests an image file from the Citadel server, * this function is called to transmit it. */ void output_image(void) { StrBuf *Buf; wcsession *WCC = WC; off_t bytes; const char *MimeType; Buf = NewStrBuf(); serv_printf("OIMG %s|%s", bstr("name"), bstr("parm")); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { int rc; StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); /** Read it from the server */ rc = serv_read_binary(WCC->WBuf, bytes, Buf); serv_puts("CLOS"); StrBuf_ServGetln(Buf); if (rc > 0) { MimeType = GuessMimeType (ChrPtr(WCC->WBuf), StrLength(WCC->WBuf)); /** Write it to the browser */ if (!IsEmptyStr(MimeType)) { CheckGZipCompressionAllowed (MimeType, strlen(MimeType)); http_transmit_thing(MimeType, 0); FreeStrBuf(&Buf); return; } } /* hm... unknown mimetype? fallback to blank gif */ } else { syslog(LOG_DEBUG, "OIMG failed: %s", ChrPtr(Buf)); } /* * Instead of an ugly 404, send a 1x1 transparent GIF * when there's no such image on the server. */ StrBufPrintf (Buf, "%s%s", static_dirs[0], "/webcit_icons/blank.gif"); output_static(ChrPtr(Buf)); FreeStrBuf(&Buf); } void InitModule_DOWNLOAD (void) { RegisterCTX(CTX_FILELIST); RegisterIterator("ROOM:FILES", 0, NULL, LoadFileList, NULL, DeleteHash, CTX_FILELIST, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterSortFunc(HKEY("filemime"), NULL, 0, CompareFilelistByMime, CompareFilelistByMimeRev, GroupchangeFilelistByMime, CTX_FILELIST); RegisterSortFunc(HKEY("filename"), NULL, 0, CompareFilelistByName, CompareFilelistByNameRev, GroupchangeFilelistByName, CTX_FILELIST); RegisterSortFunc(HKEY("filesize"), NULL, 0, CompareFilelistBySize, CompareFilelistBySizeRev, GroupchangeFilelistBySize, CTX_FILELIST); RegisterSortFunc(HKEY("filesubject"), NULL, 0, CompareFilelistByComment, CompareFilelistByCommentRev, GroupchangeFilelistByComment, CTX_FILELIST); RegisterSortFunc(HKEY("fileunsorted"), NULL, 0, CompareFilelistBySequence, CompareFilelistBySequence, GroupchangeFilelistBySequence, CTX_FILELIST); RegisterNamespace("FILE:NAME", 0, 2, tmplput_FILE_NAME, NULL, CTX_FILELIST); RegisterNamespace("FILE:SIZE", 0, 1, tmplput_FILE_SIZE, NULL, CTX_FILELIST); RegisterNamespace("FILE:MIMETYPE", 0, 2, tmplput_FILEMIMETYPE, NULL, CTX_FILELIST); RegisterNamespace("FILE:COMMENT", 0, 2, tmplput_FILE_COMMENT, NULL, CTX_FILELIST); RegisterConditional("COND:FILE:ISPIC", 0, Conditional_FILE_ISPIC, CTX_FILELIST); WebcitAddUrlHandler(HKEY("image"), "", 0, output_image, ANONYMOUS); WebcitAddUrlHandler(HKEY("display_mime_icon"), "", 0, display_mime_icon , ANONYMOUS); WebcitAddUrlHandler(HKEY("download_file"), "", 0, download_file, NEED_URL); WebcitAddUrlHandler(HKEY("delete_file"), "", 0, delete_file, NEED_URL); WebcitAddUrlHandler(HKEY("upload_file"), "", 0, upload_file, 0); } webcit-dfsg.orig/crypto.c0000644000175000017500000003531413223341037015471 0ustar michaelmichael/* * Copyright (c) 1996-2017 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "sysdep.h" #ifdef HAVE_OPENSSL #include "webcit.h" #include "webserver.h" /* where to find the keys */ #define CTDL_CRYPTO_DIR ctdl_key_dir #define CTDL_KEY_PATH file_crpt_file_key #define CTDL_CSR_PATH file_crpt_file_csr #define CTDL_CER_PATH file_crpt_file_cer #define SIGN_DAYS 3650 /* how long our certificate should live */ SSL_CTX *ssl_ctx; /* SSL context */ pthread_mutex_t **SSLCritters; /* Things needing locking */ char *ssl_cipher_list = DEFAULT_SSL_CIPHER_LIST; pthread_key_t ThreadSSL; /* Per-thread SSL context */ void ssl_lock(int mode, int n, const char *file, int line); static unsigned long id_callback(void) { return (unsigned long) pthread_self(); } void shutdown_ssl(void) { ERR_free_strings(); /* Openssl requires these while shutdown. * Didn't find a way to get out of this clean. * int i, n = CRYPTO_num_locks(); * for (i = 0; i < n; i++) * free(SSLCritters[i]); * free(SSLCritters); */ } void generate_key(char *keyfilename) { int ret = 0; RSA *rsa = NULL; BIGNUM *bne = NULL; int bits = 2048; unsigned long e = RSA_F4; FILE *fp; if (access(keyfilename, R_OK) == 0) { return; } syslog(LOG_INFO, "crypto: generating RSA key pair"); // generate rsa key bne = BN_new(); ret = BN_set_word(bne,e); if (ret != 1) { goto free_all; } rsa = RSA_new(); ret = RSA_generate_key_ex(rsa, bits, bne, NULL); if (ret != 1) { goto free_all; } // write the key file fp = fopen(keyfilename, "w"); if (fp != NULL) { chmod(file_crpt_file_key, 0600); if (PEM_write_RSAPrivateKey(fp, /* the file */ rsa, /* the key */ NULL, /* no enc */ NULL, /* no passphr */ 0, /* no passphr */ NULL, /* no callbk */ NULL /* no callbk */ ) != 1) { syslog(LOG_ERR, "crypto: cannot write key: %s", ERR_reason_error_string(ERR_get_error())); unlink(keyfilename); } fclose(fp); } // 4. free free_all: RSA_free(rsa); BN_free(bne); } /* * initialize ssl engine, load certs and initialize openssl internals */ void init_ssl(void) { const SSL_METHOD *ssl_method; RSA *rsa=NULL; X509_REQ *req = NULL; X509 *cer = NULL; EVP_PKEY *pk = NULL; EVP_PKEY *req_pkey = NULL; X509_NAME *name = NULL; FILE *fp; char buf[SIZ]; int rv = 0; #ifndef OPENSSL_NO_EGD if (!access("/var/run/egd-pool", F_OK)) { RAND_egd("/var/run/egd-pool"); } #endif if (!RAND_status()) { syslog(LOG_WARNING, "PRNG not adequately seeded, won't do SSL/TLS\n"); return; } SSLCritters = malloc(CRYPTO_num_locks() * sizeof(pthread_mutex_t *)); if (!SSLCritters) { syslog(LOG_ERR, "citserver: can't allocate memory!!\n"); /* Nothing's been initialized, just die */ ShutDownWebcit(); exit(WC_EXIT_SSL); } else { int a; for (a = 0; a < CRYPTO_num_locks(); a++) { SSLCritters[a] = malloc(sizeof(pthread_mutex_t)); if (!SSLCritters[a]) { syslog(LOG_ERR, "citserver: can't allocate memory!!\n"); /** Nothing's been initialized, just die */ ShutDownWebcit(); exit(WC_EXIT_SSL); } pthread_mutex_init(SSLCritters[a], NULL); } } /* * Initialize SSL transport layer */ SSL_library_init(); SSL_load_error_strings(); ssl_method = SSLv23_server_method(); if (!(ssl_ctx = SSL_CTX_new(ssl_method))) { syslog(LOG_WARNING, "SSL_CTX_new failed: %s\n", ERR_reason_error_string(ERR_get_error())); return; } syslog(LOG_INFO, "Requesting cipher list: %s\n", ssl_cipher_list); if (!(SSL_CTX_set_cipher_list(ssl_ctx, ssl_cipher_list))) { syslog(LOG_WARNING, "SSL_CTX_set_cipher_list failed: %s\n", ERR_reason_error_string(ERR_get_error())); return; } CRYPTO_set_locking_callback(ssl_lock); CRYPTO_set_id_callback(id_callback); /* * Get our certificates in order. (FIXME: dirify. this is a setup job.) * First, create the key/cert directory if it's not there already... */ mkdir(CTDL_CRYPTO_DIR, 0700); /* * Before attempting to generate keys/certificates, first try * link to them from the Citadel server if it's on the same host. * We ignore any error return because it either meant that there * was nothing in Citadel to link from (in which case we just * generate new files) or the target files already exist (which * is not fatal either). */ if (!strcasecmp(ctdlhost, "uds")) { sprintf(buf, "%s/keys/citadel.key", ctdlport); rv = symlink(buf, CTDL_KEY_PATH); if (!rv) syslog(LOG_DEBUG, "%s\n", strerror(errno)); sprintf(buf, "%s/keys/citadel.csr", ctdlport); rv = symlink(buf, CTDL_CSR_PATH); if (!rv) syslog(LOG_DEBUG, "%s\n", strerror(errno)); sprintf(buf, "%s/keys/citadel.cer", ctdlport); rv = symlink(buf, CTDL_CER_PATH); if (!rv) syslog(LOG_DEBUG, "%s\n", strerror(errno)); } /* * If we still don't have a private key, generate one. */ generate_key(CTDL_KEY_PATH); /* * If there is no certificate file on disk, we will be generating a self-signed certificate * in the next step. Therefore, if we have neither a CSR nor a certificate, generate * the CSR in this step so that the next step may commence. */ if ( (access(CTDL_CER_PATH, R_OK) != 0) && (access(CTDL_CSR_PATH, R_OK) != 0) ) { syslog(LOG_INFO, "Generating a certificate signing request.\n"); /* * Read our key from the file. No, we don't just keep this * in memory from the above key-generation function, because * there is the possibility that the key was already on disk * and we didn't just generate it now. */ fp = fopen(CTDL_KEY_PATH, "r"); if (fp) { rsa = PEM_read_RSAPrivateKey(fp, NULL, NULL, NULL); fclose(fp); } if (rsa) { /** Create a public key from the private key */ if (pk=EVP_PKEY_new(), pk != NULL) { EVP_PKEY_assign_RSA(pk, rsa); if (req = X509_REQ_new(), req != NULL) { const char *env; /* Set the public key */ X509_REQ_set_pubkey(req, pk); X509_REQ_set_version(req, 0L); name = X509_REQ_get_subject_name(req); /* Tell it who we are */ /* * We used to add these fields to the subject, but * now we don't. Someone doing this for real isn't * going to use the webcit-generated CSR anyway. * X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC, "US", -1, -1, 0); * X509_NAME_add_entry_by_txt(name, "ST", MBSTRING_ASC, "New York", -1, -1, 0); * X509_NAME_add_entry_by_txt(name, "L", MBSTRING_ASC, "Mount Kisco", -1, -1, 0); */ env = getenv("O"); if (env == NULL) env = "Organization name", X509_NAME_add_entry_by_txt( name, "O", MBSTRING_ASC, (unsigned char*)env, -1, -1, 0 ); env = getenv("OU"); if (env == NULL) env = "Citadel server"; X509_NAME_add_entry_by_txt( name, "OU", MBSTRING_ASC, (unsigned char*)env, -1, -1, 0 ); env = getenv("CN"); if (env == NULL) env = "*"; X509_NAME_add_entry_by_txt( name, "CN", MBSTRING_ASC, (unsigned char*)env, -1, -1, 0 ); X509_REQ_set_subject_name(req, name); /* Sign the CSR */ if (!X509_REQ_sign(req, pk, EVP_md5())) { syslog(LOG_WARNING, "X509_REQ_sign(): error\n"); } else { /* Write it to disk. */ fp = fopen(CTDL_CSR_PATH, "w"); if (fp != NULL) { chmod(CTDL_CSR_PATH, 0600); PEM_write_X509_REQ(fp, req); fclose(fp); } else { syslog(LOG_WARNING, "Cannot write key: %s\n", CTDL_CSR_PATH); ShutDownWebcit(); exit(0); } } X509_REQ_free(req); } } RSA_free(rsa); } else { syslog(LOG_WARNING, "Unable to read private key.\n"); } } /* * Generate a self-signed certificate if we don't have one. */ if (access(CTDL_CER_PATH, R_OK) != 0) { syslog(LOG_INFO, "Generating a self-signed certificate.\n"); /* Same deal as before: always read the key from disk because * it may or may not have just been generated. */ fp = fopen(CTDL_KEY_PATH, "r"); if (fp) { rsa = PEM_read_RSAPrivateKey(fp, NULL, NULL, NULL); fclose(fp); } /* This also holds true for the CSR. */ req = NULL; cer = NULL; pk = NULL; if (rsa) { if (pk=EVP_PKEY_new(), pk != NULL) { EVP_PKEY_assign_RSA(pk, rsa); } fp = fopen(CTDL_CSR_PATH, "r"); if (fp) { req = PEM_read_X509_REQ(fp, NULL, NULL, NULL); fclose(fp); } if (req) { if (cer = X509_new(), cer != NULL) { ASN1_INTEGER_set(X509_get_serialNumber(cer), 0); X509_set_issuer_name(cer, X509_REQ_get_subject_name(req)); X509_set_subject_name(cer, X509_REQ_get_subject_name(req)); X509_gmtime_adj(X509_get_notBefore(cer), 0); X509_gmtime_adj(X509_get_notAfter(cer),(long)60*60*24*SIGN_DAYS); req_pkey = X509_REQ_get_pubkey(req); X509_set_pubkey(cer, req_pkey); EVP_PKEY_free(req_pkey); /* Sign the cert */ if (!X509_sign(cer, pk, EVP_md5())) { syslog(LOG_WARNING, "X509_sign(): error\n"); } else { /* Write it to disk. */ fp = fopen(CTDL_CER_PATH, "w"); if (fp != NULL) { chmod(CTDL_CER_PATH, 0600); PEM_write_X509(fp, cer); fclose(fp); } else { syslog(LOG_WARNING, "Cannot write key: %s\n", CTDL_CER_PATH); ShutDownWebcit(); exit(0); } } X509_free(cer); } } RSA_free(rsa); } } /* * Now try to bind to the key and certificate. * Note that we use SSL_CTX_use_certificate_chain_file() which allows * the certificate file to contain intermediate certificates. */ SSL_CTX_use_certificate_chain_file(ssl_ctx, CTDL_CER_PATH); SSL_CTX_use_PrivateKey_file(ssl_ctx, CTDL_KEY_PATH, SSL_FILETYPE_PEM); if ( !SSL_CTX_check_private_key(ssl_ctx) ) { syslog(LOG_WARNING, "Cannot install certificate: %s\n", ERR_reason_error_string(ERR_get_error())); } } /* * starts SSL/TLS encryption for the current session. */ int starttls(int sock) { int retval, bits, alg_bits;/*r; */ SSL *newssl; pthread_setspecific(ThreadSSL, NULL); if (!ssl_ctx) { return(1); } if (!(newssl = SSL_new(ssl_ctx))) { syslog(LOG_WARNING, "SSL_new failed: %s\n", ERR_reason_error_string(ERR_get_error())); return(2); } if (!(SSL_set_fd(newssl, sock))) { syslog(LOG_WARNING, "SSL_set_fd failed: %s\n", ERR_reason_error_string(ERR_get_error())); SSL_free(newssl); return(3); } retval = SSL_accept(newssl); if (retval < 1) { /* * Can't notify the client of an error here; they will * discover the problem at the SSL layer and should * revert to unencrypted communications. */ long errval; const char *ssl_error_reason = NULL; errval = SSL_get_error(newssl, retval); ssl_error_reason = ERR_reason_error_string(ERR_get_error()); if (ssl_error_reason == NULL) { syslog(LOG_WARNING, "SSL_accept failed: errval=%ld, retval=%d %s\n", errval, retval, strerror(errval)); } else { syslog(LOG_WARNING, "SSL_accept failed: %s\n", ssl_error_reason); } sleeeeeeeeeep(1); retval = SSL_accept(newssl); } if (retval < 1) { long errval; const char *ssl_error_reason = NULL; errval = SSL_get_error(newssl, retval); ssl_error_reason = ERR_reason_error_string(ERR_get_error()); if (ssl_error_reason == NULL) { syslog(LOG_WARNING, "SSL_accept failed: errval=%ld, retval=%d (%s)\n", errval, retval, strerror(errval)); } else { syslog(LOG_WARNING, "SSL_accept failed: %s\n", ssl_error_reason); } SSL_free(newssl); newssl = NULL; return(4); } else { syslog(LOG_INFO, "SSL_accept success\n"); } /*r = */BIO_set_close(SSL_get_rbio(newssl), BIO_NOCLOSE); bits = SSL_CIPHER_get_bits(SSL_get_current_cipher(newssl), &alg_bits); syslog(LOG_INFO, "SSL/TLS using %s on %s (%d of %d bits)\n", SSL_CIPHER_get_name(SSL_get_current_cipher(newssl)), SSL_CIPHER_get_version(SSL_get_current_cipher(newssl)), bits, alg_bits); pthread_setspecific(ThreadSSL, newssl); syslog(LOG_INFO, "SSL started\n"); return(0); } /* * shuts down the TLS connection * * WARNING: This may make your session vulnerable to a known plaintext * attack in the current implmentation. */ void endtls(void) { /*SSL_CTX *ctx;*/ if (THREADSSL == NULL) return; syslog(LOG_INFO, "Ending SSL/TLS\n"); SSL_shutdown(THREADSSL); /*ctx = */SSL_get_SSL_CTX(THREADSSL); /* I don't think this is needed, and it crashes the server anyway * * if (ctx != NULL) { * syslog(LOG_DEBUG, "Freeing CTX at %x\n", (int)ctx ); * SSL_CTX_free(ctx); * } */ SSL_free(THREADSSL); pthread_setspecific(ThreadSSL, NULL); } /* * callback for OpenSSL mutex locks */ void ssl_lock(int mode, int n, const char *file, int line) { if (mode & CRYPTO_LOCK) { pthread_mutex_lock(SSLCritters[n]); } else { pthread_mutex_unlock(SSLCritters[n]); } } /* * Send binary data to the client encrypted. */ int client_write_ssl(const StrBuf *Buf) { const char *buf; int retval; int nremain; long nbytes; char junk[1]; if (THREADSSL == NULL) return -1; nbytes = nremain = StrLength(Buf); buf = ChrPtr(Buf); while (nremain > 0) { if (SSL_want_write(THREADSSL)) { if ((SSL_read(THREADSSL, junk, 0)) < 1) { syslog(LOG_WARNING, "SSL_read in client_write: %s\n", ERR_reason_error_string(ERR_get_error())); } } retval = SSL_write(THREADSSL, &buf[nbytes - nremain], nremain); if (retval < 1) { long errval; errval = SSL_get_error(THREADSSL, retval); if (errval == SSL_ERROR_WANT_READ || errval == SSL_ERROR_WANT_WRITE) { sleeeeeeeeeep(1); continue; } syslog(LOG_WARNING, "SSL_write got error %ld, ret %d\n", errval, retval); if (retval == -1) { syslog(LOG_WARNING, "errno is %d\n", errno); } endtls(); return -1; } nremain -= retval; } return 0; } /* * read data from the encrypted layer. */ int client_read_sslbuffer(StrBuf *buf, int timeout) { char sbuf[16384]; /* OpenSSL communicates in 16k blocks, so let's speak its native tongue. */ int rlen; char junk[1]; SSL *pssl = THREADSSL; if (pssl == NULL) return(-1); while (1) { if (SSL_want_read(pssl)) { if ((SSL_write(pssl, junk, 0)) < 1) { syslog(LOG_WARNING, "SSL_write in client_read\n"); } } rlen = SSL_read(pssl, sbuf, sizeof(sbuf)); if (rlen < 1) { long errval; errval = SSL_get_error(pssl, rlen); if (errval == SSL_ERROR_WANT_READ || errval == SSL_ERROR_WANT_WRITE) { sleeeeeeeeeep(1); continue; } syslog(LOG_WARNING, "SSL_read got error %ld\n", errval); endtls(); return (-1); } StrBufAppendBufPlain(buf, sbuf, rlen, 0); return rlen; } return (0); } #endif /* HAVE_OPENSSL */ webcit-dfsg.orig/roomtokens.c0000644000175000017500000004411013223341037016343 0ustar michaelmichael/* * Lots of different room-related operations. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" CtxType CTX_ROOMS = CTX_NONE; CtxType CTX_FLOORS = CTX_NONE; /* * Embed the room banner * * got The information returned from a GOTO server command * navbar_style Determines which navigation buttons to display */ void tmplput_roombanner(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; /* Refresh current room states. Doesn't work? gotoroom(NULL); */ wc_printf("
\n"); /* The browser needs some information for its own use */ wc_printf("\n", ((WC->CurRoom.RAFlags & UA_ISTRASH) != 0) ); /* * If the user happens to select the "make this my start page" link, * we want it to remember the URL as a "/dotskip" one instead of * a "skip" or "gotonext" or something like that. */ if (WCC->Hdr->this_page == NULL) { WCC->Hdr->this_page = NewStrBuf(); } StrBufPrintf(WCC->Hdr->this_page, "dotskip?room=%s", ChrPtr(WC->CurRoom.name)); do_template("roombanner"); do_template("navbar"); wc_printf("
\n"); } /******************************************************************************* ********************** FLOOR Tokens ******************************************* *******************************************************************************/ void tmplput_FLOOR_ID(StrBuf *Target, WCTemplputParams *TP) { Floor *myFloor = (Floor *)CTX(CTX_FLOORS); StrBufAppendPrintf(Target, "%d", myFloor->ID); } void tmplput_ROOM_FLOORID(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%d", Folder->floorid); } void tmplput_ROOM_FLOOR_ID(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); const Floor *pFloor = Folder->Floor; if (pFloor == NULL) return; StrBufAppendPrintf(Target, "%d", pFloor->ID); } void tmplput_ROOM_FLOOR_NAME(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); const Floor *pFloor = Folder->Floor; if (pFloor == NULL) return; StrBufAppendTemplate(Target, TP, pFloor->Name, 0); } void tmplput_ThisRoomFloorName(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; folder *Folder = &WCC->CurRoom; const Floor *pFloor; if (Folder == NULL) return; pFloor = Folder->Floor; if (pFloor == NULL) return; StrBufAppendTemplate(Target, TP, pFloor->Name, 0); } void tmplput_FLOOR_NAME(StrBuf *Target, WCTemplputParams *TP) { Floor *myFloor = (Floor *)CTX(CTX_FLOORS); StrBufAppendTemplate(Target, TP, myFloor->Name, 0); } void tmplput_FLOOR_NROOMS(StrBuf *Target, WCTemplputParams *TP) { Floor *myFloor = (Floor *)CTX(CTX_FLOORS); StrBufAppendPrintf(Target, "%d", myFloor->NRooms); } void tmplput_ROOM_FLOOR_NROOMS(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); const Floor *pFloor = Folder->Floor; if (pFloor == NULL) return; StrBufAppendPrintf(Target, "%d", pFloor->NRooms); } int ConditionalFloorHaveNRooms(StrBuf *Target, WCTemplputParams *TP) { Floor *MyFloor = (Floor *)CTX(CTX_FLOORS); int HaveN; HaveN = GetTemplateTokenNumber(Target, TP, 0, 0); return HaveN == MyFloor->NRooms; } int ConditionalFloorIsRESTSubFloor(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; Floor *MyFloor = (Floor *)CTX(CTX_FLOORS); /** if we have dav_depth the client just wants the subfloors */ if ((WCC->Hdr->HR.dav_depth == 1) && (GetCount(WCC->Directory) == 0)) return 1; return WCC->CurrentFloor == MyFloor; } int ConditionalFloorIsSUBROOM(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; Floor *MyFloor = (Floor *)CTX(CTX_FLOORS); return WCC->CurRoom.floorid == MyFloor->ID; } int ConditionalFloorIsVirtual(StrBuf *Target, WCTemplputParams *TP) { Floor *MyFloor = (Floor *)CTX(CTX_FLOORS); return MyFloor->ID == VIRTUAL_MY_FLOOR; } /******************************************************************************* ********************** ROOM Tokens ******************************************** *******************************************************************************/ /**** Name ******/ void tmplput_ThisRoom(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC != NULL) { StrBufAppendTemplate(Target, TP, WCC->CurRoom.name, 0 ); } } void tmplput_ROOM_NAME(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendTemplate(Target, TP, Folder->name, 0); } void tmplput_ROOM_BASENAME(StrBuf *Target, WCTemplputParams *TP) { folder *room = (folder *)CTX(CTX_ROOMS); if (room->nRoomNameParts > 1) StrBufAppendTemplate(Target, TP, room->RoomNameParts[room->nRoomNameParts - 1], 0); else StrBufAppendTemplate(Target, TP, room->name, 0); } void tmplput_ROOM_LEVEL_N_TIMES(StrBuf *Target, WCTemplputParams *TP) { folder *room = (folder *)CTX(CTX_ROOMS); int i; const char *AppendMe; long AppendMeLen; if (room->nRoomNameParts > 1) { GetTemplateTokenString(Target, TP, 0, &AppendMe, &AppendMeLen); for (i = 0; i < room->nRoomNameParts; i++) StrBufAppendBufPlain(Target, AppendMe, AppendMeLen, 0); } } int ConditionalRoomIsInbox(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); return Folder->is_inbox; } int ConditionalRoomIsType(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); if (Folder == NULL) return 0; if ((TP->Tokens->nParameters < 3)) { return ((Folder->view < VIEW_BBS) || (Folder->view > VIEW_MAX)); } return Folder->view == GetTemplateTokenNumber(Target, TP, 2, VIEW_BBS); } /****** Properties ******/ int ConditionalRoom_MayEdit(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadRoomXA (); return WCC->CurRoom.XALoaded == 1; } int ConditionalThisRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP) { long QR_CheckFlag; wcsession *WCC = WC; QR_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0); if (QR_CheckFlag == 0) LogTemplateError(Target, "Conditional", ERR_PARM1, TP, "requires one of the #\"QR*\"- defines or an integer flag 0 is invalid!"); if (WCC == NULL) return 0; if ((TP->Tokens->Params[2]->MaskBy == eOR) || (TP->Tokens->Params[2]->MaskBy == eNO)) return (WCC->CurRoom.QRFlags & QR_CheckFlag) != 0; else return (WCC->CurRoom.QRFlags & QR_CheckFlag) == QR_CheckFlag; } int ConditionalRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP) { long QR_CheckFlag; folder *Folder = (folder *)(TP->Context); QR_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0); if (QR_CheckFlag == 0) LogTemplateError(Target, "Conditional", ERR_PARM1, TP, "requires one of the #\"QR*\"- defines or an integer flag 0 is invalid!"); if ((TP->Tokens->Params[2]->MaskBy == eOR) || (TP->Tokens->Params[2]->MaskBy == eNO)) return (Folder->QRFlags & QR_CheckFlag) != 0; else return (Folder->QRFlags & QR_CheckFlag) == QR_CheckFlag; } void tmplput_ROOM_QRFLAGS(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%d", Folder->QRFlags); } int ConditionalThisRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP) { long QR2_CheckFlag; wcsession *WCC = WC; QR2_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0); if (QR2_CheckFlag == 0) LogTemplateError(Target, "Conditional", ERR_PARM1, TP, "requires one of the #\"QR2*\"- defines or an integer flag 0 is invalid!"); if (WCC == NULL) return 0; if ((TP->Tokens->Params[2]->MaskBy == eOR) || (TP->Tokens->Params[2]->MaskBy == eNO)) return (WCC->CurRoom.QRFlags2 & QR2_CheckFlag) != 0; else return (WCC->CurRoom.QRFlags2 & QR2_CheckFlag) == QR2_CheckFlag; } int ConditionalRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP) { long QR2_CheckFlag; folder *Folder = (folder *)(TP->Context); QR2_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0); if (QR2_CheckFlag == 0) LogTemplateError(Target, "Conditional", ERR_PARM1, TP, "requires one of the #\"QR2*\"- defines or an integer flag 0 is invalid!"); return ((Folder->QRFlags2 & QR2_CheckFlag) != 0); } int ConditionalRoomHas_UAFlag(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)(TP->Context); long UA_CheckFlag; UA_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0); if (UA_CheckFlag == 0) LogTemplateError(Target, "Conditional", ERR_PARM1, TP, "requires one of the #\"UA_*\"- defines or an integer flag 0 is invalid!"); return ((Folder->RAFlags & UA_CheckFlag) != 0); } void tmplput_ROOM_ACL(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%ld", Folder->RAFlags, 0); } void tmplput_ROOM_RAFLAGS(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)(TP->Context); StrBufAppendPrintf(Target, "%d", Folder->RAFlags); } void tmplput_ThisRoomAide(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadRoomAide(); StrBufAppendTemplate(Target, TP, WCC->CurRoom.RoomAide, 0); } int ConditionalRoomAide(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; return (WCC != NULL)? ((WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) : 0; } int ConditionalRoomAcessDelete(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; return (WCC == NULL)? 0 : ( ((WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) || (WCC->CurRoom.is_inbox) || (WCC->CurRoom.QRFlags2 & QR2_COLLABDEL) ); } int ConditionalHaveRoomeditRights(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; return ( (WCC != NULL) && (WCC->logged_in) && ( (WCC->axlevel >= 6) || ((WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) || (WCC->CurRoom.is_inbox) ) ); } void tmplput_ThisRoomPass(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadRoomXA(); StrBufAppendTemplate(Target, TP, WCC->CurRoom.XAPass, 0); } void tmplput_ThisRoom_nNewMessages(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBufAppendPrintf(Target, "%d", WCC->CurRoom.nNewMessages); } void tmplput_ThisRoom_nTotalMessages(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBufAppendPrintf(Target, "%d", WCC->CurRoom.nTotalMessages); } void tmplput_ThisRoomOrder(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadRoomXA(); StrBufAppendPrintf(Target, "%d", WCC->CurRoom.Order); } int ConditionalThisRoomOrder(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; long CheckThis; if (WCC == NULL) return 0; LoadRoomXA(); CheckThis = GetTemplateTokenNumber(Target, TP, 2, 0); return CheckThis == WCC->CurRoom.Order; } void tmplput_ROOM_LISTORDER(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%d", Folder->Order); } int ConditionalThisRoomXHavePic(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC == NULL) return 0; LoadXRoomPic(); return WCC->CurRoom.XHaveRoomPic == 1; } int ConditionalThisRoomIsEdit(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC == NULL) return 0; return ((WCC->CurRoom.nRoomNameParts > 1) && (strcmp(ChrPtr(WCC->CurRoom.RoomNameParts[WCC->CurRoom.nRoomNameParts]), "edit") == 0)); } int ConditionalThisRoomXHaveInfoText(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC == NULL) return 0; LoadXRoomInfoText(); return (StrLength(WCC->CurRoom.XInfoText)>0); } void tmplput_ThisRoomInfoText(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; long nchars = 0; LoadXRoomInfoText(); nchars = GetTemplateTokenNumber(Target, TP, 0, 0); if (!nchars) { /* the whole thing */ StrBufAppendTemplate(Target, TP, WCC->CurRoom.XInfoText, 1); } else { /* only a certain number of characters */ StrBuf *SubBuf; SubBuf = NewStrBufDup(WCC->CurRoom.XInfoText); if (StrLength(SubBuf) > nchars) { StrBuf_Utf8StrCut(SubBuf, nchars); StrBufAppendBufPlain(SubBuf, HKEY("..."), 0); } StrBufAppendTemplate(Target, TP, SubBuf, 1); FreeStrBuf(&SubBuf); } } void tmplput_ROOM_LASTCHANGE(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%d", Folder->lastchange); } void tmplput_ThisRoomDirectory(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadRoomXA(); StrBufAppendTemplate(Target, TP, WCC->CurRoom.Directory, 0); } void tmplput_ThisRoomXNFiles(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadXRoomXCountFiles(); StrBufAppendPrintf(Target, "%d", WCC->CurRoom.XDownloadCount); } void tmplput_ThisRoomX_FileString(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; LoadXRoomXCountFiles(); if (WCC->CurRoom.XDownloadCount == 1) StrBufAppendBufPlain(Target, _("file"), -1, 0); else StrBufAppendBufPlain(Target, _("files"), -1, 0); } int ConditionalIsThisThatRoom(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); wcsession *WCC = WC; if (WCC == NULL) return 0; return Folder == WCC->ThisRoom; } int ConditionalRoomIsName(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); const char *CheckRoomName = NULL; long CheckRoomNameLen; GetTemplateTokenString(Target, TP, 3, &CheckRoomName, &CheckRoomNameLen); if (CheckRoomName == NULL) return 0; return strcmp(ChrPtr(Folder->name), CheckRoomName) == 0; } void InitModule_ROOMTOKENS (void) { /* we duplicate this, just to be shure its already done. */ RegisterCTX(CTX_ROOMS); RegisterCTX(CTX_FLOORS); RegisterNamespace("ROOMBANNER", 0, 1, tmplput_roombanner, NULL, CTX_NONE); RegisterNamespace("FLOOR:ID", 0, 0, tmplput_FLOOR_ID, NULL, CTX_FLOORS); RegisterNamespace("ROOM:INFO:FLOORID", 0, 1, tmplput_ROOM_FLOORID, NULL, CTX_ROOMS); RegisterNamespace("ROOM:INFO:FLOOR:ID", 0, 0, tmplput_ROOM_FLOOR_ID, NULL, CTX_ROOMS); RegisterNamespace("FLOOR:NAME", 0, 1, tmplput_FLOOR_NAME, NULL, CTX_FLOORS); RegisterNamespace("ROOM:INFO:FLOOR:NAME", 0, 1, tmplput_ROOM_FLOOR_NAME, NULL, CTX_ROOMS); RegisterNamespace("THISROOM:FLOOR:NAME", 0, 1, tmplput_ThisRoomFloorName, NULL, CTX_NONE); RegisterNamespace("FLOOR:NROOMS", 0, 0, tmplput_FLOOR_NROOMS, NULL, CTX_FLOORS); RegisterNamespace("ROOM:INFO:FLOOR:NROOMS", 0, 0, tmplput_ROOM_FLOOR_NROOMS, NULL, CTX_ROOMS); RegisterConditional("COND:FLOOR:ISSUBROOM", 0, ConditionalFloorIsSUBROOM, CTX_FLOORS); RegisterConditional("COND:FLOOR:NROOMS", 1, ConditionalFloorHaveNRooms, CTX_FLOORS); RegisterConditional("COND:ROOM:REST:ISSUBFLOOR", 0, ConditionalFloorIsRESTSubFloor, CTX_FLOORS); RegisterConditional("COND:FLOOR:ISVIRTUAL", 0, ConditionalFloorIsVirtual, CTX_FLOORS); /**** Room... ******/ /**** Name ******/ RegisterNamespace("THISROOM:NAME", 0, 1, tmplput_ThisRoom, NULL, CTX_NONE); RegisterNamespace("ROOM:INFO:NAME", 0, 1, tmplput_ROOM_NAME, NULL, CTX_ROOMS); RegisterNamespace("ROOM:INFO:BASENAME", 0, 1, tmplput_ROOM_BASENAME, NULL, CTX_ROOMS); RegisterNamespace("ROOM:INFO:LEVELNTIMES", 1, 2, tmplput_ROOM_LEVEL_N_TIMES, NULL, CTX_ROOMS); RegisterConditional("COND:ROOM:INFO:IS_INBOX", 0, ConditionalRoomIsInbox, CTX_ROOMS); RegisterConditional("COND:ROOM:INFO:TYPE_IS", 0, ConditionalRoomIsType, CTX_ROOMS); RegisterConditional("COND:ROOM:INFO:NAME_IS", 1, ConditionalRoomIsName, CTX_ROOMS); /****** Properties ******/ RegisterNamespace("ROOM:INFO:QRFLAGS", 0, 1, tmplput_ROOM_QRFLAGS, NULL, CTX_ROOMS); RegisterConditional("COND:THISROOM:FLAG:QR", 0, ConditionalThisRoomHas_QRFlag, CTX_NONE); RegisterConditional("COND:THISROOM:EDIT", 0, ConditionalRoom_MayEdit, CTX_NONE); RegisterConditional("COND:ROOM:FLAG:QR", 0, ConditionalRoomHas_QRFlag, CTX_ROOMS); RegisterConditional("COND:THISROOM:FLAG:QR2", 0, ConditionalThisRoomHas_QRFlag2, CTX_NONE); RegisterConditional("COND:ROOM:FLAG:QR2", 0, ConditionalRoomHas_QRFlag2, CTX_ROOMS); RegisterConditional("COND:ROOM:FLAG:UA", 0, ConditionalRoomHas_UAFlag, CTX_ROOMS); RegisterNamespace("ROOM:INFO:RAFLAGS", 0, 1, tmplput_ROOM_RAFLAGS, NULL, CTX_ROOMS); RegisterNamespace("ROOM:INFO:LISTORDER", 0, 1, tmplput_ROOM_LISTORDER, NULL, CTX_ROOMS); RegisterNamespace("THISROOM:ORDER", 0, 0, tmplput_ThisRoomOrder, NULL, CTX_NONE); RegisterConditional("COND:THISROOM:ORDER", 0, ConditionalThisRoomOrder, CTX_NONE); RegisterNamespace("ROOM:INFO:LASTCHANGE", 0, 1, tmplput_ROOM_LASTCHANGE, NULL, CTX_ROOMS); RegisterNamespace("THISROOM:MSGS:NEW", 0, 0, tmplput_ThisRoom_nNewMessages, NULL, CTX_NONE); RegisterNamespace("THISROOM:MSGS:TOTAL", 0, 0, tmplput_ThisRoom_nTotalMessages, NULL, CTX_NONE); RegisterNamespace("THISROOM:PASS", 0, 1, tmplput_ThisRoomPass, NULL, CTX_NONE); RegisterNamespace("THISROOM:AIDE", 0, 1, tmplput_ThisRoomAide, NULL, CTX_NONE); RegisterConditional("COND:ROOMAIDE", 2, ConditionalRoomAide, CTX_NONE); RegisterConditional("COND:ACCESS:DELETE", 2, ConditionalRoomAcessDelete, CTX_NONE); RegisterConditional("COND:ROOM:EDITACCESS", 0, ConditionalHaveRoomeditRights, CTX_NONE); RegisterConditional("COND:THISROOM:HAVE_PIC", 0, ConditionalThisRoomXHavePic, CTX_NONE); RegisterConditional("COND:THISROOM:IS_EDIT", 0, ConditionalThisRoomIsEdit, CTX_NONE); RegisterNamespace("THISROOM:INFOTEXT", 1, 2, tmplput_ThisRoomInfoText, NULL, CTX_NONE); RegisterConditional("COND:THISROOM:HAVE_INFOTEXT", 0, ConditionalThisRoomXHaveInfoText, CTX_NONE); RegisterNamespace("THISROOM:FILES:N", 0, 1, tmplput_ThisRoomXNFiles, NULL, CTX_NONE); RegisterNamespace("THISROOM:FILES:STR", 0, 1, tmplput_ThisRoomX_FileString, NULL, CTX_NONE); RegisterNamespace("THISROOM:DIRECTORY", 0, 1, tmplput_ThisRoomDirectory, NULL, CTX_NONE); RegisterNamespace("ROOM:INFO:ACL", 0, 1, tmplput_ROOM_ACL, NULL, CTX_ROOMS); RegisterConditional("COND:THIS:THAT:ROOM", 0, ConditionalIsThisThatRoom, CTX_ROOMS); } webcit-dfsg.orig/webcit.c0000644000175000017500000006200313223341037015421 0ustar michaelmichael/* * This is the main transaction loop of the web service. It maintains a * persistent session to the Citadel server, handling HTTP WebCit requests as * they arrive and presenting a user interface. * * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. */ #define SHOW_ME_VAPPEND_PRINTF #include #include #include "webcit.h" #include "dav.h" #include "webserver.h" StrBuf *csslocal = NULL; HashList *HandlerHash = NULL; void stuff_to_cookie(int unset_cookie); extern int GetConnected(void); extern int verbose; void PutRequestLocalMem(void *Data, DeleteHashDataFunc DeleteIt) { wcsession *WCC = WC; int n; n = GetCount(WCC->Hdr->HTTPHeaders); Put(WCC->Hdr->HTTPHeaders, IKEY(n), Data, DeleteIt); } void DeleteWebcitHandler(void *vHandler) { WebcitHandler *Handler = (WebcitHandler*) vHandler; FreeStrBuf(&Handler->Name); FreeStrBuf(&Handler->DisplayName); free (Handler); } void WebcitAddUrlHandler(const char * UrlString, long UrlSLen, const char *DisplayName, long dslen, WebcitHandlerFunc F, long Flags) { WebcitHandler *NewHandler; NewHandler = (WebcitHandler*) malloc(sizeof(WebcitHandler)); NewHandler->F = F; NewHandler->Flags = Flags; NewHandler->Name = NewStrBufPlain(UrlString, UrlSLen); StrBufShrinkToFit(NewHandler->Name, 1); NewHandler->DisplayName = NewStrBufPlain(DisplayName, dslen); StrBufShrinkToFit(NewHandler->DisplayName, 1); Put(HandlerHash, UrlString, UrlSLen, NewHandler, DeleteWebcitHandler); } void tmplput_HANDLER_DISPLAYNAME(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->Hdr->HR.Handler != NULL) StrBufAppendTemplate(Target, TP, WCC->Hdr->HR.Handler->DisplayName, 0); } /* * web-printing funcion. uses our vsnprintf wrapper */ #ifdef UBER_VERBOSE_DEBUGGING void wcc_printf(const char *FILE, const char *FUNCTION, long LINE, const char *format,...) #else void wc_printf(const char *format,...) #endif { wcsession *WCC = WC; va_list arg_ptr; if (WCC->WBuf == NULL) WCC->WBuf = NewStrBuf(); #ifdef UBER_VERBOSE_DEBUGGING StrBufAppendPrintf(WCC->WBuf, "\n%s:%s:%d[", FILE, FUNCTION, LINE); #endif va_start(arg_ptr, format); StrBufVAppendPrintf(WCC->WBuf, format, arg_ptr); va_end(arg_ptr); #ifdef UBER_VERBOSE_DEBUGGING StrBufAppendPrintf(WCC->WBuf, "]\n"); #endif } /* * http-header-printing funcion. uses our vsnprintf wrapper */ void hprintf(const char *format,...) { wcsession *WCC = WC; va_list arg_ptr; va_start(arg_ptr, format); StrBufVAppendPrintf(WCC->HBuf, format, arg_ptr); va_end(arg_ptr); } /* * wrap up an HTTP session, closes tags, etc. * * print_standard_html_footer should be set to: * 0 - to transmit only, * nonzero - to append the closing tags */ void wDumpContent(int print_standard_html_footer) { if (print_standard_html_footer) { wc_printf(" \n"); do_template("trailing"); } /* If we've been saving it all up for one big output burst, * go ahead and do that now. */ end_burst(); } /* * Output HTTP headers and leading HTML for a page */ void output_headers( int do_httpheaders, /* 1 = output HTTP headers */ int do_htmlhead, /* 1 = output HTML section and opener */ int do_room_banner, /* 1 = include the room banner and
*/ int unset_cookies, /* 1 = session is terminating, so unset the cookies */ int suppress_check, /* 1 = suppress check for instant messages */ int cache /* 1 = allow browser to cache this page */ ) { wcsession *WCC = WC; char httpnow[128]; if (WCC->isFailure) hprintf("HTTP/2.2 500 Internal Server Error"); else if (WCC->Hdr->HaveRange > 1) hprintf("HTTP/1.1 206 Partial Content\r\n"); else hprintf("HTTP/1.1 200 OK\r\n"); http_datestring(httpnow, sizeof httpnow, time(NULL)); if (do_httpheaders) { if (WCC->serv_info != NULL) hprintf("Content-type: text/html; charset=utf-8\r\n" "Server: %s / %s\n" "Connection: close\r\n", PACKAGE_STRING, ChrPtr(WCC->serv_info->serv_software)); else hprintf("Content-type: text/html; charset=utf-8\r\n" "Server: %s / [n/a]\n" "Connection: close\r\n", PACKAGE_STRING); } if (cache > 0) { char httpTomorow[128]; http_datestring(httpTomorow, sizeof httpTomorow, time(NULL) + 60 * 60 * 24 * 2); hprintf("Pragma: public\r\n" "Cache-Control: max-age=3600, must-revalidate\r\n" "Last-modified: %s\r\n" "Expires: %s\r\n", httpnow, httpTomorow ); } else { hprintf("Pragma: no-cache\r\n" "Cache-Control: no-store\r\n" "Expires: -1\r\n" ); } if (cache < 2) stuff_to_cookie(unset_cookies); if (do_htmlhead) { begin_burst(); do_template("head"); if ( (WCC->logged_in) && (!unset_cookies) ) { DoTemplate(HKEY("paging"), NULL, &NoCtx); } if (do_room_banner) { tmplput_roombanner(NULL, NULL); } } if (do_room_banner) { wc_printf("
\n"); } } void output_custom_content_header(const char *ctype) { hprintf("HTTP/1.1 200 OK\r\n"); hprintf("Content-type: %s; charset=utf-8\r\n",ctype); hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software)); hprintf("Connection: close\r\n"); } /* * Generic function to do an HTTP redirect. Easy and fun. */ void http_redirect(const char *whichpage) { hprintf("HTTP/1.1 302 Moved Temporarily\n"); hprintf("Location: %s\r\n", whichpage); hprintf("URI: %s\r\n", whichpage); hprintf("Content-type: text/html; charset=utf-8\r\n"); stuff_to_cookie(0); begin_burst(); wc_printf(""); wc_printf("Go here.", whichpage); wc_printf("\n"); end_burst(); } /* * Output a piece of content to the web browser using conformant HTTP and MIME semantics. * * If this function is called, it is expected that begin_burst() has already been called * and some sort of content has been fed into the buffer. This function will transmit a * bunch of headers to the client. end_burst() will add some headers of its own, and then * transmit the buffered content to the client. */ void http_transmit_thing(const char *content_type, int is_static) { if (verbose) syslog(LOG_DEBUG, "http_transmit_thing(%s)%s", content_type, ((is_static > 0) ? " (static)" : "")); output_headers(0, 0, 0, 0, 0, is_static); hprintf("Content-type: %s\r\n" "Server: %s\r\n" "Connection: close\r\n", content_type, PACKAGE_STRING); end_burst(); } void http_transmit_headers(const char *content_type, int is_static, long is_chunked, int is_gzip) { wcsession *WCC = WC; if (verbose) syslog(LOG_DEBUG, "http_transmit_thing(%s)%s", content_type, ((is_static > 0) ? " (static)" : "")); output_headers(0, 0, 0, 0, 0, is_static); if (is_gzip) hprintf("Content-encoding: gzip\r\n"); if (WCC->Hdr->HaveRange) hprintf("Accept-Ranges: bytes\r\n" "Content-Range: bytes %ld-%ld/%ld\r\n", WCC->Hdr->RangeStart, WCC->Hdr->RangeTil, WCC->Hdr->TotalBytes); hprintf("Content-type: %s\r\n" "Server: "PACKAGE_STRING"\r\n" "%s" "Connection: close\r\n\r\n", content_type, (is_chunked)?"Transfer-Encoding: chunked\r\n":""); } /* * Convenience functions to display a page containing only a string * * titlebarcolor color of the titlebar of the frame * titlebarmsg text to display in the title bar * messagetext body of the box */ void convenience_page(const char *titlebarcolor, const char *titlebarmsg, const char *messagetext) { hprintf("HTTP/1.1 200 OK\n"); output_headers(1, 1, 1, 0, 0, 0); wc_printf("
\n"); wc_printf("
", titlebarcolor); wc_printf("%s\n", titlebarmsg); wc_printf("
\n"); wc_printf("
\n
\n"); escputs(messagetext); wc_printf("
\n"); wDumpContent(1); } /* * Display a blank page. */ void blank_page(void) { output_headers(1, 1, 0, 0, 0, 0); wDumpContent(2); } /* * A template has been requested */ void url_do_template(void) { const StrBuf *MimeType; const StrBuf *Tmpl = sbstr("template"); begin_burst(); MimeType = DoTemplate(SKEY(Tmpl), NULL, &NoCtx); http_transmit_thing(ChrPtr(MimeType), 0); } /* * convenience function to indicate success */ void display_success(const char *successmessage) { convenience_page("007700", "OK", successmessage); } /* * Authorization required page (sends a 401, causing the browser to request login credentials) */ void authorization_required(void) { wcsession *WCC = WC; const char *message = ""; hprintf("HTTP/1.1 401 Authorization Required\r\n"); hprintf( "Server: %s / %s\r\n" "Connection: close\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software) ); hprintf("WWW-Authenticate: Basic realm=\"%s\"\r\n", ChrPtr(WC->serv_info->serv_humannode)); /* if this is a false cookie authentication, remove it to avoid endless loops. */ if (StrLength(WCC->Hdr->HR.RawCookie) > 0) stuff_to_cookie(1); hprintf("Content-Type: text/html\r\n"); begin_burst(); wc_printf("

"); wc_printf(_("Authorization Required")); wc_printf("

\r\n"); if (WCC->ImportantMsg != NULL) { message = ChrPtr(WCC->ImportantMsg); } wc_printf( _("The resource you requested requires a valid username and password. " "You could not be logged in: %s\n"), message ); wDumpContent(0); } /* * Convenience functions to wrap around asynchronous ajax responses */ void begin_ajax_response(void) { wcsession *WCC = WC; FlushStrBuf(WCC->HBuf); output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-type: text/html; charset=UTF-8\r\n" "Server: %s\r\n" "Connection: close\r\n" , PACKAGE_STRING); begin_burst(); } /* * print ajax response footer */ void end_ajax_response(void) { wDumpContent(0); } /* * Wraps a Citadel server command in an AJAX transaction. */ void ajax_servcmd(void) { wcsession *WCC = WC; int Done = 0; StrBuf *Buf; char *junk; size_t len; if (verbose) syslog(LOG_DEBUG, "ajax_servcmd() g_cmd=\"%s\"", bstr("g_cmd") ); begin_ajax_response(); Buf = NewStrBuf(); serv_puts(bstr("g_cmd")); StrBuf_ServGetln(Buf); StrBufAppendBuf(WCC->WBuf, Buf, 0); StrBufAppendBufPlain(WCC->WBuf, HKEY("\n"), 0); switch (GetServerStatus(Buf, NULL)) { case 8: serv_puts("\n\n000"); if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { StrBufAppendBufPlain(WCC->WBuf, HKEY("\000"), 0); break; } case 1: while (!Done) { if (StrBuf_ServGetln(Buf) < 0) break; if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; } StrBufAppendBuf(WCC->WBuf, Buf, 0); StrBufAppendBufPlain(WCC->WBuf, HKEY("\n"), 0); } break; case 4: text_to_server(bstr("g_input")); serv_puts("000"); break; case 6: len = atol(&ChrPtr(Buf)[4]); StrBuf_ServGetBLOBBuffered(Buf, len); break; case 7: len = atol(&ChrPtr(Buf)[4]); junk = malloc(len); memset(junk, 0, len); serv_write(junk, len); free(junk); } end_ajax_response(); /* * This is kind of an ugly hack, but this is the only place it can go. * If the command was GEXP, then the instant messenger window must be * running, so reset the "last_pager_check" watchdog timer so * that page_popup() doesn't try to open it a second time. TODO: page_popup isn't with us anymore. */ if (!strncasecmp(bstr("g_cmd"), "GEXP", 4)) { WCC->last_pager_check = time(NULL); } FreeStrBuf(&Buf); } /* * Helper function for the asynchronous check to see if we need * to open the instant messenger window. */ void seconds_since_last_gexp(void) { char buf[256]; if ( (time(NULL) - WC->last_pager_check) < 30) { wc_printf("NO\n"); } else { memset(buf, 0, 5); serv_puts("NOOP"); serv_getln(buf, sizeof buf); if (buf[3] == '*') { wc_printf("YES"); } else { wc_printf("NO"); } } } /* * Save a URL destination so we can go to it later */ void push_destination(void) { wcsession *WCC = WC; if (!WCC) { wc_printf("no session"); return; } FreeStrBuf(&WCC->PushedDestination); WCC->PushedDestination = NewStrBufDup(sbstr("url")); if (verbose) syslog(LOG_DEBUG, "Push: %s", ChrPtr(WCC->PushedDestination)); wc_printf("OK"); } /* * Go to the URL saved by push_destination() */ void pop_destination(void) { wcsession *WCC = WC; /* * If we are in the middle of a new user signup, the server may request that * we first pass through a registration screen. */ if ((WCC) && (WCC->need_regi)) { if ((WCC->PushedDestination != NULL) && (StrLength(WCC->PushedDestination) > 0)) { /* Registering will take us to the My Citadel Config room, so save our place */ StrBufAppendBufPlain(WCC->PushedDestination, HKEY("?go="), 0); StrBufUrlescAppend(WCC->PushedDestination, WCC->CurRoom.name, NULL); } WCC->need_regi = 0; display_reg(1); return; } /* * Do something reasonable if we somehow ended up requesting a pop without * having first done a push. */ if ( (!WCC) || (WCC->PushedDestination == NULL) || (StrLength(WCC->PushedDestination) == 0) ) { do_welcome(); return; } /* * All righty then! We have a destination saved, so go there now. */ if (verbose) syslog(LOG_DEBUG, "Pop: %s", ChrPtr(WCC->PushedDestination)); http_redirect(ChrPtr(WCC->PushedDestination)); } int ReadPostData(void) { int rc; int urlencoded_post = 0; wcsession *WCC = WC; StrBuf *content = NULL; urlencoded_post = (strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "application/x-www-form-urlencoded", 33) == 0) ; content = NewStrBufPlain(NULL, WCC->Hdr->HR.ContentLength + 256); if (!urlencoded_post) { StrBufPrintf(content, "Content-type: %s\n" "Content-length: %ld\n\n", ChrPtr(WCC->Hdr->HR.ContentType), WCC->Hdr->HR.ContentLength); } /** Read the entire input data at once. */ rc = client_read_to(WCC->Hdr, content, WCC->Hdr->HR.ContentLength, SLEEPING); if (rc < 0) return rc; if (urlencoded_post) { ParseURLParams(content); } else if (!strncasecmp(ChrPtr(WCC->Hdr->HR.ContentType), "multipart", 9)) { char *Buf; char *BufEnd; long len; len = StrLength(content); Buf = SmashStrBuf(&content); BufEnd = Buf + len; mime_parser(Buf, BufEnd, *upload_handler, NULL, NULL, NULL, 0); free(Buf); } else if (WCC->Hdr->HR.ContentLength > 0) { WCC->upload = content; WCC->upload_length = StrLength(WCC->upload); content = NULL; } FreeStrBuf(&content); return 1; } int Conditional_REST_DEPTH(StrBuf *Target, WCTemplputParams *TP) { long Depth, IsDepth; long offset = 0; wcsession *WCC = WC; if (WCC->Hdr->HR.Handler != NULL) offset ++; Depth = GetTemplateTokenNumber(Target, TP, 2, 0); IsDepth = GetCount(WCC->Directory) + offset; // LogTemplateError(Target, "bla", 1, TP, "REST_DEPTH: %ld : %ld\n", Depth, IsDepth); if (Depth < 0) { Depth = -Depth; return IsDepth > Depth; } else return Depth == IsDepth; } /* * Entry point for WebCit transaction */ void session_loop(void) { int xhttp; StrBuf *Buf; /* * We stuff these with the values coming from the client cookies, * so we can use them to reconnect a timed out session if we have to. */ wcsession *WCC; WCC= WC; WCC->upload_length = 0; WCC->upload = NULL; WCC->Hdr->nWildfireHeaders = 0; if (WCC->Hdr->HR.ContentLength > 0) { if (ReadPostData() < 0) { return; } } Buf = NewStrBuf(); WCC->trailing_javascript = NewStrBuf(); /* Convert base64-encoded URL's back to plain text */ if (!strncmp(ChrPtr(WCC->Hdr->this_page), "/B64", 4)) { StrBufCutLeft(WCC->Hdr->this_page, 4); StrBufDecodeBase64(WCC->Hdr->this_page); http_redirect(ChrPtr(WCC->Hdr->this_page)); goto SKIP_ALL_THIS_CRAP; } /* If there are variables in the URL, we must grab them now */ if (WCC->Hdr->PlainArgs != NULL) ParseURLParams(WCC->Hdr->PlainArgs); /* If the client sent a nonce that is incorrect, kill the request. */ if (havebstr("nonce")) { if (verbose) syslog(LOG_DEBUG, "Comparing supplied nonce %s to session nonce %d", bstr("nonce"), WCC->nonce ); if (ibstr("nonce") != WCC->nonce) { syslog(LOG_INFO, "Ignoring request with mismatched nonce."); hprintf("HTTP/1.1 404 Security check failed\r\n"); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("Security check failed.\r\n"); end_burst(); goto SKIP_ALL_THIS_CRAP; } } /* * If we're not connected to a Citadel server, try to hook up the connection now. */ if (!WCC->connected) { if (GetConnected()) { hprintf("HTTP/1.1 503 Service Unavailable\r\n"); hprintf("Content-Type: text/html\r\n"); begin_burst(); wc_printf("503 Service Unavailable\n"); wc_printf(_("This program was unable to connect or stay " "connected to the Citadel server. Please report " "this problem to your system administrator.") ); wc_printf("
"); wc_printf("%s", _("Read More...") ); wc_printf("\n"); end_burst(); goto SKIP_ALL_THIS_CRAP; } } /* * If we're not logged in, but we have authentication data (either from * a cookie or from http-auth), try logging in to Citadel using that. */ if ( (!WCC->logged_in) && (StrLength(WCC->Hdr->c_username) > 0) && (StrLength(WCC->Hdr->c_password) > 0) ) { long Status; FlushStrBuf(Buf); serv_printf("USER %s", ChrPtr(WCC->Hdr->c_username)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &Status) == 3) { serv_printf("PASS %s", ChrPtr(WCC->Hdr->c_password)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { become_logged_in(WCC->Hdr->c_username, WCC->Hdr->c_password, Buf); } else { /* Should only display when password is wrong */ WCC->ImportantMsg = NewStrBufPlain(ChrPtr(Buf) + 4, StrLength(Buf) - 4); authorization_required(); FreeStrBuf(&Buf); goto SKIP_ALL_THIS_CRAP; } } else if (Status == 541) { WCC->logged_in = 1; } } xhttp = (WCC->Hdr->HR.eReqType != eGET) && (WCC->Hdr->HR.eReqType != ePOST) && (WCC->Hdr->HR.eReqType != eHEAD); /* * If a 'go' (or 'gotofirst') parameter has been specified, attempt to goto that room * prior to doing anything else. */ if (havebstr("go")) { int ret; if (verbose) syslog(LOG_DEBUG, "Explicit room selection: %s", bstr("go")); ret = gotoroom(sbstr("go")); /* do quietly to avoid session output! */ if ((ret/100) != 2) { if (verbose) syslog(LOG_DEBUG, "Unable to change to [%s]; Reason: %d", bstr("go"), ret); } } else if (havebstr("gotofirst")) { int ret; if (verbose) syslog(LOG_DEBUG, "Explicit room selection: %s", bstr("gotofirst")); ret = gotoroom(sbstr("gotofirst")); /* do quietly to avoid session output! */ if ((ret/100) != 2) { syslog(LOG_INFO, "Unable to change to [%s]; Reason: %d", bstr("gotofirst"), ret); } } /* * If we aren't in any room yet, but we have cookie data telling us where we're * supposed to be, and 'go' was not specified, then go there. */ else if ( (StrLength(WCC->CurRoom.name) == 0) && ( (StrLength(WCC->Hdr->c_roomname) > 0) )) { int ret; if (verbose) syslog(LOG_DEBUG, "We are in '%s' but cookie indicates '%s', going there...", ChrPtr(WCC->CurRoom.name), ChrPtr(WCC->Hdr->c_roomname) ); ret = gotoroom(WCC->Hdr->c_roomname); /* do quietly to avoid session output! */ if ((ret/100) != 2) { if (verbose) syslog(LOG_DEBUG, "COOKIEGOTO: Unable to change to [%s]; Reason: %d", ChrPtr(WCC->Hdr->c_roomname), ret); } } if (WCC->Hdr->HR.Handler != NULL) { if ( (!WCC->logged_in) && ((WCC->Hdr->HR.Handler->Flags & ANONYMOUS) == 0) && (WCC->serv_info != NULL) && (WCC->serv_info->serv_supports_guest == 0) ) { display_login(); } else { if ((WCC->Hdr->HR.Handler->Flags & AJAX) != 0) { begin_ajax_response(); } WCC->Hdr->HR.Handler->F(); if ((WCC->Hdr->HR.Handler->Flags & AJAX) != 0) { end_ajax_response(); } } } /* When all else fails, display the default landing page or a main menu. */ else { /* * ordinary browser users get a nice login screen, DAV etc. requsets * are given a 401 so they can handle it appropriate. */ if (!WCC->logged_in) { if (xhttp) { authorization_required(); } else { display_default_landing_page(); } } /* * Toplevel dav requests? or just a flat browser request? */ else { if (xhttp) { dav_main(); } else { display_main_menu(); } } } SKIP_ALL_THIS_CRAP: FreeStrBuf(&Buf); fflush(stdout); } /* * Display the appropriate landing page for this site. */ void display_default_landing_page(void) { wcsession *WCC = WC; if (WCC && WCC->serv_info && WCC->serv_info->serv_supports_guest) { /* default action */ if (havebstr("go")) { if (verbose) syslog(LOG_DEBUG, "Explicit room selection: %s", bstr("go")); smart_goto(sbstr("go")); } else if (default_landing_page) { http_redirect(default_landing_page); } else { StrBuf *teh_lobby = NewStrBufPlain(HKEY("_BASEROOM_")); smart_goto(teh_lobby); FreeStrBuf(&teh_lobby); } } else { display_login(); } } /* * Replacement for sleep() that uses select() in order to avoid SIGALRM */ void sleeeeeeeeeep(int seconds) { struct timeval tv; tv.tv_sec = seconds; tv.tv_usec = 0; select(0, NULL, NULL, NULL, &tv); } int Conditional_IS_HTTPS(StrBuf *Target, WCTemplputParams *TP) { return is_https != 0; } void AppendImportantMessage(const char *pch, long len) { wcsession *WCC = WC; if (StrLength(WCC->ImportantMsg) > 0) { StrBufAppendBufPlain(WCC->ImportantMsg, HKEY("\n"), 0); } StrBufAppendBufPlain(WCC->ImportantMsg, pch, len, 0); } int ConditionalImportantMesage(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC != NULL) return (StrLength(WCC->ImportantMsg) > 0); else return 0; } void tmplput_importantmessage(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC != NULL) { if (StrLength(WCC->ImportantMsg) > 0) { StrBufAppendTemplate(Target, TP, WCC->ImportantMsg, 0); } } } void tmplput_trailing_javascript(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC != NULL) StrBufAppendTemplate(Target, TP, WCC->trailing_javascript, 0); } void tmplput_csslocal(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendBuf(Target, csslocal, 0); } void tmplput_packagestring(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendBufPlain(Target, HKEY(PACKAGE_STRING), 0); } extern char static_local_dir[PATH_MAX]; void InitModule_WEBCIT (void) { char dir[SIZ]; WebcitAddUrlHandler(HKEY("blank"), "", 0, blank_page, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC); WebcitAddUrlHandler(HKEY("landing"), "", 0, display_default_landing_page, ANONYMOUS|COOKIEUNNEEDED); WebcitAddUrlHandler(HKEY("do_template"), "", 0, url_do_template, ANONYMOUS); WebcitAddUrlHandler(HKEY("sslg"), "", 0, seconds_since_last_gexp, AJAX|LOGCHATTY); WebcitAddUrlHandler(HKEY("ajax_servcmd"), "", 0, ajax_servcmd, 0); WebcitAddUrlHandler(HKEY("webcit"), "", 0, blank_page, URLNAMESPACE); WebcitAddUrlHandler(HKEY("push"), "", 0, push_destination, AJAX); WebcitAddUrlHandler(HKEY("pop"), "", 0, pop_destination, 0); WebcitAddUrlHandler(HKEY("401"), "", 0, authorization_required, ANONYMOUS|COOKIEUNNEEDED); RegisterConditional("COND:IMPMSG", 0, ConditionalImportantMesage, CTX_NONE); RegisterConditional("COND:REST:DEPTH", 0, Conditional_REST_DEPTH, CTX_NONE); RegisterConditional("COND:IS_HTTPS", 0, Conditional_IS_HTTPS, CTX_NONE); RegisterNamespace("CSSLOCAL", 0, 0, tmplput_csslocal, NULL, CTX_NONE); RegisterNamespace("IMPORTANTMESSAGE", 0, 1, tmplput_importantmessage, NULL, CTX_NONE); RegisterNamespace("TRAILING_JAVASCRIPT", 0, 0, tmplput_trailing_javascript, NULL, CTX_NONE); RegisterNamespace("URL:DISPLAYNAME", 0, 1, tmplput_HANDLER_DISPLAYNAME, NULL, CTX_NONE); RegisterNamespace("PACKAGESTRING", 0, 1, tmplput_packagestring, NULL, CTX_NONE); snprintf(dir, SIZ, "%s/webcit.css", static_local_dir); if (!access(dir, R_OK)) { syslog(LOG_INFO, "Using local Stylesheet [%s]", dir); csslocal = NewStrBufPlain(HKEY("")); } else syslog(LOG_INFO, "No Site-local Stylesheet [%s] installed.", dir); } void ServerStartModule_WEBCIT (void) { HandlerHash = NewHash(1, NULL); } void ServerShutdownModule_WEBCIT (void) { FreeStrBuf(&csslocal); DeleteHash(&HandlerHash); } void SessionNewModule_WEBCIT (wcsession *sess) { sess->ImportantMsg = NewStrBuf(); sess->WBuf = NewStrBufPlain(NULL, SIZ * 4); sess->HBuf = NewStrBufPlain(NULL, SIZ / 4); } void SessionDetachModule_WEBCIT (wcsession *sess) { DeleteHash(&sess->Directory); FreeStrBuf(&sess->upload); sess->upload_length = 0; FreeStrBuf(&sess->trailing_javascript); if (StrLength(sess->WBuf) > SIZ * 30) /* Bigger than 120K? release. */ { FreeStrBuf(&sess->WBuf); sess->WBuf = NewStrBuf(); } else FlushStrBuf(sess->WBuf); FlushStrBuf(sess->HBuf); if (StrLength(sess->ImportantMsg) > 0) { FlushStrBuf(sess->ImportantMsg); } } void SessionDestroyModule_WEBCIT (wcsession *sess) { FreeStrBuf(&sess->WBuf); FreeStrBuf(&sess->HBuf); FreeStrBuf(&sess->ImportantMsg); FreeStrBuf(&sess->PushedDestination); } webcit-dfsg.orig/aclocal.m40000644000175000017500000001024113223341054015634 0ustar michaelmichael# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) m4_include([acinclude.m4]) webcit-dfsg.orig/missing0000755000175000017500000001400213223341037015373 0ustar michaelmichael#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 3. # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` if test -z "$files"; then files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` test -z "$files" || files="$files.in" else files=`echo "$files" | sed -e 's/:/ /g'` fi test -z "$files" && files="config.h.in" touch $files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print \ | sed 's/^\(.*\).am$/touch \1.in/' \ | sh ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 webcit-dfsg.orig/availability.c0000644000175000017500000001662013223341037016622 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "calendar.h" /* * Utility function to fetch a VFREEBUSY type of thing for any specified user. */ icalcomponent *get_freebusy_for_user(char *who) { long nLines; char buf[SIZ]; StrBuf *serialized_fb = NewStrBuf(); icalcomponent *fb = NULL; serv_printf("ICAL freebusy|%s", who); serv_getln(buf, sizeof buf); if (buf[0] == '1') { read_server_text(serialized_fb, &nLines); } if (serialized_fb == NULL) { return NULL; } fb = icalcomponent_new_from_string(ChrPtr(serialized_fb)); FreeStrBuf(&serialized_fb); if (fb == NULL) { return NULL; } return(fb); } /* * Check to see if two events overlap. * (This function is used in both Citadel and WebCit. If you change it in * one place, change it in the other. We should seriously consider moving * this function upstream into libical.) * * Returns nonzero if they do overlap. */ int ical_ctdl_is_overlap( struct icaltimetype t1start, struct icaltimetype t1end, struct icaltimetype t2start, struct icaltimetype t2end ) { if (icaltime_is_null_time(t1start)) return(0); if (icaltime_is_null_time(t2start)) return(0); /* if either event lacks end time, assume end = start */ if (icaltime_is_null_time(t1end)) memcpy(&t1end, &t1start, sizeof(struct icaltimetype)); else { if (t1end.is_date && icaltime_compare(t1start, t1end)) { /* * the end date is non-inclusive so adjust it by one * day because our test is inclusive, note that a day is * not too much because we are talking about all day * events * if start = end we assume that nevertheless the whole * day is meant */ icaltime_adjust(&t1end, -1, 0, 0, 0); } } if (icaltime_is_null_time(t2end)) memcpy(&t2end, &t2start, sizeof(struct icaltimetype)); else { if (t2end.is_date && icaltime_compare(t2start, t2end)) { icaltime_adjust(&t2end, -1, 0, 0, 0); } } /* First, check for all-day events */ if (t1start.is_date || t2start.is_date) { /* If event 1 ends before event 2 starts, we're in the clear. */ if (icaltime_compare_date_only(t1end, t2start) < 0) return(0); /* If event 2 ends before event 1 starts, we're also ok. */ if (icaltime_compare_date_only(t2end, t1start) < 0) return(0); return(1); } /* syslog(LOG_DEBUG, "Comparing t1start %d:%d t1end %d:%d t2start %d:%d t2end %d:%d \n", t1start.hour, t1start.minute, t1end.hour, t1end.minute, t2start.hour, t2start.minute, t2end.hour, t2end.minute); */ /* Now check for overlaps using date *and* time. */ /* If event 1 ends before event 2 starts, we're in the clear. */ if (icaltime_compare(t1end, t2start) <= 0) return(0); /* syslog(LOG_DEBUG, "first passed\n"); */ /* If event 2 ends before event 1 starts, we're also ok. */ if (icaltime_compare(t2end, t1start) <= 0) return(0); /* syslog(LOG_DEBUG, "second passed\n"); */ /* Otherwise, they overlap. */ return(1); } /* * Back end function for check_attendee_availability() * This one checks an individual attendee against a supplied * event start and end time. All these fields have already been * broken out. * * attendee_string name of the attendee * event_start start time of the event to check * event_end end time of the event to check * * The result is placed in 'annotation'. */ void check_individual_attendee(char *attendee_string, struct icaltimetype event_start, struct icaltimetype event_end, char *annotation) { icalcomponent *fbc = NULL; icalcomponent *fb = NULL; icalproperty *thisfb = NULL; struct icalperiodtype period; /* * Set to 'unknown' right from the beginning. Unless we learn * something else, that's what we'll go with. */ strcpy(annotation, _("availability unknown")); fbc = get_freebusy_for_user(attendee_string); if (fbc == NULL) { return; } /* * Make sure we're looking at a VFREEBUSY by itself. What we're probably * looking at initially is a VFREEBUSY encapsulated in a VCALENDAR. */ if (icalcomponent_isa(fbc) == ICAL_VCALENDAR_COMPONENT) { fb = icalcomponent_get_first_component(fbc, ICAL_VFREEBUSY_COMPONENT); } else if (icalcomponent_isa(fbc) == ICAL_VFREEBUSY_COMPONENT) { fb = fbc; } /* Iterate through all FREEBUSY's looking for conflicts. */ if (fb != NULL) { strcpy(annotation, _("free")); for (thisfb = icalcomponent_get_first_property(fb, ICAL_FREEBUSY_PROPERTY); thisfb != NULL; thisfb = icalcomponent_get_next_property(fb, ICAL_FREEBUSY_PROPERTY) ) { /** Do the check */ period = icalproperty_get_freebusy(thisfb); if (ical_ctdl_is_overlap(period.start, period.end, event_start, event_end)) { strcpy(annotation, _("BUSY")); } } } icalcomponent_free(fbc); } /* * Check the availability of all attendees for an event (when possible) * and annotate accordingly. * * vevent the event which should be compared with attendees calendar */ void check_attendee_availability(icalcomponent *vevent) { icalproperty *attendee = NULL; icalproperty *dtstart_p = NULL; icalproperty *dtend_p = NULL; struct icaltimetype dtstart_t; struct icaltimetype dtend_t; char attendee_string[SIZ]; char annotated_attendee_string[SIZ]; char annotation[SIZ]; const char *ch; if (vevent == NULL) { return; } /* * If we're looking at a fully encapsulated VCALENDAR * rather than a VEVENT component, attempt to use the first * relevant VEVENT subcomponent. If there is none, the * NULL returned by icalcomponent_get_first_component() will * tell the next iteration of this function to create a * new one. */ if (icalcomponent_isa(vevent) == ICAL_VCALENDAR_COMPONENT) { check_attendee_availability( icalcomponent_get_first_component( vevent, ICAL_VEVENT_COMPONENT ) ); return; } ical_dezonify(vevent); /**< Convert everything to UTC */ /* * Learn the start and end times. */ dtstart_p = icalcomponent_get_first_property(vevent, ICAL_DTSTART_PROPERTY); if (dtstart_p != NULL) dtstart_t = icalproperty_get_dtstart(dtstart_p); dtend_p = icalcomponent_get_first_property(vevent, ICAL_DTEND_PROPERTY); if (dtend_p != NULL) dtend_t = icalproperty_get_dtend(dtend_p); /* * Iterate through attendees. */ for (attendee = icalcomponent_get_first_property(vevent, ICAL_ATTENDEE_PROPERTY); attendee != NULL; attendee = icalcomponent_get_next_property(vevent, ICAL_ATTENDEE_PROPERTY)) { ch = icalproperty_get_attendee(attendee); if ((ch != NULL) && !strncasecmp(ch, "MAILTO:", 7)) { /** screen name or email address */ safestrncpy(attendee_string, ch + 7, sizeof(attendee_string)); striplt(attendee_string); check_individual_attendee(attendee_string, dtstart_t, dtend_t, annotation); /** Replace the attendee name with an annotated one. */ snprintf(annotated_attendee_string, sizeof annotated_attendee_string, "MAILTO:%s (%s)", attendee_string, annotation); icalproperty_set_attendee(attendee, annotated_attendee_string); } } } webcit-dfsg.orig/openid.c0000644000175000017500000000653313223341037015430 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" /* * Display the OpenIDs associated with an account */ void display_openids(void) { wcsession *WCC = WC; char buf[1024]; int bg = 0; output_headers(1, 1, 1, 0, 0, 0); do_template("box_begin_1"); StrBufAppendBufPlain(WCC->WBuf, _("Manage Account/OpenID Associations"), -1, 0); do_template("box_begin_2"); if (WCC->serv_info->serv_supports_openid) { wc_printf(""); serv_puts("OIDL"); serv_getln(buf, sizeof buf); if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { bg = 1 - bg; wc_printf("", (bg ? "even" : "odd")); wc_printf("\n"); } wc_printf("
"); escputs(buf); wc_printf(""); wc_printf("", _("Do you really want to delete this OpenID?")); wc_printf("%s", _("(delete)")); wc_printf("

\n"); wc_printf("
\n"); wc_printf("\n", WCC->nonce); wc_printf(_("Add an OpenID: ")); wc_printf("\n"); wc_printf("" "
\n", _("Attach")); } else { wc_printf(_("%s does not permit authentication via OpenID."), ChrPtr(WCC->serv_info->serv_humannode)); } do_template("box_end"); wDumpContent(2); } /* * Attempt to attach an OpenID to an existing, logged-in account */ void openid_attach(void) { char buf[4096]; if (havebstr("attach_button")) { syslog(LOG_DEBUG, "Attempting to attach %s\n", bstr("openid_url")); snprintf(buf, sizeof buf, "OIDS %s|%s/finalize_openid_login?attach_existing=1|%s", bstr("openid_url"), ChrPtr(site_prefix), ChrPtr(site_prefix) ); serv_puts(buf); serv_getln(buf, sizeof buf); if (buf[0] == '2') { syslog(LOG_DEBUG, "OpenID server contacted; redirecting to %s\n", &buf[4]); http_redirect(&buf[4]); return; } else { syslog(LOG_DEBUG, "OpenID attach failed: %s\n", &buf[4]); } } /* If we get to this point then something failed. */ display_openids(); } /* * Detach an OpenID from the currently logged-in account */ void openid_detach(void) { StrBuf *Line; if (havebstr("id_to_detach")) { serv_printf("OIDD %s", bstr("id_to_detach")); Line = NewStrBuf(); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 2); FreeStrBuf(&Line); } display_openids(); } void InitModule_OPENID (void) { WebcitAddUrlHandler(HKEY("display_openids"), "", 0, display_openids, 0); WebcitAddUrlHandler(HKEY("openid_attach"), "", 0, openid_attach, 0); WebcitAddUrlHandler(HKEY("openid_detach"), "", 0, openid_detach, 0); } webcit-dfsg.orig/configure0000755000175000017500000063251213223341054015716 0ustar michaelmichael#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for WebCit 917. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://uncensored.citadel.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='WebCit' PACKAGE_TARNAME='webcit' PACKAGE_VERSION='917' PACKAGE_STRING='WebCit 917' PACKAGE_BUGREPORT='http://uncensored.citadel.org' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_default_prefix=/usr/local/webcit ac_subst_vars='LTLIBOBJS ETCDIR MAKE_RUN_DIR WWWDIR LOCALEDIR SETUP_LIBS ok_msgfmt ok_msgmerge ok_xgettext MAKE_SSL_DIR LIBOBJS PTHREAD_DEFS SED EGREP GREP CPP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ACLOCAL AUTOCONF INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM host_os host_vendor host_cpu host build_os build_vendor build_cpu build PROG_SUBDIRS target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_ssl enable_iconv with_ssldir with_gprof with_backtrace with_localedir with_wwwdir with_rundir with_datadir with_editordir with_markdowneditordir with_etcdir ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures WebCit 917 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/webcit] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of WebCit 917:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-iconv do not use iconv charset conversion Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ssl=PATH Specify path to OpenSSL installation --with-ssldir directory to store the ssl certificates under --with-gprof enable profiling --with-backtrace enable backtrace dumps in the syslog --with-localedir directory to put the locale files to --with-wwwdir directory to put our templates --with-rundir directory to place runtime files (UDS) to? --with-datadir directory to store the databases under --with-editordir directory to put our editor --with-markdowneditordir directory to put our markdown editor --with-etcdir directory to read our configs Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF WebCit configure 917 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## -------------------------------------------- ## ## Report this to http://uncensored.citadel.org ## ## -------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by WebCit $as_me 917, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu $as_echo "#define PROG_SUBDIRS /**/" >>confdefs.h ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' missing_dir=`cd $ac_aux_dir && pwd` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"} ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_SED+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$SED"; then ac_cv_prog_SED="$SED" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_SED="sed" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_SED" && ac_cv_prog_SED="no" fi fi SED=$ac_cv_prog_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$prefix" = NONE; then cat >>confdefs.h <<_ACEOF #define WEBCITDIR "$ac_default_prefix" _ACEOF ssl_dir="$ac_default_prefix/keys" else cat >>confdefs.h <<_ACEOF #define WEBCITDIR "$prefix" _ACEOF ssl_dir="$prefix/keys" fi # Check whether --with-ssl was given. if test "${with_ssl+set}" = set; then : withval=$with_ssl; if test "x$withval" != "xno" ; then tryssldir=$withval fi fi PTHREAD_DEFS=-D_REENTRANT case "$host" in alpha*-dec-osf*) test -z "$CC" && CC=cc LIBS=-pthread ;; *-*-freebsd*) LIBS=-pthread PTHREAD_DEFS=-D_THREAD_SAFE ;; *-*-solaris*) PTHREAD_DEFS='-D_REENTRANT -D_PTHREADS' ;; *-*-darwin*) LIBS=-lintl esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "$GCC" = yes; then case "$host" in *-*-solaris*) CFLAGS="$CFLAGS -Wall -Wno-char-subscripts" ;; *) CFLAGS="$CFLAGS -Wall" ;; esac fi # missing_dir=`cd $ac_aux_dir && pwd` # AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) if test "$LIBS" != -pthread; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 $as_echo_n "checking for pthread_create in -lpthreads... " >&6; } if ${ac_cv_lib_pthreads_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthreads_pthread_create=yes else ac_cv_lib_pthreads_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 $as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREADS 1 _ACEOF LIBS="-lpthreads $LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5 $as_echo_n "checking for library containing connect... " >&6; } if ${ac_cv_search_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_connect=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_connect+:} false; then : break fi done if ${ac_cv_search_connect+:} false; then : else ac_cv_search_connect=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5 $as_echo "$ac_cv_search_connect" >&6; } ac_res=$ac_cv_search_connect if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_func in crypt gethostbyname connect flock getpwnam_r getpwuid_r getloadavg do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for call semantics from getpwuid_r" >&5 $as_echo_n "checking for call semantics from getpwuid_r... " >&6; } if ${ac_cv_call_getpwuid_r+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct passwd pw, *pwp; char pwbuf[64]; uid_t uid; getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_call_getpwuid_r=yes else ac_cv_call_getpwuid_r=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_call_getpwuid_r" >&5 $as_echo "$ac_cv_call_getpwuid_r" >&6; } if test $ac_cv_call_getpwuid_r = no; then $as_echo "#define SOLARIS_GETPWUID /**/" >>confdefs.h $as_echo "#define SOLARIS_LOCALTIME_R /**/" >>confdefs.h $as_echo "#define F_UID_T \"%ld\"" >>confdefs.h $as_echo "#define F_PID_T \"%ld\"" >>confdefs.h $as_echo "#define F_XPID_T \"%lx\"" >>confdefs.h else $as_echo "#define F_UID_T \"%d\"" >>confdefs.h $as_echo "#define F_PID_T \"%d\"" >>confdefs.h $as_echo "#define F_XPID_T \"%x\"" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 $as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : else if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 $as_echo "$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 $as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long unsigned int" >&5 $as_echo_n "checking size of long unsigned int... " >&6; } if ${ac_cv_sizeof_long_unsigned_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long unsigned int))" "ac_cv_sizeof_long_unsigned_int" "$ac_includes_default"; then : else if test "$ac_cv_type_long_unsigned_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long unsigned int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_unsigned_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_unsigned_int" >&5 $as_echo "$ac_cv_sizeof_long_unsigned_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_UNSIGNED_INT $ac_cv_sizeof_long_unsigned_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : else if test "$ac_cv_type_size_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 $as_echo "$ac_cv_sizeof_size_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SIZE_T $ac_cv_sizeof_size_t _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes; then : $as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h else case " $LIBOBJS " in *" snprintf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" ;; esac fi ac_fn_c_check_header_mongrel "$LINENO" "CUnit/CUnit.h" "ac_cv_header_CUnit_CUnit_h" "$ac_includes_default" if test "x$ac_cv_header_CUnit_CUnit_h" = xyes; then : $as_echo "#define ENABLE_TESTS /**/" >>confdefs.h fi for ac_header in fcntl.h limits.h unistd.h iconv.h xlocale.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $SERVER_LIBS" ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlibVersion in -lz" >&5 $as_echo_n "checking for zlibVersion in -lz... " >&6; } if ${ac_cv_lib_z_zlibVersion+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char zlibVersion (); int main () { return zlibVersion (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_zlibVersion=yes else ac_cv_lib_z_zlibVersion=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_zlibVersion" >&5 $as_echo "$ac_cv_lib_z_zlibVersion" >&6; } if test "x$ac_cv_lib_z_zlibVersion" = xyes; then : LIBS="-lz $LIBS $SERVER_LIBS" else as_fn_error $? "zlib was not found or is not usable. Please install zlib." "$LINENO" 5 fi else as_fn_error $? "zlib.h was not found or is not usable. Please install zlib." "$LINENO" 5 fi CFLAGS="$saved_CFLAGS" # Check whether --enable-iconv was given. if test "${enable_iconv+set}" = set; then : enableval=$enable_iconv; ok_iconv=no else ok_iconv=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking to see if your system supports iconv" >&5 $as_echo_n "checking Checking to see if your system supports iconv... " >&6; } if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include main() { iconv_t ic = (iconv_t)(-1) ; ic = iconv_open("UTF-8", "us-ascii"); iconv_close(ic); exit(0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ok_iconv=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else ok_iconv=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$ok_iconv" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for an external libiconv" >&5 $as_echo_n "checking Checking for an external libiconv... " >&6; } OLD_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -liconv" if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include main() { iconv_t ic = (iconv_t)(-1) ; ic = iconv_open("UTF-8", "us-ascii"); iconv_close(ic); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ok_iconv=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else ok_iconv=no LDFLAGS="$OLD_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi if test "$ok_iconv" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: webcit will be built with character set conversion." >&5 $as_echo "webcit will be built with character set conversion." >&6; } $as_echo "#define HAVE_ICONV /**/" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: webcit will be built without character set conversion." >&5 $as_echo "webcit will be built without character set conversion." >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libintl_bindtextdomain in -lintl" >&5 $as_echo_n "checking for libintl_bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_libintl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libintl_bindtextdomain (); int main () { return libintl_bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_libintl_bindtextdomain=yes else ac_cv_lib_intl_libintl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_libintl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_libintl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_libintl_bindtextdomain" = xyes; then : LDFLAGS="$LDFLAGS -lintl" fi ac_fn_c_check_header_mongrel "$LINENO" "libical/ical.h" "ac_cv_header_libical_ical_h" "$ac_includes_default" if test "x$ac_cv_header_libical_ical_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icaltimezone_set_tzid_prefix in -lical" >&5 $as_echo_n "checking for icaltimezone_set_tzid_prefix in -lical... " >&6; } if ${ac_cv_lib_ical_icaltimezone_set_tzid_prefix+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lical $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char icaltimezone_set_tzid_prefix (); int main () { return icaltimezone_set_tzid_prefix (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ical_icaltimezone_set_tzid_prefix=yes else ac_cv_lib_ical_icaltimezone_set_tzid_prefix=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ical_icaltimezone_set_tzid_prefix" >&5 $as_echo "$ac_cv_lib_ical_icaltimezone_set_tzid_prefix" >&6; } if test "x$ac_cv_lib_ical_icaltimezone_set_tzid_prefix" = xyes; then : LIBS="-lical $LIBS" else as_fn_error $? "libical was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi else as_fn_error $? "libical/ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for markdown in -lmarkdown" >&5 $as_echo_n "checking for markdown in -lmarkdown... " >&6; } if ${ac_cv_lib_markdown_markdown+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmarkdown $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char markdown (); int main () { return markdown (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_markdown_markdown=yes else ac_cv_lib_markdown_markdown=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_markdown_markdown" >&5 $as_echo "$ac_cv_lib_markdown_markdown" >&6; } if test "x$ac_cv_lib_markdown_markdown" = xyes; then : LIBS="$LIBS -lmarkdown" $as_echo "#define HAVE_MARKDOWN /**/" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "libcitadel.h" "ac_cv_header_libcitadel_h" "$ac_includes_default" if test "x$ac_cv_header_libcitadel_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcitadel_version_string in -lcitadel" >&5 $as_echo_n "checking for libcitadel_version_string in -lcitadel... " >&6; } if ${ac_cv_lib_citadel_libcitadel_version_string+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcitadel $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libcitadel_version_string (); int main () { return libcitadel_version_string (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_citadel_libcitadel_version_string=yes else ac_cv_lib_citadel_libcitadel_version_string=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_citadel_libcitadel_version_string" >&5 $as_echo "$ac_cv_lib_citadel_libcitadel_version_string" >&6; } if test "x$ac_cv_lib_citadel_libcitadel_version_string" = xyes; then : LIBS="-lcitadel $LIBS" SETUP_LIBS="-lcitadel $SETUP_LIBS" else as_fn_error $? "libcitadel was not found or is not usable. Please install libcitadel." "$LINENO" 5 fi else as_fn_error $? "libcitadel.h was not found or is not usable. Please install libcitadel." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system likes memcpy + HKEY" >&5 $as_echo_n "checking whether your system likes memcpy + HKEY... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include "lib/libcitadel.h" int main () { char foo[22]; memcpy(foo, HKEY("foo")); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else $as_echo "#define UNDEF_MEMCPY /**/" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default" if test "x$ac_cv_header_expat_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML_ParserCreateNS in -lexpat" >&5 $as_echo_n "checking for XML_ParserCreateNS in -lexpat... " >&6; } if ${ac_cv_lib_expat_XML_ParserCreateNS+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lexpat $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XML_ParserCreateNS (); int main () { return XML_ParserCreateNS (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_expat_XML_ParserCreateNS=yes else ac_cv_lib_expat_XML_ParserCreateNS=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_expat_XML_ParserCreateNS" >&5 $as_echo "$ac_cv_lib_expat_XML_ParserCreateNS" >&6; } if test "x$ac_cv_lib_expat_XML_ParserCreateNS" = xyes; then : LIBS="-lexpat $LIBS" else as_fn_error $? "The Expat XML parser was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi else as_fn_error $? "expat.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi found_ssl=no # The big search for OpenSSL if test "$with_ssl" != "no"; then saved_LIBS="$LIBS" saved_LDFLAGS="$LDFLAGS" saved_CFLAGS="$CFLAGS" if test "x$prefix" != "xNONE"; then tryssldir="$tryssldir $prefix" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL" >&5 $as_echo_n "checking for OpenSSL... " >&6; } if ${ac_cv_openssldir+:} false; then : $as_echo_n "(cached) " >&6 else for ssldir in $tryssldir "" /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do CFLAGS="$saved_CFLAGS" LDFLAGS="$saved_LDFLAGS" LIBS="$saved_LIBS -lssl -lcrypto" # Skip directories if they don't exist if test ! -z "$ssldir" -a ! -d "$ssldir" ; then continue; fi if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then # Try to use $ssldir/lib if it exists, otherwise # $ssldir if test -d "$ssldir/lib" ; then LDFLAGS="-L$ssldir/lib $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir/lib $LDFLAGS" fi else LDFLAGS="-L$ssldir $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir $LDFLAGS" fi fi # Try to use $ssldir/include if it exists, otherwise # $ssldir if test -d "$ssldir/include" ; then CFLAGS="-I$ssldir/include $saved_CFLAGS" else CFLAGS="-I$ssldir $saved_CFLAGS" fi fi # Basic test to check for compatible version and correct linking # *does not* test for RSA - that comes later. if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main(void) { char a[2048]; memset(a, 0, sizeof(a)); RAND_add(a, sizeof(a), sizeof(a)); return(RAND_status() <= 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : found_crypto=1 break; fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test ! -z "$found_crypto" ; then break; fi done if test -z "$ssldir" ; then ssldir="(system)" fi if test ! -z "$found_crypto" ; then ac_cv_openssldir=$ssldir else ac_cv_openssldir="no" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_openssldir" >&5 $as_echo "$ac_cv_openssldir" >&6; } LIBS="$saved_LIBS" LDFLAGS="$saved_LDFLAGS" CFLAGS="$saved_CFLAGS" if test "x$ac_cv_openssldir" != "xno" ; then $as_echo "#define HAVE_OPENSSL /**/" >>confdefs.h found_ssl=yes LIBS="-lssl -lcrypto $LIBS" ssldir=$ac_cv_openssldir if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then # Try to use $ssldir/lib if it exists, otherwise # $ssldir if test -d "$ssldir/lib" ; then LDFLAGS="-L$ssldir/lib $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir/lib $LDFLAGS" fi else LDFLAGS="-L$ssldir $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir $LDFLAGS" fi fi # Try to use $ssldir/include if it exists, otherwise # $ssldir if test -d "$ssldir/include" ; then CFLAGS="-I$ssldir/include $saved_CFLAGS" else CFLAGS="-I$ssldir $saved_CFLAGS" fi fi fi fi # Check whether --with-ssldir was given. if test "${with_ssldir+set}" = set; then : withval=$with_ssldir; if test "x$withval" != "xno" ; then ssl_dir="$withval" if test "$found_ssl" = "no"; then echo "Your setup was incomplete; ssldir doesn't make sense without openssl" exit fi fi fi cat >>confdefs.h <<_ACEOF #define SSL_DIR "$ssl_dir" _ACEOF for ac_func in strftime_l uselocale gettext do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ok_nls" != "no"; then # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ok_xgettext+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ok_xgettext"; then ac_cv_prog_ok_xgettext="$ok_xgettext" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ok_xgettext="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ok_xgettext" && ac_cv_prog_ok_xgettext="no" fi fi ok_xgettext=$ac_cv_prog_ok_xgettext if test -n "$ok_xgettext"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ok_xgettext" >&5 $as_echo "$ok_xgettext" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ok_nls=$ok_xgettext fi if test "$ok_nls" != "no"; then # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ok_msgmerge+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ok_msgmerge"; then ac_cv_prog_ok_msgmerge="$ok_msgmerge" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ok_msgmerge="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ok_msgmerge" && ac_cv_prog_ok_msgmerge="no" fi fi ok_msgmerge=$ac_cv_prog_ok_msgmerge if test -n "$ok_msgmerge"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ok_msgmerge" >&5 $as_echo "$ok_msgmerge" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ok_nls=$ok_msgmerge fi if test "$ok_nls" != "no"; then # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ok_msgfmt+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ok_msgfmt"; then ac_cv_prog_ok_msgfmt="$ok_msgfmt" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ok_msgfmt="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ok_msgfmt" && ac_cv_prog_ok_msgfmt="no" fi fi ok_msgfmt=$ac_cv_prog_ok_msgfmt if test -n "$ok_msgfmt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ok_msgfmt" >&5 $as_echo "$ok_msgfmt" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ok_nls=$ok_msgfmt fi if test "$ok_nls" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: WebCit will be built with national language support." >&5 $as_echo "WebCit will be built with national language support." >&6; } $as_echo "#define ENABLE_NLS /**/" >>confdefs.h PROG_SUBDIRS="$PROG_SUBDIRS po/webcit/" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: WebCit will be built without national language support." >&5 $as_echo "WebCit will be built without national language support." >&6; } fi # Check whether --with-gprof was given. if test "${with_gprof+set}" = set; then : withval=$with_gprof; if test "x$withval" != "xno" ; then CFLAGS="$CFLAGS -pg " LDFLAGS="$LDFLAGS -pg " fi fi # Check whether --with-backtrace was given. if test "${with_backtrace+set}" = set; then : withval=$with_backtrace; if test "x$withval" != "xno" ; then CFLAGS="$CFLAGS -rdynamic " LDFLAGS="$LDFLAGS -rdynamic " for ac_func in backtrace do : ac_fn_c_check_func "$LINENO" "backtrace" "ac_cv_func_backtrace" if test "x$ac_cv_func_backtrace" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BACKTRACE 1 _ACEOF fi done fi fi if test "$prefix" = NONE; then datadir=$ac_default_prefix localedir=$ac_default_prefix wwwdir=$ac_default_prefix rundir=$ac_default_prefix editordir=$ac_default_prefix/tiny_mce markdowneditordir=$ac_default_prefix/epic etcdir=$ac_default_prefix else localedir=$prefix wwwdir=$prefix datadir=$prefix rundir=$prefix editordir=$prefix/tiny_mce markdowneditordir=$prefix/epic etcdir=$prefix fi # Check whether --with-localedir was given. if test "${with_localedir+set}" = set; then : withval=$with_localedir; if test "x$withval" != "xno" ; then localedir=$withval fi fi cat >>confdefs.h <<_ACEOF #define LOCALEDIR "$localedir" _ACEOF LOCALEDIR=$localedir # Check whether --with-wwwdir was given. if test "${with_wwwdir+set}" = set; then : withval=$with_wwwdir; if test "x$withval" != "xno" ; then wwwdir=$withval fi fi cat >>confdefs.h <<_ACEOF #define WWWDIR "$wwwdir" _ACEOF WWWDIR=$wwwdir # Check whether --with-rundir was given. if test "${with_rundir+set}" = set; then : withval=$with_rundir; if test "x$withval" != "xno" ; then $as_echo "#define HAVE_RUN_DIR /**/" >>confdefs.h rundir=$withval fi fi cat >>confdefs.h <<_ACEOF #define RUNDIR "$rundir" _ACEOF # Check whether --with-datadir was given. if test "${with_datadir+set}" = set; then : withval=$with_datadir; if test "x$withval" != "xno" ; then datadir=$withval fi fi cat >>confdefs.h <<_ACEOF #define DATADIR "$datadir" _ACEOF # Check whether --with-editordir was given. if test "${with_editordir+set}" = set; then : withval=$with_editordir; if test "x$withval" != "xno" ; then editordir=$withval fi fi cat >>confdefs.h <<_ACEOF #define EDITORDIR "$editordir" _ACEOF # Check whether --with-markdowneditordir was given. if test "${with_markdowneditordir+set}" = set; then : withval=$with_markdowneditordir; if test "x$withval" != "xno" ; then markdowneditordir=$withval fi fi cat >>confdefs.h <<_ACEOF #define MARKDOWNEDITORDIR "$markdowneditordir" _ACEOF # Check whether --with-etcdir was given. if test "${with_etcdir+set}" = set; then : withval=$with_etcdir; if test "x$withval" != "xno" ; then etcdir=$withval fi fi cat >>confdefs.h <<_ACEOF #define ETCDIR "$etcdir" _ACEOF ETCDIR=$etcdir abs_srcdir="`cd $srcdir && pwd`" abs_builddir="`pwd`" if test "$abs_srcdir" != "$abs_builddir"; then CFLAGS="$CFLAGS -I $abs_builddir" fi ac_config_headers="$ac_config_headers sysdep.h" ac_config_files="$ac_config_files Makefile po/webcit/Makefile tests/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by WebCit $as_me 917, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ WebCit config.status 917 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "sysdep.h") CONFIG_HEADERS="$CONFIG_HEADERS sysdep.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/webcit/Makefile") CONFIG_FILES="$CONFIG_FILES po/webcit/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi if test "$abs_srcdir" != "$abs_builddir"; then ln -s $abs_srcdir/static $abs_builddir ln -s $abs_srcdir/tiny_mce $abs_builddir ln -s $abs_srcdir/epic $abs_builddir ln -s $abs_srcdir/*.h $abs_builddir make mkdir-init else if test -d .svn; then ./mk_module_init.sh fi fi if test -n "$srcdir"; then export srcdir=. fi echo ------------------------------------------------------------------------ echo 'Character set conversion support:' $ok_iconv echo 'National language support: ' $ok_nls echo webcit-dfsg.orig/webserver.c0000644000175000017500000002454313223341037016157 0ustar michaelmichael/* * Copyright (c) 1996-2018 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "modules_init.h" extern int msock; /* master listening socket */ extern char static_icon_dir[PATH_MAX]; /* where should we find our mime icons */ int is_https = 0; /* Nonzero if I am an HTTPS service */ int follow_xff = 0; /* Follow X-Forwarded-For: header? */ int DisableGzip = 0; char *default_landing_page = NULL; extern pthread_mutex_t SessionListMutex; extern pthread_key_t MyConKey; extern void *housekeeping_loop(void); extern int webcit_tcp_server(char *ip_addr, int port_number, int queue_len); extern int webcit_uds_server(char *sockpath, int queue_len); extern void graceful_shutdown_watcher(int signum); extern void graceful_shutdown(int signum); extern void start_daemon(char *pid_file); extern void webcit_calc_dirs_n_files(int relh, const char *basedir, int home, char *webcitdir, char *relhome); extern void worker_entry(void); extern void drop_root(uid_t UID); char socket_dir[PATH_MAX]; /* where to talk to our citadel server */ char *server_cookie = NULL; /* our Cookie connection to the client */ int http_port = PORT_NUM; /* Port to listen on */ char *ctdlhost = DEFAULT_HOST; /* Host name or IP address of Citadel server */ char *ctdlport = DEFAULT_PORT; /* Port number of Citadel server */ int setup_wizard = 0; /* should we run the setup wizard? */ char wizard_filename[PATH_MAX]; /* location of file containing the last webcit version against which we ran setup wizard */ int running_as_daemon = 0; /* should we deamonize on startup? */ /* #define DBG_PRINNT_HOOKS_AT_START */ #ifdef DBG_PRINNT_HOOKS_AT_START extern HashList *HandlerHash; const char foobuf[32]; const char *nix(void *vptr) {snprintf(foobuf, 32, "%0x", (long) vptr); return foobuf;} #endif extern int verbose; extern int dbg_analyze_msg; extern int dbg_backtrace_template_errors; extern int DumpTemplateI18NStrings; extern StrBuf *I18nDump; void InitTemplateCache(void); extern int LoadTemplates; void LoadMimeBlacklist(void); /* * Here's where it all begins. */ int main(int argc, char **argv) { uid_t UID = -1; size_t basesize = 2; /* how big should strbufs be on creation? */ pthread_t SessThread; /* Thread descriptor */ pthread_attr_t attr; /* Thread attributes */ int a; /* General-purpose variable */ char ip_addr[256]="*"; int relh=0; int home=0; char relhome[PATH_MAX]=""; char webcitdir[PATH_MAX] = DATADIR; char *pidfile = NULL; char *hdir; const char *basedir = NULL; char uds_listen_path[PATH_MAX]; /* listen on a unix domain socket? */ const char *I18nDumpFile = NULL; WildFireInitBacktrace(argv[0], 2); start_modules(); #ifdef DBG_PRINNT_HOOKS_AT_START /* dbg_PrintHash(HandlerHash, nix, NULL);*/ #endif /* Ensure that we are linked to the correct version of libcitadel */ if (libcitadel_version_number() < LIBCITADEL_VERSION_NUMBER) { fprintf(stderr, " You are running libcitadel version %d\n", libcitadel_version_number() ); fprintf(stderr, "WebCit was compiled against version %d\n", LIBCITADEL_VERSION_NUMBER ); return(1); } strcpy(uds_listen_path, ""); /* Parse command line */ #ifdef HAVE_OPENSSL while ((a = getopt(argc, argv, "u:h:i:p:t:T:B:x:g:dD:G:cfsS:Z:v:")) != EOF) #else while ((a = getopt(argc, argv, "u:h:i:p:t:T:B:x:g:dD:G:cfZ:v:")) != EOF) #endif switch (a) { case 'u': UID = atol(optarg); break; case 'h': hdir = strdup(optarg); relh=hdir[0]!='/'; if (!relh) { safestrncpy(webcitdir, hdir, sizeof webcitdir); } else { safestrncpy(relhome, relhome, sizeof relhome); } /* free(hdir); TODO: SHOULD WE DO THIS? */ home=1; break; case 'd': running_as_daemon = 1; break; case 'D': pidfile = strdup(optarg); running_as_daemon = 1; break; case 'g': default_landing_page = strdup(optarg); break; case 'B': /* Basesize */ basesize = atoi(optarg); if (basesize > 2) StartLibCitadel(basesize); break; case 'i': safestrncpy(ip_addr, optarg, sizeof ip_addr); break; case 'p': http_port = atoi(optarg); if (http_port == 0) { safestrncpy(uds_listen_path, optarg, sizeof uds_listen_path); } break; case 't': /* no longer used, but ignored so old scripts don't break */ break; case 'T': LoadTemplates = atoi(optarg); dbg_analyze_msg = (LoadTemplates & (1<<1)) != 0; dbg_backtrace_template_errors = (LoadTemplates & (1<<2)) != 0; break; case 'Z': DisableGzip = 1; break; case 'x': /* no longer used, but ignored so old scripts don't break */ break; case 'f': follow_xff = 1; break; case 'c': server_cookie = malloc(256); if (server_cookie != NULL) { safestrncpy(server_cookie, "Set-cookie: wcserver=", 256); if (gethostname (&server_cookie[strlen(server_cookie)], 200) != 0) { syslog(LOG_INFO, "gethostname: %s", strerror(errno)); free(server_cookie); } } break; #ifdef HAVE_OPENSSL case 's': is_https = 1; break; case 'S': is_https = 1; ssl_cipher_list = strdup(optarg); break; #endif case 'G': DumpTemplateI18NStrings = 1; I18nDump = NewStrBufPlain(HKEY("int templatestrings(void)\n{\n")); I18nDumpFile = optarg; break; case 'v': verbose=1; break; default: fprintf(stderr, "usage:\nwebcit " "[-i ip_addr] [-p http_port] " "[-c] [-f] " "[-T Templatedebuglevel] " "[-d] [-Z] [-G i18ndumpfile] " "[-u uid] [-h homedirectory] " "[-D daemonizepid] [-v] " "[-g defaultlandingpage] [-B basesize] " #ifdef HAVE_OPENSSL "[-s] [-S cipher_suites]" #endif "[remotehost [remoteport]]\n"); return 1; } /* Start the logger */ openlog("webcit", ( running_as_daemon ? (LOG_PID) : (LOG_PID | LOG_PERROR) ), LOG_DAEMON ); if (optind < argc) { ctdlhost = argv[optind]; if (++optind < argc) ctdlport = argv[optind]; } /* daemonize, if we were asked to */ if (!DumpTemplateI18NStrings && running_as_daemon) { start_daemon(pidfile); } else { signal(SIGINT, graceful_shutdown); signal(SIGHUP, graceful_shutdown); } webcit_calc_dirs_n_files(relh, basedir, home, webcitdir, relhome); LoadMimeBlacklist(); LoadIconDir(static_icon_dir); /* Tell 'em who's in da house */ syslog(LOG_NOTICE, "%s", PACKAGE_STRING); syslog(LOG_NOTICE, "Copyright (C) 1996-2018 by the citadel.org team"); syslog(LOG_NOTICE, " "); syslog(LOG_NOTICE, "This program is open source software: you can redistribute it and/or"); syslog(LOG_NOTICE, "modify it under the terms of the GNU General Public License, version 3."); syslog(LOG_NOTICE, " "); syslog(LOG_NOTICE, "This program is distributed in the hope that it will be useful,"); syslog(LOG_NOTICE, "but WITHOUT ANY WARRANTY; without even the implied warranty of"); syslog(LOG_NOTICE, "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"); syslog(LOG_NOTICE, "GNU General Public License for more details."); syslog(LOG_NOTICE, " "); /* initialize various subsystems */ initialise_modules(); initialise2_modules(); InitTemplateCache(); if (DumpTemplateI18NStrings) { FILE *fd; StrBufAppendBufPlain(I18nDump, HKEY("}\n"), 0); if (StrLength(I18nDump) < 50) { syslog(LOG_INFO, "*******************************************************************\n"); syslog(LOG_INFO, "* No strings found in templates! Are you sure they're there? *\n"); syslog(LOG_INFO, "*******************************************************************\n"); return -1; } fd = fopen(I18nDumpFile, "w"); if (fd == NULL) { syslog(LOG_INFO, "***********************************************\n"); syslog(LOG_INFO, "* unable to open I18N dumpfile [%s] *\n", I18nDumpFile); syslog(LOG_INFO, "***********************************************\n"); return -1; } fwrite(ChrPtr(I18nDump), 1, StrLength(I18nDump), fd); fclose(fd); return 0; } /* Tell libical to return an error instead of aborting if it sees badly formed iCalendar data. */ #ifdef LIBICAL_ICAL_EXPORT // cheap and sleazy way to detect libical >=2.0 icalerror_set_errors_are_fatal(0); #else icalerror_errors_are_fatal = 0; #endif /* Use our own prefix on tzid's generated from system tzdata */ icaltimezone_set_tzid_prefix("/citadel.org/"); /* * Set up a place to put thread-specific data. * We only need a single pointer per thread - it points to the * wcsession struct to which the thread is currently bound. */ if (pthread_key_create(&MyConKey, NULL) != 0) { syslog(LOG_ERR, "Can't create TSD key: %s", strerror(errno)); } InitialiseSemaphores(); /* * Set up a place to put thread-specific SSL data. * We don't stick this in the wcsession struct because SSL starts * up before the session is bound, and it gets torn down between * transactions. */ #ifdef HAVE_OPENSSL if (pthread_key_create(&ThreadSSL, NULL) != 0) { syslog(LOG_ERR, "Can't create TSD key: %s", strerror(errno)); } #endif /* * Bind the server to our favorite port. * There is no need to check for errors, because webcit_tcp_server() * exits if it doesn't succeed. */ if (!IsEmptyStr(uds_listen_path)) { syslog(LOG_DEBUG, "Attempting to create listener socket at %s...", uds_listen_path); msock = webcit_uds_server(uds_listen_path, LISTEN_QUEUE_LENGTH); } else { syslog(LOG_DEBUG, "Attempting to bind to port %d...", http_port); msock = webcit_tcp_server(ip_addr, http_port, LISTEN_QUEUE_LENGTH); } if (msock < 0) { ShutDownWebcit(); return -msock; } syslog(LOG_INFO, "Listening on socket %d", msock); signal(SIGPIPE, SIG_IGN); pthread_mutex_init(&SessionListMutex, NULL); /* * Start up the housekeeping thread */ pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); pthread_create(&SessThread, &attr, (void *(*)(void *)) housekeeping_loop, NULL); /* * If this is an HTTPS server, fire up SSL */ #ifdef HAVE_OPENSSL if (is_https) { init_ssl(); } #endif drop_root(UID); /* Become a worker thread. More worker threads will be spawned as they are needed. */ worker_entry(); ShutDownLibCitadel(); return 0; } webcit-dfsg.orig/who.c0000644000175000017500000002175313223341037014750 0ustar michaelmichael #include "webcit.h" CtxType CTX_WHO = CTX_NONE; typedef struct UserStateStruct { StrBuf *UserName; StrBuf *Room; StrBuf *Host; StrBuf *UserAgent; StrBuf *RealRoom; StrBuf *RealHost; long LastActive; int Session; int Idle; int IdleSince; int SessionCount; } UserStateStruct; void DestroyUserStruct(void *vUser) { UserStateStruct *User = (UserStateStruct*) vUser; FreeStrBuf(&User->UserName); FreeStrBuf(&User->Room); FreeStrBuf(&User->Host); FreeStrBuf(&User->RealRoom); FreeStrBuf(&User->RealHost); FreeStrBuf(&User->UserAgent); free(User); } int CompareUserStruct(const void *VUser1, const void *VUser2) { const UserStateStruct *User1 = (UserStateStruct*) GetSearchPayload(VUser1); const UserStateStruct *User2 = (UserStateStruct*) GetSearchPayload(VUser2); if (User1->Idle != User2->Idle) return User1->Idle > User2->Idle; return strcasecmp(ChrPtr(User1->UserName), ChrPtr(User2->UserName)); } int GetWholistSection(HashList *List, time_t now, StrBuf *Buf, const char *FilterName, long FNLen) { wcsession *WCC = WC; UserStateStruct *User, *OldUser; void *VOldUser; size_t BufLen; const char *Pos; serv_puts("RWHO"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { while (BufLen = StrBuf_ServGetln(Buf), ((BufLen >= 0) && ((BufLen != 3) || strcmp(ChrPtr(Buf), "000")))) { if (BufLen <= 0) continue; Pos = NULL; User = (UserStateStruct*) malloc(sizeof(UserStateStruct)); User->Session = StrBufExtractNext_int(Buf, &Pos, '|'); User->UserName = NewStrBufPlain(NULL, BufLen); StrBufExtract_NextToken(User->UserName, Buf, &Pos, '|'); User->Room = NewStrBufPlain(NULL, BufLen); StrBufExtract_NextToken(User->Room, Buf, &Pos, '|'); User->Host = NewStrBufPlain(NULL, BufLen); StrBufExtract_NextToken(User->Host, Buf, &Pos, '|'); User->UserAgent = NewStrBufPlain(NULL, BufLen); StrBufExtract_NextToken(User->UserAgent, Buf, &Pos, '|'); User->LastActive = StrBufExtractNext_long(Buf, &Pos, '|'); StrBufSkip_NTokenS(Buf, &Pos, '|', 3); User->RealRoom = NewStrBufPlain(NULL, BufLen); StrBufExtract_NextToken(User->RealRoom, Buf, &Pos, '|'); User->RealHost = NewStrBufPlain(NULL, BufLen); StrBufExtract_NextToken(User->RealHost, Buf, &Pos, '|'); User->Idle = (now - User->LastActive) > 900L; User->IdleSince = (now - User->LastActive) / 60; User->SessionCount = 1; if (FilterName == NULL) { if (GetHash(List, SKEY(User->UserName), &VOldUser)) { OldUser = VOldUser; OldUser->SessionCount++; if (!User->Idle) { if (User->Session == WCC->ctdl_pid) OldUser->Session = User->Session; OldUser->Idle = User->Idle; OldUser->LastActive = User->LastActive; } DestroyUserStruct(User); } else Put(List, SKEY(User->UserName), User, DestroyUserStruct); } else { if (strcmp(FilterName, ChrPtr(User->UserName)) == 0) { Put(List, SKEY(User->UserName), User, DestroyUserStruct); } else { DestroyUserStruct(User); } } } if (FilterName == NULL) SortByPayload(List, CompareUserStruct); return 1; } else { return 0; } } /* * end session */ void terminate_session(void) { char buf[SIZ]; serv_printf("TERM %s", bstr("which_session")); serv_getln(buf, sizeof buf); url_do_template(); } /* * Change your session info (fake roomname and hostname) */ void edit_me(void) { char buf[SIZ]; output_headers(1, 0, 0, 0, 0, 0); if (havebstr("change_room_name_button")) { serv_printf("RCHG %s", bstr("fake_roomname")); serv_getln(buf, sizeof buf); do_template("who"); } else if (havebstr("change_host_name_button")) { serv_printf("HCHG %s", bstr("fake_hostname")); serv_getln(buf, sizeof buf); do_template("who"); } else if (havebstr("change_user_name_button")) { serv_printf("UCHG %s", bstr("fake_username")); serv_getln(buf, sizeof buf); do_template("who"); } else if (havebstr("cancel_button")) { do_template("who"); } else { do_template("who_edit"); } end_burst(); } void _terminate_session(void) { slrp_highest(); terminate_session(); } HashList *GetWholistHash(StrBuf *Target, WCTemplputParams *TP) { const char *ch = NULL; int HashUniq = 1; long len; StrBuf *FilterNameStr = NULL; StrBuf *Buf; HashList *List; time_t now; Buf = NewStrBuf(); serv_puts("TIME"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { const char *pos = ChrPtr(Buf) + 4; now = StrBufExtractNext_long(Buf, &pos, '|'); } else { now = time(NULL); } if (HaveTemplateTokenString(NULL, TP, 2, &ch, &len)) { FilterNameStr = NewStrBuf(); GetTemplateTokenString(FilterNameStr, TP, 2, &ch, &len); HashUniq = 0; } List = NewHash(HashUniq, NULL); GetWholistSection(List, now, Buf, ch, len); FreeStrBuf(&Buf); FreeStrBuf(&FilterNameStr); return List; } void DeleteWholistHash(HashList **KillMe) { DeleteHash(KillMe); } void tmplput_who_username(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendTemplate(Target, TP, User->UserName, 0); } void tmplput_who_UserAgent(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendTemplate(Target, TP, User->UserAgent, 0); } void tmplput_who_room(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendTemplate(Target, TP, User->Room, 0); } void tmplput_who_host(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendTemplate(Target, TP, User->Host, 0); } void tmplput_who_realroom(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendTemplate(Target, TP, User->RealRoom, 0); } int conditional_who_realroom(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); return StrLength(User->RealRoom) > 0; } void tmplput_who_realhost(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendTemplate(Target, TP, User->RealHost, 0); } int conditional_who_realhost(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); return StrLength(User->RealHost) > 0; } void tmplput_who_lastactive(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendPrintf(Target, "%d", User->LastActive); } void tmplput_who_idlesince(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendPrintf(Target, "%d", User->IdleSince); } void tmplput_who_session(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendPrintf(Target, "%d", User->Session); } int conditional_who_idle(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); return User->Idle; } int conditional_who_nsessions(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); return User->SessionCount; } void tmplput_who_nsessions(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); StrBufAppendPrintf(Target, "%d", User->SessionCount); } int conditional_who_isme(StrBuf *Target, WCTemplputParams *TP) { UserStateStruct *User = (UserStateStruct*) CTX(CTX_WHO); return (User->Session == WC->ctdl_pid); } void InitModule_WHO (void) { RegisterCTX(CTX_WHO); WebcitAddUrlHandler(HKEY("terminate_session"), "", 0, _terminate_session, 0); WebcitAddUrlHandler(HKEY("edit_me"), "", 0, edit_me, 0); RegisterIterator("WHOLIST", 1, NULL, GetWholistHash, NULL, DeleteWholistHash, CTX_WHO, CTX_NONE, IT_NOFLAG); RegisterNamespace("WHO:NAME", 0, 1, tmplput_who_username, NULL, CTX_WHO); RegisterNamespace("WHO:USERAGENT", 0, 1, tmplput_who_UserAgent, NULL, CTX_WHO); RegisterNamespace("WHO:ROOM", 0, 1, tmplput_who_room, NULL, CTX_WHO); RegisterNamespace("WHO:HOST", 0, 1, tmplput_who_host, NULL, CTX_WHO); RegisterNamespace("WHO:REALROOM", 0, 1, tmplput_who_realroom, NULL, CTX_WHO); RegisterNamespace("WHO:REALHOST", 0, 1, tmplput_who_realhost, NULL, CTX_WHO); RegisterNamespace("WHO:LASTACTIVE", 0, 1, tmplput_who_lastactive, NULL, CTX_WHO); RegisterNamespace("WHO:IDLESINCE", 0, 1, tmplput_who_idlesince, NULL, CTX_WHO); RegisterNamespace("WHO:SESSION", 0, 1, tmplput_who_session, NULL, CTX_WHO); RegisterNamespace("WHO:NSESSIONS", 0, 1, tmplput_who_nsessions, NULL, CTX_WHO); RegisterNamespace("WHO:NSESSIONS", 0, 1, tmplput_who_nsessions, NULL, CTX_WHO); RegisterConditional("WHO:IDLE", 1, conditional_who_idle, CTX_WHO); RegisterConditional("WHO:NSESSIONS", 1, conditional_who_nsessions, CTX_WHO); RegisterConditional("WHO:ISME", 1, conditional_who_isme, CTX_WHO); RegisterConditional("WHO:REALROOM", 1, conditional_who_realroom, CTX_WHO); RegisterConditional("WHO:REALHOST", 1, conditional_who_realhost, CTX_WHO); } webcit-dfsg.orig/paging.c0000644000175000017500000000764013223341037015417 0ustar michaelmichael/* * This module handles instant message related functions. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /* * display the form for paging (x-messaging) another user */ void display_page(void) { char recp[SIZ]; strcpy(recp, bstr("recp")); output_headers(1, 1, 1, 0, 0, 0); wc_printf("
\n"); wc_printf("

"); wc_printf(_("Send instant message")); wc_printf("

"); wc_printf("
\n"); wc_printf("
\n"); wc_printf("
\n"); wc_printf(_("Send an instant message to: ")); escputs(recp); wc_printf("
\n"); wc_printf("
\n"); wc_printf("\n", WC->nonce); wc_printf("\n"); wc_printf("
\n"); wc_printf("\n"); wc_printf(_("Enter message text:")); wc_printf("
"); wc_printf("\n"); wc_printf("

\n"); wc_printf("", _("Send message")); wc_printf("
\n", _("Cancel")); wc_printf("\n"); wc_printf("
\n"); wDumpContent(1); } /* * page another user */ void page_user(void) { char recp[256]; StrBuf *Line; safestrncpy(recp, bstr("recp"), sizeof recp); if (!havebstr("send_button")) { AppendImportantMessage(_("Message was not sent."), -1); } else { Line = NewStrBuf(); serv_printf("SEXP %s|-", recp); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 0, 0) == 4) { char buf[256]; text_to_server(bstr("msgtext")); serv_puts("000"); stresc(buf, 256, recp, 0, 0); AppendImportantMessage(buf, -1); AppendImportantMessage(_("Message has been sent to "), -1); } } url_do_template(); } /* * display page popup * If there are instant messages waiting, and we notice that we haven't checked them in * a while, it probably means that we need to open the instant messenger window. */ int Conditional_PAGE_WAITING(StrBuf *Target, WCTemplputParams *TP) { int len; char buf[SIZ]; /** JavaScript function to alert the user that popups are probably blocked */ /** First, do the check as part of our page load. */ serv_puts("NOOP"); len = serv_getln(buf, sizeof buf); if ((len >= 3) && (buf[3] == '*')) { if ((time(NULL) - WC->last_pager_check) > 60) { return 1; } } return 0; /* Then schedule it to happen again a minute from now if the user is idle. */ } void ajax_send_instant_message(void) { char recp[256]; char buf[256]; safestrncpy(recp, bstr("recp"), sizeof recp); serv_printf("SEXP %s|-", recp); serv_getln(buf, sizeof buf); if (buf[0] == '4') { text_to_server(bstr("msg")); serv_puts("000"); } escputs(buf); /* doesn't really matter what we return - the client ignores it */ } void InitModule_PAGING (void) { WebcitAddUrlHandler(HKEY("display_page"), "", 0, display_page, 0); WebcitAddUrlHandler(HKEY("page_user"), "", 0, page_user, 0); WebcitAddUrlHandler(HKEY("ajax_send_instant_message"), "", 0, ajax_send_instant_message, AJAX); RegisterConditional("COND:PAGE:WAITING", 0, Conditional_PAGE_WAITING, CTX_NONE); } void SessionDestroyModule_PAGING (wcsession *sess) { /* nothing here anymore */ } webcit-dfsg.orig/paramhandling.c0000644000175000017500000004274713223341037016766 0ustar michaelmichael/* * parse urlparts and post data * * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" /* uncomment to see all parameters sent to the server by the browser. */ /* #define DEBUG_URLSTRINGS */ void free_url(void *U) { urlcontent *u = (urlcontent*) U; FreeStrBuf(&u->url_data); if (u->sub != NULL) { DeleteHash(&u->sub); } free(u); } void PutSubstructUrlKey(HashList *list, urlcontent *u, char **keys, long *lengths, int max, int which){ void *vUrl; urlcontent *subu; HashList *thisList = list; if (GetHash(list, keys[which], lengths[which], &vUrl) && (vUrl != NULL)) { subu = (urlcontent*) vUrl; if (subu->sub == NULL) { subu->sub = NewHash(1, NULL); } thisList = subu->sub; } else if (which < max) { subu = (urlcontent *) malloc(sizeof(urlcontent)); memcpy(subu->url_key, keys[which], lengths[which]); subu->klen = lengths[which]; subu->url_data = NULL; subu->sub = NewHash(1, NULL); Put(list, subu->url_key, subu->klen, subu, free_url); thisList = subu->sub; } if (which >= max) { Put(thisList, keys[which], lengths[which], u, free_url); } else { PutSubstructUrlKey(subu->sub, u, keys, lengths, max, which + 1); } } void PutUrlKey(HashList *urlstrings, urlcontent *u, int have_colons) { if (have_colons == 0) { Put(urlstrings, u->url_key, u->klen, u, free_url); } else { char *keys[10]; long lengths[10]; int i = 0; char *pch; char *pchs; char *pche; memset(&keys, 0, sizeof(keys)); memset(&lengths, 0, sizeof(lengths)); pchs = pch = u->url_key; pche = u->url_key + u->klen; while ((i < 10) && (pch <= pche)) { if ((have_colons == 2) && (*pch == '%') && (*(pch + 1) == '3') && ((*(pch + 2) == 'A') || (*(pch + 1) == 'a') )) { *pch = '\0'; if (i == 0) { /* Separate the toplevel key : */ u->klen = pch - pchs; } /* sub-section: */ keys[i] = pchs; lengths[i] = pch - pchs; pch += 3; pchs = pch; i++; } else if ((have_colons == 1) && (*pch == ':')) { *pch = '\0'; if (i == 0) { /* Separate the toplevel key : */ u->klen = pch - pchs; } /* sub-section: */ keys[i] = pchs; lengths[i] = pch - pchs; pch++; pchs = pch; i++; } else if (pch == pche){ /* sub-section: */ keys[i] = pchs; lengths[i] = pch - pchs; i++; break; } else { pch ++; } } PutSubstructUrlKey(urlstrings, u, keys, lengths, i - 1, 0); } } /* * Extract variables from the URL. */ void ParseURLParams(StrBuf *url) { const char *aptr, *bptr, *eptr, *up = NULL; int len, keylen = 0; urlcontent *u = NULL; wcsession *WCC = WC; if (WCC->Hdr->urlstrings == NULL) { WCC->Hdr->urlstrings = NewHash(1, NULL); } eptr = ChrPtr(url) + StrLength(url); up = ChrPtr(url); while ((up < eptr) && (!IsEmptyStr(up))) { int have_colon = 0; aptr = up; while ((aptr < eptr) && (*aptr != '\0') && (*aptr != '=')) { if (*aptr == ':') { have_colon = 1; } else if ((*aptr == '%') && (*(aptr + 1) == '3') && ((*(aptr + 2) == 'A') || (*(aptr + 1) == 'a') )) { have_colon = 2; } aptr++; } if (*aptr != '=') { return; } aptr++; bptr = aptr; while ((bptr < eptr) && (*bptr != '\0') && (*bptr != '&') && (*bptr != '?') && (*bptr != ' ')) { bptr++; } keylen = aptr - up - 1; /* -1 -> '=' */ if (keylen > sizeof(u->url_key)) { syslog(LOG_WARNING, "%s:%d: invalid url_key of size %d in string size %ld", __FILE__, __LINE__, keylen, (long)sizeof(u->url_key) ); } if (keylen < 0) { syslog(LOG_WARNING, "%s:%d: invalid url_key of size %d", __FILE__, __LINE__, keylen); free(u); return; } u = (urlcontent *) malloc(sizeof(urlcontent)); memcpy(u->url_key, up, keylen); u->url_key[keylen] = '\0'; u->klen = keylen; u->sub = NULL; if (strncmp(u->url_key, "__", 2) != 0) { len = bptr - aptr; u->url_data = NewStrBufPlain(aptr, len); StrBufUnescape(u->url_data, 1); #ifdef DEBUG_URLSTRINGS syslog(LOG_DEBUG, "%s = [%d] %s\n", u->url_key, StrLength(u->url_data), ChrPtr(u->url_data)); #endif PutUrlKey(WCC->Hdr->urlstrings, u, have_colon); } else { len = bptr - aptr; u->url_data = NewStrBufPlain(aptr, len); StrBufUnescape(u->url_data, 1); syslog(LOG_WARNING, "REJECTED because of __ is internal only: %s = [%d] %s\n", u->url_key, StrLength(u->url_data), ChrPtr(u->url_data)); free_url(u); } up = bptr; ++up; } } /* * free urlstring memory */ void free_urls(void) { DeleteHash(&WC->Hdr->urlstrings); } /* * Diagnostic function to display the contents of all variables */ void dump_vars(void) { wcsession *WCC = WC; urlcontent *u; void *U; long HKLen; const char *HKey; HashPos *Cursor; Cursor = GetNewHashPos (WCC->Hdr->urlstrings, 0); while (GetNextHashPos(WCC->Hdr->urlstrings, Cursor, &HKLen, &HKey, &U)) { u = (urlcontent*) U; wc_printf("%38s = %s\n", u->url_key, ChrPtr(u->url_data)); } } /* * Return the value of a variable supplied to the current web page (from the url or a form) */ const char *XBstr(const char *key, size_t keylen, size_t *len) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) { *len = StrLength(((urlcontent *)U)->url_data); return ChrPtr(((urlcontent *)U)->url_data); } else { *len = 0; return (""); } } const char *XBSTR(const char *key, size_t *len) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, strlen (key), &U)){ *len = StrLength(((urlcontent *)U)->url_data); return ChrPtr(((urlcontent *)U)->url_data); } else { *len = 0; return (""); } } const char *BSTR(const char *key) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, strlen (key), &U)) return ChrPtr(((urlcontent *)U)->url_data); else return (""); } const char *Bstr(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) return ChrPtr(((urlcontent *)U)->url_data); else return (""); } const StrBuf *SBSTR(const char *key) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, strlen (key), &U)) return ((urlcontent *)U)->url_data; else return NULL; } const StrBuf *SBstr(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) return ((urlcontent *)U)->url_data; else return NULL; } long LBstr(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) return StrTol(((urlcontent *)U)->url_data); else return (0); } int IBstr(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) return StrTol(((urlcontent *)U)->url_data); else return (0); } int IBSTR(const char *key) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, strlen(key), &U)) return StrToi(((urlcontent *)U)->url_data); else return (0); } int HaveBstr(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) return (StrLength(((urlcontent *)U)->url_data) != 0); else return (0); } int YesBstr(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, keylen, &U)) return strcmp( ChrPtr(((urlcontent *)U)->url_data), "yes") == 0; else return (0); } int YESBSTR(const char *key) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, strlen(key), &U)) return strcmp( ChrPtr(((urlcontent *)U)->url_data), "yes") == 0; else return (0); } /* * Return a sub array that was separated by a colon: */ HashList* getSubStruct(const char *key, size_t keylen) { void *U; if ((WC->Hdr->urlstrings != NULL) && GetHash(WC->Hdr->urlstrings, key, strlen(key), &U)) return ((urlcontent *)U)->sub; else return NULL; } /* * Return the value of a variable of a substruct provided by getSubStruct */ const char *XSubBstr(HashList *sub, const char *key, size_t keylen, size_t *len) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { *len = StrLength(((urlcontent *)U)->url_data); return ChrPtr(((urlcontent *)U)->url_data); } else { *len = 0; return (""); } } const char *SubBstr(HashList *sub, const char *key, size_t keylen) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { return ChrPtr(((urlcontent *)U)->url_data); } else return (""); } const StrBuf *SSubBstr(HashList *sub, const char *key, size_t keylen) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { return ((urlcontent *)U)->url_data; } else return NULL; } long LSubBstr(HashList *sub, const char *key, size_t keylen) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { return StrTol(((urlcontent *)U)->url_data); } else return (0); } int ISubBstr(HashList *sub, const char *key, size_t keylen) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { return StrTol(((urlcontent *)U)->url_data); } else return (0); } int HaveSubBstr(HashList *sub, const char *key, size_t keylen) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { return (StrLength(((urlcontent *)U)->url_data) != 0); } else return (0); } int YesSubBstr(HashList *sub, const char *key, size_t keylen) { void *U; if ((sub != NULL) && GetHash(sub, key, keylen, &U)) { return strcmp( ChrPtr(((urlcontent *)U)->url_data), "yes") == 0; } else return (0); } /* * This function is called by the MIME parser to handle data uploaded by * the browser. Form data, uploaded files, and the data from HTTP PUT * operations (such as those found in GroupDAV) all arrive this way. * * name Name of the item being uploaded * filename Filename of the item being uploaded * partnum MIME part identifier (not needed) * disp MIME content disposition (not needed) * content The actual data * cbtype MIME content-type * cbcharset Character set * length Content length * encoding MIME encoding type (not needed) * cbid Content ID (not needed) * userdata Not used here */ void upload_handler(char *name, char *filename, char *partnum, char *disp, void *content, char *cbtype, char *cbcharset, size_t length, char *encoding, char *cbid, void *userdata) { wcsession *WCC = WC; urlcontent *u; long keylen; #ifdef DEBUG_URLSTRINGS syslog(LOG_DEBUG, "upload_handler() name=%s, type=%s, len="SIZE_T_FMT, name, cbtype, length); #endif if (WCC->Hdr->urlstrings == NULL) WCC->Hdr->urlstrings = NewHash(1, NULL); /* Form fields */ if ( (length > 0) && (IsEmptyStr(cbtype)) ) { u = (urlcontent *) malloc(sizeof(urlcontent)); keylen = safestrncpy(u->url_key, name, sizeof(u->url_key)); u->url_data = NewStrBufPlain(content, length); u->klen = keylen; u->sub = NULL; if (strncmp(u->url_key, "__", 2) != 0) { PutUrlKey(WCC->Hdr->urlstrings, u, (strchr(u->url_key, ':') != NULL)); } else { syslog(LOG_INFO, "REJECTED because of __ is internal only: %s = [%d] %s\n", u->url_key, StrLength(u->url_data), ChrPtr(u->url_data)); free_url(u); } #ifdef DEBUG_URLSTRINGS syslog(LOG_DEBUG, "Key: <%s> len: [%d] Data: <%s>", u->url_key, StrLength(u->url_data), ChrPtr(u->url_data)); #endif } /* Uploaded files */ if ( (length > 0) && (!IsEmptyStr(cbtype)) ) { WCC->upload = NewStrBufPlain(content, length); WCC->upload_length = length; WCC->upload_filename = NewStrBufPlain(filename, -1); safestrncpy(WCC->upload_content_type, cbtype, sizeof(WC->upload_content_type)); #ifdef DEBUG_URLSTRINGS syslog(LOG_DEBUG, "File: <%s> len: [%ld]", filename, (long int)length); #endif } } void PutBstr(const char *key, long keylen, StrBuf *Value) { urlcontent *u; if(keylen >= sizeof(u->url_key)) { syslog(LOG_WARNING, "%s:%d: invalid url_key of size %ld", __FILE__, __LINE__, keylen); FreeStrBuf(&Value); return; } u = (urlcontent*)malloc(sizeof(urlcontent)); memcpy(u->url_key, key, keylen + 1); u->klen = keylen; u->url_data = Value; u->sub = NULL; Put(WC->Hdr->urlstrings, u->url_key, keylen, u, free_url); } void PutlBstr(const char *key, long keylen, long Value) { StrBuf *Buf; Buf = NewStrBufPlain(NULL, sizeof(long) * 16); StrBufPrintf(Buf, "%ld", Value); PutBstr(key, keylen, Buf); } int ConditionalBstr(StrBuf *Target, WCTemplputParams *TP) { if(TP->Tokens->nParameters == 3) return HaveBstr(TKEY(2)); else { if (IS_NUMBER(TP->Tokens->Params[3]->Type)) { return LBstr(TKEY(2)) == GetTemplateTokenNumber(Target, TP, 3, 0); } else { const char *pch; long len; GetTemplateTokenString (Target, TP, 3, &pch, &len); return strcmp(Bstr(TKEY(2)), pch) == 0; } } } void tmplput_bstr(StrBuf *Target, WCTemplputParams *TP) { const StrBuf *Buf = SBstr(TKEY(0)); if (Buf != NULL) StrBufAppendTemplate(Target, TP, Buf, 1); } void tmplput_bstrforward(StrBuf *Target, WCTemplputParams *TP) { const StrBuf *Buf = SBstr(TKEY(0)); if (Buf != NULL) { StrBufAppendBufPlain(Target, HKEY("?"), 0); StrBufAppendBufPlain(Target, TKEY(0), 0); StrBufAppendBufPlain(Target, HKEY("="), 0); StrBufAppendTemplate(Target, TP, Buf, 1); } } void diagnostics(void) { output_headers(1, 1, 1, 0, 0, 0); wc_printf("Session: %d
\n", WC->wc_session); wc_printf("Command:
\n");
/*	
StrEscAppend(WC->WBuf, NULL, WC->UrlFragment1, 0, 0);
	wc_printf("
\n"); StrEscAppend(WC->WBuf, NULL, WC->UrlFragment12 0, 0); wc_printf("
\n"); StrEscAppend(WC->WBuf, NULL, WC->UrlFragment3, 0, 0); */ wc_printf("

\n"); wc_printf("Variables:
\n");
	dump_vars();
	wc_printf("

\n"); wDumpContent(1); } void tmplput_url_part(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Name = NULL; StrBuf *UrlBuf = NULL; wcsession *WCC = WC; if (WCC != NULL) { long n; n = GetTemplateTokenNumber(Target, TP, 0, 0); if (n == 0) { if (WCC->Hdr->HR.Handler != NULL) UrlBuf = Name = WCC->Hdr->HR.Handler->Name; } else if (n == 1) { UrlBuf = NewStrBuf(); StrBufExtract_token(UrlBuf, WCC->Hdr->HR.ReqLine, 0, '/'); } else { UrlBuf = NewStrBuf(); StrBufExtract_token(UrlBuf, WCC->Hdr->HR.ReqLine, 1, '/'); } if (UrlBuf == NULL) { LogTemplateError(Target, "urlbuf", ERR_PARM1, TP, "not set."); } StrBufAppendTemplate(Target, TP, UrlBuf, 2); if (Name == NULL) FreeStrBuf(&UrlBuf); } } typedef struct __BstrPair { StrBuf *x; StrBuf *y; }BstrPair; CtxType CTX_BSTRPAIRS = CTX_NONE; void HFreeBstrPair(void *pv) { BstrPair *p = (BstrPair*) pv; FreeStrBuf(&p->x); FreeStrBuf(&p->y); free(pv); } HashList *iterate_GetBstrPairs(StrBuf *Target, WCTemplputParams *TP) { StrBuf *X, *Y; const char *ch = NULL; long len; const StrBuf *TheBStr; BstrPair *OnePair; HashList *List; const char *Pos = NULL; int i = 0; if (HaveTemplateTokenString(NULL, TP, 2, &ch, &len)) { GetTemplateTokenString(Target, TP, 2, &ch, &len); } else { return NULL; } TheBStr = SBstr(ch, len); if ((TheBStr == NULL) || (StrLength(TheBStr) == 0)) return NULL; List = NewHash(1, NULL); while (Pos != StrBufNOTNULL) { X = NewStrBufPlain(NULL, StrLength(TheBStr)); StrBufExtract_NextToken(X, TheBStr, &Pos, '|'); if (Pos == StrBufNOTNULL) { FreeStrBuf(&X); DeleteHash(&List); return NULL; } Y = NewStrBufPlain(NULL, StrLength(TheBStr)); StrBufExtract_NextToken(Y, TheBStr, &Pos, '|'); OnePair = (BstrPair*)malloc(sizeof(BstrPair)); OnePair->x = X; OnePair->y = Y; Put(List, IKEY(i), OnePair, HFreeBstrPair); i++; } return List; } void tmplput_bstr_pair(StrBuf *Target, WCTemplputParams *TP, int XY) { BstrPair *Pair = (BstrPair*) CTX(CTX_BSTRPAIRS); StrBufAppendTemplate(Target, TP, (XY)?Pair->y:Pair->x, 0); } void tmplput_bstr_pair_x(StrBuf *Target, WCTemplputParams *TP) { tmplput_bstr_pair(Target, TP, 0); } void tmplput_bstr_pair_y(StrBuf *Target, WCTemplputParams *TP) { tmplput_bstr_pair(Target, TP, 1); } void InitModule_PARAMHANDLING (void) { RegisterCTX(CTX_BSTRPAIRS); WebcitAddUrlHandler(HKEY("diagnostics"), "", 0, diagnostics, NEED_URL); RegisterIterator("ITERATE:BSTR:PAIR", 1, NULL, iterate_GetBstrPairs, NULL, DeleteHash, CTX_BSTRPAIRS, CTX_NONE, IT_NOFLAG); RegisterNamespace("BSTR:PAIR:X", 1, 2, tmplput_bstr_pair_x, NULL, CTX_BSTRPAIRS); RegisterNamespace("BSTR:PAIR:Y", 1, 2, tmplput_bstr_pair_y, NULL, CTX_BSTRPAIRS); RegisterConditional("COND:BSTR", 1, ConditionalBstr, CTX_NONE); RegisterNamespace("BSTR", 1, 2, tmplput_bstr, NULL, CTX_NONE); RegisterNamespace("BSTR:FORWARD", 1, 2, tmplput_bstrforward, NULL, CTX_NONE); RegisterNamespace("URLPART", 1, 2, tmplput_url_part, NULL, CTX_NONE); } void SessionAttachModule_PARAMHANDLING (wcsession *sess) { sess->Hdr->urlstrings = NewHash(1,NULL); } void SessionDetachModule_PARAMHANDLING (wcsession *sess) { DeleteHash(&sess->Hdr->urlstrings); FreeStrBuf(&sess->upload_filename); } webcit-dfsg.orig/http_datestring.c0000644000175000017500000000365013223341037017352 0ustar michaelmichael#include "webcit.h" /** HTTP Months - do not translate - these are not for human consumption */ static char *httpdate_months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; /** HTTP Weekdays - do not translate - these are not for human consumption */ static char *httpdate_weekdays[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; /** * \brief Supplied with a unix timestamp, generate a textual time/date stamp * \param buf the return buffer * \param n the size of the buffer * \param xtime the time to format as string */ void http_datestring(char *buf, size_t n, time_t xtime) { struct tm t; long offset; char offsign; localtime_r(&xtime, &t); /** Convert "seconds west of GMT" to "hours/minutes offset" */ #ifdef HAVE_STRUCT_TM_TM_GMTOFF offset = t.tm_gmtoff; #else offset = timezone; #endif if (offset > 0) { offsign = '+'; } else { offset = 0L - offset; offsign = '-'; } offset = ( (offset / 3600) * 100 ) + ( offset % 60 ); snprintf(buf, n, "%s, %02d %s %04d %02d:%02d:%02d %c%04ld", httpdate_weekdays[t.tm_wday], t.tm_mday, httpdate_months[t.tm_mon], t.tm_year + 1900, t.tm_hour, t.tm_min, t.tm_sec, offsign, offset ); } void tmplput_nowstr(StrBuf *Target, WCTemplputParams *TP) { char buf[64]; long bufused; time_t now; now = time(NULL); #ifdef HAVE_SOLARIS_LOCALTIME_R asctime_r(localtime(&now), buf, sizeof(buf)); #else asctime_r(localtime(&now), buf); #endif bufused = strlen(buf); if ((bufused > 0) && (buf[bufused - 1] == '\n')) { buf[bufused - 1] = '\0'; bufused --; } StrEscAppend(Target, NULL, buf, 0, 0); } void tmplput_nowno(StrBuf *Target, WCTemplputParams *TP) { time_t now; now = time(NULL); StrBufAppendPrintf(Target, "%ld", now); } void InitModule_DATE (void) { RegisterNamespace("DATE:NOW:STR", 0, 0, tmplput_nowstr, NULL, CTX_NONE); RegisterNamespace("DATE:NOW:NO", 0, 0, tmplput_nowno, NULL, CTX_NONE); } webcit-dfsg.orig/calendar_tools.c0000644000175000017500000002314613223341037017142 0ustar michaelmichael/* * Miscellaneous functions which handle calendar components. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "time.h" #include "calendar.h" /* Hour strings */ char *hourname[] = { "12am", "1am", "2am", "3am", "4am", "5am", "6am", "7am", "8am", "9am", "10am", "11am", "12pm", "1pm", "2pm", "3pm", "4pm", "5pm", "6pm", "7pm", "8pm", "9pm", "10pm", "11pm" }; /* * The display_icaltimetype_as_webform() and icaltime_from_webform() functions * handle the display and editing of date/time properties in web pages. The * first one converts an icaltimetype into valid HTML markup -- a series of form * fields for editing the date and time. When the user submits the form, the * results can be fed back into the second function, which turns it back into * an icaltimetype. The "prefix" string required by both functions is prepended * to all field names. This allows a form to contain more than one date/time * property (for example, a start and end time) by ensuring the field names are * unique within the form. * * NOTE: These functions assume that the icaltimetype being edited is in UTC, and * will convert to/from local time for editing. "local" in this case is assumed * to be the time zone in which the WebCit server is running. A future improvement * might be to allow the user to specify his/her timezone. */ void display_icaltimetype_as_webform(struct icaltimetype *t, char *prefix, int date_only) { wcsession *WCC = WC; int i; time_t now; struct tm tm_now; time_t tt; struct tm tm; int all_day_event = 0; int time_format; char timebuf[32]; time_format = get_time_format_cached (); now = time(NULL); localtime_r(&now, &tm_now); if (t == NULL) return; if (t->is_date) all_day_event = 1; tt = icaltime_as_timet(*t); if (all_day_event) { gmtime_r(&tt, &tm); } else { localtime_r(&tt, &tm); } wc_printf("WBuf, prefix, -1, 0); wc_printf("\" id=\""); StrBufAppendBufPlain(WCC->WBuf, prefix, -1, 0); wc_printf("\" size=\"10\" maxlength=\"10\" value=\""); wc_strftime(timebuf, 32, "%Y-%m-%d", &tm); StrBufAppendBufPlain(WCC->WBuf, timebuf, -1, 0); wc_printf("\">"); StrBufAppendPrintf(WC->trailing_javascript, "attachDatePicker('"); StrBufAppendPrintf(WC->trailing_javascript, prefix); StrBufAppendPrintf(WC->trailing_javascript, "', '%s');\n", get_selected_language()); /* If we're editing a date only, we still generate the time boxes, but we hide them. * This keeps the data model consistent. */ if (date_only) { wc_printf("
"); } wc_printf("WBuf, prefix, -1, 0); wc_printf("_time\">"); wc_printf(_("Hour: ")); wc_printf("\n"); wc_printf(_("Minute: ")); wc_printf("\n"); if (date_only) { wc_printf("
"); } } /* * Get date/time from a web form and convert it into an icaltimetype struct. */ void icaltime_from_webform(struct icaltimetype *t, char *prefix) { char vname[32]; if (!t) return; /* Stuff with zero values */ memset(t, 0, sizeof(struct icaltimetype)); /* Get the year/month/date all in one shot -- it will be in ISO YYYY-MM-DD format */ sscanf((char*)BSTR(prefix), "%04d-%02d-%02d", &t->year, &t->month, &t->day); /* hour */ sprintf(vname, "%s_hour", prefix); t->hour = IBSTR(vname); /* minute */ sprintf(vname, "%s_minute", prefix); t->minute = IBSTR(vname); /* time zone is set to the default zone for this server */ t->is_utc = 0; t->is_date = 0; t->zone = get_default_icaltimezone(); } /* * Get date (no time) from a web form and convert it into an icaltimetype struct. */ void icaltime_from_webform_dateonly(struct icaltimetype *t, char *prefix) { if (!t) return; /* Stuff with zero values */ memset(t, 0, sizeof(struct icaltimetype)); /* Get the year/month/date all in one shot -- it will be in ISO YYYY-MM-DD format */ sscanf((char*)BSTR(prefix), "%04d-%02d-%02d", &t->year, &t->month, &t->day); /* time zone is set to the default zone for this server */ t->is_utc = 1; t->is_date = 1; } /* * Render a PARTSTAT parameter as a string (and put it in parentheses) */ void partstat_as_string(char *buf, icalproperty *attendee) { icalparameter *partstat_param; icalparameter_partstat partstat; strcpy(buf, _("(status unknown)")); partstat_param = icalproperty_get_first_parameter( attendee, ICAL_PARTSTAT_PARAMETER ); if (partstat_param == NULL) { return; } partstat = icalparameter_get_partstat(partstat_param); switch(partstat) { case ICAL_PARTSTAT_X: strcpy(buf, "(x)"); break; case ICAL_PARTSTAT_NEEDSACTION: strcpy(buf, _("(needs action)")); break; case ICAL_PARTSTAT_ACCEPTED: strcpy(buf, _("(accepted)")); break; case ICAL_PARTSTAT_DECLINED: strcpy(buf, _("(declined)")); break; case ICAL_PARTSTAT_TENTATIVE: strcpy(buf, _("(tenative)")); break; case ICAL_PARTSTAT_DELEGATED: strcpy(buf, _("(delegated)")); break; case ICAL_PARTSTAT_COMPLETED: strcpy(buf, _("(completed)")); break; case ICAL_PARTSTAT_INPROCESS: strcpy(buf, _("(in process)")); break; case ICAL_PARTSTAT_NONE: strcpy(buf, _("(none)")); break; } } /* * Utility function to encapsulate a subcomponent into a full VCALENDAR. * * We also scan for any date/time properties that reference timezones, and attach * those timezones along with the supplied subcomponent. (Increase the size of the array if you need to.) * * Note: if you change anything here, change it in Citadel server's ical_send_out_invitations() too. */ icalcomponent *ical_encapsulate_subcomponent(icalcomponent *subcomp) { icalcomponent *encaps; icalproperty *p; struct icaltimetype t; const icaltimezone *attached_zones[5] = { NULL, NULL, NULL, NULL, NULL }; int i; const icaltimezone *z; int num_zones_attached = 0; int zone_already_attached; if (subcomp == NULL) { syslog(LOG_WARNING, "ERROR: ical_encapsulate_subcomponent() called with NULL argument\n"); return NULL; } /* * If we're already looking at a full VCALENDAR component, this is probably an error. */ if (icalcomponent_isa(subcomp) == ICAL_VCALENDAR_COMPONENT) { syslog(LOG_WARNING, "ERROR: component sent to ical_encapsulate_subcomponent() already top level\n"); return subcomp; } /* search for... */ for (p = icalcomponent_get_first_property(subcomp, ICAL_ANY_PROPERTY); p != NULL; p = icalcomponent_get_next_property(subcomp, ICAL_ANY_PROPERTY)) { if ( (icalproperty_isa(p) == ICAL_COMPLETED_PROPERTY) || (icalproperty_isa(p) == ICAL_CREATED_PROPERTY) || (icalproperty_isa(p) == ICAL_DATEMAX_PROPERTY) || (icalproperty_isa(p) == ICAL_DATEMIN_PROPERTY) || (icalproperty_isa(p) == ICAL_DTEND_PROPERTY) || (icalproperty_isa(p) == ICAL_DTSTAMP_PROPERTY) || (icalproperty_isa(p) == ICAL_DTSTART_PROPERTY) || (icalproperty_isa(p) == ICAL_DUE_PROPERTY) || (icalproperty_isa(p) == ICAL_EXDATE_PROPERTY) || (icalproperty_isa(p) == ICAL_LASTMODIFIED_PROPERTY) || (icalproperty_isa(p) == ICAL_MAXDATE_PROPERTY) || (icalproperty_isa(p) == ICAL_MINDATE_PROPERTY) || (icalproperty_isa(p) == ICAL_RECURRENCEID_PROPERTY) ) { t = icalproperty_get_dtstart(p); /*/ it's safe to use dtstart for all of them */ if ((icaltime_is_valid_time(t)) && (z=icaltime_get_timezone(t), z)) { zone_already_attached = 0; for (i=0; i<5; ++i) { if (z == attached_zones[i]) { ++zone_already_attached; syslog(LOG_DEBUG, "zone already attached!!\n"); } } if ((!zone_already_attached) && (num_zones_attached < 5)) { syslog(LOG_DEBUG, "attaching zone %d!\n", num_zones_attached); attached_zones[num_zones_attached++] = z; } icalproperty_set_parameter(p, icalparameter_new_tzid(icaltimezone_get_tzid((icaltimezone *)z)) ); } } } /* Encapsulate the VEVENT component into a complete VCALENDAR */ encaps = icalcomponent_new(ICAL_VCALENDAR_COMPONENT); if (encaps == NULL) { syslog(LOG_WARNING, "ERROR: ical_encapsulate_subcomponent() could not allocate component\n"); return NULL; } /* Set the Product ID */ icalcomponent_add_property(encaps, icalproperty_new_prodid(PRODID)); /* Set the Version Number */ icalcomponent_add_property(encaps, icalproperty_new_version("2.0")); /* Attach any timezones we need */ if (num_zones_attached > 0) for (i=0; i # This file is distributed under the revised BSD license # Czakó Krisztián , 2009. # msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-11-12 23:46+0000\n" "Last-Translator: Czakó Krisztián \n" "Language-Team: \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-08-01 04:34+0000\n" "X-Generator: Launchpad (build 15719)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "elérhetőség ismeretlen" #: ../../availability.c:169 msgid "free" msgstr "Szabad" #: ../../availability.c:179 msgid "BUSY" msgstr "ELFOGLALT" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Grafika feltöltés megszakítva." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Nem töltött fel fájlt." #: ../../graphics.c:106 msgid "your photo" msgstr "az ön fényképe" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "a szoba ikonja" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "a belépési oldal üdvözlőképe" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "a kilépési reklám kép" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "az szint ikonja" #: ../../tasks.c:93 msgid "Completed?" msgstr "Befejezve?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Feladat neve" #: ../../tasks.c:97 msgid "Date due" msgstr "Esedékesség dátuma" #: ../../tasks.c:99 msgid "Category" msgstr "Kategória" #: ../../tasks.c:101 msgid "Show All" msgstr "Összes megjelenítése" #: ../../tasks.c:224 msgid "Edit task" msgstr "Feladat szerkesztése" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Összegzés:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Kezdési dátum:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Nincs dátum" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "vagy" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Időponthoz kötött" #: ../../tasks.c:289 msgid "Due date:" msgstr "Esedékesség dátuma:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Befejezve:" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategória:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Leírás:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Mentés" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Törlés" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Mégsem" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Névtelen feladat" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, fuzzy, c-format msgid "%d comments" msgstr "Parancs elküldése" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "újabb hozzászólás" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "régebbi hozzászólás" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "%s szerkesztése" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Változások mentése" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Megszakítva. %s nincs mentve." #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s elmentve." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Szoba infó" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Óra: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Perc: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(ismeretlen állapot)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(cselekvés szükséges)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(elfogadott)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(elutasított)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(feltételes)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegált)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(teljesített)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(folyamatban)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(nincs)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Azonosító/OpenID hozzárendelések kezelése" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Tényleg törölni kívánja ezt az OpenID-t?" #: ../../openid.c:47 msgid "(delete)" msgstr "(törlés)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "OpenID hozzáadása: " #: ../../openid.c:58 msgid "Attach" msgstr "Hozzárendel" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s nem engedélyezi a hitelesítést OpenID-val." #: ../../summary.c:128 msgid "(None)" msgstr "(Nincs)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Semmi)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() hiba! nem kaptam meg %d byte-t: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Törölt" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Új felhasználó" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Problémás felhasználó" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Helyi felhasználó" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Hálózati felhasználó" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Kedvelt felhasználó" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Egy hiba lépett fel." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Új felhasználók érvényesítése" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Nincs érvényesítésre váró felhasználó." #: ../../auth.c:617 msgid "very weak" msgstr "nagyon gyenge" #: ../../auth.c:620 msgid "weak" msgstr "gyenge" #: ../../auth.c:623 msgid "ok" msgstr "OK" #: ../../auth.c:627 msgid "strong" msgstr "erős" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Jelenlegi elérési szint: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Válassza ki ezen felhasználó hozzáférési szintjét:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Megszakítva. A jelszó nem változott." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Nem egyeznek. A jelszó nem változott." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Az üres jelszavak nem engedélyezettek." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Meghívó megbeszélésre" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Partner válasza az ön meghívására" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Közzétett esemény" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Ez egy ismeretlen típusú naptár bejegyzés." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Hely:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Dátum:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Kezdés dátuma/ideje:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Befejezés dátuma/ideje:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Ismétlődés" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Ez egy ismétlődő esemény" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Résztvevő:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Az a(z) '%s' frissítése, mely már létezik az ön naptárában." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Ez az esemény ütközik a(z) '%s' eseménnyel, mely már létezik az ön " "naptárában." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Frissítés:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "ÜTKÖZÉS:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Hogyan szeretne reagálni erre a meghívásra?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Elfogad" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Próbaképpen" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Visszautasít" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "A válasz elfogadásához és a naptár frissítéséhez kattintson a Frissítésre" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Frissítés" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Mellőzés" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Hiba történ a naptár bejegyzés értelmezése közben." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "Ön elfogadta ezt a megbeszélés meghívót. Bekerült az ön naptárába." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Ön próbaképpen elfogadta ezt a megbeszélés meghívót. 'Ceruzával' került be " "az ön naptárába." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Visszautasította ezt a megbeszélés meghívót. Ezért nem került be az " "ön naptárába." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Válasz ment a megbeszélés szervezőjének." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Az ön naptára frissült, hogy reagáljon az RSVP-re." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Figyelmen kívül hagyta ezt az RSVP-t. Az ön naptára nem frissült." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Naptár napi nézet kezdődik:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Naptár napi nézet végződik:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Hét első napja:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Hiba történt a(z) %s fájl beszerzése közben.\n" #: ../../event.c:71 msgid "seconds" msgstr "másodperc" #: ../../event.c:72 msgid "minutes" msgstr "perc" #: ../../event.c:73 msgid "hours" msgstr "óra" #: ../../event.c:74 msgid "days" msgstr "nap" #: ../../event.c:75 msgid "weeks" msgstr "hét" #: ../../event.c:76 msgid "months" msgstr "hónap" #: ../../event.c:77 msgid "years" msgstr "év" #: ../../event.c:78 msgid "never" msgstr "soha" #: ../../event.c:82 msgid "first" msgstr "első" #: ../../event.c:83 msgid "second" msgstr "második" #: ../../event.c:84 msgid "third" msgstr "harmadik" #: ../../event.c:85 msgid "fourth" msgstr "negyedik" #: ../../event.c:86 msgid "fifth" msgstr "ötödik" #: ../../event.c:89 msgid "Event" msgstr "Esemény" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Résztvevők:" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Esemény hozzáadása vagy szerkesztése" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Összegzés" #: ../../event.c:222 msgid "Location" msgstr "Hely" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Kezdet" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Egész napos esemény" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Befejezés" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Jegyzetek" #: ../../event.c:374 msgid "Organizer" msgstr "Szervező" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(ön a szervező)" #: ../../event.c:397 msgid "Show time as:" msgstr "Idő mutatása a következőképpen:" #: ../../event.c:420 msgid "Free" msgstr "Szabad" #: ../../event.c:428 msgid "Busy" msgstr "Elfoglalt" #: ../../event.c:445 msgid "(One per line)" msgstr "(Soronként egy)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Kapcsolatok" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Ismétlődési szabály" #: ../../event.c:522 msgid "Repeats every" msgstr "Ismétlődik minden" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "a következő munkanapokon:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "a hónap %s%d%s napján" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "a " #: ../../event.c:631 msgid "of the month" msgstr "a hónapnak" #: ../../event.c:660 msgid "every " msgstr "minden " #: ../../event.c:661 msgid "year on this date" msgstr "az év ezen napján" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "az összesen" #: ../../event.c:717 msgid "Recurrence range" msgstr "Ismétlődési időszak" #: ../../event.c:725 msgid "No ending date" msgstr "Nincs végső dátum" #: ../../event.c:732 msgid "Repeat this event" msgstr "Ismételje ezt az eseményt" #: ../../event.c:735 msgid "times" msgstr "ennyiszer" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Ismételje ezt az esemény eddig: " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Résztvevők elérhetőségének ellenőrzése" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Névtelen esemény" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Érvénytelen paraméter" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s törölve." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Több hozzáférésre van szükség ehhez a funkcióhoz." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 #, fuzzy msgid "You need to specify the email address you'd like to subscribe with." msgstr "Kérem adja meg a felhasználó nevet, amit használni szeretne." #: ../../messages.c:73 msgid "ERROR:" msgstr "HIBA:" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Megszakítva. Az üzenet nem lett beküldve." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automatikusan megszakítva, mert ön már elmentette ezt az üzenetet." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Üzenet elküldve.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Üzenet postázva.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Az üzenetet nem mozgattuk." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Hiba történt, miközben beszereztem ezt a részt: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Hiba történt, miközben beszereztem ezt a részt: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Csatol aláírást az email üzenetekhez?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Használja ezt az aláírást:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Alapértelmezett betűkészlet a levél fejléceihez:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Kedvelt email cím" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Kedvelt megjelenített név az email üzenetekhez" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Kedvelt megjelenített név a hirdetőtábla üzenetkehez" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Postafiók megjelenítési mód" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Kattintson bármely jegyzetre a szerkesztéshez." #: ../../paging.c:29 msgid "Send instant message" msgstr "Azonnali üzenet küldése" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Azonnali üzenet küldése ide: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Írja be az üzenet szövegét:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Üzenet küldése" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Üzenet nem lett elküldve." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Az üzenet elküldésre került ide: " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Megszakítva. A beállítások nem változtak." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Legyen ez a kezdőlap." #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Önnek mostantól nincs kezdőlapja." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Megszakítva. Változások nem kerültek mentésre." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "A változtatásait mentettük." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "%s felhasználó kirúgva a(z) %s szobából." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "%s felhasználó meghívva a(z) %s szobába." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Megszakítva. Nem lett új szoba létrehozva." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Szint törölve." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Új szint létrehozva." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Szoba lista nézet" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Mutasd az üres szinteket" #: ../../roomtokens.c:570 msgid "file" msgstr "fájl" #: ../../roomtokens.c:572 msgid "files" msgstr "fájlok" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Hirdetőtábla" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Levelek mappa" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Címjegyzék" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Naptár" #: ../../roomviews.c:57 msgid "Task List" msgstr "Feladatlista" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Jegyzetlista" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Naptárlista" #: ../../roomviews.c:61 msgid "Journal" msgstr "Napló" #: ../../roomviews.c:62 #, fuzzy msgid "Drafts" msgstr "Dátum" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Az ön rendszerének beállítása frissítve" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "A változások nem lettek mentve." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Az új felhasználó létrehozva." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(nincs név)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (munka)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (otthon)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobil)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Cím:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Ez a címlista üres." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Belső hiba történt." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Hiba" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Kapcsolat információ szerkesztése" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Megszólítás" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Keresztnév" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Középső név" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Vezetéknév" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Utótag" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Megjelenített név:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Megszólítás:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Szervezet:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Postafiók:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Város:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Megye:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Irányítószám:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Ország:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Otthoni telefon:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Munkahelyi telefon:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Mobiltelefon:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Fax szám:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Elsődleges Internet e-mail cím" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "További Internet e-mail címek" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Nem tudom értelmezni a névjegy fényképet\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Azonosítás szükséges" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "A program képtelen volt kapcsolódni vagy a kapcsolatot fenntartani a Citadel " "kiszolgálóval. Kérjük jelezze a problémát a rendszergazdának." #: ../../webcit.c:688 msgid "Read More..." msgstr "További információk" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' nem Wiki szoba." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Nincs '%s' nevű oldal itt." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Dátum" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Időformátum" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Kezdet:" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Kezdés dátuma:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Befejezés dátuma:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Dátum/idő:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Jegyzetek:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "Hét" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Óra" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Tárgy" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Futó esemény" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "szerkeszt" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Nem tudom hogyan jelenítsem meg. " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(nincs tárgy)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "A sor üres." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "eszköztár testre szabása" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Ikonok megjelenítése mint:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "képek és szöveg" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "csak képek" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "csak szöveg" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Válassza ki az ikonokat, melyeket a képernyőn balra, az eszköztárban " "szeretne látni." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Igen" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Nem" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Hely logó" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "A helyre jellemző ikon" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Az ön összefoglaló oldala" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Levél (bejövő)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Egy gyorsbillentyű az ön bejövő leveleihez" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Az ön személyes címjegyzéke" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Az ön személyes jegyzetei" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Egy gyorsbillentyű az ön személyes naptárához" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Feladatok" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Egy gyorsbillentyű az ön személyes feladatlistájához" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Szobák" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Erre az ikonra kattintva megtekintheti az összes elérhető szobát (vagy " "mappát)." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Ki van itt?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "Erre az ikonra kattintva megtekintheti az összes bejelentkezett felhasználó " "listáját." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Csevegés" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Erre az ikonra kattintva belép egy valós idejű csevegés módba azokkal a " "felhasználókkal, akik ugyan ebben a szobában vannak." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Haladó beállítások" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Hozzáférés a Citadel teljes funkcióinak menüjéhez" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel logó" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Megmutatja a 'Működteti a Citadel' ikont" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Rendszer Adminisztrációs Menü" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Szoba infó" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Helyi rendszer további címei" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Címtár domainek" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Levéltovábbító címek" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Levéltovábbító címek" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 #, fuzzy msgid "RBL hosts" msgstr "Levéltovábbító címek" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssassin kiszolgálók" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV clamd kiszolgálók" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Hálózati szolgáltatások" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 #, fuzzy msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "SMTP MTA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 #, fuzzy msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "SMTP MTA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Üzenet legnagyobb hossza" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Új szoba létrehozása" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Szoba neve: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Ezen a szinten van: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Szoba alapértelmezett nézete: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Szoba típusa:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Nyilvános (automatikusan megjelenik mindenkinek)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privát - rejtett (elérhető mindenkinek, aki tudja a nevét)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privát - jelszót igényel: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privát - csak meghívással" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Személyes (postafiók csak önnek)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Új szoba létrehozása" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Kilépés" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Lépjen be újra" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 #, fuzzy msgid "Zap (forget/unsubscribe) the current room" msgstr "Szoba kilövése" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 #, fuzzy msgid "If you select this option," msgstr "Szoba szerkesztése vagy törlése" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Szoba kilövése" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Felhasználónév" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Szoba" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Innen jött" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Küldő" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Levél betöltése a kiszolgálóról, türelem" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Megnyitás új ablakban" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Mozgat" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Másolás" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Nyomtatás" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Kilőtt (elfelejtett) szobák" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "Kattintson bármelyik szobára, hogy azt felélessze és belépjen.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Önnek egy vagy több várakozó azonnali üzenete van, de a Citadel Azonnali " "Üzenetküldő ablaka nem tudott megnyílni. Ennek valószínűleg az az oka, hogy " "az ön böngészője blokkolja a felugró ablakokat. Kérem állítsa be a " "böngészőt úgy, hogy erről a helyről engedélyezze a felugró ablakokat, ha " "azonnali üzeneteket szeretne kapni." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Az ön jellemzőinek és beállításainak megváltoztatása" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Frissítse a kapcsolati információit" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Változtassa meg a jelszavát" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Az ön fényképének szerkesztése" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Változtassa meg a jelszavát" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Megnéz" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Letölt" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Globális beállítások" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Felhasználói hozzáférés kezelés" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Citadel leállítása" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Szobák és szintek" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Rejtett szobába ugrás" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Adja meg a szoba nevét:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Adja meg a szoba jelszavát:" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "Ugrás" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "ettől: " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "Címzett:" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "Másolat:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Tárgy:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Push Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 #, fuzzy msgid "Funambol server host (blank to disable)" msgstr "LDAP kiszolgáló neve (üres kikapcsolja)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 #, fuzzy msgid "Funambol server port " msgstr "LDAP kiszolgáló neve (üres kikapcsolja)" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 #, fuzzy msgid "External pager tool (blank to disable)" msgstr "LDAP kiszolgáló neve (üres kikapcsolja)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Fa (mappa) nézet" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Táblázat (szoba) nézet" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 órás (de/du)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 órás" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Vasárnap" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Hétfő" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Nincs aláírás" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Teljes funkcionalitás" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Biztonságos mód" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 #, fuzzy msgid "Change" msgstr "CSS megváltoztatása" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Jellemzők és beállítások" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Alap parancsok" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Az ön adatai" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Haladó szoba parancsok" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Felhasználói azonosító szerkesztése: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Felhasználónév:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Jelszó" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Belépések száma" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 #, fuzzy msgid "Messages submitted" msgstr "Levél mérete" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Hozzáférési szint" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 #, fuzzy msgid "User ID number" msgstr "Felhasználónév" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Utolsó belépés dátuma és ideje" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 #, fuzzy msgid "POP3 listener port (-1 to disable)" msgstr "SMTP MTA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 #, fuzzy msgid "POP3 over SSL port (-1 to disable)" msgstr "SMTP MSA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Kimenő SMTP sor megtekintése" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Oldal frissítése" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Távoli kiszolgáló" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Megye:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "feldolgozás folytatása" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Üzenet az ön felhasználóinak:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Adminisztráció" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Beállítások" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Üzenet elévülési szabály" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Hozzáférés szabályozás" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Megosztás" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Levelezőlista szolgáltatás" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Távoli beszerzés" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 #, fuzzy msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "Az ön naptára frissült, hogy reagáljon az RSVP-re." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 #, fuzzy msgid "General site configuration items" msgstr "Hely beállítása" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Belépési logó megváltoztatása" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Kilépési logó megváltoztatása" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Csomópont neve" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Csomópont ember által olvasható neve" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Telefonszám" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Ezen rendszer földrajzi elhelyezkedése" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Rendszergazda neve" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Alapértelmezett időzóna az időzóna nélküli naptár bejegyzésekhez" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Hálózaton megosztott szoba" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Új csomópont hozzáadása" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Megosztott titok" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Gazda vagy IP címek" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Port szám" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Új csomópont hozzáadása" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(kilő)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Hely beállítása" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "Ez a címlista üres." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "perc" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Próbaképpen" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 #, fuzzy msgid "(Edit)" msgstr "(Szerkeszt)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Töröl)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Új induló oldal" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Az ön induló oldala megváltozott." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "A hozzászólásod" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Törlés jóváhagyása" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Biztosan törölni akarja" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Felhasználói azonosítók hozzáadása, megváltoztatása, törlése" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(rendszerek, melyek a ClamAV clamd szolgáltatást futtatják)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Küldés" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Citadel újraindítása" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "Feladó:" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Ismeretlen" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "Hely:" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Címzett:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "Vakmásolat:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Tárgy (opcionális):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- továbbított üzenet ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 #, fuzzy msgid "Post message" msgstr "üzenetből" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Mellékletek:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Szoba törlése" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Szoba infó" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Keres: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Kiszolgáló parancs eredménye" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 #, fuzzy msgid "Enter another command" msgstr "Írja be a kiszolgáló parancsot" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 #, fuzzy msgid "Return to menu" msgstr "váltás a menüre" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Felhasználói profil" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Azonnali üzenet küldése ide: " #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "Képek itt" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Felhasználók szerkesztése vagy törlése" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Felhasználók hozzáadása" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Felhasználók szerkesztése vagy törlése" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Kérem várjon, amíg a Citadel kiszolgáló újraindul..." #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Felhasználók listája" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Felhasználónév" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Szám" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Hozzáférési szint" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Utolsó bejelentkezés" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Összes bejelentkezés" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Összes hozzászólás" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Betöltés" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Kérem adja meg a felhasználó nevet, amit használni szeretne." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Kilépés" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Üzenet elévülési szabályok ehhez a szobához" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Használja az alapértelmezett szabályokat ehhez a szinthez" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Soha nem évüljenek el az üzenetek" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Elévülés az üzenetek száma alapján" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Elévülés az üzenetek kora alapján" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Üzenetek vagy napok száma: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Üzenetek elévülési szabálya ezen a szinten" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Rendszer alapértelmezés használata" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Ablak bezárása" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Fájl feltöltése:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Biztosan törölni akarja" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Fájl csatolása" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(eltávolít)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexelés és naplózás" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Teljes szöveges indexelés bekapcsolása" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 #, fuzzy msgid "Perform journaling of email messages" msgstr "Kedvelt megjelenített név az email üzenetekhez" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 #, fuzzy msgid "Perform journaling of non-email messages" msgstr "Kedvelt megjelenített név az email üzenetekhez" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Fájl feltöltése:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Feltöltés" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Fájlnév" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Méret" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Tartalom" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Leírás" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
Please contact your system administrator if you require this " "feature.
" msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "üzenetből" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Oldal kiválasztása: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" "Üzenetek letöltése távoli POP3 azonosítóról és tárolása ebben a szobában:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Távoli kiszolgáló" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Megtartja az üzeneteket a szerveren?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Időköz" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Hozzáadás" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "A következő RSS folyam letöltése és tárolása ebben a szobában:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Folyam URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 #, fuzzy msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Ha szeretne további felhasználónak hozzáférést adni ehhez a szobához, írja " "be a felhasználó nevét az alábbi szövegdobozba és kattintson a 'Meghív' " "pontra." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Új felhasználó: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Létrehoz" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domain nevek Globális Címlistával)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(eltávolít)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Az alábbi listában található felhasználóknak van hozzáférése ehhez a " "szobához. Ha el akarja valamelyiküket távolítani a listáról, válassza ki a " "felhasználó nevét és kattintson a 'Kirúg' pontra." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Kirúg" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Ha szeretne további felhasználónak hozzáférést adni ehhez a szobához, írja " "be a felhasználó nevét az alábbi szövegdobozba és kattintson a 'Meghív' " "pontra." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Meghív:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Meghív" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "Felhasználó" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Felhasználók" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Címjegyzék" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 #, fuzzy msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Ha szeretne további felhasználónak hozzáférést adni ehhez a szobához, írja " "be a felhasználó nevét az alábbi szövegdobozba és kattintson a 'Meghív' " "pontra." #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Szabály törlése" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Törli ezt a szkriptet?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Szabály törlése" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Diavetítés" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 #, fuzzy msgid "(hosts running the SpamAssassin service)" msgstr "(rendszerek, melyek a ClamAV clamd szolgáltatást futtatják)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Az a(z) '%s' frissítése, mely már létezik az ön naptárában." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Ez az esemény ütközik a(z) '%s' eseménnyel, mely már létezik az ön " "naptárában." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Ha új email érkezik: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Hagyd a bejövő levelek között szűrés nélkül" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Szűrd az alábbi feltételek szerint" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "Szűrd a kézzel szerkesztett szkriptekkel (csak haladó felhasználóknak)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "A beérkező levelei nem lesznek szűrve egyetlen szkripttel sem." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Szabály hozzáadása" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "A jelenleg aktív szkript: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Szkript hozzáadása vagy törlése" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Az LDAP csatoló beállítása a Citadel számára" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "LDAP kiszolgáló neve (üres kikapcsolja)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "LDAP kiszolgáló port száma (üres kikapcsolja)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Alap DN" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Kapcsolódó DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Jelszó a kapcsolódó DN számára" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Szoba szerkesztése vagy törlése" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Ugrás egy 'rejtett' szobába" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 #, fuzzy msgid "Zap (forget) this room" msgstr "Szoba kilövése" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Listázza az összes elfelejtett szobát" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Új üzenetek olvasása" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "Üzenet azonosító" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Feladás dátuma/ideje" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "Utolsó kísérlet" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Címzettek" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Olvasás alatt #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "legrégebbitől a legújabbig" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "legújabbtól a legrégebbiig" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 #, fuzzy msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "Kérem várjon, amíg a Citadel kiszolgáló újraindul..." #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Válasz" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "IdézveVálaszol" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "VálaszMindenkinek" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Továbbít" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Fejlécek" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Rendszer szintű beállítások szerkesztése" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Domain nevek és internetes levelezés beállítása" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Replikáció beállítása más Citadel kiszolgálókkal" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Megmutatja a 'Működteti a Citadel' ikont" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Nyelv:" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "Egy gyorsbillentyű az ön bejövő leveleihez" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Levelezés" #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "Egy gyorsbillentyű az ön személyes naptárához" #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "Az ön személyes címjegyzéke" #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "Az ön személyes jegyzetei" #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "Egy gyorsbillentyű az ön személyes feladatlistájához" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Listázza az összes elfelejtett szobát" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Jelenlévő felhasználók" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Haladó" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "Rendszergazda neve" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "menü testreszabása" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Utolsó bejelentkezés" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "váltás a szoba listára" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "váltás a menüre" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Saját mappáim" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 #, fuzzy msgid "IMAP listener port (-1 to disable)" msgstr "SMTP MTA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 #, fuzzy msgid "IMAP over SSL port (-1 to disable)" msgstr "SMTP MSA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Kép feltöltése" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Feltölthet egy képet közvetlenül a számítógépéről" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Kérem válassza ki a feltöltendő fájlt:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Űrlap ürítése" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Lista előfizetés" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Lista előfizetés/lemondás" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Jóváhagyási kérelem elküldve" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "a " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 #, fuzzy msgid " mailing list." msgstr "Levelezőlista szolgáltatás" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Vissza..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "HIBA:" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "ettől: " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "Levelezőlista szolgáltatás" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Vissza..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Jóváhagyási kérelem elküldve" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Beállítások" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Feladat neve" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Kedvelt email cím" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Írja be az üzenet szövegét:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Időformátum" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 #, fuzzy msgid "name of room: " msgstr "Szoba neve:" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Ha privát, az összes jelenlegi felhasználó elfelejti a szobát" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Csak a kedvenc felhasználók" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Csak olvasható szoba" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Minden felhasználó, aki beküldhet az törölhet is üzeneteket" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Fájl mappa szoba" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Könyvtár neve: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Feltöltés engedélyezett" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Letöltés engedélyezett" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Látható könyvtár" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Hálózaton megosztott szoba" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Állandó (nem törlődik automatikusan)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" "Tárgy kötelező (Kényszeríti a felhasználókat, hogy az üzeneteknek adják meg " "a tárgyát)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonym üzenetek" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Nincsenek anonym üzenetek" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Minden üzenet anonym" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 #, fuzzy msgid "Room aide: " msgstr "Szoba száma:" #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Szoba törlése" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Nincs megosztva ezzel:" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Megosztva ezzel:" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Távoli csomópont neve" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Távoli szoba neve" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Műveletek" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Amikor megoszt egy szobát, annak meg kell lennie osztva mindkét oldalon. " "Egy csomópont hozzáadása a 'megosztások' listájához kiküldi az üzeneteket, " "de ahhoz, hogy kapjon is üzenetet, a másik csomópontoknak is be kell " "állítaniuk, hogy kiküldje az üzeneteket az ön rendszerének.
  • Ha a távoli " "szoba neve üres, feltételezzük, hogy a szoba neve azonos a másik oldalon." "
  • Ha a távoli szoba neve más, a másik csomóponton szintén be kell állítani " "az itteni szoba nevét.
    \n" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Megtartja az üzeneteket a szerveren?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Szint hozzáadása/módosítása/törlése" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Szint száma" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Szint neve" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Szobák száma" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Szint CSS" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Új szint létrehozása" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Szabály mozgatása felfelé" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Szabály mozgatása lefelé" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Szabály törlése" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Ha" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Címzett vagy másolat" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Válaszcím" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Újraküldő" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Újraküldés címzettje" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Boríték feladó" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Boríték címzett" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "Levelezőprogram" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "SPAM jelzés" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "SPAM állapot" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "Listaazonosító" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Levél mérete" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Minden" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "tartalmazza" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "nem tartalmazza" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "pontosan az, hogy" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "nem az, hogy" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "egyezik" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "nem egyezik" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Összes üzenet)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "nagyobb, mint" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "kisebb, mint" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "év" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Megtart" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Csendben eldob" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Visszautasít" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Levél mozgatása ide:" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Továbbítás ide:" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Vakáció" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Üzenet:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "és utána" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "feldolgozás folytatása" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "állj" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domain nevek, melyekre ez a rendszer levelet fogad)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Hálózat beállítása" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Jelenleg beállított csomópontok" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(szint törlése)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(grafika szerkesztése)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Név megváltoztatása" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "CSS megváltoztatása" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 #, fuzzy msgid "Configure automatic expiry of old messages" msgstr "Soha nem évüljenek el az üzenetek" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 #, fuzzy msgid "Default message expire policy for public rooms" msgstr "Üzenet elévülési szabályok ehhez a szobához" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 #, fuzzy msgid "Default message expire policy for private mailboxes" msgstr "Üzenetek elévülési szabálya ezen a szinten" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 #, fuzzy msgid "Same policy as public rooms" msgstr "Üzenet elévülési szabályok ehhez a szobához" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Biztosan törölni kívánja ezt a szobát?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Szoba törlése" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "A szoba hirdetés ikonjának beállítása vagy megváltoztatása" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "A szoba Info fájl szerkesztése" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Írja be a kiszolgáló parancsot" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Ez a képernyő lehetővé teszi oylan Citadel kiszolgáló parancsok bevitelét, " "melyet a WebCit nem támogat. Ha nem tudja ez mit jelent, ennek a " "képernyőnek nem sok hasznát veszi." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Írja be a parancsot:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Parancs bemenet (ha SEND_LISTING átviteli módot kér):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 #, fuzzy msgid "Detected host header is " msgstr "A felismert kiszolgáló fejléc %s://%s" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Írja be a parancsot:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Megosztás visszavonása" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 #, fuzzy msgid "(hosts running a Realtime Blackhole List)" msgstr "(rendszerek, melyek a ClamAV clamd szolgáltatást futtatják)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Karantén szoba neve" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 #, fuzzy msgid "Name of room to log pages" msgstr "Szoba neve:" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Azonosítási mód" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "tartalmazza" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "Kiszolgáló alapú" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Active Directory)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 #, fuzzy msgid "Allow anonymous guest access" msgstr "Nincsenek anonym üzenetek" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 #, fuzzy msgid "Master user name (blank to disable)" msgstr "LDAP kiszolgáló neve (üres kikapcsolja)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Írja be az új jelszót:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Induló hozzáférési szint az új felhasználókhoz" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Önkiszolgáló felhasználó létrehozás kikapcsolása" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Szintek hozzáadása, megváltoztatása vagy törlése" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Mutasd mint:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Szoba törlése" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Utolsó bejelentkezés" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 #, fuzzy msgid "Not logged in." msgstr "Nincs belépve" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Be kell jelentkezned, hogy ezt az oldalt." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "belépés felhasználó név és jelszó segítségével" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Jelszó:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Új felhasználó? Regisztráljon most" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Belépés OpenID használatával" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "Belépés OpenID használatával" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Belépés OpenID használatával" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "Belépés OpenID használatával" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Kérem vár" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Új szkript hozzáadása" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Szkript neve: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Szkriptek szerkesztése" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Szkriptek törlése" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Újraindítás most" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Újraindítás a felhasználók figyelmeztetése után" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Újraindítás, ha minden felhasználó tétlen" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 #, fuzzy msgid "Configure Push Email" msgstr "Push Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Azonnali üzenet küldése ide:" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 #, fuzzy msgid "Don‘t send any notifications" msgstr "Ne küldjön értesítéseket" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "működteti a" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 #, fuzzy msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP MSA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Levelek megjelölése SPAM-ként az elutasítás helyett" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 kikapcsolja" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 #, fuzzy msgid "ManageSieve Port (-1 to disable)" msgstr "SMTP MSA port (-1 kikapcsolja)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Hely beállítása" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Általános" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexelés/naplózás" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Hozzáférés" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "Könyvtár neve:" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Automatikus-takarító" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "A szoba tartalma egyedi üzenetekben elküldésre kerül az alábbi " "címzetteknek:

    \n" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "A szoba tartalma egyetlen üzenetben elküldésre kerül az alábbi " "címzetteknek:

    \n" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "Lista" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "Kivonat" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Címzettek hozzáadása a Kapcsolatokból vagy más címlistákból" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Engedélyezi, hogy nem előfizetők postázhassanak ebbe a szobába." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "Önkiszolgáló előfizetés/lemondás engedélyezése." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "Az előfizetés/lemondás URL: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Tárgy" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "%s összefoglaló lapja" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Üzenetek" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Az ön naptára ma" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Ki van itt most" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Erről a kiszolgálóról" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "Hangolás" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "ötödik" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "és utána" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Rendszergazda neve" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Tényleg törölni kívánja ezt az OpenID-t?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 #, fuzzy msgid "Click on a name to read user info. Click on" msgstr "Kattintson bármely jegyzetre a szerkesztéshez." #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 #, fuzzy msgid "to send an instant message to that user." msgstr "Azonnali üzenet küldése ide:" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Megoszt" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Írja be az új jelszót:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Ellenőrzésként írja be ismét:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Jelszó megváltoztatása" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Szoba száma:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Szoba nevének megváltoztatása" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Gépnév:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Gép nevének megváltoztatása" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Felhasználó nevének megváltoztatása" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Üzenet mozgatás jóváhagyása" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Üzenet mozgatása ide:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Listázza az ismert szobákat" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Hova mehetek innen?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Ugrás a következő szobába" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Ugrás a következő szobába" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(visszatérés később)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Visszalépés" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "hoppá! Vissza ide: " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Új üzenetek olvasása" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... ebben a szobában" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Összes üzenet olvasása" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Üzenet beküldése" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(hozzászólás ebben a szobában)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Fájl-tár" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Letölthető fájlok listája)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Összefoglaló oldal" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Saját azonosítóm összefoglalója" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Felhasználók listája" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(összes regisztrált felhasználó)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Viszlát!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Kapcsolatok megnézése" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Új partner felévtele" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Napi nézet" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Havi nézet" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Új esemény felvétele" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Naptár lista" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Feladatok megnézése" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Új feladat felévtele" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Jegyzetek megnézése" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Új jegyzet felévtele" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Üzenetlista frissítése" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Email írása" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki kezdőlap" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Oldal szerkesztése" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "újabb hozzászólás" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Összes üzenet olvasatlanul hagyása és ugrás a következő olvasatlan üzenetet " "tartalmazó szobába" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Szoba kihagyása" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Összes üzenet megjelölése olvasottként és ugrás a következő olvasatlan " "levelet tartalmazó szobába" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Változások mentése" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Ön előfizeti %s-t a %s levelező listára. A lista " #~ "kiszolgáló egy további Web linket küldött önnek e-mailben, amire rá kell " #~ "kattintania az előfizetés jóváhagyásához. Ez a kiegészítő lépés azért " #~ "szükséges, hogy megakadályozzon másokat abban, hogy előfizessék önt az ön " #~ "beleegyezése nélkül.

    Kérem kattintson rá a linkre, melyet e-" #~ "mailben küldtünk önnek, hogy az előfizetését jóváhagyja.
    \n" #~ msgid "There is no room called '%s'." #~ msgstr "Nincs '%s' nevű szoba." #~ msgid "Network" #~ msgstr "Hálózat" #~ msgid "Tuning" #~ msgstr "Hangolás" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Törölt levelek azonnali megsemmisítése az IMAP-on" #~ msgid "Delete script" #~ msgstr "Szkript törlése" #~ msgid "Delete this script?" #~ msgstr "Törli ezt a szkriptet?" #~ msgid "Yes with users list" #~ msgstr "Igen, a felhasználók listájával" #~ msgid "Room list" #~ msgstr "Szoba lista" #, fuzzy #~ msgid "uname" #~ msgstr "Fájlnév" #, fuzzy #~ msgid "text" #~ msgstr "csak szöveg" #, fuzzy #~ msgid "name" #~ msgstr "Fájlnév" #, fuzzy #~ msgid "pname" #~ msgstr "Fájlnév" #, fuzzy #~ msgid "password" #~ msgstr "Jelszó" #, fuzzy #~ msgid "pass" #~ msgstr "Feladatok" #, fuzzy #~ msgid "display: none" #~ msgstr "Megjelenített név:" #~ msgid "Your password was not accepted." #~ msgstr "A jelszavát nem fogadtuk el." #~ msgid "See the" #~ msgstr "Lásd itt" #~ msgid "recommended browser list" #~ msgstr "ajánlott böngészők listája" #~ msgid "Click here to learn what OpenID is and how Citadel is using it." #~ msgstr "" #~ "Kattintson ide, ha többet szeretne tudni az OpenID-ról és arról, hogyan " #~ "használja azt a Citadel." #, fuzzy #~ msgid "Log off now?" #~ msgstr "Kilépés" #~ msgid "%d new of %d messages%s" #~ msgstr "%d új az összesen %d üzenetből%s" #~ msgid "(nothing)" #~ msgstr "(semmi)" #~ msgid "unexpected end of message" #~ msgstr "az üzenet váratlanul végetért" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "Hiba történt a csevegés kapcsolat felépítésekor." #~ msgid "Now exiting chat mode." #~ msgstr "Kilépek a csevegés módból." #~ msgid "Help" #~ msgstr "Súgó" #~ msgid "List users" #~ msgstr "Felhasználók listája" #~ msgid "No messages here." #~ msgstr "Itt nincsenek üzenetek." #, fuzzy #~ msgid "no more messages" #~ msgstr "Anonym üzenetek" #~ msgid "" #~ "Your icon bar has been updated. Please select any of its choices to " #~ "continue.
    You may need to force " #~ "refresh (SHIFT-F5) in order for changes to take effect" #~ msgstr "" #~ "Az eszköztár frissítve. Kérem válassza az alábbi lehetőségek bármelyikét " #~ "a folytatáshoz.
    Valószínűleg " #~ "kényszerített frissítésre (SHIFT-F5) van szükség ahhoz, hogy a változások " #~ "érvénybe lépjenek" #~ msgid "Email" #~ msgstr "Email" #~ msgid "%s from" #~ msgstr "Ettől: %s FIX415" #~ msgid "%s in %s" #~ msgstr " %s itt FIX416: %s: " #~ msgid " on %s" #~ msgstr " a(z) %s (FIX417)" #~ msgid "%s" #~ msgstr "%s FIXME418" webcit-dfsg.orig/po/webcit/ru.po0000644000175000017500000043340413223341037016670 0ustar michaelmichael# translation of webcit.po to Russian # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # # WebCit messages for Russian # Copyright (C) 2009 Andrey N. Oktyabrski # This file is distributed under the revised BSD license # msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-01-31 08:31+0000\n" "Last-Translator: Andrey Olykainen \n" "Language-Team: \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-11-12 04:32+0000\n" "X-Generator: Launchpad (build 16251)\n" "X-Language: ru_RU\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "доступность не известна" #: ../../availability.c:169 msgid "free" msgstr "свободно" #: ../../availability.c:179 msgid "BUSY" msgstr "Занят" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Загрузка графики была отменена." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Вы не загрузили файл" #: ../../graphics.c:106 msgid "your photo" msgstr "ваше фото" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "Значёк комнаты" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "Значек для этажа" #: ../../tasks.c:93 msgid "Completed?" msgstr "Завершено?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Название задачи" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "Категория" #: ../../tasks.c:101 msgid "Show All" msgstr "Показать все" #: ../../tasks.c:224 msgid "Edit task" msgstr "Редактировать задачу" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Итого:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Дата начала:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Без даты" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "или" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "Выполнено:" #: ../../tasks.c:329 msgid "Category:" msgstr "Категория:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Описание:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Сохранить" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Удалить" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Отмена" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Задание без заголовка" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d комментариев" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "Постоянная ссылка" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "новые сообщения" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "старые сообщения" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Изменить %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Сохранить изменения" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Отменено. %s не было сохранено." #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s было сохранено." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Информация о комнате" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Часы: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Минуты: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(статус неизвестен)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(требуется действие)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(принято)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(отклонено)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(делегировано)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(завершено)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(в процессе)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(не указан)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Вы действительно хотите удалить OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(удалить)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Добавить OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "Прикрепить" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "(не указано)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Ничего)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Перейти на страницу: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Первый" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Последний" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Удалённый" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Новый пользователь" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Неблагонадёжный пользователь" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Локальный пользователь" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Сетевой пользователь" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Привилегированный пользователь" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Администратор" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Произошла ошибка." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Новые пользователи" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" "На данный момент нет новых пользователей, требующих подтверждения " "регистрации." #: ../../auth.c:617 msgid "very weak" msgstr "слишком простой" #: ../../auth.c:620 msgid "weak" msgstr "простой" #: ../../auth.c:623 msgid "ok" msgstr "хороший" #: ../../auth.c:627 msgid "strong" msgstr "очень хороший" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Уровень доступа %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Уровень доступа для пользователя:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Смена пароля отменяется, он остался прежним." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Вы ввели разные пароли, оставляем прежний." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Пароль не должен быть пустым" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Опубликованное событие" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Расположение:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Дата:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Дата/время начала:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Дата/время завершения:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Повторение" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Повторяющееся событие" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "Данное событие может конфликтовать с '%s' в вашем календаре." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Обновление:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "Конфликт:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Как желаете ответить на данное приглашение?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Принять" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Отклонить" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "Нажмите Update для принятия ответа и обновления календаря." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Обновить" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Игнорировать" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "Вы приняли приглашение на встречу. Она была добавлена в ваш календарь." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Вы отклонили приглашение на встречу. Она не была добавлена в ваш " "календарь." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "A reply has been sent to the meeting organiser." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Неделя начинается с:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "секунд(ы)" #: ../../event.c:72 msgid "minutes" msgstr "минут(ы)" #: ../../event.c:73 msgid "hours" msgstr "часа(ов)" #: ../../event.c:74 msgid "days" msgstr "дня(ей)" #: ../../event.c:75 msgid "weeks" msgstr "недели(ль)" #: ../../event.c:76 msgid "months" msgstr "месяца(ев)" #: ../../event.c:77 msgid "years" msgstr "года(лет)" #: ../../event.c:78 msgid "never" msgstr "никогда" #: ../../event.c:82 msgid "first" msgstr "первый" #: ../../event.c:83 msgid "second" msgstr "второй" #: ../../event.c:84 msgid "third" msgstr "третий" #: ../../event.c:85 msgid "fourth" msgstr "четвёртый" #: ../../event.c:86 msgid "fifth" msgstr "пятый" #: ../../event.c:89 msgid "Event" msgstr "Событие" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Добавить или редактировать событие" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Сводка" #: ../../event.c:222 msgid "Location" msgstr "Расположение" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Начало" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Событие на весь день" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Завершение" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Заметки" #: ../../event.c:374 msgid "Organizer" msgstr "Organiser" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(you are the organiser)" #: ../../event.c:397 msgid "Show time as:" msgstr "Отображать время как:" #: ../../event.c:420 msgid "Free" msgstr "Свободно" #: ../../event.c:428 msgid "Busy" msgstr "Занято" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Контакты" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "Повторять каждый(ые)" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "каждый(ые) " #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "из" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "Нет даты окончания" #: ../../event.c:732 msgid "Repeat this event" msgstr "повторять это событие" #: ../../event.c:735 msgid "times" msgstr "раз(а)" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Повторять это событие до " #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Настройка панели иконок" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s было удалено." #. added status message #: ../../inetconf.c:144 #, fuzzy msgid " added." msgstr "добавлено." #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Требуется больше прав для доступа к этой функции." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 #, fuzzy msgid "You need to specify the email address you'd like to subscribe with." msgstr "Укажите Ваш ник (короткое имя)." #: ../../messages.c:73 msgid "ERROR:" msgstr "ОШИБКА:" #: ../../messages.c:91 msgid "Empty message" msgstr "Пустое сообщение" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Отменено. Сообщение не было опубликовано" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Автоматически отменено по скольку сообщение уже сохранено." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Сообщение было сохранено в черновики.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Сообщение отправлено.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Сообщение опубликовано.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Сообщение небыло перемещено." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Прикрепить подпись к сообщению?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Использовать подпись:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Стандартный набор символов для заголовков письма:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Предпочитаемый адрес эл.почты" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Щёлкните на любой заметке, если хотите внести в неё изменения." #: ../../paging.c:29 msgid "Send instant message" msgstr "Отправить сообщение" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "Введите текст сообщения:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Отправить сообщение" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Сообщение не было отправлено." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Отменено. Настройки не были изменены." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Сделать стартовой страницей" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Предпочитаемая стартовая странице" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Мои папки" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Отменено. Изменения не сохранены." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Ваши изменения сохранены." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Пользователь '%s' был удалён из комнаты '%s'." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Пользователь '%s' приглашен в комнату '%s'." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Отменено. Новая комната не была создана." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Этаж был удален" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Создан новый этаж" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Показать пустые этажи" #: ../../roomtokens.c:570 msgid "file" msgstr "файл" #: ../../roomtokens.c:572 msgid "files" msgstr "файлы" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Доска объявлений" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Почтовая папка" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Адресная книга" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Календарь" #: ../../roomviews.c:57 msgid "Task List" msgstr "Список задач" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Список Заметок" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Вики" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "Журнал" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Черновики" #: ../../roomviews.c:63 msgid "Blog" msgstr "Блог" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Настройки системы обновлены." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "Произошла ошибка во время попытки создания или редактирования записи " "адресной книги." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Изменения не были сохранены." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Создан новый пользователь." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(без названия)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobile)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Адрес:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Телефон:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "Эл. почта:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Адресная книга пуста." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Произошла внутренняя ошибка." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Ошибка" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Изменить сведения о контакте" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Префикс" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Имя" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Отчество" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Фамилия" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Суффикс" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Отображаемое имя:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Заголовок:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Организация:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Абонентский ящик:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Город:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Штат:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Почтовый индекс:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Страна:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Домашний телефон:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Рабочий телефон:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Мобильный телефон:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Номер факса:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Основной ящик электронной почты" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Невозможно войти в комнату для сохранения вашего сообщения" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Отмена." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Требуется авторизация" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Эта программа не может соединиться, или уже соединена с сервером Citadel. " "Пожалуйста, сообщите об этом Вашему администратору." #: ../../webcit.c:688 msgid "Read More..." msgstr "Далее..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' не комната Вики." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Нет страницы с названием '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Дата" #: ../../wiki.c:143 msgid "Author" msgstr "Автор" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(показать)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Текущая версия" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "Заголовок страницы" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Формат времени" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "От" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Дата начала:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Дата завершения:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Дата/время:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Заметки:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "пред." #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "след." #: ../../calendar_view.c:750 msgid "Week" msgstr "Неделя" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Часа(ов)" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Тема" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "изменить" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(без темы)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "У вас нет разрешений для просмотра ресурса." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Customise the icon bar" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 #, fuzzy msgid "Display icons as:" msgstr "Отображаемое имя:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "картинки и текст" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "только картинки" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "только текст" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Да" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Нет" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Логотип сайта" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Задачи" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Комнаты" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Кто онлайн?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Чат" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Расширенные настройки" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 #, fuzzy msgid "System Administration Menu" msgstr "Администрация" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Информация о комнате" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 #, fuzzy msgid "Network services" msgstr "Сетевой пользователь" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Создать комнату" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Имя комнаты: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Тип комнаты:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 #, fuzzy msgid "Private - require password: " msgstr "Введите новый пароль:" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "Создать комнату" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Выйти" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Войти снова" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 #, fuzzy msgid "Zap this room" msgstr "Пропустить комнату" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Имя пользователя" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Комната" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 #, fuzzy msgid "From host" msgstr "От" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Отправитель" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Загрузка сообщений с сервера, подождите" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Открыть в новом окне" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Переместить" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Копировать" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Печать" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Смените пароль" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 #, fuzzy msgid "Edit your online photo" msgstr "ваше фото" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Ваш OpenID" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Скачать" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Введите название комнаты:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Введите пароль комнаты:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "Перейти на страницу: " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "от " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "Кому" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "Копия:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Тема:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 #, fuzzy msgid "24 hour" msgstr "часа(ов)" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Воскресенье" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Понедельник" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 #, fuzzy msgid "No signature" msgstr "Использовать подпись:" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Основные команды" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Имя пользователя:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Пароль" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 #, fuzzy msgid "Number of logins" msgstr "Количество комнат" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 #, fuzzy msgid "Messages submitted" msgstr "Размер сообщения" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 #, fuzzy msgid "Access level" msgstr "Уровень доступа" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 #, fuzzy msgid "User ID number" msgstr "Имя:" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Обновить страницу" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Штат:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 #, fuzzy msgid "Message to your Users:" msgstr "Сообщение не было отправлено." #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Администрация" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Конфигурация" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 #, fuzzy msgid "Message expire policy" msgstr "Размер сообщения" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 #, fuzzy msgid "Node name" msgstr "Имя:" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 #, fuzzy msgid "Telephone number" msgstr "Телефон:" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Сетевой пользователь" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 #, fuzzy msgid "Add a new node" msgstr "Добавить новую заметку" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 #, fuzzy msgid "Port number" msgstr "Номер этажа" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Добавить новую заметку" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 #, fuzzy msgid "(kill)" msgstr " (mobile)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Конфигурация" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "Адресная книга пуста." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "минут(ы)" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(редактировать)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Удалить)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Нет новых сообщений." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Новая стартовая страница" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Стартовая страница изменена." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Опубликовать комментарий" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Подтвердить удаление" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Вы действительно хотите удалить " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 #, fuzzy msgid "Add, change, delete user accounts" msgstr "Добавить/изменить/удалить этажи" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "Отправитель" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 #, fuzzy msgid "Restart Citadel" msgstr "Новая стартовая страница" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "от" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Анонимный" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "в" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Кому:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "Скрытая копия:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Тема(опционально):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 #, fuzzy msgid "Post message" msgstr "Новый пользователь" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Вложения:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Удалить комнату" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Информация о комнате" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Поиск: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Профиль пользователя" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "только картинки" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 #, fuzzy msgid "Edit or delete users" msgstr "Добавить или удалить скрипты" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 #, fuzzy msgid "You need to be aide to view this." msgstr "У вас нет разрешений для просмотра ресурса." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 #, fuzzy msgid "Add users" msgstr "Добавить правило" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 #, fuzzy msgid "Edit or Delete users" msgstr "Удалённый" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Список папок" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Имя пользователя" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Номер" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Уровень доступа" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Последний вход" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Всего входов" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Всего сообщений" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Загрузка" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Ваш OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Укажите Ваш ник (короткое имя)." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Выход" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 #, fuzzy msgid "Expire by message count" msgstr "Пустое сообщение" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 #, fuzzy msgid "Expire by message age" msgstr "Пустое сообщение" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Использовать значения по умолчанию" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Закрыть окно" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Загрузить файл:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Вы действительно хотите удалить " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Вложить файл" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "Удалить" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Файлы доступны для загрузки на" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Загрузить файл:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Загрузить" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Имя файла" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Размер" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Содержимое" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Описание" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "сообщения" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "выбор страницы: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Сохранять сообщения на сервере?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Интервал" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Добавить" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 #, fuzzy msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "Для удаления скрипта, выберите скрипт из списка и нажмите \"Удалить\"." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 #, fuzzy msgid "New user: " msgstr "Новый пользователь" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Создать" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(удалить)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Приглашение:" #: ../../i18n_templatelist.c:426 #, fuzzy msgid "Invite" msgstr "Приглашение:" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Пользователи" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Пользователи" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Адресная книга" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 #, fuzzy msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "Для удаления скрипта, выберите скрипт из списка и нажмите \"Удалить\"." #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Удалить правило" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Удалить скрипт:" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Удалённый" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Слайд-шоу" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Данное событие может конфликтовать с '%s' в вашем календаре." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "Данное событие может конфликтовать с '%s' в вашем календаре." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "При получении нового письма: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Оставить во входящих без фильтрации" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Добавить правило" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Текущий активный фильтр: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Добавить или удалить скрипты" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 #, fuzzy msgid "Edit or delete this room" msgstr "Добавить или удалить скрипты" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 #, fuzzy msgid "Zap (forget) this room" msgstr "Пропустить комнату" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Читать новые сообщения" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "ID сообщения" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Получатели" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Чтение #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "от старых к новым" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "от новых к станым" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Изменить" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Ответить" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Вперёд" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Заголовки" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Новая стартовая страница" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Язык:" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Почта" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Пользователи на сайте" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Дополнительно" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "Администрация" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "customise this menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Вход" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Мои папки" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Загрузить изображение" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Можете загрузить изображение с вашего компьютера" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Выберите файл для загрузки:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Очистить форму" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Запрос на подтверждение послан" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "Перейти на страницу: " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Назад..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "ОШИБКА:" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "от " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Назад..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Запрос на подтверждение послан" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Конфигурация" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Название задачи" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Предпочитаемый адрес эл.почты" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Введите текст сообщения:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Формат времени" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "имя комнаты: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 #, fuzzy msgid "Preferred users only" msgstr "Привилегированный пользователь" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 #, fuzzy msgid "Directory name: " msgstr "Имя скрипта: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Загрузка разрешена" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 #, fuzzy msgid "Network shared room" msgstr "Сетевой пользователь" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 #, fuzzy msgid "Anonymous messages" msgstr "Новый пользователь" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 #, fuzzy msgid "No anonymous messages" msgstr "Нет новых сообщений." #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 #, fuzzy msgid "All messages are anonymous" msgstr "(Все сообщения)" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 #, fuzzy msgid "Room aide: " msgstr "Название комнаты:" #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Удалить комнату" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 #, fuzzy msgid "Remote node name" msgstr "Имя:" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 #, fuzzy msgid "Remote room name" msgstr "Название комнаты:" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Действия" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Сохранять сообщения на сервере?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Добавить/изменить/удалить этажи" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Номер этажа" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Название этажа" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Количество комнат" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "Создать комнату" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Удалить правило" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Если" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Размер сообщения" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Все" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "содержит" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "не содержит" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "не" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "совпадает" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "не совпадает" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Все сообщения)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "больше чем" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "меньше чем" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "года(лет)" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Отклонить" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Переместить сообщение в" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Переадресовать" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Сообщение:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "стоп" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Настройка сети" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(удалить этаж)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Изменить название комнаты" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 #, fuzzy msgid "Configure automatic expiry of old messages" msgstr "Подтвердить перемещение сообщения" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "Вы действительно хотите удалить " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Удалить комнату" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Основные команды" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 #, fuzzy msgid "Name of room to log pages" msgstr "Количество комнат" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "содержит" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Введите новый пароль:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 #, fuzzy msgid "Initial access level for new users" msgstr "Уровень доступа для пользователя:" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 #, fuzzy msgid "Add, change, or delete floors" msgstr "Добавить/изменить/удалить этажи" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Удалить комнату" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Вы вошли как" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Вход не выполнен." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Вы должны войти в систему для доступа к этой странице." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Войдите используя имя пользователя и пароль" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Пароль:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Новый пользователь? Зарегистрируйтесь сейчас" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Войдите используя OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "Войдите используя OpenID" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Войдите используя OpenID" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "Войдите используя OpenID" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Добавить новый скрипт" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Имя скрипта: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Изменить скрипты" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Удалить скрипты" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "Для удаления скрипта, выберите скрипт из списка и нажмите \"Удалить\"." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Перезагрузить сейчас" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Отправить сообщение" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 #, fuzzy msgid "General" msgstr "Отправитель" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Настройка панели иконок" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 #, fuzzy msgid "Access" msgstr "Уровень доступа" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "История" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Список задач" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Формат времени" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Тема" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Итого:" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Сообщения" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "О сервере" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "пятый" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Администрация" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Вы действительно хотите удалить OpenID?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Старые сообщения" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Новые сообщения" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Введите новый пароль:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Введите его ещё раз, для проверки:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Сменить пароль" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Название комнаты:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Изменить название комнаты" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Имя хоста:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Изменить имя хоста" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Изменить имя пользователя" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Подтвердить перемещение сообщения" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Переместить сообщение в:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Перейти к следующей комнате" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 #, fuzzy msgid "Skip to next room" msgstr "Пропустить комнату" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "Упс! Назад в " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Читать новые сообщения" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 #, fuzzy msgid "...in this room" msgstr "Пропустить комнату" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Читать все сообщения" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Введите сообщение" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 #, fuzzy msgid "(post in this room)" msgstr "Пропустить комнату" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 #, fuzzy msgid "Summary page" msgstr "Итого:" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Список пользователей" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 #, fuzzy msgid "(all registered users)" msgstr "Новые пользователи" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Добавить новый контакт" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Добавить новое событие" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Добавить новое задание" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Просмотр заметок" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Добавить новую заметку" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Обновить список сообщений" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Написать письмо" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Домашняя Вики" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Редактировать страницу" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "История" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "новые сообщения" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Пропустить комнату" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Сохранить изменения" #~ msgid "There is no room called '%s'." #~ msgstr "Не комнаты под названием '%s'." #, fuzzy #~ msgid "Network" #~ msgstr "Сетевой пользователь" #~ msgid "A script by that name already exists." #~ msgstr "Скрипт с таким именем уже существует" #~ msgid "Delete script" #~ msgstr "Удалить скрипт" #~ msgid "Room list" #~ msgstr "Список комнат" #~ msgid " - powered by Citadel" #~ msgstr " - powered by Citadel" #, fuzzy #~ msgid "uname" #~ msgstr "Имя файла" #, fuzzy #~ msgid "text" #~ msgstr "след." #, fuzzy #~ msgid "name" #~ msgstr "Имя файла" #, fuzzy #~ msgid "pname" #~ msgstr "Имя файла" #, fuzzy #~ msgid "password" #~ msgstr "Пароль:" #, fuzzy #~ msgid "pass" #~ msgstr "Задачи" #, fuzzy #~ msgid "display: none" #~ msgstr "Отображаемое имя:" #~ msgid "Your password was not accepted." #~ msgstr "Неверный пароль" #, fuzzy #~ msgid "Log off now?" #~ msgstr "Выйти" #~ msgid "Customize this menu" #~ msgstr "Customise this menu" webcit-dfsg.orig/po/webcit/zh.po0000644000175000017500000044540513223341037016667 0ustar michaelmichael# WebCit messages for Chinese (Simplified) # Copyright (C) 2011 by elliott callaway # This file is distributed under GPL v3 # # , 2011. msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-05-19 13:33+0800\n" "Last-Translator: elliott callaway \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-10-23 04:47+0000\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "未知的可用性" #: ../../availability.c:169 msgid "free" msgstr "免费" #: ../../availability.c:179 msgid "BUSY" msgstr "忙" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "图形上载已被取消。 " #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "你才上传的文件 " #: ../../graphics.c:106 msgid "your photo" msgstr "你的照片 " #: ../../graphics.c:113 msgid "the icon for this room" msgstr "这间屋子的图标 " #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "登录提示的 Greetingpicture " #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "注销横幅图片 " #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "这层图标 " #: ../../tasks.c:93 msgid "Completed?" msgstr "完成吗?" #: ../../tasks.c:95 msgid "Name of task" msgstr "任务的名称" #: ../../tasks.c:97 msgid "Date due" msgstr "到期日期" #: ../../tasks.c:99 msgid "Category" msgstr "类别" #: ../../tasks.c:101 msgid "Show All" msgstr "显示所有" #: ../../tasks.c:224 msgid "Edit task" msgstr "编辑任务" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "摘要:" #: ../../tasks.c:259 msgid "Start date:" msgstr "开始日期:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "没有日期" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "组织:" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "相关联的时间" #: ../../tasks.c:289 msgid "Due date:" msgstr "截止日期:" #: ../../tasks.c:318 msgid "Completed:" msgstr "完成:" #: ../../tasks.c:329 msgid "Category:" msgstr "类别:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "说明" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "保存" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "删除" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "取消" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "无标题的任务" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d 的评论 " #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 #, fuzzy msgid "Older posts" msgstr "文件夹列表" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "编辑 %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "读者的浏览器设置文本格式。前面的一片空白的下一行,会强制换" "行。 " #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "保存更改" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "取消。%s 是不会保存。 " #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "已被保存。 " #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "房间信息 " #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "您的生物 " #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "小时" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "分钟" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(状态未知)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(需要行动)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(接受)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(拒绝)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(暂定)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(委派)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(已完成)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(进行中)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(无)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "管理帐户/OpenID 协会 " #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "您确实要删除此 OpenID 吗? " #: ../../openid.c:47 msgid "(delete)" msgstr "(删除) " #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "添加 OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "附加 " #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s 不允许通过 OpenID 的身份验证。 " #: ../../summary.c:128 msgid "(None)" msgstr "(无) " #: ../../summary.c:184 msgid "(Nothing)" msgstr "(无) " #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "转到页面: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "第一次 " #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "最后 " #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "删除 " #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "新用户 " #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "问题的用户 " #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "本地用户 " #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "网络用户 " #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "首选的用户 " #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "助手 " #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "发生了一个错误" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "验证新用户 " #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "任何用户都不需要验证,这一次。 " #: ../../auth.c:617 msgid "very weak" msgstr "很弱 " #: ../../auth.c:620 msgid "weak" msgstr "弱 " #: ../../auth.c:623 msgid "ok" msgstr "还行 " #: ../../auth.c:627 msgid "strong" msgstr "强 " #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "当前的访问级别: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "选择此用户的访问级别: " #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "取消。未更改密码。 " #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "他们不匹配。未更改密码。 " #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "不允许空密码。 " #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "会议邀请 " #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "您的邀请与会者的答复 " #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "已发布的事件 " #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "这是未知的类型的日历项。 " #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "地点:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "日期:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "结束日期/时间:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "复发 " #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "这是一个反复出现的事件 " #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "与会者: " #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "这是 '%s' 已在您的日历中的更新。 " #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "与 %s 已经在您的日历中的情况下,此事件将发生冲突。 " #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "更新: " #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "冲突: " #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "您想如何回应这一邀请? " #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "接受 " #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "试 " #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "下降 " #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "单击 更新 接受这个答复,并更新您的日历。" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "更新: " #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "忽略 " #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "解析此日历项时出错。 " #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "您已接受此会议邀请。它已被输入您日历。 " #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "您暂时接受了这次会议的邀请。它已被 '接受' 到您的日历。" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "您已拒绝了这次会议的邀请。它没有 已输入日历。 " #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "会议组织者已发送答复。 " #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "您的日历已被更新,以反映此 RSVP。 " #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "您已选择忽略此 RSVP。您的日历没有 已更新。 " #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "在开始的一天日历视图: " #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "结束一天的日历视图: " #: ../../calendar.c:934 msgid "Week starts on:" msgstr "周开始时间: " #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "检索此文件时发生错误: 是: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "秒 " #: ../../event.c:72 msgid "minutes" msgstr "分钟 " #: ../../event.c:73 msgid "hours" msgstr "时间 " #: ../../event.c:74 msgid "days" msgstr "天 " #: ../../event.c:75 msgid "weeks" msgstr "周 " #: ../../event.c:76 msgid "months" msgstr "个月 " #: ../../event.c:77 msgid "years" msgstr "年 " #: ../../event.c:78 msgid "never" msgstr "永远不会 " #: ../../event.c:82 msgid "first" msgstr "第一次 " #: ../../event.c:83 msgid "second" msgstr "第二次 " #: ../../event.c:84 msgid "third" msgstr "第三次 " #: ../../event.c:85 msgid "fourth" msgstr "第四 " #: ../../event.c:86 msgid "fifth" msgstr "第五届 " #: ../../event.c:89 msgid "Event" msgstr "事件 " #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "与会者 " #: ../../event.c:168 msgid "Add or edit an event" msgstr "添加或编辑事件 " #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "的摘要页 " #: ../../event.c:222 msgid "Location" msgstr "位置 " #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "启动" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "全天事件" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "结束" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "备注: " #: ../../event.c:374 msgid "Organizer" msgstr "主办单位 " #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(您的管理器) " #: ../../event.c:397 msgid "Show time as:" msgstr "将时间显示为: " #: ../../event.c:420 msgid "Free" msgstr "免费 " #: ../../event.c:428 msgid "Busy" msgstr "忙 " #: ../../event.c:445 msgid "(One per line)" msgstr "(每行一个) " #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "联系人 " #: ../../event.c:518 msgid "Recurrence rule" msgstr "重复规则 " #: ../../event.c:522 msgid "Repeats every" msgstr "重复每个 " #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "这些平日: " #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "天的 %s%d%s 的月 " #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "关于 " #: ../../event.c:631 msgid "of the month" msgstr "每月 " #: ../../event.c:660 msgid "every " msgstr "每个 " #: ../../event.c:661 msgid "year on this date" msgstr "在此日期年 " #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "的 " #: ../../event.c:717 msgid "Recurrence range" msgstr "重复周期范围 " #: ../../event.c:725 msgid "No ending date" msgstr "没有结束日期 " #: ../../event.c:732 msgid "Repeat this event" msgstr "重复此事件 " #: ../../event.c:735 msgid "times" msgstr "时间 " #: ../../event.c:743 msgid "Repeat this event until " msgstr "重复直到此事件 " #: ../../event.c:771 msgid "Check attendee availability" msgstr "检查与会者的可用性 " #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "未命名的事件" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Iconbar 设置" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "无效的参数" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "已被删除。 " #. added status message #: ../../inetconf.c:144 #, fuzzy msgid " added." msgstr "添加。 " #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "访问此功能需要较高的访问。" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 #, fuzzy msgid "You need to specify the email address you'd like to subscribe with." msgstr "请指定您想要使用的用户名。" #: ../../messages.c:73 msgid "ERROR:" msgstr "错误: " #: ../../messages.c:91 msgid "Empty message" msgstr "空消息 " #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "取消。不发送消息。 " #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "因为您已经保存此邮件时自动取消。 " #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "保存到草稿失败: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "拒绝后空的消息。 \n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "消息已保存到草稿。 \n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "邮件已发送。 \n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "邮件已发送。 \n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "该消息是不会移动。 " #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "检索此部分时发生错误: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "检索此部分时发生错误:%s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "将签名附加到电子邮件吗? " #: ../../messages.c:2085 msgid "Use this signature:" msgstr "使用此签名: " #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "默认字符集的电子邮件标题: " #: ../../messages.c:2090 msgid "Preferred email address" msgstr "首选的电子邮件地址 " #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "电子邮件首选的显示名称 " #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "公告板上岗的首选的显示名称 " #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "邮箱视图模式 " #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "单击任何注释,对其进行编辑。 " #: ../../paging.c:29 msgid "Send instant message" msgstr "发送即时消息 " #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "发送即时消息: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "输入消息的文本: " #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "发送邮件 " #: ../../paging.c:78 msgid "Message was not sent." msgstr "消息未被发送。 " #: ../../paging.c:89 msgid "Message has been sent to " msgstr "邮件已发送到 " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "取消。没有设置被更改。" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "这使我的起始页" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "这不被获准成为开始页。" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "您不再需要选定的起始页。" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "首选的起始页" #: ../../roomlist.c:105 msgid "My Folders" msgstr "我的文件夹" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "取消。未保存的更改" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "已保存您的更改" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "用户 %s 踢出房间 %s。 " #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "用户 '%s' 邀请到 '%s' 的房间。 " #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "取消。不创建任何新的房间。 " #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "地板已被删除." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "已创建新的地板。 " #: ../../roomops.c:1363 msgid "Room list view" msgstr "房间列表视图 " #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "显示空层 " #: ../../roomtokens.c:570 msgid "file" msgstr "文件 " #: ../../roomtokens.c:572 msgid "files" msgstr "文件 " #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "公告板 " #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "邮件文件夹 " #: ../../roomviews.c:55 msgid "Address Book" msgstr "通讯簿 " #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "日历 " #: ../../roomviews.c:57 msgid "Task List" msgstr "任务列表 " #: ../../roomviews.c:58 msgid "Notes List" msgstr "注释列表 " #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki " #: ../../roomviews.c:60 msgid "Calendar List" msgstr "日历列表 " #: ../../roomviews.c:61 msgid "Journal" msgstr "杂志 " #: ../../roomviews.c:62 msgid "Drafts" msgstr "草稿 " #: ../../roomviews.c:63 msgid "Blog" msgstr "博客 " #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "此服务器已服务的最大用户数和不能接受在这个时候任何额外的登录。请稍后再试,或" "联系您系统管理员。 " #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "从城堡服务器 ; 收到意外的答案纾困。 " #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "您连接到运行城堡 %d.%0 城堡服务器2d。 \n" "为了运行此版本的 WebCit 也必须有城堡 %d.%02d 或更新。 \n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "已更新您的系统配置。" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "尝试创建或编辑此通讯簿条目时出错。 " #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "未保存的更改 " #: ../../useredit.c:778 msgid "A new user has been created." msgstr "已创建一个新用户。 " #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "您试图在运行时创建一个新的用户,从城堡内基于主机的身份验证模式。在此模式中," "您必须在创建新用户主机系统,不能在城堡。 " #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(没有名称)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "(工作)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "(首页)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "(单元格)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "地址:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "电话:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "电子邮件:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "此通讯簿是空" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "发生内部错误。" #: ../../vcard_edit.c:940 msgid "Error" msgstr "错误" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "编辑联系信息" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "前缀" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "第一名" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "中间名" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "姓氏" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "后缀" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "显示名称:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "标题:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "组织:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "信箱:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "城市:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "状态:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "邮政编码:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "国家:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "家庭电话:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "工作电话:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "移动电话:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "传真号码:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "主要的互联网电子邮件地址" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "互联网电子邮件别名" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "无法输入要保存您的邮件室" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "中止" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "可以不 decode 电子名片 photo\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "所需的授权 " #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "您请求的资源要求有效的用户名和密码。你能不能不会被记录: 是:没有名为 '%s' 的" "空间。 %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "此程序无法连接或保持与城堡服务器的连接。请报告此问题,您的系统管理员联系。 " #: ../../webcit.c:688 msgid "Read More..." msgstr "阅读更多... " #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "%s' 不是一个 Wiki 的房间。 " #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "没有在这里称为 '%s' 的页面。 " #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "房间标题栏中选择编辑此页链接,如果你想创建该页面。 " #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "提交的日期/时间 " #: ../../wiki.c:143 msgid "Author" msgstr "作者 " #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(显示) " #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "当前版本 " #: ../../wiki.c:184 msgid "(revert)" msgstr "(恢复) " #: ../../wiki.c:246 msgid "Page title" msgstr "页标题 " #: ../../fmt_date.c:306 msgid "Time format" msgstr "时间格式 " #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "从" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "开始日期:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "结束日期:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "时间:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "备注:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "上一页" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "下一步" #: ../../calendar_view.c:750 msgid "Week" msgstr "一周" #: ../../calendar_view.c:752 msgid "Hours" msgstr "时间" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "主题" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "正在进行的活动" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "编辑 " #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "我不知道如何显示 " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(无主题) " #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "队列为空 " #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "您没有查看此资源的权限。 " #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "自定义图标栏 " #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "显示为图标,请: " #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "图片和文本 " #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "只有图片 " #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "纯文字版 " #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "选择您想要对 '图标栏菜单中显示的图标在屏幕的左侧。 " #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "\"是\" " #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "无 " #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "站点徽标 " #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "描述此站点图标 " #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "摘要页面 " #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "邮件 (收件箱) " #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "快捷方式到您的电子邮件收件箱 " #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "个人通讯簿 " #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "您个人的笔记 " #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "快捷方式到您的个人日历 " #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "任务 " #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "您的个人任务列表快捷方式 " #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "客房 " #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "单击此图标显示列表中的所有可访问的房间 (或文件夹)可用。 " #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "在线是谁? " #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "单击此图标会显示当前记录的所有用户的列表。 " #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "聊天 " #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "单击此图标进入实时聊天模式与其他用户在同一房间。" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "高级的选项 " #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "城堡功能的完整菜单访问。 " #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "城堡徽标 " #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "显示提供动力的城堡' 图标 " #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "系统管理菜单" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "房间的助手菜单" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "本地主机别名" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "目录域" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "智能主机" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "备用的智能主机" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "通知主机" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "RBL 主机" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssassin 主机" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV clamd 主机" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Masqueradable 域" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "在此屏幕上所做的更改将不会生效,直到重新启动城堡的服务器。 " #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "网络服务 " #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "服务器 IP 地址 (任何 0.0.0.0) " #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) 客户端到服务器端口 (禁用-1) " #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "XMPP (Jabber) 服务器到服务器端口 (禁用-1) " #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "微调控件的高级的服务器 " #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "最大消息长度 " #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "服务器连接空闲超时时间 (以秒为单位) " #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "网络运行频率 (以秒为单位) " #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "最大并发会话 (0 = 无限制) " #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "工作线程的最小数目 " #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "工作线程的最大数目 " #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "会自动删除已提交的数据库的日志 " #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "创建一个新的房间 " #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "文件室的名称:" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "驻留在地板上:" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "房间的默认视图:" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "房间类型:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "公共 (每个人都自动显示)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "私人-隐藏 (可向任何人知道它的名称)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "私人-需要密码:" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "仅限邀请私营" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "个人 (仅为您邮箱)" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "创建一个新的房间 " #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "注销 " #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "再次登录 " #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "歼灭 (忘记/退订) 现时的房间" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "如果您选择此选项," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "将从您的房间列表中消失。这是你想做的吗?" #: ../../i18n_templatelist.c:102 #, fuzzy msgid "Zap this room" msgstr "跳过这间屋子 " #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "警告: 您必须在您的 web 浏览器中禁用 JavaScript。许多函数 这一系统将无法正常" "工作。" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "用户名称 " #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "房间 " #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "从主机 " #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "发件人 " #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "从服务器加载的邮件,请稍候 " #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "在新窗口中打开 " #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "移动 " #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "副本 " #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "打印 " #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "(发送出站邮件,这些主机直接传递失败时,才)" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "该地 (被遗忘) 室" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "单击任何房间以联合国 zap 上它,并转到那个房间。" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "更改您的首选项和设置 " #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "更新您的联系信息 " #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "更改您的密码 " #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "请输入您的生物 " #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "编辑您的在线照片 " #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "查看/编辑服务器端邮件筛选器" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "编辑你推电子邮件设置 " #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "管理您的 OpenIDs " #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "视图 " #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "下载 " #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "全局配置" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "用户帐户管理" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "关闭城堡" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "客房和地板" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "转到一个隐藏的房间" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "如果您知道隐藏 (猜名称) 或 passworded 房间的名称,您可以 输入通过键入其名称" "下面的那间屋子里。一旦您访问一个私有 房间,它将出现在您定期房间列表使您不必保" "持 返回在这里。" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "输入房间名称:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "输入房间密码:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "关于 " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "从 " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "自 " #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "抄送: " #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "主题: " #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "推进电子邮件 " #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "战略性服务器主机 (禁用空白) " #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "战略性服务器端口 " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "战略性同步源 " #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "战略性身份验证的详细信息 (用户: 通) " #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "外部页导航工具 (禁用空白) " #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "(文件夹) 树视图 " #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "表 (房间) 视图 " #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 小时 (am/pm) " #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 小时 " #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "星期日 " #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "星期一 " #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "没有签名 " #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "全功能 " #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "安全模式 " #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "安全模式是少用 web 浏览器,但不是充分的特色。 " #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "首选项和设置" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "(当用户收到新邮件 ; 通知 URL)" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "基本命令" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "您的信息" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "高级的房命令" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "编辑用户帐户:" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "用户名:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "密码" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "发送 Internet 邮件的权限" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "登录名的数目" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "提交邮件" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "访问级别" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "用户 ID 号" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "上次登入时间的日期和时间" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "这几天后自动清除" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 侦听器端口 (禁用-1) " #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3 通过 SSL 端口 (禁用-1) " #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "以秒为单位的 POP3 回迁频率 " #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "以秒为单位的 POP3 最快回迁频率 " #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "查看出站 SMTP 队列 " #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "刷新此页 " #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "远程主机" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "状态:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "继续处理" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "给您的用户的消息:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "政府 " #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "配置" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "邮件过期这层政策" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "访问控制和网站策略设置" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "共享" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "邮件列表服务" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "远程检索" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "已更新您的图标栏。请选择继续其选择的任何类情况的发生。 " #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "您可能需要进行强制刷新 (shift 键 F5) > 为了使更改生效 " #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "一般站点的配置项 " #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "更改登录徽标 " #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "更改注销徽标 " #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "节点名称 " #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "完全限定的域名 " #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "人类可读的节点名称 " #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "电话号码 " #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "目前提示 (文本模式的客户端) " #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "此系统的地理位置 " #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "系统管理员的名称 " #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Unzoned 的日历项目的默认时区 " #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "网络共享空间" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "添加一个新节点 " #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "共享的密钥 " #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "主机或 IP 地址 " #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "端口号 " #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "添加一个新节点 " #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(杀) " #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "怀胎配置 " #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "此通讯簿是空" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "分钟 " #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "试 " #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(编辑) " #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(删除) " #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "没有新的消息。" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "新的起始页 " #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "已更改您的起始页。 " #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "(注: 这不会更改您的浏览器的主页。它会更改页当您登录到您在开始 " #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 #, fuzzy msgid "Post a comment" msgstr "%d 的评论 " #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "确认删除 " #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "您确实要删除 " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "添加、 更改、 删除用户帐户" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(主机运行 ClamAV clamd 服务)" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "发件人 " #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "重新启动城堡 " #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "从 " #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "匿名 " #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "在中 " #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "自: " #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "密件抄送: " #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "(可选) 的主题: " #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "— — 转发的消息 — — " #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "邮政消息 " #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "保存到草稿 " #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "附件: " #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "删除这个房间" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "房间列表" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "搜索: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "服务器命令的结果 " #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "请输入另一个命令 " #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "返回到菜单 " #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "当前的用户 " #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "用户配置文件 " #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "单击此处以发送到 的即时消息 " #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "只有图片 " #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "编辑或删除用户" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "您需要查看这的助手。 " #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "添加用户" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "编辑或删除用户" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "请城堡服务器重新启动,稍候... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "的用户列表 " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "用户名称 " #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "编号 " #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "访问级别 " #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "上次登入时间 " #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "总登录 " #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "总帖子 " #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "加载 " #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "已成功验证。" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "但是,用户名称" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "与现有用户的冲突。" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "请指定您想要使用的用户名。" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "邮件过期的这间屋子的政策" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "这种地板使用默认策略" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "永远不会自动使邮件过期 " #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "过期的邮件数 " #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "过期的信息时代 " #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "消息或几天的数目: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "邮件过期这层政策" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "使用系统默认值" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "关闭窗口 " #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "上传的文件: " #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "您确实要删除 " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "附加文件" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "删除 " #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "索引和日记 " #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "警告: 这些设施会占用大量资源。 " #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "启用全文索引 " #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "执行日志记录的电子邮件 " #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "执行非电子邮件消息的日志记录 " #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "日记中记录的消息的电子邮件目标 " #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "可供下载的文件 " #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "上传的文件: " #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "上传 " #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "文件名 " #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "大小 " #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "内容 " #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "说明 " #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "此安装的城堡建成不支持服务器端邮件过滤
    请联系您的系统管理员联系。" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "新的 " #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "邮件 " #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "选择的页面: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "从这些远程 POP3 帐户检索消息,并将它们存储在此 房间:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "远程主机" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "在服务器上保留邮件吗?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "时间间隔" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "添加 " #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "获取以下的 RSS 订阅源,并将它们存储在这个房间里:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "饲料的 URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "若要创建一个新的用户帐户,在下面的框中输入所需的用户名称 然后单击创建。" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "新用户:" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "创建" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(域映射与全局通讯簿)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "Wiki 页面的列表 " #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(删除)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "下面列出的用户有权访问这个房间。若要删除用户从 访问列表中,从列表中选择用户名" "称,然后单击 '踢'。" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "要授予这个房间另一个用户访问,在框中输入用户名 下面,单击邀请。" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "邀请:" #: ../../i18n_templatelist.c:426 #, fuzzy msgid "Invite" msgstr "邀请:" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "用户" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "用户" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "通讯簿 " #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "若要编辑现有的用户帐户,请从列表中选择用户名和 单击编辑。" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "删除规则" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "删除此脚本吗?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "删除规则" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "幻灯片放映 " #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(主机运行 SpamAssassin 服务)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "这是 '%s' 已在您的日历中的更新。 " #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "与 %s 已经在您的日历中的情况下,此事件将发生冲突。 " #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "新邮件到达时:" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "不需要筛选将它留在我的收件箱" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "根据下面所选的规则来对其进行筛选" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "通过手动编辑脚本 (仅适用于高级用户) 对其进行筛选" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "您收到的邮件不会通过任何脚本过滤" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "添加规则" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "当前处于活动状态的脚本是:" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "添加或删除脚本" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "配置 Citdael 的 LDAP 接头 " #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "注意: 此城堡服务器建成了无 LDAP 支持。这些选项将不起作用。 " #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "(若要禁用空白) 的 LDAP 服务器的主机名 " #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "(若要禁用空白) 的 LDAP 服务器的主机名 " #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "基地 DN " #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "绑定 DN " #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "DN 绑定密码 " #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "编辑或删除这个房间 " #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "转到隐藏的房间 " #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "歼灭 (忘记) 这个房间 " #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "列出所有的房间都被遗忘 " #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "阅读新邮件 " #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "消息 ID " #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "提交的日期/时间 " #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "上次尝试 " #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "收件人 " #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "阅读 # " #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "最早到最新 " #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "最新到旧 " #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "请等待您的用户都被分页,城堡服务器会重新启动后... " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "编辑 " #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "答复 " #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "引用回复" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "全部回复 " #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "转发 " #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "标题 " #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "编辑站点范围的配置 " #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "域名及互联网邮件配置 " #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "与其他城堡服务器配置复制 " #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "显示提供动力的城堡' 图标 " #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "快捷方式到您的电子邮件收件箱 " #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "邮件 " #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "快捷方式到您的个人日历 " #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "个人通讯簿 " #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "您个人的笔记 " #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "您的个人任务列表快捷方式 " #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "列出所有的房间都被遗忘 " #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "在线用户 " #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "高级 " #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "系统管理员的名称 " #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "自定义此菜单 " #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "登录 " #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "切换到房间列表 " #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "切换到菜单 " #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "我的文件夹 " #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP 侦听器端口 (禁用-1) " #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP 通过 SSL 端口 (禁用-1) " #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "保持原始邮件头从 IMAP " #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "图片上传 " #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "您可以直接从您的计算机上传的映像 " #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "请选择要上载的文件: " #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "重置表单 " #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "订阅列表 " #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "订阅的列表/insibscribe " #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "发送确认请求 " #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "关于 " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 #, fuzzy msgid " mailing list." msgstr "邮件列表服务" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "回去。。。 " #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "错误: " #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "从 " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "邮件列表服务" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "回去。。。 " #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "发送确认请求 " #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "配置" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "任务的名称" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "首选的电子邮件地址 " #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "输入消息的文本: " #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "时间格式 " #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "文件室的名称:" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "如果是私有的导致当前用户忘记室" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "首选的用户只" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "只读的房间" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "允许发布的所有用户,也可以都删除邮件" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "文件目录室" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "目录名称:" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "上载允许" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "下载允许" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "可见的目录" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "网络共享空间" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "常驻 (并不自动清除)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "所需的主题 (强制用户指定邮件主题)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "匿名消息" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "没有匿名消息" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "所有消息都是匿名" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "提示用户输入消息时" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "房间的助手:" #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "删除这个房间" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "不与共享" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "与共享" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "远程节点名称" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "远程房间名称" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "行动" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "当共享一个房间,必须从两端共享它。添加节点 共享列表发送出去,但为了接收邮件," "邮件 必须将的邮件发送到您的系统以及配置其他节点。
  • 如果远程房间名称为空," "则假定的房间名称是 相同的远程节点上。
  • 如果远程房间名称是不同的 远程节点还" "必须配置在这里的房间的名称。" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "在服务器上保留邮件吗?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "添加、 更改或删除层 " #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "层数 " #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "楼面名称 " #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "房间数 " #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "地板 CSS " #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "创建一个新的房间 " #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "向上移动规则" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "向下移动规则" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "删除规则" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "如果" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "或抄送" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "回复" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "近期从" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "近年来 " #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "从信封" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "信封" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-发件人" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-垃圾邮件标志" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-垃圾邮件状态" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "列表 ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "邮件大小" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "所有" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "包含" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "不包含" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "是" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "不是" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "匹配" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "不匹配" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(所有消息)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "大于" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "小于" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "年 " #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "保持" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "默默地放弃" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "拒绝" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "移动消息" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "转发到" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "度假" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "消息:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "然后" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "继续处理" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "停止" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(域,此主机接收邮件)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "网络配置 " #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "当前配置的节点 " #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(删除楼) " #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(编辑图形) " #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "更改房间名称:" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "配置自动到期的旧邮件 " #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "每层或每个房间的基础上,可以重写这些设置。 " #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "小时运行数据库自动清除 " #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "默认邮件过期,公共机房的政策 " #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "默认消息过期专用邮箱策略 " #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "公用房间相同的策略 " #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "默认用户清除时间 (天) " #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "默认的房间清除时间 (天) " #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "您确实要删除 " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "删除这个房间" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "设置或更改此房间旗帜的图标" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "编辑此房间信息文件" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "输入一个服务器的命令 " #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "此屏幕允许您输入城堡服务器命令而不是WebCit 的支持。如果你不知道这意味着什么," "然后此屏幕不会给你多大用处。 " #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "请输入命令: " #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "输入 (如果要求 SEND_LISTING 传输模式) 的命令: " #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "检测到的主机标头 " #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "请输入命令: " #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(主机运行实时黑名单)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "访问控制和网站策略设置 " #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "允许歼灭的助手 (忘了) 的房间 " #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "问题用户隔离的邮件 " #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "隔离房间的名称 " #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "房间到登录页的名称 " #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "身份验证模式 " #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "自载 " #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "基于主机 " #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Active Directory)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "允许匿名来宾访问 " #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "主用户名称 (禁用空白) " #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "主用户密码 " #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "新用户的的初始的访问级别 " #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "创建房间所需的访问级别 " #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "自动授予用户创建包房房间助手状态 " #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 #, fuzzy msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "自动授予用户创建包房房间助手状态 " #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "限制访问 Internet 邮件 " #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "禁用自助服务的用户帐户创建 " #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "提示: 请不要选择两个 ! " #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "为新用户需要注册 " #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "添加、 更改或删除层 " #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "查看为:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "删除这个房间" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "作为登录 " #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "未登录。 " #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "您必须登录访问此页。 " #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "使用用户名和密码登录 " #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "密码: " #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "新用户?立即注册 " #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "输入的名称和密码,您想要使用,并单击 "新用户."" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "使用 OpenID 登录 " #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID 的 URL: " #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "使用 OpenID 登录 " #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "使用 OpenID 登录 " #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "使用 OpenID 登录 " #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "添加一个新的脚本" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "若要创建一个新的脚本,在下面的框中输入所需的脚本名称并单击创建" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "脚本的名称:" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "编辑脚本" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "返回到该脚本编辑屏幕" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "删除脚本" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "若要删除现有的脚本,从列表中选择脚本名称并单击删除" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "现在重新启动" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "重新启动后寻呼用户" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "所有用户都均处于空闲状态时重新启动" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "配置邮件推送 " #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "推动电子邮件和短信设置" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "如果您的管理员已启用该功能,可以通知城堡战略性服务器,您收到的所见所闻新的电" "子邮件和自动同步您拥有的任何设备战略性客户端安装。 " #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "另外,如果管理员已配置它,城堡可以发送新邮件到达时的文本消息。 " #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "通知的战略性服务器" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "发送文本消息..." #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "(使用国际标准格式,没有任何前导零、 空格或连像+61415011501) " #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "使用自定义通知计划由您的管理员配置 " #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "不要发送任何通知 " #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "提供者" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "MTA SMTP 端口 (禁用-1) " #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "MSA SMTP 端口 (禁用-1) " #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP 通过 SSL 端口 (禁用-1) " #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "执行 RBL 检查后的连接而不是后 RCPT " #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "将邮件标记为垃圾邮件,而不是拒绝 " #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "允许未经身份验证的 SMTP 客户端欺骗这个站点域 " #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "从正确伪造: 经过身份验证的 SMTP 在行 " #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "后缀的词典 TCP 端口 " #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "若要禁用-1 " #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve 端口 (禁用-1) " #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "怀胎配置 " #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "一般 " #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Iconbar 设置" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "索引/日记" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "访问" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "目录" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "自动普格尔" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" " 这个房间里的内容都被作为单个邮件 邮寄 以下列列表中的收件人:

    " #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" " 这个房间里的内容都被以邮寄 ,来以月刊形式 以下列表中的收件人:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "列表 ID" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "时间格式 " #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "从联系人或其他通讯簿添加收件人" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "允许订阅服务器以便将邮件到这个房间。" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "房间后的出版物需求助手的权限。" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "允许自助服务订阅退订的请求。" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "订阅取消订阅的 URL 是:" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "主题" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "的摘要页 " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "邮件 " #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "今天 & nbsp; 对 & nbsp; 你 & nbsp; 日历 " #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "谁的 & nbsp; 在线 & nbsp; 现在 " #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "关于 & nbsp; 此 & nbsp; 服务器 " #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "调整" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "第五届 " #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "然后" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "系统管理员的名称 " #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "您确实要删除此 OpenID 吗? " #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "当前的用户 " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "单击其名称可读取用户信息。单击" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "向该用户发送即时消息。 " #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "旧邮件 " #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "新邮件 " #: ../../i18n_templatelist.c:880 #, fuzzy msgid "Share" msgstr "共享" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(允许哪些用户作为域伪装) " #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "输入新的密码: " #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "输入并再次确认: " #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "更改密码 " #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "编辑您的会话显示" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "此屏幕允许您更改您的会话在 '谁在线列表中的显示的方式。若要关闭以前设置的任何 " "'假' 的名称,只需单击适当的更改按钮无需输入任何内容在相应的框中。" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "房间名称:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "更改房间名称:" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "主机名:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "更改主机名称" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "更改用户名" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "编辑此页的历史 " #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "确认消息的移动 " #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "移动到此消息: " #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "已知房间列表 " #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "哪儿可以从这里? " #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "转到隔壁房间 " #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "… … 以 未读的 消息 " #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "跳到隔壁房间 " #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(回来以后) " #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Ungoto" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "哎呀 !回 " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "阅读新邮件 " #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... 这房间 " #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "阅读所有邮件 " #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "….old 新 " #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "输入的消息 " #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(在这个房间里发布) " #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "文件库 " #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(列出可供下载的文件) " #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "摘要页 " #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "我的账户的摘要 " #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "的用户列表 " #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(所有已注册的用户) " #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "再见 ! " #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "(如果存在的话,所有出站邮件转发到这些主机之一)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "查看联系人 " #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "添加新联系人 " #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "天视图 " #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "月视图 " #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "添加新事件 " #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "日历列表 " #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "查看任务 " #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "添加新任务 " #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "查看备注 " #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "添加新的注释 " #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "刷新消息列表 " #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "写邮件 " #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki 回家 " #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "编辑此页 " #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "历史 " #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "跳过这间屋子 " #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "保存更改" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "您的订阅 %s %s 邮件列表中。\"信笺已向您发送带有一个" #~ "附加的 Web 链接,为您的电子邮件单击以确认您的订购。这种额外的步骤是为你作" #~ "为它的保护,防止他人能够为您订阅列表没有你的同意,

    请点击以下链接" #~ "正在 e-邮寄给您,并将确认您的订购。
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "警告: 无法解析服务器配置 ;你跑到新的 citserver 做吗? " #~ msgid "There is no room called '%s'." #~ msgstr "没有名为 '%s' 的空间。 " #~ msgid "Network" #~ msgstr "网络" #~ msgid "Tuning" #~ msgstr "调整" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "立即债权在 IMAP 中已删除的邮件 " #~ msgid "A script by that name already exists." #~ msgstr "脚本通过该名称已存在" #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "已创建一个新的脚本。返回脚本编辑屏幕编辑,并将其激活。" #~ msgid "Delete script" #~ msgstr "删除脚本" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "您连接到 %s,运行服务器生成 %s%s %s 与位于 %s。%s 您的系统管理员联系。 " #~ msgid "Yes with users list" #~ msgstr "是用户列表 " #~ msgid " - powered by Citadel" #~ msgstr "-由 < href='http://www.citadel.org'> " #~ msgid "Room list" #~ msgstr "房间列表" #~ msgid "View as room list" #~ msgstr "查看房间列表" #~ msgid "View as folder list" #~ msgstr "查看文件夹列表" webcit-dfsg.orig/po/webcit/tr.po0000644000175000017500000036646413223341037016702 0ustar michaelmichael# Turkish translation for citadel # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-12-19 07:18+0000\n" "Last-Translator: Dennis T Kaplan \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-12-20 04:36+0000\n" "X-Generator: Launchpad (build 14538)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "İptal" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Saat: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Dakika: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Simge Çubuğu Ayarı" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Herhangi bir notu düzenlemek için tıklayın." #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Kullanıcı maksimum sayıda ve şu anda herhangi bir ek oturumları kabul " "edemez. Lütfen daha sonra tekrar deneyin veya sistem yöneticinize başvurun." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Citadel sunucudan beklenmeyen bir yanıt; dışarı balyalama." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Değişiklikler kaydedilmedi." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Yeni bir kullanıcı oluşturuldu." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'% s' bir Wiki odası değildir." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "'% s' adında bir sayfa yoktur." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Bu sayfa oluşturmak istiyorsanız 'Bu sayfayı Düzenle' seçeneğini seçin." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Tarih" #: ../../wiki.c:143 msgid "Author" msgstr "Yazar" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(göster)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Kullanılan Sürüm" #: ../../wiki.c:184 msgid "(revert)" msgstr "(eski haline dön)" #: ../../wiki.c:246 msgid "Page title" msgstr "Sayfa başlığı" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "Dakika: " #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Kullanıcı adını değiştir" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Simge Çubuğu Ayarı" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Kullanıcı adını değiştir" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" #~ msgid "There is no room called '%s'." #~ msgstr "'% s' adında oda yok." webcit-dfsg.orig/po/webcit/el.po0000644000175000017500000037634213223341037016651 0ustar michaelmichael# Greek translation for citadel # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-10-27 09:24+0000\n" "Last-Translator: Impetus \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-10-28 05:00+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "άγνωστη διαθεσιμότητα" #: ../../availability.c:169 msgid "free" msgstr "ελεύθερο" #: ../../availability.c:179 msgid "BUSY" msgstr "ΑΠΑΣΧΟΛΗΜΕΝΟΣ" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Περίληψη:" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Περιγραφή" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Ακύρωση" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "νεότερες δημοσιεύσεις" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "μεγάλα θέσεις" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Πήγαινε στη σελίδα: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Αρχή" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Τέλος" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Διαγραφή" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Νέος χρήστης" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Προβληματικός χρήστης" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Τοπικός χρήστης" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Χρήστης δικτύου" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Κύριος χρήστης" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Επιβεβαιώστε νέους χρήστες" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Δεν υπάρχουν χρήστες για επιβεβαίωση αυτή τη στιγμή" #: ../../auth.c:617 msgid "very weak" msgstr "πολύ αδύναμο" #: ../../auth.c:620 msgid "weak" msgstr "ασθενές" #: ../../auth.c:623 msgid "ok" msgstr "ok!" #: ../../auth.c:627 msgid "strong" msgstr "ισχυρό" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Επιλέξτε ομάδα διαχείρησης για τον χρήστη:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Ακυρώθηκε. Ο κωδικός πρόσβασης δεν άλλαξε." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Δεν ταιριάζουν. Ο κωδικός πρόσβασης δεν άλλαξε." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Δεν επιτρέπεται κένο πεδίο στον κωδικό" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Πρόσκληση για συνάντηση" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Δημοσίευση γεγονότος" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Αυτό είναι άγνωστο στοιχείο για το ημερολόγιο." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Τοποθεσία" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Ημερομηνία" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Αυτό το γεγονός έρχεται σε αντίθεση με το '%s' το οποίο υπάρχει ήδη στο " "ημερολόγιό σας." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Ενημέρωση:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "ΑΝΤΙΘΕΣΗ" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Πώς θα θέλατε να απαντήσετε σε αυτή την πρόσκληση;" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Αποδοχή" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Αβέβαιος" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Άρνηση" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Πατήστε Ενημέρωση για να αποδεχτείτε αυτή την απάντηση και να " "ενημερώσετε το ημερολόγιό σας." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Ενημέρωση" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" "Υπήρξε ένα σφάλμα κατά την εισαγωγή αυτού του στοιχείου στο ημερολόγιο." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Αποδεχτείκατε την πρόσκληση σε συνάντηση και προσθέθηκε στο ημερολόγιό σας." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "Απορρίψατε την πρόσκληση σε συνάντηση. Δεν εισήχθη στο ημερολόγιό σας." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Μια απάντηση στάλθηκε στον διαχειριστή της συνάντησης." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Αυτό το πρόγραμμα ήταν αδύνατο να συνδεθεί και να μείνει συνδεδεμένο με τον " "εξυπηρετητή του Citadel. Παρακαλώ ενημερώστε τον διαχειριστή του συστήματος " "για το συγκεκριμένο πρόβλημα." #: ../../webcit.c:688 msgid "Read More..." msgstr "Διαβάστε περισσότερα..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 #, fuzzy msgid "Network services" msgstr "Χρήστης δικτύου" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Έξοδος" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Συνδεθείτε ξανά" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Αλλάξτε τον κωδικό πρόσβασης" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Αλλάξτε τον κωδικό πρόσβασης" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 #, fuzzy msgid "Enter room password:" msgstr "Εισάγετε νέο κωδικό πρόσβασης:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "Πήγαινε στη σελίδα: " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 #, fuzzy msgid "Password" msgstr "Αλλάξτε κωδικό πρόσβασης" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Χρήστης δικτύου" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Αβέβαιος" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Προσθήκη" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 #, fuzzy msgid "New user: " msgstr "Νέος χρήστης" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Νέος χρήστης" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 #, fuzzy msgid "Users" msgstr "Νέος χρήστης" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Διαγραφή" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Διαγραφή" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "" "Αυτό το γεγονός έρχεται σε αντίθεση με το '%s' το οποίο υπάρχει ήδη στο " "ημερολόγιό σας." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Αυτό το γεγονός έρχεται σε αντίθεση με το '%s' το οποίο υπάρχει ήδη στο " "ημερολόγιό σας." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 #, fuzzy msgid "Log in" msgstr "Συνδεθείτε ξανά" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "Πήγαινε στη σελίδα: " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 #, fuzzy msgid "Network shared room" msgstr "Χρήστης δικτύου" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 #, fuzzy msgid "Room aide: " msgstr "Πήγαινε στη σελίδα: " #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 #, fuzzy msgid "Actions" msgstr "Τοποθεσία" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Διαγραφή" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Αλλάξτε κωδικό πρόσβασης" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Εισάγετε νέο κωδικό πρόσβασης:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 #, fuzzy msgid "Initial access level for new users" msgstr "Επιλέξτε ομάδα διαχείρησης για τον χρήστη:" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Συνδεθείτε ξανά" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Θα πρέπει να συνδεθείτε για να αποκτήσετε πρόσβαση σε αυτήν τη σελίδα." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Νέος χρήστης; Εγγραφείτε τώρα" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Συνδεθείτε ξανά" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 #, fuzzy msgid "Access" msgstr "Αποδοχή" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Περίληψη:" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Εισάγετε νέο κωδικό πρόσβασης:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Εισάγετε το νέο κωδικό πρόσβασης ξανά για επιβεβαίωση:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Αλλάξτε κωδικό πρόσβασης" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 #, fuzzy msgid "Summary page" msgstr "Περίληψη:" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 #, fuzzy msgid "(all registered users)" msgstr "Επιβεβαιώστε νέους χρήστες" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "νεότερες δημοσιεύσεις" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" #, fuzzy #~ msgid "Network" #~ msgstr "Χρήστης δικτύου" #, fuzzy #~ msgid "password" #~ msgstr "Αλλάξτε κωδικό πρόσβασης" #~ msgid "Your password was not accepted." #~ msgstr "Ο κωδικός δεν ήταν αποδεκτός" webcit-dfsg.orig/po/webcit/ko.po0000644000175000017500000036522713223341037016662 0ustar michaelmichael# Korean translation for citadel # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-11-20 21:55+0000\n" "Last-Translator: Litty \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-21 05:11+0000\n" "X-Generator: Launchpad (build 16831)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "취소되었습니다. 변경 사항이 저장되지 않았습니다." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "변경 사항이 저장되었습니다." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "방 목록 보기" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" webcit-dfsg.orig/po/webcit/ro.po0000644000175000017500000042144413223341037016663 0ustar michaelmichael# Romanian translation for citadel # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-08-23 01:13+0000\n" "Last-Translator: Ciprian Panaite \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-08-24 04:34+0000\n" "X-Generator: Launchpad (build 13697)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "disponibilitate necunoscută" #: ../../availability.c:169 msgid "free" msgstr "liber" #: ../../availability.c:179 msgid "BUSY" msgstr "OCUPAT" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Expedierea a fost anulată." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Nu ai trimis nimic." #: ../../graphics.c:106 msgid "your photo" msgstr "poza ta" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "pictograma acestui spaţiu" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "fotografia de salut pentru conectare" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "fotografia pentru deconectare" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "pictograma acestui nivel" #: ../../tasks.c:93 msgid "Completed?" msgstr "Finalizat?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Numele sarcinii" #: ../../tasks.c:97 msgid "Date due" msgstr "Limită" #: ../../tasks.c:99 msgid "Category" msgstr "Categorie" #: ../../tasks.c:101 msgid "Show All" msgstr "Afișează tot" #: ../../tasks.c:224 msgid "Edit task" msgstr "Editează sarcină" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Rezumat" #: ../../tasks.c:259 msgid "Start date:" msgstr "Dată de început:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Nici o dată" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "sau" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Timp asociat" #: ../../tasks.c:289 msgid "Due date:" msgstr "Termen limită" #: ../../tasks.c:318 msgid "Completed:" msgstr "Îndeplinit:" #: ../../tasks.c:329 msgid "Category:" msgstr "Categorie:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Descriere:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Salvează" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Şterge" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Anulare" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Sarcină fără titlu" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d comentarii" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "permalink" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "Postări mai noi" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "Postări mai vechi" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Modifică %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Textul este aranjat după browserul cititorului. Trecerea " "la linie nouă poate fi forţată precedând linia următoare cu un spaţiu." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Salvează modificările" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Anulat. %s nu a fost anulat." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " s-a salvat." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Info spaţiu" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Biografia ta" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Oră " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minut " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "stare necunoscută" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "necesită acţiune" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "acceptat" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "refuzat" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(tenative)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "delegat" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "finalizat" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "în curs" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(nimic)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Manage Account/OpenID Associations" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Chiar vrei să ştergi acest OpenID ?" #: ../../openid.c:47 msgid "(delete)" msgstr "(şterge)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Adaugă un OpenID " #: ../../openid.c:58 msgid "Attach" msgstr "Ataşează" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s nu permite autentificare via OpenID" #: ../../summary.c:128 msgid "(None)" msgstr "(Nici unul))" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nimic)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Du-te la pagina: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Primul" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Ultimul" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "erroare realloc() imposibil de obţinut %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Șters" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Utilizator Nou" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Utilizator problemă" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Utilizator Local" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Utilizator de reţea" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Utilizator preferat" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Şef" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "A apărut o eroare." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Confirmă utilizatori noi" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Nici un utilizator nu trebuie confirmat în acest moment" #: ../../auth.c:617 msgid "very weak" msgstr "foarte slabă" #: ../../auth.c:620 msgid "weak" msgstr "slabă" #: ../../auth.c:623 msgid "ok" msgstr "bună" #: ../../auth.c:627 msgid "strong" msgstr "foarte bună" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Nivel curent de acces: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Alege nivelul de acces pentru acest utilizator:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Anulat. Parola nu a fost schimbată." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Nu sunt identice. Parola n-a fost schimbată." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Nu se poate fără parolă." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Invitaţie la întâlnire" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Răspunsul participantului la invitaţia ta" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Eveniment publicat" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Acesta este un tip necunoscut de element al calendarului." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Loc:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Data:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Data şi ora de început" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Data şi ora de sfârşit" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Recurenţă" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Acesta este un eveniment care se repetă" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Participant:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Aceasta este o actualizare a '%s', care este deja în calendarul tău." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Acest eveniment va intra în conflict cu '%s' care este deja în calendarul " "tău." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Actualizare:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLICT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Cum vrei să răspunzi acestei invitaţii?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Accept" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Tentativă" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Refuz" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Apasă Actualizare pentru a accepta acest răspuns şi a actualiza " "calendarul" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Actualizare" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignoră" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "A intervenit o eroare la analiza acestui element din calendar" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Ai acceptat această invitaţie la întâlnire. A fost introdusă în calendarul " "tău." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Ai acceptat să încerci să onorezi această invitaţie la întâlnire. A fost " "trecută \"în creion\" în calendarul tău." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Ai refuzat această invitaţie la întâlnire. Nu a fost memorată în calendarul " "tău." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "A fost expediat un răspuns către organizatorul întâlnirii." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" "Calendarul dumneavoastră a fost actualizat pentru a reflecta acest " "RSVP(Répondez s'il-vous-plaît = Răspundeți vă rog)." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Ați ales să ignorați acest RSVP(Répondez s'il-vous-plaît = Răspundeți vă " "rog). Calendarul dumneavoastră nu a fost actualizat." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Săptămâna începe cu:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "A apărut o eroare în timpul recuperării fişierului %s\n" #: ../../event.c:71 msgid "seconds" msgstr "secunde" #: ../../event.c:72 msgid "minutes" msgstr "minute" #: ../../event.c:73 msgid "hours" msgstr "ore" #: ../../event.c:74 msgid "days" msgstr "zile" #: ../../event.c:75 msgid "weeks" msgstr "săptămâni" #: ../../event.c:76 msgid "months" msgstr "luni" #: ../../event.c:77 msgid "years" msgstr "ani" #: ../../event.c:78 msgid "never" msgstr "niciodată" #: ../../event.c:82 msgid "first" msgstr "întâi" #: ../../event.c:83 msgid "second" msgstr "al doilea" #: ../../event.c:84 msgid "third" msgstr "al treilea" #: ../../event.c:85 msgid "fourth" msgstr "al patrulea" #: ../../event.c:86 msgid "fifth" msgstr "al cincilea" #: ../../event.c:89 msgid "Event" msgstr "eveniment" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Participanți" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Adaugă sau modifică un eveniment" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Rezumat" #: ../../event.c:222 msgid "Location" msgstr "Loc" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Start" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Eveniment pentru toată ziua" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Sfârșit" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Note" #: ../../event.c:374 msgid "Organizer" msgstr "Organizator" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(tu eşti organizatorul)" #: ../../event.c:397 msgid "Show time as:" msgstr "Arată ora ca:" #: ../../event.c:420 msgid "Free" msgstr "Liber" #: ../../event.c:428 msgid "Busy" msgstr "Ocupat(ă)" #: ../../event.c:445 msgid "(One per line)" msgstr "(Unul pe linie)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contacte" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Regulă de recurenţă" #: ../../event.c:522 msgid "Repeats every" msgstr "Se repetă la fiecare" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "în zilele săptămânii:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "în ziua %s%d%s a lunii" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "pe " #: ../../event.c:631 msgid "of the month" msgstr "a lunii" #: ../../event.c:660 msgid "every " msgstr "la fiecare " #: ../../event.c:661 msgid "year on this date" msgstr "an pe această dată" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "de" #: ../../event.c:717 msgid "Recurrence range" msgstr "Interval de recurenţă" #: ../../event.c:725 msgid "No ending date" msgstr "Nu se termină" #: ../../event.c:732 msgid "Repeat this event" msgstr "Repetă acest eveniment" #: ../../event.c:735 msgid "times" msgstr "ori" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Repetă acest eveniment până când " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Verifică disponibilitatea participantului" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Eveniment fără titlu" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Configurare bară pictograme" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Parametru nevalid" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " s-a șters." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " s-a adăugat." #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Nu ai drepturi suficiente pentru a accesa această funcţie" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "EROARE:" #: ../../messages.c:91 msgid "Empty message" msgstr "Mesaj gol" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Anulat. Mesajul nu a fost afişat." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Anulat automat deoarece deja ai salvat acest mesaj." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Salvarea ca ciornă a eşuat: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Este refuzată postarea unui mesaj gol.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Mesajul a fost salvat ca ciornă.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Mesajul a fost trimis.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Mesajul a fost postat.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Mesajul nu a fost mutat." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "A apărut o eroare la recuperarea acestei părţi: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "A apărut o eroare la recuperarea acestei părţi: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Doreşti anexarea semnăturii la acest mesaj ?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Foloseşte această semnătură:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Set de caractere implicit pentru antetul e-mailurilor:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Adresă e-mail preferată" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Nume preferat afişat în mesajele e-mail" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Nume preferat afişat în mesajele postate pe forum" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Mod vizualizare căsuţă poştală" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Click pe orice notă pentru modificare" #: ../../paging.c:29 msgid "Send instant message" msgstr "Trimite mesaj instantaneu" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Trimite mesaj instantaneu către: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Introdu mesaj text:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Trimite mesaj" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Mesajul n-a fost trimis" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Mesajul a fost trimis către " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Anulat. Nu a fost schimbat nici un parametru." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Configurează ca pagină de start" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Configurarea ca pagină de start nu este permisă." #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Nu mai aveţi nici o pagină de start selectată." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Pagină de start preferată" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Dosarele mele" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Anulat. Modificările nu au fost salvate." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Modificările au fost salvate" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Utilizatorul %s' a fost dat afară din spaţiul %s'" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Utilizatorul '%s' invitat în camera '%s'" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Anulat. Nu a fost creat nici un spaţiu nou." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Nivelul a fost şters." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "A fost creat un nou nivel." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Vizualizare listă spaţii" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Vezi niveluri libere" #: ../../roomtokens.c:570 msgid "file" msgstr "fișier" #: ../../roomtokens.c:572 msgid "files" msgstr "fişiere" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Forum" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Dosar poştă" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Carte de adrese" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Calendar" #: ../../roomviews.c:57 msgid "Task List" msgstr "Listă de sarcini" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Listă note" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Listă calendar" #: ../../roomviews.c:61 msgid "Journal" msgstr "Jurnal" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Ciorne" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Acest server deserveşte acum numărul maxim admis de utilizatori şi nu poate " "accepta conectări suplimentare în acest moment. Încearcă mai târziu sau " "contactează administratorul sistemului." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Esti conectat la un server Citadel care rulează Citadel %d.%02d.\n" "Pentru a putea rula această versiune a Webcit ai nevoie de versiunea %d." "%02d sau mai nouă.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Configuraţia sistemului tău a fost actualizată." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "A apărut o eroare la încercarea de a crea sau modifica această poziţie din " "cartea de adrese." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Modificările nu au fost salvate" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "A fost creat un nou utilizator" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Tocmai încercați să creați un nou user din Citadel în timp ce rulează în " "modul de autentificare bazată pe host. În acest mod, trebuie să creați useri " "noi pe sistemul host, nu din Citafel" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(fără nume)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " lucru" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " acasă" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " celulă" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adresă:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Această listă de adrese este goală." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "A apărut o eroare internă" #: ../../vcard_edit.c:940 msgid "Error" msgstr "Eroare" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Modifică informaţiile de contact" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Prefix" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Prenume" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Iniţiala tatălui" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Nume de familie" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Sufix" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Nume afișat:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titlu:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organizație:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Căsuță poștală:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Localitate:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Stare:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Cod poştal:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Țară:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Telefon acasă:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Telefon serviciu:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Telefon mobil:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Fax:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Adresă e-mail principală:" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Aliasuri de Internet e-mail" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Imposibil de intrat în cameră pentru a salva mesajul" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Abandon" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Nu poate fi decodat foto vcard\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Este necesară autorizarea" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "Resursa la care doreşti acces necesită un nume de utilizator şi o parolă " "valabile. Nu poţi fi conectat.\n" "%s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Acest program nu s-a putut conecta sau n-a putut sta conectat la serverul " "Citadel. Eşti rugat(ă) să raportezi această problemă administratorului de " "sistem." #: ../../webcit.c:688 msgid "Read More..." msgstr "Citeşte mai mult..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' nu este un spaţiu Wiki" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Nu există aici nici o pagină numită '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Selectaţi linkul în bannerul spaţiului dacă doriţi să " "creaţi acest spaţiu." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Dată" #: ../../wiki.c:143 msgid "Author" msgstr "Autor" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(arată)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Versiune curentă" #: ../../wiki.c:184 msgid "(revert)" msgstr "(inversează)" #: ../../wiki.c:246 msgid "Page title" msgstr "Titlul paginii" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Format oră" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "de la" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Data de început" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Data de sfârşit" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Data/ora" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Observații:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "precedent" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "următor" #: ../../calendar_view.c:750 msgid "Week" msgstr "Săptămână" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Ore" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Subiect" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Eveniment în desfăşurare" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "modifică" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Nu ştiu cum să afişez " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(fără subiect)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "Lista de aşteptare e goală." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Nu ai acces la această resursă." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Sarcini" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Creați o nouă cameră" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Numele camerei: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Vederea implicită pentru cameră: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Tipul camerei:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Publică (este automat vizibilă tuturor)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privată - ascunsă (accesibilă oricui îi cunoaște numele)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privată - necesită parolă: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privată - doar pe bază de invitație" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personală (cutie poștală doar pentru dumneavoiastră)" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "Creați o nouă cameră" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Deconectare" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Conectează-te din nou" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "Dacă selectați această opțiune," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" "va dispărea din lista dumneavoastră de camere. Asta este ceea ce doriți să " "faceți?" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Expeditor" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Mută" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Camere părăsite (uitate)" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Schimbă-ţi parola" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Vezi/editează filtre mail pe server" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Mergeți într-o cameră ascunsă" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Dacă știți (sau ghiciți) numele unei camere ascunse sau parolate, puteți " "intra în acea cameră scriindu-i numele mai jos. Odată ce căpătați acces la o " "cameră privată , aceasta va apărea în lista dumneavoastră obișnuită de " "camere, așa că nu va trebui să continuați să reveniți aici." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Introduceți numele camerei:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "introduceți parola camerei:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "pe " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Nume utilizator" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Vezi lista de plecare SMTP" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Actualizează această pagină" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Hostul de la distanță" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Stare:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "continuă procesarea" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Politica de expirare a mesajelor" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Serviciul de mailing list" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Aducere de la distanță" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Cameră partajată în rețea" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Modifică informaţiile de contact" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "Această listă de adrese este goală." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minute" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Tentativă" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Şterge)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "Expeditor" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Şterg acest script ?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Info spaţiu" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Profil utilizator" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Nume utilizator" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Număr" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Nivel de acces" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Ultima conectare" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Număr de conectări" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Număr de postări" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Încărcare permisă" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Chiar vrei să ştergi acest OpenID ?" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Atașați fișier" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Trimite" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Această instalare a Citadel a fost făcută fără suport pentru filtrare mail " "dinspre server
    Dacă vă trebuie această facilitate, contactaţi " "administratorul sistemului." #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "mesaje" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" "Se obțin mesaje de la aceste conturi POP3 de la distanță și se stochează în " "această cameră:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Hostul de la distanță" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Păstrați mesajele pe server?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Adaugă" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Se obțin următoarele feeduri RSS și se stochează în această cameră:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Creează" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Utilizator Nou" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Carte de adrese" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Şterge regula" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Şterg acest script ?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Şterge regula" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Aceasta este o actualizare a '%s', care este deja în calendarul tău." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Acest eveniment va intra în conflict cu '%s' care este deja în calendarul " "tău." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "La primirea unui nou mesaj: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Lasă-l în căsuţa de intrare fără filtrare" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filtrează-l după regulile de mai jos" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Filtrează-l folosind un script editat manual (numai pentru utilizatorii " "avansaţi)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "mesajele pe care le vei primi nu vor fi filtrate după nici un script" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Adaugă regulă" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Scriptul activ este: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Adaugă sau şterge scripturi" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "ID mesaj" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Data şi ora transmiterii" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "Ultima încercare" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Destinatari" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Se citește #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "de la vechi la noi" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "de la noi la vechi" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Trimite foto" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Poţi trimite o fotografie direct din computerul tău" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Alege o fotografie pentru trimitere:" #: ../../i18n_templatelist.c:545 #, fuzzy msgid "Reset form" msgstr "Format oră" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Înscriere pe listă" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Înscriere pe listă / renunţare" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Cerere de confirmare expediată" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "pe " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 #, fuzzy msgid " mailing list." msgstr "Serviciul de mailing list" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Înapoi..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "EROARE:" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "pe " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "Serviciul de mailing list" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Înapoi..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Cerere de confirmare expediată" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Cerere de confirmare expediată" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Numele sarcinii" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Adresă e-mail preferată" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Introdu mesaj text:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Format oră" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Cameră director de fișiere" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Numele direcorului: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Încărcare permisă" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Descărcare permisă" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Director vizibil" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Cameră partajată în rețea" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanentă (nu se auto-curăță)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" "Se solicită subiect (utilizatorii sunt obligați să specifice un subiect al " "mesajului)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Mesaje anonime" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Fără mesaje anonime" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "toate mesajele sunt anonime" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Se întreabă utilizatorul la introducerea mesajelor" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Admin-ul camerei: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Şterg acest script ?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Păstrați mesajele pe server?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "Creați o nouă cameră" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Mută regula mai sus" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Mută regula mai jos" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Şterge regula" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Dacă" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Către sau copie (cc)" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Răspuns către" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Retrimis de la" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Retrimis către" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Plic de la" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Plic către" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "Fanion X-Spam" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "Stare X-spam" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "ID listă" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Dimensiune mesaj" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Tot" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "conține" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "nu conține" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "este" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "nu este" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "se potriveşte cu" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "nu se potrivește" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Toate mesajele)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "este mai mare decât" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "este mai mic decât" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Păstrează" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Aruncă în linişte" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Respinge" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Mută mesajul în" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Retrimite către" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Vacanță" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Mesaj:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "şi apoi" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "continuă procesarea" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "stop" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Schimbă numele spaţiului" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "Chiar vrei să ştergi acest OpenID ?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "%d comentarii" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Şterg acest script ?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Conectează-te din nou" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Adaugă un nou script" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Pentru a crea un script nou, introdu numele pe care doreşti să i-l dai în " "caseta de mai jos şi apasă " #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Nume script: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Modificare scripturi" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Înapoi la ecranul de modificare scripturi" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Şterge scripturi" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Pentru a şterge un script existent, selectează din listă numele acestuia şi " "apasă <Şterge>" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Configurare bară pictograme" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "Conținutul acestei camere este expediat sub formă de rezumat " "următoarei liste de destinatari:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "ID listă" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Format oră" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Adăugați destinatari din Contacte sau din alte liste de adrese" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Subiect" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Mesaje" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Astăzi în agenda ta" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Despre acest server" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Chiar vrei să ştergi acest OpenID ?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Introdu noua parolă" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Introdu-o din nou, pentru confirmare:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Schimbă parola" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Modifică ecranul sesiunii tale" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Acest ecran îţi permite să modifici modul în care sesiunea ta apare în lista " ". Pentru a dezactiva orice nume pe care l-ai " "configurat anterior, apasă pur şi simplu butonul aferent unei " "casete, fără a scrie nimic în aceasta. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Nume spaţiu" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Schimbă numele spaţiului" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Nume gazdă:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Schimbă numele gazdei:" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Schimbă nume utilizator:" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Confirmă mutarea mesajului" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Mută acest mesaj în:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Salvează modificările" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Te-ai înscris %s pe lista de mail %s. Serverul ţi-a " #~ "trimis un e-mail cu o adresă web adiţională pe care trebuie să faci click " #~ "ca să-ţi confirmi înscrierea. Acest pas suplimentar te protejează, în " #~ "sensul că îi împiedică pe unii să te înscrie în liste fără ca tu să fii " #~ "de acord.\n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "Analiza configuraţiei serverului este imposibilă; rulaţi cumva un nou " #~ "server Citadel ?" #~ msgid "There is no room called '%s'." #~ msgstr "Nu există nici un spaţiu numit '%s'" #~ msgid "A script by that name already exists." #~ msgstr "Deja există un script cu acest nume" #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "A fost creat un nou script. Întoarce-te la ecranul de editare a " #~ "scripturilor pentru a-l modifica şi activa." #~ msgid "Delete script" #~ msgstr "Şterge script" webcit-dfsg.orig/po/webcit/fi.po0000644000175000017500000037160713223341037016646 0ustar michaelmichael# Finnish translation for citadel # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-01-15 08:57+0000\n" "Last-Translator: Esa Hulkko \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-08-01 04:33+0000\n" "X-Generator: Launchpad (build 15719)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "vapaa" #: ../../availability.c:179 msgid "BUSY" msgstr "VARATTU" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "Valmis?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Tehtävän nimi" #: ../../tasks.c:97 msgid "Date due" msgstr "Tavoitepäivämäärä" #: ../../tasks.c:99 msgid "Category" msgstr "Kategoria" #: ../../tasks.c:101 msgid "Show All" msgstr "Näytä kaikki" #: ../../tasks.c:224 msgid "Edit task" msgstr "Muokkaa tehtävää" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Yhteenveto:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Aloituspäivämäärä:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Ei päivämäärää" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "tai" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "Tavoitepäivämäärä:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Valmis:" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategoria:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Kuvaus:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Tallenna" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Poista" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Keskeytä" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "uudempia virkaa" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "vanhemmat viestit" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Muokkaa %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Tallenna muutokset" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s on tallennettu." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "alustava" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "valmis" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "käsittelee" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(ei mitään)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "(Ei mitään)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Ei mitään)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Tuhottu" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Uusi käyttäjä" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Paikallinen käyttäjä" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Verkkokäyttäjä" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Ylläpitäjä" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Tapahtui virhe." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Hyväksy uudet käyttäjät" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "Erittäin heikko" #: ../../auth.c:620 msgid "weak" msgstr "heikko" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "vahva" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Peruutettu. Salasanaa ei vaihdettu." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Salasanat eivät täsmää. Salasanaa ei vaihdettu." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Tyhjä salasana ei ole sallittu" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Sijainti:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Päivämäärä:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Alkamis päivä/aika:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Loppumis päivä/aika:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Toistuvuus" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "sekuntia" #: ../../event.c:72 msgid "minutes" msgstr "minuuttia" #: ../../event.c:73 msgid "hours" msgstr "tuntia" #: ../../event.c:74 msgid "days" msgstr "vuorokautta" #: ../../event.c:75 msgid "weeks" msgstr "viikkoa" #: ../../event.c:76 msgid "months" msgstr "kuukautta" #: ../../event.c:77 msgid "years" msgstr "vuotta" #: ../../event.c:78 msgid "never" msgstr "ei koskaan" #: ../../event.c:82 msgid "first" msgstr "ensimmäinen" #: ../../event.c:83 msgid "second" msgstr "sekunti" #: ../../event.c:84 msgid "third" msgstr "3." #: ../../event.c:85 msgid "fourth" msgstr "4." #: ../../event.c:86 msgid "fifth" msgstr "5." #: ../../event.c:89 msgid "Event" msgstr "Tapahtuma" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Osallistujat" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Lisää tai muokkaa tapahtumaa" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Yhteenveto" #: ../../event.c:222 msgid "Location" msgstr "Sijainti" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Käynnistä" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Kestää koko päivän" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Muistiinpanot" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s on tallennettu." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Tee tästä aloitussivuni" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Tästä ei voi tehdä aloitussivua" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Aloitussivua ei ole enää valittu" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Peruutettu. Muutoksia ei tallennettu." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Muutoksesi on tallennettu." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Järjestelmän asetukset on päivitetty." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(nimetön)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Osoite:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "Sähköpostiosoite:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Tämä osoitekirja on tyhjä." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "Virhe" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Etunimi" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Toinen nimi" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Sukunimi" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Jälkiliite" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Näyttönimi:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Nimike:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisaatio:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Postilokero:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Kaupunki:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Osavaltio:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Postinumero:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Maa:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Kotipuhelin:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Työpuhelin:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Matkapuhelin:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "FAX:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Ensisijainen sähköpostiosoite:" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "Lue lisää..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Lähettäjä:" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "c" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Päiväys/aika:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Muistiinpanot:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "edellinen" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "seuraava" #: ../../calendar_view.c:750 msgid "Week" msgstr "Viikko" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Tuntia" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "aihe" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Menneillään oleva tapahtuma" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Tehtävät" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Kirjaudu ulos" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Kirjaudu uudestaan" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Lähettäjä" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Vaihda salasanasi" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Käyttäjänimi:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Osavaltio:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Verkkokäyttäjä" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "Tämä osoitekirja on tyhjä." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minuuttia" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "alustava" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Lähetä kommentti" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "Lähettäjä" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Lisää" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Luo" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Uusi käyttäjä" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Poista" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Poista" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Kun uusi sähköposti saapuu: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Lisää sääntö" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Tehtävän nimi" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Ensisijainen sähköpostiosoite:" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Poista" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Viestin koko" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Kaikki" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "sisältää" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "ei sisällä" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "on" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "ei ole" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Kaikki viestit)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "on suurempi kuin" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "on pienempi kuin" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "vuotta" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Säilytä" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Välitä" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Loma" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Viesti:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "pysäytä" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Vaihda käyttäjänimeä" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Kirjaudu uudestaan" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "aihe" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Viestit" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Kirjoita uusi salasana:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Kirjoita salasana uudestaan:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Vaihda salasana" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Vaihda käyttäjänimeä" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "uudempia virkaa" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Tallenna muutokset" #~ msgid "Your password was not accepted." #~ msgstr "Salasana ei kelpaa" webcit-dfsg.orig/po/webcit/fr.po0000644000175000017500000051225013223341037016646 0ustar michaelmichael# translation of webcit.po to fr.po # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # # Gilles Desplanques - # Jacques Lavignotte - # Thierry Pasquier - , 2006 # Robert di Rosa # Peter Bocsak # # This file is distributed under BSD License msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-10-28 08:45+0000\n" "Last-Translator: Peter Bocsak \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-10-29 04:35+0000\n" "X-Generator: Launchpad (build 16818)\n" "X-Poedit-Country: FRANCE\n" "X-Poedit-Language: French\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "disponibilité inconnue" #: ../../availability.c:169 msgid "free" msgstr "libre" #: ../../availability.c:179 msgid "BUSY" msgstr "OCCUPÉ(E)" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Le téléchargement de l'image a été abandonné." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Vous n'avez pas téléchargé de fichier." #: ../../graphics.c:106 msgid "your photo" msgstr "Votre photographie" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "l'icône de ce salon" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "l'image d'accueil pour la connexion" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "la bannière de déconnexion" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "l'icône de ce palier" #: ../../tasks.c:93 msgid "Completed?" msgstr "Achevé ?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Intitulé de la tâche" #: ../../tasks.c:97 msgid "Date due" msgstr "Échéance" #: ../../tasks.c:99 msgid "Category" msgstr "Catégorie" #: ../../tasks.c:101 msgid "Show All" msgstr "Les montrer tous" #: ../../tasks.c:224 msgid "Edit task" msgstr "Éditer la tâche" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Résumé :" #: ../../tasks.c:259 msgid "Start date:" msgstr "Date de début :" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Sans date" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "ou" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Temps associé" #: ../../tasks.c:289 msgid "Due date:" msgstr "Échéance :" #: ../../tasks.c:318 msgid "Completed:" msgstr "Achevé :" #: ../../tasks.c:329 msgid "Category:" msgstr "Catégorie:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Description :" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Enregistrer" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Supprimer" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Abandonner" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Tâche sans titre" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d commentaires" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "Lien permanent" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "les nouveaux messages" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "des messages plus anciens" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Éditer %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Le texte est composé à la largeur de l'écran du " "lecteur. Pour modifier ce formatage, indentez une ligne d'au moins un espace." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Enregistrer les modifications" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Abandon. %s n'a pas été enregistré." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " à été sauvegardé" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Informations sur le salon" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Votre biographie" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Heure : " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minute : " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(pas encore de réponse)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(action requise)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(accepté)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(décliné)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(tentative)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(délégué)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(achevé)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(en cours)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(aucun)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Gérer les associations comptes / OpenID" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Voulez vous vraiment supprimer ce compte OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(Supprimer)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Ajouter un compte OpenID " #: ../../openid.c:58 msgid "Attach" msgstr "Attacher" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s n'autorise pas l'authentification via OpenID." #: ../../summary.c:128 msgid "(None)" msgstr "(Rien)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Vide)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Aller à la page : " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Premier" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Dernier" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() error! couldn't get %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Supprimé" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Nouvel usager" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Usager à problème" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Usager local" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Usager en réseau" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Usager privilégié" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Administrateur" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Une erreur est apparue." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Valider les nouveaux usagers" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Aucun usager ne requière de validation actuellement." #: ../../auth.c:617 msgid "very weak" msgstr "très faible" #: ../../auth.c:620 msgid "weak" msgstr "faible" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "strong" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Niveau d'accès actuel : %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Sélection du niveau d'accès de cet usager :" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Abandon. Le mot de passe n'a pas été changé." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" "Les deux saisies sont différentes. Le mot de passe n'a pas été modifié." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Les mots de passe vides ne sont pas autorisés." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Invitation à une réunion" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Réponse(s) à votre invitation" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Événement publié" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Type d'événement inconnu." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Lieu :" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Date :" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Date et horaire de début :" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Date et horaire de fin :" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Récurrence" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "C'est un événement récurrent" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Participant-e-s :" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Ceci est une mise à jour de '%s' déjà présent dans votre agenda." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Cet événement entre en conflit avec '%s' qui est déjà dans votre agenda." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Mise à jour :" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLIT :" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Comment souhaitez-vous répondre à cette invitation ?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Accepter" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Peut-être" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Décliner" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Cliquez sur Mise à jour pour accepter cette réponse et actualiser " "votre agenda." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Mise à jour" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignorer" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Il y a une erreur dans l'analyse des données de cet événement." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "Vous avez accepté cette invitation. Votre agenda a été actualisé." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Vous avez indiqué que vous accepteriez 'Peut-être' cette invitation, elle " "est notée provisoirement dans votre agenda." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Vous avez décliné cette invitation. Votre agenda n'a pas été modifié." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Une réponse a été envoyée à l'organisateur de la réunion." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Votre agenda a été mis à jour pour tenir compte de cette réponse." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Vous avez choisi d'ignorer cette réponse. Votre agenda n'a pas été " "modifié." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Heure de début de journée :" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Heure de fin de journée :" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "La semaine démarre le:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Une erreur est apparue en récupérant ce fichier : %s\n" #: ../../event.c:71 msgid "seconds" msgstr "secondes" #: ../../event.c:72 msgid "minutes" msgstr "minutes" #: ../../event.c:73 msgid "hours" msgstr "heures" #: ../../event.c:74 msgid "days" msgstr "jours" #: ../../event.c:75 msgid "weeks" msgstr "semaines" #: ../../event.c:76 msgid "months" msgstr "mois" #: ../../event.c:77 msgid "years" msgstr "années" #: ../../event.c:78 msgid "never" msgstr "jamais" #: ../../event.c:82 msgid "first" msgstr "Prénom" #: ../../event.c:83 msgid "second" msgstr "Envoyer" #: ../../event.c:84 msgid "third" msgstr "troisième" #: ../../event.c:85 msgid "fourth" msgstr "quatrième" #: ../../event.c:86 msgid "fifth" msgstr "cinquième" #: ../../event.c:89 msgid "Event" msgstr "Événement" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "invités" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Ajouter ou modifier un événement" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Résumé" #: ../../event.c:222 msgid "Location" msgstr "Lieu" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Début" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "journée entière" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Fin" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notes" #: ../../event.c:374 msgid "Organizer" msgstr "Organisateur" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(vous êtes l'organisateur)" #: ../../event.c:397 msgid "Show time as:" msgstr "Disponibilité" #: ../../event.c:420 msgid "Free" msgstr "Libre" #: ../../event.c:428 msgid "Busy" msgstr "occupé-e" #: ../../event.c:445 msgid "(One per line)" msgstr "(un par ligne)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contacts" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Règle de récurrence" #: ../../event.c:522 msgid "Repeats every" msgstr "Répéter chaque" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "ces jours de la semaine:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "le jour %s%d%s du mois" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "sur le " #: ../../event.c:631 msgid "of the month" msgstr "du mois" #: ../../event.c:660 msgid "every " msgstr "chaque " #: ../../event.c:661 msgid "year on this date" msgstr "année de cette date" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "de" #: ../../event.c:717 msgid "Recurrence range" msgstr "plage de récurrence" #: ../../event.c:725 msgid "No ending date" msgstr "Pas de date de fin" #: ../../event.c:732 msgid "Repeat this event" msgstr "Répéter cet événement" #: ../../event.c:735 msgid "times" msgstr "heures" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Répéter cette évènement jusqu'à " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Vérifiez la disponibilité des invités" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Événement sans titre" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Options de la barre d'icônes" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Paramètre invalide" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " à été supprimé" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " ajouté" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Un niveau d'accès supérieur est requis pour utiliser cette fonction" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" "Vous devez spécifier la liste de distribution à laquelle vous, vous inscrivez" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "Vous devez spécifier l'adresse mail avec laquelle vous vous inscrivez" #: ../../messages.c:73 msgid "ERROR:" msgstr "ERREUR :" #: ../../messages.c:91 msgid "Empty message" msgstr "Message vide" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Abandon. Message non envoyé." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Abandon automatique car vous avez déjà enregistré ce message." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Sauvegarde dans le dossier brouillon à échoué " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "L'envoit de message vide à été réfusé\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Le message à été sauvé dans le dossier brouillon\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Message envoyé.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Message posté.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Ce message n'a pas été déplacé." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Une erreur est apparue en récupérant cette partie : %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Une erreur est apparue en récupérant cette partie : %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Attacher une signature aux courriels ?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Utiliser cette signature :" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Jeu de caractères par défaut pour les en-têtes des courriels :" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Adresse de courriel préférée" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Intitulé d'affichage des courriels" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Nom à utiliser dans le panneau d'affichage" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Mode d'affichage" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Cliquer sur une note pour la modifier." #: ../../paging.c:29 msgid "Send instant message" msgstr "Envoyer un message instantané" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Envoyer un message instantané à : " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Entrez le texte du message :" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Envoyer le message" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Le message n'a pas été envoyé." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Le message a été envoyé à " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Annulé. Aucun réglage n'a été modifié." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "En faire ma page d'accueil" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Ceci ne peut pas devenir votre page d'accueil" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Vous n'avez pas encore choisi de page d'accueil." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "page d'accueil par défaut" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Mes répetoires" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Abandon. Les modifications ne seront pas prises en compte." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Vos modifications ont été enregistrées." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "L'utilisateur %s a été renvoyé du salon %s." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "L'utilisateur %s a été invité à rejoindre le salon %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Abandon. Aucun nouveau salon n'a été créé." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Le palier a été détruit." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Un nouveau palier a été créé." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Liste des salons" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Afficher les paliers vides" #: ../../roomtokens.c:570 msgid "file" msgstr "fichier" #: ../../roomtokens.c:572 msgid "files" msgstr "fichiers" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Panneau d'affichage" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Dossier de messages" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Carnet d'adresses" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Calendrier" #: ../../roomviews.c:57 msgid "Task List" msgstr "Liste des tâches" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Liste des notes" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Agenda" #: ../../roomviews.c:61 msgid "Journal" msgstr "Journal" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Brouillons" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Le nombre maximum d'usagers simultanés sur ce serveur est atteint, celui-ci " "ne peut plus accepter de connexions supplémentaires. SVP essayez plus tard " "ou contactez l'administrateur du système." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" "Nous avons reçu une réponse inatendue du serveur Citadel; interruption du " "programme." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Vous êtes connecté à un serveur qui fonctionne avec Citadel %d.%02d. \n" "Pour permettre à cette version de WebCit de fonctionner, vous devez utiliser " "Citadel %d.%02d ou une version plus récente.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "La configuration de votre système a été mise à jour" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "Première tentative en attente" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "Une erreur est apparue pendant la création ou la modification de ce contact." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Les changements n'ont pas été enregistrés." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Un nouvel usager a été créé." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Vous essayez de créer un nouvel usager en utilisant le système interne à " "Citadel alors que celui-ci est en mode d'authentification sur le système. " "Dans ce mode, vous devez créer les nouveaux usagers directement sur le " "système hôte et non avec Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(pas de nom)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (travail)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (accueil)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (portable)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adresse :" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Téléphone :" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "Courriel :" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Le carnet d'adresses est vide." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Une erreur interne est apparue." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Erreur" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Modifier l'information du contact" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Civilité" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Prénom" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Deuxième prénom" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Nom" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Suffixe" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Nom affiché :" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titre :" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisation :" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Boîte postale :" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Ville :" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "État :" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Code postal :" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Pays :" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Téléphone personnel :" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Téléphone professionnel :" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Téléphone personnel :" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Numéro de fax:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Adresse de courriel principale" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Alias d'adresses de courriel" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Impossible d'entrer dans le salon pour sauver votre message" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Abandon." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Impossible de décoder la photo de la vcard\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Autorisation requise" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "La ressource que vous avez demandée requiert un nom d'usager et un mot de " "passe valides. Vous n'avez pas été connecté à %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Ce programme n'a pas pu se connecter ou rester connecté au serveur Citadel. " "SVP informez l'administrateur du système de ce problème." #: ../../webcit.c:688 msgid "Read More..." msgstr "En lire plus..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' n'est pas un salon du type wiki." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Il n'y a pas ici de page nommée '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Pour créer cette page, sélectionnez le lien 'Éditer cette page ' dans la " "bannière du salon." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Date" #: ../../wiki.c:143 msgid "Author" msgstr "Auteur" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(montrer)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Version actuelle" #: ../../wiki.c:184 msgid "(revert)" msgstr "(annuler)" #: ../../wiki.c:246 msgid "Page title" msgstr "Titre de la page" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Format horaire" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "De" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "date de début:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "date de fin:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Date/heure" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notes :" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "précédent" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "suivant" #: ../../calendar_view.c:750 msgid "Week" msgstr "Semaine" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Heures" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Objet" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Évènement en cours" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "modifier" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Je ne sais pas comment afficher " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(pas d'objet)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "La file d'attente est vide." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Vous n'avez pas accès à cette ressource." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Personnalisation du menu" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Afficher les entrées du menu comme:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "icônes et textes" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "icônes seulement" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "textes seulement" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Sélectionnez les icônes que vous souhaitez afficher dans le menu situé à " "gauche de l'écran." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Oui" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Non" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logo du site" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Une icône représentative de ce site" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Votre tableau de bord" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Courrier (boîte de réception)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Raccourci vers votre boîte de réception" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Votre carnet d'adresses personnel" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Vos notes personnelles" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Raccourci vers votre agenda personnel" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Tâches" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Raccourci vers votre liste de tâches personnelles" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Salons" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "La liste des paliers et de tous les salons accessibles" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Qui est connecté ?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "La liste de tous les usagers connectés" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Clavardage" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "Clavarder avec les autres personnes présentes dans ce salon." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Options avancées" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Accès à l'ensemble des fonctions de Citadel." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Logo de Citadel" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Affiche l'icône 'Powered by Citadel'" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Menu d'administration du système" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "Menu d'amdinistration des salons" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Pseudonymes de l'hôte local" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Domaines des annuaires" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Serveurs de relais" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "Serveurs de relais" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "Hôtes de notification" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "Serveurs de listes noires" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "Serveurs SpamAssassin" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "Hôte du démon ClamAV" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Domaines non distribués localement" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Les changements effectués à partir de cet écran ne seront effectifs qu'après " "un redémarrage du serveur Citadel." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Services réseau" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Adresse IP du serveur (0.0.0.0 pour 'quelconque')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "Port d'écoute du client XMPP POP3 (-1 pour désactiver ce service)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "Port d'écoute XMPP (Jabber) (-1 pour désactiver ce service)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Réglages avancés du serveur" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Longueur maximum des messages" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Limite de temps d'inactivité d'une connexion au serveur (en secondes)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Fréquenece de lancement du réseau (en secondes)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Nombre de sessions simultanées (pas de limite = 0)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Nombre minimum de processus" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Nombre maximum de processus" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Supprimer automatiquement les journaux validés des bases de données" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Créer un nouveau salon" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Nom du salon : " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Réside sur le palier : " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Vue par défaut de ce salon : " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Type de salon :" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Public (est visible de tous les usagers)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privé - caché (accessible à quiconque connaît son nom)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privé - le mot de passe est requis : " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privé - seulement sur invitation" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personnel (une boîte aux lettres pour vous seulement)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Créez un nouveau salon" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Déconnexion" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Se connecter à nouveau" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Sauter (mettre de côté) le salon courant" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "Si vous séléctionnez cette option," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "va disparaitre de se salon. Est-ce ce que vous désirez ?" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Mettre de côté ce salon" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "ATTENTION: JavaScript est désactivé dans votre navigateur. Plusieurs " "fonctionnalités du système ne seront pas disponibles." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Nom d'usager" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Salon" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Machine d'origine" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Expéditeur" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Chargement en cours des messages depuis les serveurs. SVP patientez." #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Ouvrir dans une nouvelle fenêtre" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Déplacer" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Copier" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Imprimer" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" "(Envoyer les mails sortant à ces hôtes uniquement lorsque l'envoi échoue)" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Salons mis de côté (sautés)" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "Cliquer sur n'importe quel salon pour le réactiver et aller à ce salon" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Vous avez un ou plusieurs messages instantanés en attente, mais il est " "impossible d'ouvrir une fenêtre de lecture. Le blocage des pop-ups " "intempestives est probablement activé, SVP configurez votre navigateur pour " "les autoriser (au moins pour Citadel) si vous souhaitez lire les messages " "instantanés." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Changer vos préférences et options" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Mettre à jours vos données personnelles" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Changez votre mot de passe" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Entrer votre 'biographie'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Poser votre portrait" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Éditer les filtres de courriels" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Éditer les paramètres pour faire suivre les courriels." #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "Gérer vos OpenIDs" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" "Le serveur Citadel doit redémarrer. Il sera de nouveau en service dans une " "minute" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Voir" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Télécharger" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Configuration générale" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Gestion des comptes d'usagers" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Arrêter Citadel" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Salons et paliers" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Allez à un salon caché" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Si vous connaissez le nom caché (devinez le nom) ou le mot de passe d'un " "salon caché, vous pouvez entrer dans ce salon en saisissant son nom ci-" "dessous. Une fois que vous aurrez rejoint le salon privé, elle apparaîtra " "dans la liste de vos salons habituels, de sorte à ce que vous n'ayez plus " "besoin de revenir ici." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Écrivez le nom du salon :" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Écrivez le mot de passe pour accéder au salon :" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "Aller là" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "de " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "à" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "Copie conforme :" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Objet :" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Transfert du courrier" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Nom d'hôte du serveur Funambol (laisser vide pour désactiver)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Numéro de port de Funambol " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Source de synchronisation Funambol" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Détails d'authentification Funambol (user:pass)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "External pager tool (blank to disable)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Vue en arborescence" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Vue en tableaux" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 heures (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 heures" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Dimanche" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Lundi" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Pas de signature" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Pleines fonctionnalités" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Mode sûr" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" "Le mode sûr est moins contraignant pour votre navigateur, mais pas aussi " "complet." #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Changer" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Préférences et options" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" "(URLS pour la notification lorsque les utilisateurs reçoivent de nouveaux " "emails; )" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" "Syntaxe: nomdumodeldenotification:http[s]://utilisateur:motdepasse@hostname/" "chemin" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Commandes de base" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Vos informations" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Commandes avancées des salons" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Modifier ce compte : " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Identifiant :" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Mot de passe" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Permission d'envoyer des courriels vers Internet" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Nombres de connexions" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Messages soumis" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Niveau d'accès" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Identifiant numérique de l'usager" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Date et heure de la dernière connexion" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Purge automatique après ce nombre de jours" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "Port d'écoute de POP3 (-1 pour désactiver ce service)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "Port POP3 sécurisé via SSL (-1 pour désactiver)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "Fréquence de récupération POP3 en secondes" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "Fréquence de récupération POP3 la plus rapide en secondes" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Voir la queue SMTP sortante" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Actualiser cette page" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Serveurs de relais" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "État :" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "(en cours)" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Message aux usagers:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administration" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Configuration" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Politique d'expiration des messages" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Contrôles d'accès" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Partage" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Service des listes de diffusion" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Récupération à distance" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Votre barre d'icônes à été mise à jour. Veuillez séléctionner une option " "pour continuer." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" "Vous devriez forcer un rafraîchissement (MAJ-F5) pour que les changements " "prennent effets" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Éléments de configuration générale du site" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Changer le logo de connexion" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Changer le logo de déconnexion" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Nom du nœud" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Nom de domaine pleinement qualifié" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Nom du nœud lisible pour un usager" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Numéro de téléphone" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Invite du paginateur (pour les clients en mode texte)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Localisation géographique de ce serveur" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Nom de l'administrateur du système" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" "Fuseau horaire par défaut des événements de l'agenda sans mention du fuseau" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Salon partagé via le réseau" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Ajouter un nouveau nœud" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Code secret partagé" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Hôte ou adresse IP" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Numéro de port" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "Ajouter un noeud ?" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(supprimer)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Modifier la configuration" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Modifier un contact du carnet d'adresse" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "idle since" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "minutes" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "actif" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(Edition)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Supprimer)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Pas de nouveaux messages" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "En faire ma nouvelle page d'accueil" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Votre page d'accueil à été changée." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Note: ceci ne changera pas la page d'accueil de votre navigateur, mais " "seulement celle que vous obtiendrez dès votre connexion." #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Poster un commentaire" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Confirmer la suppression" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Êtes vous sur de vouloir supprimer " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Ajouter, modifier ou supprimer des comptes" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(hôtes sur lesquels fonctionne le service ClamAV)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Envoyer" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Redémarrer Citadel" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "de" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Messages anonymes" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "dans" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "À :" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "Copie cachée à :" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Objet (facultatif) :" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- message transféré ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Poster le message" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "Sauvegarde comme brouillon" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Documents joints :" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "Détruire ce message ?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Informations sur le salon" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Recherche " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Résultat de la commande serveur" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "Entrer une autre commande" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "Retour au menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Usagers actuellement dans" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Profil usager" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "Clickez ici pour envoyer un message instantané à" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "Images dans" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Modifier ou supprimer des usagers." #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "Vous n'avez pas accès à cette ressource." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Ajouter des usagers" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Modifier ou supprimer des usagers." #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" "S'il vous plaît, patientez pendant que le serveur Citadel redémarre... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "Liste des utilisateur pour " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Identifiant" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Numéro" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Niveau d'accès" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Dernière connexion" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Nombre total de connexions" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Nombre de messages" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Chargement" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Votre OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "A été vérifié avec succès" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "Malgrès, le nom d'utilisateur" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "Conflits avec un utilisateur existant" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "SVP précisez le nom d'usager que vous souhaitez utiliser." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Quitter" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Politique d'expiration des messages de ce salon" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Utiliser la politique par défaut pour ce palier" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Les messages n'expirent jamais automatiquement" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Expiration des messages en fonction du compte" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Expiration des messages en fonction de l'âge" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Nombre de messages ou de jours : " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Règles d'expiration des messages de ce palier" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Utiliser la configuration par défaut" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Fermer la fenêtre" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Téléverser un fichier" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Êtes vous sur de vouloir supprimer " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Joindre un fichier" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "Supprimer" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexation et journalisation" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Attention: ces fonctionnalités sont très exigeantes en ressources." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Activer l'indexation de tout le texte" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Procéder à la journalisation des messages de courrier électronique" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Procéder à la journalisation des autres messages (sauf courriel)" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Adresse courriel de destination des messages journalisés" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Les fichiers sont téléchargeables à partir de" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Téléverser un fichier" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Télécharger" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Nom du fichier" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Taille" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Contenu" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Description :" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Cette installation de Citadel a été construite sans support du filtrage des " "mail côté serveur.
    SVP contactez votre administrateur si vous avez besoin " "de cette fonction.
    " #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "Nouveau depuis" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "messages" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Sélectionner la page : " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" "Récupérer les messages de comptes POP3 distants et les stocker dans ce " "salon :" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Serveurs de relais" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Garder les messages sur le serveur?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Intervalle" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Ajouter" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Récupérer les flux RSS suivants et les stocker dans ce salon :" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "URL du flux" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Pour créer un nouveau compte d'usager, entrez son identifiant dans le champ " "de saisie ci-après et cliquez sur 'Créer'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Nouvel usager : " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Créer" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domaines référencés dans l'annuaire principal)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "Liste des pages Wiki" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(enlever)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Les utilisateurs suivant ont accès au salon. Pour supprimer un utilisateur " "de la liste d'accès, sélectionnez l'utilisateur et clickez 'éjecter'." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Éjecter" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Pour accorder l'accès à ce salon à un usager, entrer son identifiant dans le " "champ de saisie ci-dessous et cliquer sur 'Inviter'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Inviter :" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Inviter" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "Usager" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Usagers" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Carnet d'adresses" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Pour modifier un compte, sélectionnez l'identifiant de ce compte dans la " "liste puis cliquez 'Éditer'." #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Supprimer un usager" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "Supprimer cet usager ?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Supprimer une règle" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Diaporama" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(hôtes sur lesquels fonctionne le service SpamAssassin)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Ceci est une mise à jour de '%s' déjà présent dans votre agenda." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Cet événement entre en conflit avec '%s' qui est déjà dans votre agenda." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Quand un nouveau mail arrive : " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Le laisser dans ma boîte aux lettres sans le filtrer" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Le filtrer en lui appliquant les règles ci-dessous" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Le filtrer au travers d'un script créé manuellement (pour les usagers " "avancés seulement)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Vos courriels ne seront filtrés par aucun scripts." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Ajouter une règle" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "le script actif est : " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Éditer ou supprimer des usagers." #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Configuration du connecteur LDAP" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "NOTE: Ce serveur Citadel a été mis en fonction sans prise en charge de LDAP. " "Ces options n'auront aucun effet." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Nom d'hôte du serveur d'annuaire LDAP (laisser vide pour désactiver)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Numéro du port LDAP (laisser vide pour désactiver)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "DN de base" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "DN d'association" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Mot de passe du DN d'association" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Éditer ou supprimer ce salon" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Rejoindre un salon 'caché'" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Sauter (mettre de côté) ce salon" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Liste de tous les salons mis de côté" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Lire les nouveaux messages" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "Référence du messages" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Date et heure de soumission" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "Prochain essait" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Destinataires" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Lecture #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "du plus ancien au plus récent" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "du plus récent au plus ancien" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "S'il vous plait patientez pendant que Citadel informe les usagers, le " "serveur redémarrera ensuite... " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Éditer (?)" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Répondre" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Répondre en citant" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "Répondre à tous" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Faire suivre" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Entêtes" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Modifier la configuration générale du site" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Configuration des noms de domaine et du courrier électronique" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Configurer la réplication avec d'autres serveurs Citadel" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "Motorisé par Citadel" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Langue :" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Vers votre boîte de réception de courriels" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Courriel" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Vers votre agenda personnel" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Vers votre carnet d'adresses personnel" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Vers vos notes personnelles" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Vers votre liste des tâches personnelles" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "Liste de tous les salons qui vous sont accessibles" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Voir qui est connecté en ce moment" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Usagers en ligne" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "Options avancées de gestion des salons, des comptes et du clavardage" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Admin et préférences" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Commandes d'administration des salons et du système" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "personnaliser ce menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Connexion" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "passer aux salons" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "passer au menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Mes répertoires" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "Port d'écoute IMAP (-1 pour désactiver ce service)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "Port IMAP sécurisé via SSL (-1 pour désactiver)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Conserver les entêtes originaux avec IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Image téléchargée" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Vous pouvez télécharger une image directement depuis votre ordinateur" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Sélectionner un fichier à transférer :" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Réinitialiser le formulaire" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Abonnement à la liste" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Abonnement/désabonnement à la liste" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Requête de confirmation envoyée." #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "Vous vous inscrivez " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " à " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " liste de distribution" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "Le listserver vous a envoyé un email avec un lien Internet supplémentaire " "que vous pourrez cliquer pour confirmer votre inscription." #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "Cette étape supplémentaire est là pour votre protection, dans la mesure où " "elle ne permet pas à d'autres de vous inscrire à des listes sans votre " "consentement." #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" "Veuillez clicker sur le lien qui vous à été envoyé par email, afin de " "valider votre inscription." #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Retour..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "ERREUR" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "Vous vous inscrivez" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "De" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "liste de distribution" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "Le listserver vous a envoyé un email avec un lien Internet supplémentaire " "que vous pourrez cliquer pour confirmer votre inscription." #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "Cette étape supplémentaire vise à vous protéger, elle évite que d'autres " "usagers puissent se désinscrire à vos listes sans votre consotement." #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "Veuillez clicker sur le lien qui vous à été envoyé par email, afin de " "valider votre désinscription." #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "Retour..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "Confirmation réussie" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "Confirmation échoué" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "Cela peut signifier une des deux options:" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" "Vous avez attendu trop longtemps pour valider votre demande d'inscription/" "désinscription (le mail de confirmation n'est valable que pendant trois " "jours)" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" "Vous avez déjà confirmé votre demande d'inscription/désinscription et " "êtes en train d'essayer à nouveau de le faire." #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "L'erreur retourné par le serveur est: " #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "Nom de la liste :" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "Votre adresse mail" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "(en cas d'inscription) format préféré: " #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "Un message à la fois" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "Digest format" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" "Lors que vous essayez de vous inscrire ou de vous désinscrire à une liste " "d'envoie, vous allez recevoir un email contenant un lien Internet " "supplémentaire que vous devrez cliquer pour la confirmation finale." #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" "Cette étape supplémentaire est là pour votre protection, dans la mesure où " "elle permet d'éviter que d'autres puissent vous inscrire ou vous désinscrire " "de listes." #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "nom de la salle: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Si ce salon est privé, cela force les usagers à le sauter" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Réservé aux usagers privilégiés" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Salon en lecture seulement" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" "Tous les usagers autorisés à poster peuvent aussi supprimer les messages" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Dépot de fichiers" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Nom du répertoire : " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Téléversement autorisé" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Téléchargement autorisé" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Répertoire visible" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Salon partagé via le réseau" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanent (pas de purge automatique des contenus)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "L'objet est requis (les usagers sont obligés de remplir ce champ)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Messages anonymes" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Pas de messages anonymes" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Tous les messages sont anonymes" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Invite l'utilisateur à la saisie de message" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Administrateur " #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "Supprimer cette entrée ?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Pas de partage avec" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Partagé avec" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Nom du nœud distant" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Nom du salon distant" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Actions" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Lors du partage d'un salon, le salon doit être partagé avec le même nom des " "deux cotés, et les deux cotés doivent partager le nœud.
  • Si le nom du " "salon est vide ici, elle est supposée l'être de l'autre coté aussi.
  • Si le " "nom du salon est différent, se nom de salon doit aussi être renseigné ici." #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Garder les messages sur le serveur?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Ajouter / modifier / supprimer un palier" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Numéro de palier" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Nom du palier" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Nombre de salons" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "CSS du palier" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Créer un nouveau palier" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Monter la règle" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Descendre la règle" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Supprimer une règle" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Si" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "À ou Copie" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Répondre à" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Resent-From" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Resent-To" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Enveloppe De" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Enveloppe À" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "List-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Taille du message" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Tous" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "contient" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "ne contient pas" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "est" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "n'est pas" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "correspond à" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "ne correspond pas à" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Tous les messages)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "est plus grand que" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "est plus petit que" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "octets" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Garder" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Supprimer sans avis" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Rejeter" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Déplacer ce message vers" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Faire suivre" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Absence" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Message:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "et ensuite" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "(en cours)" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "stop" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domaines pour lesquels cet hôte reçoit du courrier)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Configuration réseau" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Nœuds actuellement configurés" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(supprimer le palier)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(éditer le graphisme)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Renommer" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "Changer la feuille CSS" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Configurer l'expiration automatique des anciens messages" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Ces options peuvent être modifiées individuellement par palier ou par salon." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Heure de démarrage des purges automatiques" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Règles d'expiration par défaut des messages dans un salon public" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" "Règles d'expiration par défaut des messages dans une boîte aux lettres privée" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Mêmes règles que dans les salons publics" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Délai de purge par défaut pour cet usager (jours)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Délai de purge de ce salon (en jours)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Êtes vous sûr de vouloir supprimer ce salon ?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Supprimer ce salon" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "Définir ou changer l'icône de ce salon" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "Editer les informations de ce salon" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Entrer une commande serveur" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Cet écran vous permet d'entrer directement des commandes textuelles qui ne " "sont pas supportées par l'interface web de Citadel. Si vous ne savez pas " "trop à quoi cela correspond, cette facilité n'est pas faite pour vous." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Entrer une commande :" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Command input (if requesting SEND_LISTING transfer mode):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "L'en-tête de l'hôte detecté est " #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Entrer une commande :" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Arrêter le partage" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(hôtes sur lesquels fonctionne une liste noire en temps réel)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Contrôles des accès et mise en place des règles de fonctionnement" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Permettre aux administrateurs de sauter (mettre de côté) des salons" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Messages d'usagers à problème mis en quarantaine" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Nom du salon de quarantaine" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Nom du salon pour enregistrer les alertes" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Mode d'authentification" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "contient" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "Host based" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Active Directory)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "Authoriser les accès client anonymes" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "Nom de l'administrateur (laisser vide pour désactiver)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Mot de passe de l'administrateur" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Niveau d'accès initial des nouveaux usagers" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Niveau d'accès requis pour créer des salons" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Les usagers qui créent des salons privés se voient accordé le statut " "d'administrateurs de ces salons." #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" "Donner automatiquement le statut \"aide au salon\" aux créateurx de salons " "BLOG" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Limiter l'accès au courrier électronique" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Désactiver le libre-service de création de compte d'usager" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "Conseil: ne pas séléctionner les deux" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "L'enregistrement est requis pour les nouveaux usagers" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Ajouter, modifier ou supprimer des paliers" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Voir comme" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "Supprimer cette note ?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Connecté en tant que" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Non connecté." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Vous devez être connecté pour accéder à cette page." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Se connecter en utilisant identifiant et mot de passe" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Mot de passe :" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Nouvel utilisateur? Inscrivez-vous maintenant" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "entrez l'identifiant et le mot de passe que vous souhaitez utiliser et " "cliquez sur "Nouvel usager." " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Se connecter en utilisant OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "adresse OpenID :" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "Connection en utilisant Google" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "Connection en utilisant Yahoo" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "Connection en utilisant AOL ou AIM" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "Saisissez votre nom d'utilisateur AOL ou AIM:" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "S'il vous plaît, patientez pendant" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Ajouter un nouveau nœud" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Pour créer un nouveau script, entrez un nom dans le champ de saisie ci-après " "et cliquez sur 'Créer'." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Nom du script : " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Éditer les scripts" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Revenir au formulaire d'édition du script" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Supprimer des scripts" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Pour détruire un script existant, sélectionnez son nom dans la liste puis " "cliquez 'Supprimer ce script'." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Redémarrer maintenant" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Rédémarrer après avoir bippé les utilisateurs" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Redémarrage lorsque tous les usagers sont inactifs" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "Configurer le transfert du courrier" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Faire suivre les courriels et paramétrages SMS" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "Si votre administrateur a installé cette fonctionnalité, Citadel peut " "notifie à un serveur Funambol que vous avez reçu des nouveaux courrier et " "permettre la synchronisation automatique avec n'importe quel périphérique où " "un client Funambol est installé." #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "Alternativement, si l'administrateur l'a configuré, Citadel peut envoyer un " "message textuel lorsqu'un nouveau mail est arrivé." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "Notifier le serveur Funambol" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "Envoyer un message texte à ..." #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" "(Utiliser le format international, sans zéros au début ni espaces ou " "ponctuation, comme +61415011501)" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" "Utilisez les schéma de nothifications personnalisé par votre administrateur" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "Ne pas envoyer de nothifications" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "propulsé par" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "Port SMTP (-1 pour désactiver ce service)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "Port SMTP MSA (-1 pour désactiver)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "Port SMTP sécurisé via SSL (-1 pour désactiver)" # RBL correspond ici à liste noire # RCPT = réception? #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Effectuer un test RBL à la connexion plutôt qu'après réception." #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Marquer les messages comme spam au lieu de les rejeter" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "Autoriser les client SMTP non authentifiés à usurper l'identité des domaine " "de ce site" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" "Corriger les identifications d'expéditeur (FROM:) contrefaites lors de " "session SMTP authentifiées." #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Port du dictionnaire TCP de Postfix" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 pour désactiver." #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "Port d'écoute Sieve (-1 pour désactiver ce service)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Configuration du site" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Globale" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Options de la barre d'icônes" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexation / journalisation" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Accès" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "Dossier" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Purge automatique" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "Les contenus de ce salon seront envoyés par email sous forme de " "messages individuels à la liste de destinataires:

    " #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "Les contenus de ce salon seront envoyés par email sous forme de " "resumé à la liste de destinataires:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "Liste" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "Résumé" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Ajoutez des destinataires de Contacts ou d'autres carnets d'adresses" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Permettre aux non abonnés de poster dans ce salon." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Publier dans ce salon nécessite la permission de l'administrateur." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "Permettre l'inscription et la désinscription en libre service." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "L'URL pour s'abonner ou se désabonner est : " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Objet" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "Page récapitulatif de " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Messages" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Votre agenda d'aujourd'hui" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "Qui est en ligne maintenant" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "À propos de ce serveur" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "Vous êtes connecté à" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "en cours d'exécution" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "avec" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "build serveur" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "et situé dans" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "Votre administrateur système est" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "Voulez vous vraiment détruire cette session ?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Usagers actuellement dans " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" "Cliquez sur l'identifiant pour lire les informations publiques de l'usager. " "Cliquer sur" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "Envoyer un message instantané à cet usager." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Ancients messages" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Nouveaux messages" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Partager" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domaines que les utilisateurs peuvent utiliser)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Entrez un nouveau mot de passe :" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Retapez le pour confirmer :" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Changer le mot de passe" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Modifier les propriétés d'affichage de votre session" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Cet écran vous permet de changer la façon dont votre session apparaît dans " "la liste des usagers connectés. Pour éviter qu'un 'pseudonyme' que vous " "auriez préalablement indiqué ne soit encore visible, cliquez simplement sur " "le bouton 'changer' sans rien indiquer dans la boîte de saisie " "correspondante. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Nom du salon :" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Changer le nom du salon :" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Nom de la machine hôte :" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Changer le nom de la machine hôte" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Changer le nom de l'usager" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "Historique des éditions de cette page" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Confirmer le déplacement de ce message" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Déplacer ce message vers :" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "Initalement posté dans: " #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Liste des salons connus" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Où puis-je aller à partir d'ici ?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Aller au prochain salon" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "... avec des messages non lus" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Passer au salon suivant" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "Revenir ici plus tard" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Revenir" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "oops! Retour à " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Lire les nouveaux messages" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... dans ce salon" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Lire tous les messages" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "... anciens et nouveaux" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Écrire un message" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "Poster dans ce salon" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Dépôt des fichiers" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Liste des fichiers à télécharger)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Tableau de bord" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Informations sur mon compte" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Liste des usagers" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "Tous les usagers enregistrés" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Au revoir !" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "(si présent, relayer le courrier sortant via l'un de ces serveurs)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Voir les contacts" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Ajouter un nouveau contact" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Vue journalière" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Vue mensuelle" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Ajouter un événement" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Agenda" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Voir les tâches" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Ajouter une tâche" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Voir les notes" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Ajouter une note" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Rafraichir la liste des messages" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Écrire un message" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Accueil Wiki" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Modifier cette page" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Hstorique" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "Nouvelle publication de blog" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Laisser les messages sélectionnés comme non lus, aller au prochain salon " "avec des messages non lus." #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Passer ce salon" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Marquer tous les messages comme lus, aller au prochain salon qui contient " "des messages non lus." #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "Conserver les modifications ?" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Vous vous êtes abonné %s à la liste de diffusion %s. Le " #~ "serveur vous a envoyé un courriel comportant un lien que vous devrez " #~ "suivre pour confirmer votre inscription. Cette étape est nécessaire pour " #~ "vérifier que quelqu'un d'autre ne vous a pas abonné à votre insu." #~ "

    SVP effectuez cette action, vous recevrez alors un courriel de " #~ "confirmation de votre abonnement.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "ATTENTION: Echec lors de la lecture du la Configuration du Serveur; " #~ "s'agît-il d'un nouveau citserver?" #~ msgid "There is no room called '%s'." #~ msgstr "Le salon '%s' n'existe pas." #~ msgid "Network" #~ msgstr "Réseau" #~ msgid "Tuning" #~ msgstr "Réglages" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Effacer immédiatement les messages supprimés via IMAP" #~ msgid "A script by that name already exists." #~ msgstr "Il existe déjà un script avec ce nom." #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "Un nouveau script a été créé. Retourner à l'écran de modification des " #~ "scripts pour le modifier et l'activer." #~ msgid "Delete script" #~ msgstr "Supprimer ce script" #~ msgid "Delete this script?" #~ msgstr "Supprimer ce script ?" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Vous êtes connecté(e) à %s qui est servi par %s avec %s (révision %s) et " #~ "situé à %s. Votre administrateur système est %s." #~ msgid "Yes with users list" #~ msgstr "Oui, avec la liste des usagers" #~ msgid "Room list" #~ msgstr "Liste des salons" #, fuzzy #~ msgid "uname" #~ msgstr "Nom du fichier" #, fuzzy #~ msgid "text" #~ msgstr "textes seulement" #, fuzzy #~ msgid "name" #~ msgstr "Nom du fichier" #, fuzzy #~ msgid "pname" #~ msgstr "Nom du fichier" #, fuzzy #~ msgid "password" #~ msgstr "Mot de passe" #, fuzzy #~ msgid "pass" #~ msgstr "Tâches" #, fuzzy #~ msgid "display: none" #~ msgstr "Nom affiché :" #~ msgid "Your password was not accepted." #~ msgstr "Votre mot de passe a été refusé." #~ msgid "If you already have an account on" #~ msgstr "Si vous avez déjà un compte sur" #, fuzzy #~ msgid "enter your user name and password and click "Log in."" #~ msgstr "" #~ "entrez votre identifiant et votre mot de passe puis cliquez sur "" #~ "Login."" #~ msgid "Please log off properly when finished. " #~ msgstr "Fermez votre session proprement en quittant. " #~ msgid "See the" #~ msgstr "Voir la" #~ msgid "recommended browser list" #~ msgstr "liste des navigateurs recommandés" #~ msgid "" #~ "if you have trouble using Webcit.
  • You must have cookies " #~ "turned on. " #~ msgstr "" #~ "Si Webcit présente des dysfonctionnement.
  • Vous devez activer les " #~ "cookies " #~ msgid "" #~ "Also keep in mind that if your browser is configured to block pop-up " #~ "windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Gardez aussi à l'esprit que si votre navigateur est configuré pour " #~ "bloquer les pop-ups intempestives vous ne recevrez aucun message " #~ "instantané." #, fuzzy #~ msgid "Enter your OpenID URL and click "Log in"." #~ msgstr "Entrez votre adresse OpenID et cliquez sur "Connecter"." #~ msgid "Click here to learn what OpenID is and how Citadel is using it." #~ msgstr "" #~ "Cliquez ici pour savoir ce qu'est OpenID et comment Citadel l'utilise." #~ msgid "Log off now?" #~ msgstr "Déconnexion immédiate ?" #~ msgid "%d new of %d messages%s" #~ msgstr "%d nouveau(x) sur %d messages%s" #~ msgid "(nothing)" #~ msgstr "(rien)" #~ msgid "unexpected end of message" #~ msgstr "fin de message inattendue" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "" #~ "Une erreur est survenue lors de l'établissement du canal du clavardage." #~ msgid "Now exiting chat mode." #~ msgstr "Sortie du mode clavardage." #~ msgid "Help" #~ msgstr "Admin" #~ msgid "List users" #~ msgstr "Liste des usagers" #~ msgid "No messages here." #~ msgstr "Pas de message ici." #, fuzzy #~ msgid "no more messages" #~ msgstr "Messages anonymes" #~ msgid "" #~ "Your icon bar has been updated. Please select any of its choices to " #~ "continue.
    You may need to force " #~ "refresh (SHIFT-F5) in order for changes to take effect" #~ msgstr "" #~ "Votre barre d'icônes a été mise à jour. SVP sélectionnez l'une de ses " #~ "options pour continuer.
    Vous " #~ "pouvez avoir besoin de rafraichir (SHIFT-F5) afin que les changement " #~ "prennent effets à l'affichage." #~ msgid "Email" #~ msgstr "Courriel" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "" #~ "Erreur de récupération du flux RSS : impossible de trouver les messages\n" # c-format #~ msgid "%s from" #~ msgstr "%s de" #~ msgid "%s in %s" #~ msgstr "%s dans %s" #~ msgid " on %s" #~ msgstr "sur %s" #~ msgid "%s" #~ msgstr "%s" #~ msgid "" #~ "
    • Enter your OpenID URL and click "Login".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "
    • Enter your OpenID URL and click "Login".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #, fuzzy #~ msgid "" #~ "enter your user name and password and click "Login."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "
    • Si vous avez déjà un compte sur %s, entrez votre " #~ "identifiant et votre mot de passe puis cliquez sur "Login."
    • Si vous êtes un nouvel usager, entrez l'identifiant et le " #~ "mot de passe que vous souhaitez utiliser et cliquez sur "Nouvel " #~ "usager."
    • Fermez votre session proprement en quittant.
    • " #~ "
    • Vous devez employer un navigateur qui supporte les cadres et " #~ "les cookies
    • Gardez aussi à l'esprit que si votre " #~ "navigateur est configuré pour bloquer les pop-ups intempestives vous ne " #~ "recevrez aucun message instantané.
    " #~ msgid "Find out more about Citadel" #~ msgstr "En savoir plus à propos de Citadel" #~ msgid "CITADEL" #~ msgstr "CITADEL" #~ msgid "Customize this menu" #~ msgstr "Personnaliser ce menu" #~ msgid "Internet configuration" #~ msgstr "Configuration internet" #~ msgid "of %d messages." #~ msgstr "des %d messages." #~ msgid " from " #~ msgstr " de " #~ msgid " in " #~ msgstr " dans " #~ msgid "Edit node configuration for " #~ msgstr "Éditer la configuration du noeud " #~ msgid "" #~ "Postfix TCP " #~ "Dictionary Port (-1 to disable)" #~ msgstr "" #~ "Postfix TCP " #~ "Dictionary Port (-1 to disable)" #~ msgid "ERROR: could not open template " #~ msgstr "ERREUR : impossible d'ouvrir le modèle" #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Ce message contient des informations de gestion d'agenda et/ou de " #~ "planification, mais la prise en charge de ces informations n'est pas " #~ "disponible sur ce système. SVP demandez à votre administrateur de mettre " #~ "à jour le serveur Citadel et d'activer le service de gestion d'agenda et " #~ "de planification.
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Impossible d'afficher un événement. Vous voyez ce message car le " #~ "service d'agenda est désactivé sur ce serveur Citadel. SVP contactez " #~ "l'administrateur du système.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Impossible d'afficher une tâche. Le service en question est désactivé " #~ "sur ce serveur Citadel. SVP contactez l'administrateur du système.
    \n" #~ msgid "Day: " #~ msgstr "Jour :" #~ msgid "Year: " #~ msgstr "Année :" #~ msgid "The calendar view is not available." #~ msgstr "Le calendrier n'est pas disponible." #~ msgid "The tasks view is not available." #~ msgstr "Le visualiseur des tâches n'est pas disponible." #~ msgid "Gateway domains" #~ msgstr "Domaines de niveau supérieur" #~ msgid "(domains whose subdomains match Citadel hosts)" #~ msgstr "(domaines dont les sous-domaines correspondent aux hôtes Citadel)" #~ msgid "(This server does not support task lists)" #~ msgstr "(Ce serveur ne supporte pas les listes de tâches)" #~ msgid "(This server does not support calendars)" #~ msgstr "(ce server ne supporte pas les agendas)" #~ msgid "" #~ "This room is not configured to allow self-service subscribe/" #~ "unsubscribe requests." #~ msgstr "" #~ "Ce salon n'est pas configuré pour autoriser les requêtes " #~ "d'inscriptions et de désinscriptions en libre-service." #~ msgid "Click to enable." #~ msgstr "Cliquer pour activer." #~ msgid "Back to menu" #~ msgstr "Retour au menu" #~ msgid "Respond to meeting request" #~ msgstr "Répondre à cette invitation." #~ msgid "Update your calendar with this RSVP" #~ msgstr "Mettre à jour votre agenda avec cette réponse." #~ msgid "Public room" #~ msgstr "Salon public" #~ msgid "Private - guess name" #~ msgstr "Privé - les invités sont nommés" #~ msgid "Private - require password:" #~ msgstr "Privé - accès par mot de passe" #~ msgid "localhost" #~ msgstr "localhost" #~ msgid "gatewaydomain" #~ msgstr "passerelle" #~ msgid "rbl" #~ msgstr "rbl" #~ msgid "spamassassin" #~ msgstr "spamassassin" webcit-dfsg.orig/po/webcit/en_GB.po0000644000175000017500000044742213223341037017221 0ustar michaelmichael# translation of webcit.po to en_GB.po # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # This file is distributed under the revised BSD license # # WebCit messages for UK English # Copyright (C) 2005 David Given # This file is distributed under GPL v3 # msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2012-09-19 15:57+0000\n" "Last-Translator: Biffaboy \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-09-20 04:31+0000\n" "X-Generator: Launchpad (build 15985)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "availability unknown" #: ../../availability.c:169 msgid "free" msgstr "free" #: ../../availability.c:179 msgid "BUSY" msgstr "BUSY" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Graphics upload has been cancelled." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "You didn't upload a file." #: ../../graphics.c:106 msgid "your photo" msgstr "your photo" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "the icon for this room" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "the Greetingpicture for the login prompt" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "the Logoff banner picture" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "the icon for this floor" #: ../../tasks.c:93 msgid "Completed?" msgstr "Completed?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Name of task" #: ../../tasks.c:97 msgid "Date due" msgstr "Date due" #: ../../tasks.c:99 msgid "Category" msgstr "Category" #: ../../tasks.c:101 msgid "Show All" msgstr "Show All" #: ../../tasks.c:224 msgid "Edit task" msgstr "Edit task" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Summary:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Start date:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "No date" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "or" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Time associated" #: ../../tasks.c:289 msgid "Due date:" msgstr "Due date:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Completed:" #: ../../tasks.c:329 msgid "Category:" msgstr "Category:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Description:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Save" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Delete" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Cancel" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Untitled Task" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d comments" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "permalink" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "Newer posts" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "Older posts" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Edit %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Save changes" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Cancelled. %s was not saved." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " has been saved." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Room info" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Your bio" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Hour: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minute: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(status unknown)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(needs action)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(accepted)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(declined)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(tenative)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegated)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(completed)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(in process)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(none)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Manage Account/OpenID Associations" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Do you really want to delete this OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(delete)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Add an OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "Attach" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s does not permit authentication via OpenID." #: ../../summary.c:128 msgid "(None)" msgstr "(None)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nothing)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Go to page: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "First" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Last" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() error! couldn't get %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Deleted" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "New User" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Problem User" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Local User" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Network User" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Preferred User" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Admin" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "An error has occurred." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Validate new users" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "No users require validation at this time." #: ../../auth.c:617 msgid "very weak" msgstr "very weak" #: ../../auth.c:620 msgid "weak" msgstr "weak" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "strong" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Current access level: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Select access level for this user:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Cancelled. Password was not changed." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "They don't match. Password was not changed." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Blank passwords are not allowed." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Meeting invitation" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Attendee's reply to your invitation" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Published event" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "This is an unknown type of calendar item." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Location:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Date:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Starting date/time:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Ending date/time:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Recurrence" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "This is a recurring event" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Attendee:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "This is an update of '%s' which is already in your calendar." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "This event would conflict with '%s' which is already in your calendar." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Update:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLICT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "How would you like to respond to this invitation?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Accept" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Tentative" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Decline" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "Click Update to accept this reply and update your calendar." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Update" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignore" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "There was an error parsing this calendar item." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "You have accepted this meeting invitation. It has been entered into your " "calendar." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "You have declined this meeting invitation. It has not been entered " "into your calendar." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "A reply has been sent to the meeting organiser." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Your calendar has been updated to reflect this RSVP." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Calendar day view begins at:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Calendar day view ends at:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Week starts on:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "An error occurred while retrieving this file: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "seconds" #: ../../event.c:72 msgid "minutes" msgstr "minutos" #: ../../event.c:73 msgid "hours" msgstr "hours" #: ../../event.c:74 msgid "days" msgstr "days" #: ../../event.c:75 msgid "weeks" msgstr "weeks" #: ../../event.c:76 msgid "months" msgstr "months" #: ../../event.c:77 msgid "years" msgstr "years" #: ../../event.c:78 msgid "never" msgstr "never" #: ../../event.c:82 msgid "first" msgstr "first" #: ../../event.c:83 msgid "second" msgstr "second" #: ../../event.c:84 msgid "third" msgstr "third" #: ../../event.c:85 msgid "fourth" msgstr "fourth" #: ../../event.c:86 msgid "fifth" msgstr "fifth" #: ../../event.c:89 msgid "Event" msgstr "Event" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Attendees" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Add or edit an event" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Summary" #: ../../event.c:222 msgid "Location" msgstr "Location:" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Start" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "All day event" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "End" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notes" #: ../../event.c:374 msgid "Organizer" msgstr "Organiser" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(you are the organiser)" #: ../../event.c:397 msgid "Show time as:" msgstr "Show time as:" #: ../../event.c:420 msgid "Free" msgstr "Free" #: ../../event.c:428 msgid "Busy" msgstr "Busy" #: ../../event.c:445 msgid "(One per line)" msgstr "(One per line)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contacts" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Recurrence rule" #: ../../event.c:522 msgid "Repeats every" msgstr "Repeats every" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "on these weekdays:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "on day %s%d%s of the month" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "on the " #: ../../event.c:631 msgid "of the month" msgstr "of the month" #: ../../event.c:660 msgid "every " msgstr "every " #: ../../event.c:661 msgid "year on this date" msgstr "year on this date" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "of" #: ../../event.c:717 msgid "Recurrence range" msgstr "Recurrence range" #: ../../event.c:725 msgid "No ending date" msgstr "No ending date" #: ../../event.c:732 msgid "Repeat this event" msgstr "Repeat this event" #: ../../event.c:735 msgid "times" msgstr "times" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Repeat this event until " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Check attendee availability" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Untitled Event" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Iconbar Setting" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Invalid Parameter" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " has been deleted." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " added." #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Higher access is required to access this function." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "You need to specify the mailinglist to subscribe to." #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "You need to specify the email address you'd like to subscribe with." #: ../../messages.c:73 msgid "ERROR:" msgstr "ERROR:" #: ../../messages.c:91 msgid "Empty message" msgstr "Empty message" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Cancelled. Message was not posted." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automatically cancelled because you have already saved this message." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Saved to Drafts failed: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Refusing to post empty message.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Message has been saved to Drafts.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Message has been sent.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Message has been posted.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "The message was not moved." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "An error occurred while retrieving this part: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "An error occurred while retrieving this part: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Attach signature to email messages?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Use this signature:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Default character set for email headers:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Preferred email address" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Preferred display name for email messages" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Preferred display name for bulletin board posts" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Mailbox view mode" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Click on any note to edit it." #: ../../paging.c:29 msgid "Send instant message" msgstr "Send instant message" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Send an instant message to: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Enter message text:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Send message" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Message was not sent." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Message has been sent to " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Cancelled. No settings were changed." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Make this my start page" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "This isn't allowed to become the start page." #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "You no longer have a start page selected." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Prefered startpage" #: ../../roomlist.c:105 msgid "My Folders" msgstr "My Folders" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Cancelled. Changes were not saved." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Your changes have been saved." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "User '%s' kicked out of room '%s'." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "User '%s' invited to room '%s'." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Cancelled. No new room was created." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Floor has been deleted." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "New floor has been created." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Room list view" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Show empty floors" #: ../../roomtokens.c:570 msgid "file" msgstr "file" #: ../../roomtokens.c:572 msgid "files" msgstr "files" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Bulletin Board" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Mail Folder" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Address Book" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Calendar" #: ../../roomviews.c:57 msgid "Task List" msgstr "Task List" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Notes List" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Calendar List" #: ../../roomviews.c:61 msgid "Journal" msgstr "Journal" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Drafts" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Received unexpected answer from Citadel server; bailing out." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Your system configuration has been updated." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "First Attempt pending" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "An error occurred while trying to create or edit this address book entry." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Changes were not saved." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "A new user has been created." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(no name)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (work)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (home)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobile)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Address:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telephone:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "This address book is empty." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "An internal error has occurred." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Error" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Edit contact information" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Prefix" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "First Name" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Middle Name" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Last Name" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Suffix" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Display name:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Title:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisation:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "PO box:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "City:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "County:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Post code:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Country:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Home telephone:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Work telephone:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Mobile telephone:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Fax number:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Primary Internet e-mail address" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Internet e-mail aliases" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Unable to enter the room to save your message" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Aborting." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Could Not decode vcard photo\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Authorisation Required" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." #: ../../webcit.c:688 msgid "Read More..." msgstr "Read More..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' is not a Wiki room." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "There is no page called '%s' here." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Date" #: ../../wiki.c:143 msgid "Author" msgstr "Author" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(show)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Current version" #: ../../wiki.c:184 msgid "(revert)" msgstr "(revert)" #: ../../wiki.c:246 msgid "Page title" msgstr "Page title" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Time format" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "From" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Starting date:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Ending date:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Date/time:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notes:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "previous" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "next" #: ../../calendar_view.c:750 msgid "Week" msgstr "Week" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Hours" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Subject" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Ongoing event" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "edit" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "I don't know how to display " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(no subject)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "The queue is empty." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "You do not have permission to view this resource." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Customise the icon bar" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Display icons as:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "pictures and text" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "pictures only" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "text only" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Yes" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "No" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Site logo" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "An icon describing this site" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Your summary page" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Mail (inbox)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "A shortcut to your email Inbox" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Your personal address book" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Your personal notes" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "A shortcut to your personal calendar" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Tasks" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "A shortcut to your personal task list" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Rooms" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Who is online?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "Clicking this icon displays a list of all users currently logged in." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Clicking this icon enters real-time chat mode with other users in the same " "room." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Advanced options" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Access to the complete menu of Citadel functions." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Displays the 'Powered by Citadel' icon" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "System Administration Menu" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "Room Admin Menu" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Local host aliases" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Directory domains" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart hosts" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "Fallback smart hosts" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "Notification hosts" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "RBL hosts" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssassin hosts" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV clamd hosts" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Masqueradable domains" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Changes made on this screen will not take effect until you restart the " "Citadel server." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Network services" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Server IP address (0.0.0.0 for 'any')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) client to server port (-1 to disable)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "XMPP (Jabber) server to server port (-1 to disable)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Advanced server fine-tuning controls" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Maximum message length" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Server connection idle timeout (in seconds)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Network run frequency (in seconds)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Maximum concurrent sessions (0 = no limit)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Minimum number of worker threads" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Maximum number of worker threads" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Automatically delete committed database logs" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Create a new room" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Name of room: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Resides on floor: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Default view for room: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Type of room:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Public (automatically appears to everyone)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Private - hidden (accessible to anyone who knows its name)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Private - require password: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Private - invitation only" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personal (mailbox for you only)" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "Create a new room" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Log off" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Log in again" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Zap (forget/unsubscribe) the current room" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "If you select this option," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "will disappear from your room list. Is this what you wish to do?" #: ../../i18n_templatelist.c:102 #, fuzzy msgid "Zap this room" msgstr "Skip this room" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "User name" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Room" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "From host" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Sender" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Loading messages from server, please wait" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Open in new window" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Move" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Copy" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Print" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "(send outbound mail to these hosts only when direct delivery fails)" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Zapped (forgotten) rooms" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "Click on any room to un-zap it and goto that room." #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Change your preferences and settings" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Update your contact information" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Change your password" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Enter your 'bio'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Edit your online photo" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "View/edit server-side mail filters" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Edit your push email settings" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "Manage your OpenIDs" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "View" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Download" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Global Configuration" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "User account management" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Shutdown Citadel" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Rooms and Floors" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Go to a hidden room" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Enter room name:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Enter room password:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "on the " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "from " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "to" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Subject:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Push Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Funambol server host (blank to disable)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Funambol server port " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Funambol sync source" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Funambol auth details (user:pass)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "External pager tool (blank to disable)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Tree (folders) view" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Table (rooms) view" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 hour (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 hour" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Sunday" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Monday" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "No signature" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Full-functionality" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Safe mode" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" "Safe mode is less intensive on your web browser, but not as fully featured." #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Preferences and settings" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "(URLS for notifications when users receive new mails; )" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Basic commands" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Your info" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Advanced room commands" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Edit user account: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "User name:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Password" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Permission to send Internet mail" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Number of logins" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Messages submitted" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Access level" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "User ID number" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Date and time of last login" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Auto-purge after this many days" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 listener port (-1 to disable)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3 over SSL port (-1 to disable)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "POP3 fetch frequency in seconds" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "POP3 fastest fetch frequency in seconds" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "View the outbound SMTP queue" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Refresh this page" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Remote host" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "County:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "continue processing" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Message to your Users:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administration" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Configuration" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Message expire policy" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Access controls" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Sharing" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Mailing list service" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Remote retrieval" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Your icon bar has been updated. Please select any of its choices to continue." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "General site configuration items" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Change Login Logo" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Change Logout Logo" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Node name" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Fully qualified domain name" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Human-readable node name" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Telephone number" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Paginator prompt (for text mode clients)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Geographic location of this system" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Name of system administrator" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Default timezone for unzoned calendar items" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Network shared room" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Add a new node" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Shared secret" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Host or IP address" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Port number" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Add a new node" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(kill)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Site configuration" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "This address book is empty." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minutos" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Tentative" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(Edit)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Delete)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "No new messages." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "New start page" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Your start page has been changed." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Post a comment" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Confirm delete" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Are you sure you want to delete " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Add, change, delete user accounts" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(hosts running the ClamAV clamd service)" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "Sender" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Restart Citadel" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "from" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anonymous" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "in" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "To:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Subject (optional):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- forwarded message ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Post message" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "Save to Drafts" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Attachments:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Delete this room" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Room info" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Search: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Server command results" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "Enter another command" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "Return to menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Users currently on" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "User profile" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "Click here to send an instant message to" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "pictures only" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Edit or delete users" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "You need to be aide to view this." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Add users" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Edit or Delete users" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Please wait while the Citadel server is restarted... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "User list for " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "User Name" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Number" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Access Level" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Last Login" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Total Logins" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Total Posts" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Loading" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Your OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "was successfully verified." #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "However, the user name" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "conflicts with an existing user." #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Please specify the user name you would like to use." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Message expire policy for this room" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Use the default policy for this floor" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Never automatically expire messages" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Expire by message count" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Expire by message age" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Number of messages or days: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Message expire policy for this floor" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Use the system default" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Close window" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Upload a file:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Are you sure you want to delete " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Attach file" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "Remove" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexing and Journaling" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Warning: these facilities are resource intensive." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Enable full text index" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Perform journaling of email messages" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Perform journaling of non-email messages" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Email destination of journalized messages" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Files available for download in" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Upload a file:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Upload" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "File Name" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Size" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Content" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Description" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "new of" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "messages" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Select page: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Remote host" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Keep messages on server?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Interval" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Add" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Fetch the following RSS feeds and store them in this room:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Feed URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "New user: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domains mapped with the Global Address Book)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "List of Wiki pages" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(remove)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Invite:" #: ../../i18n_templatelist.c:426 #, fuzzy msgid "Invite" msgstr "Invite:" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Users" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Users" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Address Book" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Delete scripts" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Delete this room" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Delete" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Slideshow" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(hosts running the SpamAssassin service)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "This is an update of '%s' which is already in your calendar." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "This event would conflict with '%s' which is already in your calendar." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "When new mail arrives: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Leave it in my inbox without filtering" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filter it according to rules selected below" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "Filter it through a manually edited script (advanced users only)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Your incoming mail will not be filtered through any scripts." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Add rule" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "The currently active script is: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Add or delete scripts" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Configure the LDAP connector for Citadel" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Host name of LDAP server (blank to disable)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Port number of LDAP server (blank to disable)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Base DN" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Bind DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Password for bind DN" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Edit or delete this room" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Go to a 'hidden' room" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Zap (forget) this room" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "List all forgotten rooms" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Read new messages" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "Message ID" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Date/time submitted" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "Next attempt" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Recipients" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Reading #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "oldest to newest" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "newest to oldest" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Edit" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Reply" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "ReplyQuoted" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "ReplyAll" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Forward" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Headers" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Edit site-wide configuration" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Domain names and Internet mail configuration" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Configure replication with other Citadel servers" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Displays the 'Powered by Citadel' icon" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Language:" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "A shortcut to your email Inbox" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Mail" #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "A shortcut to your personal calendar" #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "Your personal address book" #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "Your personal notes" #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "A shortcut to your personal task list" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "List all forgotten rooms" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Online users" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Advanced" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "Your system administrator is" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "customise this menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Log in" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "switch to room list" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "switch to menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "My folders" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP listener port (-1 to disable)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP over SSL port (-1 to disable)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Keep original from headers in IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Image upload" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "You can upload an image directly from your computer" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Please select a file to upload:" #: ../../i18n_templatelist.c:545 #, fuzzy msgid "Reset form" msgstr "Digest format" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "List subscription" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "List subscribe/unsubscribe" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Confirmation request sent" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "You are subscribing " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " to the " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " mailing list." #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Go back..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "ERROR" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "You are unsubscribing" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "from the" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "mailing list." #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "Back..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "Confirmation successful!" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "Confirmation failed." #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "This could mean one of two things:" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "The error returned by the server was: " #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "Name of list:" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "Your e-mail address:" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "(If subscribing) preferred format: " #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "One message at a time" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "Digest format" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "name of room: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "If private, cause current users to forget room" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Preferred users only" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Read-only room" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "All users allowed to post may also delete messages" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "File directory room" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Directory name: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Uploading allowed" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Downloading allowed" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Visible directory" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Network shared room" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanent (does not auto-purge)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Subject Required (Force users to specify a message subject)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonymous messages" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "No anonymous messages" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "All messages are anonymous" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Prompt user when entering messages" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Room aide: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Delete this room" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Not shared with" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Shared with" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Remote node name" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Remote room name" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Actions" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well. " "
  • If the remote room name is blank, it is assumed that the room name is " "identical on the remote node.
  • If the remote room name is different, the " "remote node must also configure the name of the room here." #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Keep messages on server?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Add/change/delete floors" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Floor number" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Floor name" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Number of rooms" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Floor CSS" #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "Create a new room" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Delete" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "If" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "To or Cc" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Reply-to" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Resent-From" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Resent-To" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Envelope From" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Envelope To" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "List-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Message size" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "All" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "contains" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "does not contain" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "is" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "is not" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "matches" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "does not match" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(All messages)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "is larger than" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "is smaller than" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "bytes" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Keep" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Discard silently" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Reject" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Move message to" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Forward to" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Vacation" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Message:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "and then" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "continue processing" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "stop" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domains for which this host receives mail)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Network configuration" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Currently configured nodes" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(delete floor)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(edit graphic)" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Change room name" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Configure automatic expiry of old messages" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "These settings may be overridden on a per-floor or per-room basis." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Hour to run database auto-purge" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Default message expire policy for public rooms" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "Default message expire policy for private mailboxes" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Same policy as public rooms" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Default user purge time (days)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Default room purge time (days)" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "Are you sure you want to delete " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Delete this room" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "Set or change the icon for this rooms banner" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "Edit this rooms Info file" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Enter a server command" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Enter command:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Command input (if requesting SEND_LISTING transfer mode):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "Detected host header is " #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Enter command:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(hosts running a Realtime Blackhole List)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Access controls and site policy settings" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Allow aides to zap (forget) rooms" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Quarantine messages from problem users" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Name of quarantine room" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Name of room to log pages" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Authentication mode" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "Self contained" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "Host based" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Active Directory)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "Allow anonymous guest access" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "Master user name (blank to disable)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Master user password" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Initial access level for new users" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Access level required to create rooms" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "Automatically grant room-aide status to users who create private rooms" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "Automatically grant room-aide status to users who create BLOG rooms" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Restrict access to Internet mail" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Disable self-service user account creation" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "Hint: do not select both!" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Require registration for new users" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Add, change, or delete floors" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "View as:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Delete this room" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Logged in as" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Not logged in." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "You must be logged in to access this page." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Log in using a user name and password" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Password" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "New user? Register now" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "enter the name and password you wish to use, and click "New User." " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Log in using OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "Log in using Google" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "Log in using Yahoo" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "Log in using AOL or AIM" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "Enter your AOL or AIM screen name:" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Please wait" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Add a new script" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Script name: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Edit scripts" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Return to the script editing screen" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Delete scripts" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "To delete an existing script, select the script name from the list and click " "'Delete'." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Restart Now" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Restart after paging users" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Restart when all users are idle" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "Configure Push Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Push email and SMS settings" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "Notify Funambol server" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "Send a text message to..." #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "Use custom notification scheme configured by your Admin" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "Don‘t send any notifications" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "powered by" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA port (-1 to disable)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 to disable)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP over SSL port (-1 to disable)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Perform RBL checks upon connect instead of after RCPT" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Flag message as spam, instead of rejecting it" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "Allow unauthenticated SMTP clients to spoof this sites domains" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Correct forged From: lines during authenticated SMTP" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Postfix TCP Dictionary Port" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 to disable" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve Port (-1 to disable)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Site configuration" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "General" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Iconbar Setting" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexing/Journaling" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Access" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "Directory" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Auto-purger" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "List-ID" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Digest format" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Add recipients from Contacts or other address books" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Allow non-subscribers to mail to this room." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Room post publication needs Admin permission." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "Allow self-service subscribe/unsubscribe requests." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "The URL for subscribe/unsubscribe is: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Subject" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "Summary page for " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Messages" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Today on your calendar" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "Who‘s online now" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "About this server" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "You are connected to" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "running" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "with" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "server build" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "and located in" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "Your system administrator is" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Do you really want to delete this OpenID?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Users currently on " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "Click on a name to read user info. Click on" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "to send an instant message to that user." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Old messages" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "New messages" #: ../../i18n_templatelist.c:880 #, fuzzy msgid "Share" msgstr "Sharing" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domains as which users are allowed to masquerade)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Enter new password:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Enter it again to confirm:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Change password" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Edit your session display" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Room name:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Change room name" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Host name:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Change host name" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Change user name" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "History of edits for this page" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Confirm move of message" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Move this message to:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "Originaly posted in: " #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "List known rooms" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Where can I go from here?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Goto next room" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "...with unread messages" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Skip to next room" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(come back here later)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Ungoto" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "oops! Back to " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Read new messages" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "...in this room" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Read all messages" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...old and new" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Enter a message" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(post in this room)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "File library" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(List files available for download)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Summary page" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Summary of my account" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "User list" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(all registered users)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Bye!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "(if present, forward all outbound mail to one of these hosts)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "View contacts" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Add new contact" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Day view" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Month view" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Add new event" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Calendar list" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "View tasks" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Add new task" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "View notes" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Add new note" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Refresh message list" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Write mail" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki home" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Edit this page" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "History" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "New blog post" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Skip this room" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Save changes" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgid "There is no room called '%s'." #~ msgstr "There is no room called '%s'." #~ msgid "Network" #~ msgstr "Network" #~ msgid "Tuning" #~ msgstr "Tuning" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Instantly expunge deleted messages in IMAP" webcit-dfsg.orig/po/webcit/he.po0000644000175000017500000037001513223341037016634 0ustar michaelmichael# Hebrew translation for citadel # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-08-12 13:38+0000\n" "Last-Translator: igal \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-08-01 04:34+0000\n" "X-Generator: Launchpad (build 15719)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "ביטול" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "שעה: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "דקה: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(סטטוס לא ידוע)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(נדרשת פעולה)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(התקבל)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(נדחה)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(זמני)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(הוסמך)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(הושלם)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(בתהליך)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(אין)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "האם ברצונך למחוק את הזהות הפתוחה ?" #: ../../openid.c:47 msgid "(delete)" msgstr "(מחיקה)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "הוספת זהות פתוחה: " #: ../../openid.c:58 msgid "Attach" msgstr "צרף" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s אינו מרשה אימות דרך זהות פתוחה." #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "עריכת סרגל סמלים" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "לעריכה הקליקו על ההודעה ." #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "בוטל. שום הגדרות לא שונו." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "הגדר זאת כדף הפתיחה שלי" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "זה אינו רשאי להפוך לדף פתיחה." #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "אין לך דף פתיחה נבחר." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "דף פתיחה מועדף" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "ארעה שגיאה בעת ניסיון ליצור/לערוך את איש הקשר." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "שינויים לא נשמרו." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "נוצר משתמש חדש." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' אינו חדר Wiki." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "לא קיים כאן חדר בשם '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "בחרו בקישור ' ערוך דף זה' בכרזת החדר אם ברצונכם ליצור דף זה." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "תאריך" #: ../../wiki.c:143 msgid "Author" msgstr "מחבר" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(הראה)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "גירסה נוכחית" #: ../../wiki.c:184 msgid "(revert)" msgstr "(חזור)" #: ../../wiki.c:246 msgid "Page title" msgstr "כותרת הדף" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "שם המשתמש" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "דקה: " #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "(זמני)" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "האם ברצונך למחוק את הזהות הפתוחה ?" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "שנה את שם החדר" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "האם ברצונך למחוק את הזהות הפתוחה ?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "עריכת סרגל סמלים" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "האם ברצונך למחוק את הזהות הפתוחה ?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "שם החדר:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "שנה את שם החדר" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "שם המארח:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "שנה את שם המארח" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "שנה את שם המשתמש" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" #~ msgid "There is no room called '%s'." #~ msgstr "לא קיים חדר בשם '%s'." webcit-dfsg.orig/po/webcit/da.po0000644000175000017500000046323413223341037016632 0ustar michaelmichael# Danish localization for WebCit # Copyright (C) 2006 - 2009 The Citadel Project - http://www.citadel.org # This file is distributed under GPL v3 # Flemming Veggerby 2008 - 2009 msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-10-22 14:46+0000\n" "Last-Translator: Flemming Veggerby \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-10-23 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "tilgængelighed ukendt" #: ../../availability.c:169 msgid "free" msgstr "fri" #: ../../availability.c:179 msgid "BUSY" msgstr "OPTAGET" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Upload er blevet afbrudt." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Du uploadede ikke en fil." #: ../../graphics.c:106 msgid "your photo" msgstr "dit billede" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "ikonet for dette rum" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "Velkomstbillede ved login" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "Logaf banner billede" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "ikonet for denne etage" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "Navn på opgave" #: ../../tasks.c:97 msgid "Date due" msgstr "Forfaldsdato" #: ../../tasks.c:99 msgid "Category" msgstr "Kategori" #: ../../tasks.c:101 msgid "Show All" msgstr "Vis Alle" #: ../../tasks.c:224 msgid "Edit task" msgstr "Editér opgave" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Summering:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Start dato:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "eller" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "Forfald dato:" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategori:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Beskrivelse:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Gem" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Slet" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Afbryd" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, fuzzy, c-format msgid "%d comments" msgstr "Send kommando" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "nyere stillinger" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "ældre indlæg" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Editér %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Tekst er formatteret til læserens skærmbredde. For at " "overvinde formatteringen, indfør en linie mindst et mellemrum." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Gem ændringer" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Afbrudt. %s blev ikke gemt." #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s er blevet gemt." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Rum info" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Din bio" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Time: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minut: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(status ukendt)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(behøver aktion)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(accepteret)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(afvist)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(foreløbig)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegeret)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(færdig)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(igang)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(ingen)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Tilret konto/OpenID associationer" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Tilføj et OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s tillader ikke autentifikation via OpenID" #: ../../summary.c:128 msgid "(None)" msgstr "(Ingen)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Ingenting)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() fejl! kunne ikke modtage %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Slettet" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Ny Bruger" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Problem Bruger" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Lokal Bruger" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Netværk Bruger" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Foretrukken Bruger" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Systemansvarlig" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "En fejl er opstået" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Validér nye brugere" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Ingen brugere kræver validering på dette tidspunkt." #: ../../auth.c:617 msgid "very weak" msgstr "meget svag" #: ../../auth.c:620 msgid "weak" msgstr "svag" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "stærk" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Aktuelt brugerniveau: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Vælg brugerniveau for denne bruger:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Afbrudt. Adgangskode blev ikke ændret." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Adgangskoder matcher ikke. Adgangskode blev ikke ændret." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Blanke adgangskoder er ikke tilladt." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Møde invitaion" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Deltagers svar på din invitation" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Publiseret aftale" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Dette er en ukendt type kalender emne." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Lokation:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Dato:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Start dato/tid:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Slut dato/tid:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Gentagelse" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Dette er en gentagende aftale" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Deltager:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Dette er en opdatering af '%s' som allerede er i din kalender." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "Denne aftale vil konflikte med '%s* som allerede er i din kalender." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Opdatering:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "KONFLIKT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Hvordan vil du svare på denne invitation?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Acceptér" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Foreløbig" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Afvis" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Klik Opdatér for at acceptere dette svar og opdatere din kalender." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Opdatér" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignorér" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Der opstod en fejl ved behandling af dette emne." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Du har accepteret denne mødeinvitation. Det er blevet tilføjet i din " "kalender." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Du har foreløbigt accepteret denne mødeinvitation. Det er blevet tilføjet i " "din kalender 'med blyant'" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Du har afvist denne mødeinvitation. Det er ikke blevet tilføjet i " "din kalender." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Et svar er blevet sendt til mødeorganisatoren." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Din kalender er opdateret til at reflektere denne S.U." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Du har valgt at ignorere denne S.U. Din kalender er ikke blevet " "opdateret." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Kalender dag visning begynder:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Kalender dag visning slutter:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Ugen starter:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "sekunder" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "dage" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "aldrig" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "tredie" #: ../../event.c:85 msgid "fourth" msgstr "fjerde" #: ../../event.c:86 msgid "fifth" msgstr "femte" #: ../../event.c:89 msgid "Event" msgstr "Aftale" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Deltagere" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Tilføj eller editér en aftale" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Summering" #: ../../event.c:222 msgid "Location" msgstr "Lokation" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Start" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Hele dagen aftale" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Slut" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Noter" #: ../../event.c:374 msgid "Organizer" msgstr "Organisator" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(du er organisator)" #: ../../event.c:397 msgid "Show time as:" msgstr "Vis tid som:" #: ../../event.c:420 msgid "Free" msgstr "Fri" #: ../../event.c:428 msgid "Busy" msgstr "Optaget" #: ../../event.c:445 msgid "(One per line)" msgstr "(Én per linie)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Kontaktpersoner" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "Gentages hver" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "på disse ugedage" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "på den %s%d%s dag i måneden" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "i måneden" #: ../../event.c:660 msgid "every " msgstr "hver " #: ../../event.c:661 msgid "year on this date" msgstr "år på denne dato" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "af" #: ../../event.c:717 msgid "Recurrence range" msgstr "Gentagelsesområde" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Gentag denne aftale indtil " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Check deltager tilgænglighed" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Invalid Parameter" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s er blevet slettet." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Højere tilladelse er krævet for at bruge denne funktion." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 #, fuzzy msgid "You need to specify the email address you'd like to subscribe with." msgstr "Skriv det Brugernavn du gerne vil have." #: ../../messages.c:73 msgid "ERROR:" msgstr "FEJL:" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Afbrudt. Meddelelse ikke opsat." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automatisk afbrudt fordi du har allerede gemt denne meddelelse." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Meddelelse er blevet sendt.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Meddelelse er blevet opsat.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Meddelelsen blev ikke flyttet." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "En fejl opstod under hentning af denne del: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Tilføj signatur til meddelelser?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Brug denne signatur" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Standard karaktérsæt for email headers:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Vist navn på opslagstavle posteringer" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Postkasse visning" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Klik på en note for at ændre den." #: ../../paging.c:29 msgid "Send instant message" msgstr "Send popup meddelelse" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Sedn popup meddelelse til: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Skriv meddelelsestekst:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Send meddelelse" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Meddelelse blev ikke sendt." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Meddelelse blev sendt til " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Afbrudt. Ingen indstillinger blev ændret." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Gør dette til min startside" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Du har ikke længere en startside." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Afbrudt. Ændringer blev ikke gemt." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Dine ændringer er blevet gemt." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Bruger %s blev sparket ud af rum %s." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Bruger %s blev inviteret til rum %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Afbrudt. Intet nyt rum blev oprettet." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Etage er blevet slettet." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Ny etage er oprettet." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Rum liste visning" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Vis tomme etager" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "filer" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Opslagstavle" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Post Mappe" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Adressebog" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Kalender" #: ../../roomviews.c:57 msgid "Task List" msgstr "Opgave Liste" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Note Liste" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Kalender Liste" #: ../../roomviews.c:61 msgid "Journal" msgstr "Journal" #: ../../roomviews.c:62 #, fuzzy msgid "Drafts" msgstr "Dato" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Denne server har allerede det maximale antal brugere logget ind og kan ikke " "acceptere flere lige nu. Prøv igen senere eller kontakt din System " "administrator." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Du er forbundet til en Citadel server der kører Citadel %d.%02d. \n" "For at køre denne version af WebCit skal du have Citadel %d.%02d eller " "nyere.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Din system konfiguration er blevet opdateret" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "En fejl opstod ved forsøg på at oprette eller editére dette adressebogsemne." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Ændringer blev ikke gemt." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "En ny bruger blev oprettet." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Du forsøger at opretter en ny bruger i Citadel mens den kører i værtsbaseret " "autentifikation. I denne konfiguration, skal du oprette nye brugere på værts-" "systemet, ikke i Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(intet navn)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (arbejde)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (hjem)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (afdeling)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adresse:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Denne adressebog er tom." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "Fejl" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Editér kontakt information" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Præfix" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Fornavn" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Mellemnavn" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Efternavn" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Tilføjelse" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Vist navn:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titel:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisation:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Postbox:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "By:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Stat:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Postnummer:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Land:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Hjemmetelefon:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Arbejdstelefon:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Pimær Internet Email adresse" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Internet Email aliasser" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Kunne ikke dekode vcard foto\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Godkendelse Krævet" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "Resourcen som du forespurgte kræver et brugernavn og en adgangskode. Du " "kunne ikke blive logged ind: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Dette program kunne ikke tilslutte eller forblive tilsluttet til Citadel " "serveren. KOntakt din Systemadministrator." #: ../../webcit.c:688 msgid "Read More..." msgstr "Læs mere..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' er ikke et Wiki rum." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Der er ikke nogen side her der hedder '%s'" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Vælg 'Editér denne side' link i rum banneret hvis du gerne vil oprette denne " "side." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Dato" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Time format" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Noter:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "Uge" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Timer" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Emne" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Igangværende aftale" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "editér" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(intet emne)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Du har ikke lov til at se denne resource." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Personliggør denne ikonbjælke" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Vis ikoner som:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "billeder og tekst" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "kun billeder" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "kun tekst" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Vælg de ikoner som vil have vist i 'ikonbjælke' menuen i den venstre side af " "skærmen." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Ja" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Nej" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Site logo" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Et ikon der beskriver denne site" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Din summeringsside" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Post (indbakke)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "En genvej til din indbakke" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Din personlige adressebog" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Dine personlige noter" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "En genvej til din personlige kalender" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Opgaver" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "En genvej til din personlige opgave liste" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Rum" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Klik på dette ikon for at vise en liste med alle tilgængelige rum. (eller " "foldere)" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Hvem er online?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "KLik på dette ikon for at vise en liste med alle brugere der er logget ind." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Klik på dette ikon for at starte chat med andre brugere i det samme rum." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Avancerede indstillinger" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Adgang til den komplette menu med Citadel funktioner." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Viser 'Powered by Citadel' ikon" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "System Administration Menu" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Rum Systemansvarlig Menu" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Lokal vært aliaser" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Directory domæner" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart værter" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Smart værter" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "RBL værter" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssassin værter" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV clamd værter" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 #, fuzzy msgid "Masqueradable domains" msgstr "Maskerade domæner" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Ændringer på denne skærm vil ikke blive effektueret før du har genstartet " "Citadel serveren." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Netværk service" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Serverens IP adresse (0.0.0.0 vælger alle)" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 #, fuzzy msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) klient til server port (-1 = afbrudt)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 #, fuzzy msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "XMPP (Jabber) server til server port (-1 = afbrudt)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Avanceret server finindstilling kontroller" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Maximum meddelelse længde" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Server forbindelse inaktivitetstimeout (i sekunder)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Netværk kør frekvens (i sekunder)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Maximum antal samtidige sessioner (0 = ingen max)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Minimum antal arbejdstråde" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Maximum antal arbejdstråde" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Automatisk slet commited database logs" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Opret et nyt rum" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Navn på rum" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Ligger på etage: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Standard visning for rum: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Type på rum" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Offentlig (automatisk vist til alle)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privat - skjult (adgang for dem der kender navnet)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privat - med adgangskode: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privat - kun med invitation" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personlig (postkasse kun for dig)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Opret nyt rum" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Log af" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Log på igen" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Zap (glem/abonementfjern) det aktuelle rum" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 #, fuzzy msgid "If you select this option," msgstr "Editér eller slet dette rum" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 #, fuzzy msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" "Hvis du vælger denne funktion, %s vil forsvinde fra din rum liste. " "Er det hvad du gerne vil?
    \n" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Zap dette rum" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Bruger navn" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Rum" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Fra host" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Afsender" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Henter meddelser fra server, vent venligst" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Åbn i nyt vindue" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Flyt" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Kopiér" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Udskriv" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Zapped (glemte) rum" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "Klik på et rum for at af-zappe det og gå til rummet.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Du har en eller flere popup meddelelser ventende, men Citadel Instant " "Messenger vinduet kunne ikke åbnes. Det er måske fordi du har en popup " "blocker installeret. Konfigurér din popup blocker til at tillade popups fra " "denne site hvis du vil have popup meddelelser." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Ændre dine præferencer og indstillinger" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Opdatér din kontakt information" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Skift din adgangskode" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Indtast din 'bio'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Editér dit online foto" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Vis/Editér server post filtre" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Editér dine skub email indstillinger" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Skift din adgangskode" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Vis" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Download" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Global Konfiguration" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Bruger konto administration" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Luk Citadel" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Rum og Etager" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Gå til et skjult rum" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 #, fuzzy msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Hvis du kender navnet på et skjult (gæt-navn) eller adgangsbeskyttet rum, " "kan du gå til rummet ved at skrive navnet nedenfor. Når du får adgang til " "et privat rum, vil det optræde på din almindelige rum liste så du ikke " "behøver at komme her igen." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Skriv rummets navn:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Skriv rummets adgangskode:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "Gå dertil" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "fra " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Emne:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 #, fuzzy msgid "Push Email" msgstr "Skub Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 #, fuzzy msgid "Funambol server host (blank to disable)" msgstr "Funambol server vært (blank for at slå fra)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Funambol server port" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Funambol synkronisering kilde" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Funambol autorisation detaljer (bruger:adgangskode)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 #, fuzzy msgid "External pager tool (blank to disable)" msgstr "Extern pager værktøj (blank for at slå fra)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Træ (bibliotek) visning" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Tabel (rum) visning" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 timer (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 timer" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 #, fuzzy msgid "Sunday" msgstr "Søndag" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Mandag" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Ingen signatur" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Fuld funktionalitet" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Sikker kørsel" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Ret" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Præferencer og indstillinger" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Almindelige kommandoer" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Din information" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Avancerede rum kommandoer" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Editér bruger konto " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Brugernavn" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Adgangskode" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Tilladelse til at sende Internet Mail" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Antal gange logget på" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Meddelelser sendt" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Bruger type" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Bruger ID nummer" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Dato og tid for sidste login" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Auto-slet efter så mange dage" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 lytte port (-1 = afbrudt)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3 over SSL port (-1 = afbrudt)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 #, fuzzy msgid "POP3 fetch frequency in seconds" msgstr "POP3 hent frekvens i sekunder" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 #, fuzzy msgid "POP3 fastest fetch frequency in seconds" msgstr "POP3 hurtigste hent frekvens i sekunder" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Vis udgående SMTP kø" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Smart værter" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Stat:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 #, fuzzy msgid "Message to your Users:" msgstr "Meddelelse til dine brugere:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administration" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Konfiguration" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Meddelelse udløbspolitik" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Adgangskontrol" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Deling" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Mailing liste service" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Fjernhentning" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 #, fuzzy msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Din ikonbjælke er blevet opdateret. Vælg en af mulighederne for at " "fortsætte." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Generelle site konfigurationsemner" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Skift Login Logo" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Skift Logout Logo" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Node navn" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Fuld kvalificeret domæne navn" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Meneskelæseligt node navn" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Telefon nummer" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Paginator prompt (for tekst klienter)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Geografisk lokation af dette system" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Navn på Systemadministror" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Standard tidszone til Kalender aftaler ikke i zone" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Netværksdelt rum" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Tilføj en ny node" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Delt kodeord" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Vært eller IP adresse" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Port nummer" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Tilføj node" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(dræb)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Editér konfiguration" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Editér adressebogsemne" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "Minutter" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Foreløbig" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 #, fuzzy msgid "(Edit)" msgstr "(editér)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Slet)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Skriv en kommentar" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Godkend sletning" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Er du sikker på du vil slette? " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Tilføj, ret, slet bruger konti" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 #, fuzzy msgid "(hosts running the ClamAV clamd service)" msgstr "(værter som kører ClamAV clamd service" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Send" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 #, fuzzy msgid "Restart Citadel" msgstr "Gør dette til min startside" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Til:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Emne (valgfrit):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- videresendt meddelelse ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Opslå meddelelse" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Vedhæftede filer" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "Slet denne meddelelse?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Rum info" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Server kommando resultater" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 #, fuzzy msgid "Enter another command" msgstr "Skriv en server kommando" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 #, fuzzy msgid "Return to menu" msgstr "skift til menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 #, fuzzy msgid "Users currently on" msgstr "Brugere i øjeblikket på" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Bruger profil" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Klik her for at sende online meddelelse til %s" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "Billeder i" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Editér eller slet brugere" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "Du skal være Sytemansvarlig for at se dette." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Tilføj brugere" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Editér eller slet brugere" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Vent mens Citadel server genstarter" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Bruger liste for %s" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Bruger navn" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Nummer" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Bruger type" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Sidste login" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Total antal login" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Totale antal meddelelser" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Skriv det Brugernavn du gerne vil have." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Afslut" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Meddelelse udløbspolitik for dette rum" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Brug standard politik for denne etage" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Aldrig automatisk sætte meddelelse til udløbet" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Sæt udløb efter meddelelsesantal" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Sæt udløb efter meddelelsesalder" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Antal meddelelser eller dage: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Meddelelse udløbspolitik for denne etage" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Brug system standard" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Luk vinduet" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "uploading tilladt" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Er du sikker på du vil slette? " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Vedhæft fil" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(fjern)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Index og Journal" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Advarsel: disse faciliteter er resourcekrævende." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Slå fuld tekst index til" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Brug journal på Email meddelelser" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Brug journal på ikke-Email meddelelser" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Email destination på journaliserede meddelelser" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Filer til download i" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Upload" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Størrelse" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Denne installation af Citadel blev lavet uden support af server post " "filtrering.
    Kontakt din Systemadministrator hvis du skal bruge denne " "funktion.
    " #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "Modtag meddelelser fra disse POP konti og gem dem i dette rum:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 #, fuzzy msgid "Remote host" msgstr "Smart værter" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 #, fuzzy msgid "Keep messages on server?" msgstr "Gem meddelelser på server?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 #, fuzzy msgid "Interval" msgstr "Interval" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Tilføj" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Hent de følgende RSS feeds og gem dem i dette rum:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Feed URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "For at oprette en ny brugerkonto, skriv det ønskede navn i boksen nedenfor " "og klik 'Opret'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Ny bruger: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Opret" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domæner mappet med Global Adressebog" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(fjern)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Brugerne nedenfor har adgang til dette rum. For at fjerne en bruger fra " "adgangslisten, Vælg brugeren på listen og klik 'Spark'." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Spark" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Far at give en anden bruger adgang til dette rum, skriv brugernavnet i " "boksen nedenfor og klik 'Invitér'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Invitér:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Invitér" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Bruger" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 #, fuzzy msgid "Users" msgstr "Brugere" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Adressebog" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "For at editére en eksisterende brugerkonto, vælg et brugernavn fra listen og " "klik 'Editér'." #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Slet bruger" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "Slet denne bruger?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Slet regel" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Lysbilledshow" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(værter som kører SpamAssassin service)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Dette er en opdatering af '%s' som allerede er i din kalender." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "Denne aftale vil konflikte med '%s* som allerede er i din kalender." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Når ny post ankommer: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Gem den i min indbakke uden filtrering" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filter er som regler valgt nedenfor" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "Filtrér det gennem manuelt editéret script (avancerede brugere)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Din indkomne post vil ikke blive filtreret gennem scripts." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Det aktive script er: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Konfigurér LDAP forbindelse for Citadel" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "NOTE: Denne Citadel server er blevet installeret uden support af LDAP. Disse " "indstillinger vil ikke have nogen betydning." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Navn på LDAP server (blank for at slå fra)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Port nummer op LDAP server (blank for at slå fra)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Base DN" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Forbind DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Adgangskode for forbind DN" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Editér eller slet dette rum" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Gå til et 'skjult' rum" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 #, fuzzy msgid "Zap (forget) this room" msgstr "Zap (glem) dette rum (%s)" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Vis alle glemte rum" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Læs nye meddelelser" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "Sidste forsøg" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Modtagere" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Læser #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "ældste til nyeste" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "nyeste til ældste" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Vent mens dine brugere får besked, Citadel serveren derefter genstarte..." #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Svar" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "SvarCitér" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "SvarAlle" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Videresend" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Headers" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Editér site konfiguration" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Domænenavne og Internet post konfiguration" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Konfigurér replikéring med andre Citadel servere" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Viser 'Powered by Citadel' ikon" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Sprog" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Gå til din indbakke" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Post" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Gå til din personlige kalender" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Gå til din personlige adressebog" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Gå til dine personlige noter" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Gå til din personlige opgave liste" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Vis alle dine tilgængelige rum" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Se hvem der er online lige nu" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "Avanceret Menu: Avancerede Rum kommandoer, Konto Information og Chat" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Avanceret" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Rum og systemadministration funktioner" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "personliggør denne menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Sidste login" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "skift til rum listen" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "skift til menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP lytte port (-1 = afbrudt)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP over SSL port (-1 = afbrudt)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Behold originale headere i IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Upload billede" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Vælg en fil til upload:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Slet form" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Vis Listeabonnementer" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Abonnér/slet abonnement" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Godkendelsesforespørgsel sendt" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "Gå dertil" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 #, fuzzy msgid " mailing list." msgstr "Mailing liste service" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Tilbage..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "FEJL:" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "fra " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "Mailing liste service" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Tilbage..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Godkendelsesforespørgsel sendt" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Konfiguration" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Navn på opgave" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Din personlige adressebog" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Skriv meddelelsestekst:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Time format" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 #, fuzzy msgid "name of room: " msgstr "Navn på rum" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Hvis privat, tving aktuelle brugere til at glemme rummet" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Kun foretrukne brugere" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Kun-læs rum" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Alle brugere der kan skrive må også slette meddelser" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Fil bibliotek rum" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Biblioteksnavn: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "uploading tilladt" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Downloading tilladt" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Synligt bibliotek" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Netværksdelt rum" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanent (bliver ikke autoslettet)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Emne er krævet (Tving brugere til at skrive et emne)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonyme meddelelser" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Ingen anonyme meddelser" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Alle meddelelser er anonyme" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "spørg bruger som skriver meddelelser" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Rum Systemansvarlig" #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Slet denne note?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Ikke delt med" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Delt med" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Fjernnode navn" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Fjernrum navn" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Aktioner" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Når et rum blever delt, skal det deles fra begge ender. Tilføj en node til " "'delt' liste sender meddelelser ud, men for at modtage meddelelser, må de " "andre noder være konfigureret til at sende meddelelser ud til dit system " "også.
  • Hvis fjernrum navn er blank, er det underforstået at rum navnet er " "identisk på fjern noden.
  • Hvis fjern rum navnet er forskellig, må fjern " "noden også konfigurere navnet på rummet her.
    \n" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Gem meddelelser på server?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Tilføj/ændre/slette etager" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Etage nummer" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Etage navn" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Antal rum" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Etage CSS" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Opret ny etage" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Flyt regel op" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Flyt regel ned" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Slet bruger" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Hvis" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Til eller Cc" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Konvolut Fra" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Konvolut Til" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Alle" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "indeholder ikke" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "er" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "matcher ikke" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "er større end" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "er mindre end" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "Noter" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Behold" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Fjern" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "og" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "stop" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domæner som denne vært modtager post for)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Netværk konfiguration" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Konfigurede noder" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(slet etage)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(editér grafik)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Skift navn" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "Skift CSS" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Konfigurér automatisk udløb af meddelser" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "Disse indstillinger kan blive overskrevet på etage eller rum niveau." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Tid for at køre database auto-tøm" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Standard meddelelse udløb for offentlige rum" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "Standard meddelelse udløb for private postkasser" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Samme politik som for offentlige rum" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Standard bruger tøm tid (dage)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Standard rum tøm tid (dage)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Er du sikker på du vil slette dette rum?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Slet dette rum" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "Sæt eller skift ikonet for dette rums banner" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "Editér dette rums Info fil" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Skriv en server kommando" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Denne skærm tillader dig at skrive Citadel server kommandoer som ikke er " "muligt med WebCit. Hvis du ikke ved hvad det betyder, så er dette ikke " "stedt for dig." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Skriv kommando:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Kommando input (if requesting SEND_LISTING transfer mode):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 #, fuzzy msgid "Detected host header is " msgstr "Detekteret vært header er %s://%s" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Skriv kommando:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Fjern deling" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(værter som har en Realtime Blackhole List" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Adgangskontrol og site politik indstillinger" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Tillad ansvarlige at zappe (glemme) rum" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Sæt meddelelser fra problem brugere i karantæne" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Navn på karantæne rum" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Navn på rum for log sider" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Autosisations måde" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "Indeholder" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "Host navn" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 #, fuzzy msgid "Allow anonymous guest access" msgstr "Ingen anonyme meddelser" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 #, fuzzy msgid "Master user name (blank to disable)" msgstr "Master brugernavn (blank for at slå fra)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Master bruger adgangskode:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Adgangsrettighed for nye brugere" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Adgangsrettighed krævet for at oprette rum" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Giv automatisk rum-ansvarlig status til den bruger der opretter private rum" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 #, fuzzy msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" "Giv automatisk rum-ansvarlig status til den bruger der opretter BLOG rum" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Blokér adgang til Internet Email" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Slå selvservice brugeroprettelse fra" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Kræv registrering af nye brugere" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Tilføj, ret, slet etager" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Vis som:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Slet denne note?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Sidste login" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 #, fuzzy msgid "Not logged in." msgstr "Ikke logget ind" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Du skal være logget ind for at se denne side." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Adgangskode" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Ny bruger? Tilmeld dig nu" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "indtast det navn og adgangskode du vil benytte. og klik "Ny Bruger." "" " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Log ind med OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "Log ind med OpenID" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Log ind med OpenID" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "Log ind med OpenID" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Vent" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Retunér til script editéring" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Genstart Nu" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Genstart efter brugere har fået besked" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Genstart når alle brugere er inaktive" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 #, fuzzy msgid "Configure Push Email" msgstr "Skub Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Skub email og SMS indstillinger" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 #, fuzzy msgid "Notify Funambol server" msgstr "Funambol server port" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Sedn popup meddelelse til:" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "powered by" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA port (-1 = afbrudt)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 = afbrudt)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP over SSL port (-1 = afbrudt)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Udfør RBL check ved forbindelse i stedet for efter RCPT" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Markér meddelse som spam, istedet for at afvise den" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 #, fuzzy msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "Tillad uautoriserede SMTP klienter at benytte denne site's domæne" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Ret falske Fra: linier under autentification SMTP" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Postfix TCP Dictionary Port" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 #, fuzzy msgid "-1 to disable" msgstr "-1 for at deaktivere." #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 #, fuzzy msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve port (-1 = afbrudt)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Site konfiguration" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Generelt" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Index/Journal" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Adgang" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "katalog" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Auto-tømmer" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "Indholdet af dette rum bliver sendt som individuelle meddelelser " "til denne liste af modtagere:

    \n" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "Indholdet af dette rum bliver sendt i oversigtsform til den " "følgende liste af modtagere:

    \n" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Liste" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "Oversigt" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Tilføj modtagere fra Kontakter eller andre adressebøger" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Tillad ikkeabonenter at skrive til dette rum." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Rum opslag publificering kræver tilladelse fra Systemansvarlig." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 #, fuzzy msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" "Dette rum er konfigureret til at tillade selvbetjent abonement/slet " "abonement forspørgsler." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "URL'en for abonement/slet abonement er:" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Emne" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Summeringsside for %s" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Meddelelser" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Idag i din kalender" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Hvem er online nu" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Om denne server" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "Tuning" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "femte" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "og" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Navn på Systemadministror" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Vil du virkelig dræbe denne session?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 #, fuzzy msgid "Click on a name to read user info. Click on" msgstr "Klik på et navn for at læse bruger info. Klik på " #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 #, fuzzy msgid "to send an instant message to that user." msgstr "for at sende popup meddelelse til den bruger" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Deling" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domæner som brugere må benytte som maskerade)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Skriv ny adgangskode:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Skriv adgangskode igen:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Skift adgangskode" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Editér din session visning" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Her kan do bestemme hvordan din session bliver vist i 'Hvem er online' " "listen. For at fjerne et 'falsk' navn du tidligere har sat, bare klik den " "tilhørende 'skift' knap uden at skrive noget i boksen. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Rum navn:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Skift rum navn" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Host navn:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Skift host navn" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Skift brugernavn" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Godkend flytning af meddelelse" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Flyt denne meddelelse til:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Vist kendte rum" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Hvor kan jeg komme hen?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Gå til næste rum" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 #, fuzzy msgid "...with unread messages" msgstr "...med ikke læste meddelelser" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Fortsæt til næste rum" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(kom tilbage hertil senere)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Gå tilbage" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 #, fuzzy msgid "oops! Back to " msgstr "(Hovsa! Tilbage til )" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Læs nye meddelelser" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "...i dette rum" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Læs alle meddelelser" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...gamle og nye" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Skriv en meddelelse" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(opret i dette rum)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Fil bibliotek" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Vis filer som du kan downloade)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Summerings side" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Summering af min konto" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Bruger liste" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(alle registrerede brugere)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Farvel!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "(hvis tilgænglig, videresend alt udgående post til en af disse værter)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Vis Kontaktpersoner" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Tilføj ny kontaktperson" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Dag visning" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Måned visning" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Tilføj ny aftale" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Kalender liste" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Vis opgaver" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Tilføj ny opgave" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Vis noter" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Tilføj ny note" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Opret en meddelelse" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki hjem" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Editér denne side" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "nyere stillinger" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Efterlad alle meddelelser som ulæste, gå til næste rum med ulæste meddelelser" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Skip dette rum" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Markér alle meddelelser som læst, gå til næste rum med ulæste meddelelser" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Gem ændringer" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Du abonnérer %s%s post listen. Listeserveren har " #~ "sendt dig en e-mail med et link som du skal klikke på for at godkende dit " #~ "abonnement. Denne ekstra foranstaltning er din beskyttelse, da det " #~ "forhindrer andre i at abonnere på en liste i dit navn uden din billigelse." #~ "

    Klik på linketsom er blevet sendt til dig for at acceptere dit " #~ "abonnement.
    \n" #~ msgid "There is no room called '%s'." #~ msgstr "Der er ikke noget rum der hedder '%s'." #~ msgid "Network" #~ msgstr "Netværk" #~ msgid "Tuning" #~ msgstr "Tuning" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Fjern slettede meddelelser med det samme i IMAP" #~ msgid "A script by that name already exists." #~ msgstr "Et script med dette navn eksisterer allerede." #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "Et nyt script er blevet oprettet. Returnér til script editéring for at " #~ "rette og aktivere det." #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Du er forbundet til %s, bruger %s med %s, server version %s og " #~ "lokaliseret i %s. Din systemadministrator er %s." #, fuzzy #~ msgid "Yes with users list" #~ msgstr "Ja med brugerlisten" #~ msgid "Room list" #~ msgstr "Rum liste" #, fuzzy #~ msgid "text" #~ msgstr "kun tekst" #, fuzzy #~ msgid "name" #~ msgstr "(intet navn)" #, fuzzy #~ msgid "password" #~ msgstr "Adgangskode" #, fuzzy #~ msgid "pass" #~ msgstr "Opgaver" #, fuzzy #~ msgid "display: none" #~ msgstr "Vist navn:" #~ msgid "Your password was not accepted." #~ msgstr "Din adgangskode blev ikke accepteret." #~ msgid "If you already have an account on" #~ msgstr "Hvis du allerede har en konto på" #~ msgid "enter your user name and password and click "Log in."" #~ msgstr "indtast dit brugernavn og klik "Log in."" #~ msgid "Please log off properly when finished. " #~ msgstr "Log af ordentligt når du er færdig. " #~ msgid "recommended browser list" #~ msgstr "anbefalet browser liste" #~ msgid "" #~ "if you have trouble using Webcit.
  • You must have cookies " #~ "turned on. " #~ msgstr "" #~ "hvis du har problemer med Webcit.
  • Du skal have cookies " #~ "slået til. " #~ msgid "" #~ "Also keep in mind that if your browser is configured to block pop-up " #~ "windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Husk også at hvis din browser er sat til at blokere pop-ups, vil du ikke " #~ "være i stand til at modtage popup medelelser." #~ msgid "Log off now?" #~ msgstr "Log af nu?" #, fuzzy #~ msgid "%d new of %d messages%s" #~ msgstr "%d nye af %d meddelser%s" #~ msgid "(nothing)" #~ msgstr "(ingenting)" #~ msgid "unexpected end of message" #~ msgstr "uventet slut på meddelelse" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "En fejl opstod mens chat forbindelse blev opsat." #~ msgid "Now exiting chat mode." #~ msgstr "Afslutter nu Chat." #~ msgid "Help" #~ msgstr "Hjælp" #~ msgid "List users" #~ msgstr "Vis brugere" #~ msgid "No messages here." #~ msgstr "Ingen meddelelser her." #, fuzzy #~ msgid "no more messages" #~ msgstr "Anonyme meddelelser" #~ msgid "" #~ "Your icon bar has been updated. Please select any of its choices to " #~ "continue.
    You may need to force " #~ "refresh (SHIFT-F5) in order for changes to take effect" #~ msgstr "" #~ "Din ikonbjælke er blevet opdateret. Vælg en af mulighederne for at " #~ "fortsætte.
    Du skal måske bruge " #~ "opdatér (SHIFT-F5) for at ændringerne træder i kraft" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "Fejl ved hentning af RSS feed: kunne ikke finde meddelelser\n" #, fuzzy #~ msgid "%s from" #~ msgstr "%s fra" #, fuzzy #~ msgid "%s in %s" #~ msgstr "%s i %s" #~ msgid " on %s" #~ msgstr " på %s" #~ msgid "%s" #~ msgstr "%s" #, fuzzy #~ msgid "" #~ "
    • Enter your OpenID URL and click "Log in".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "
    • Hvis du allerede har en konto på %s, skriv dit brugernavn " #~ "og adgangskode og klik "Log på."
    • Hvis du er ny bruger, skriv det brugernavn og adgangskode du ønsker at bruge, og klik "" #~ "Ny Bruger."
    • Log venligst af, når du er færdig.
    • Du skal bruge " #~ "en browser der supporterer frames og cookies.
    • Hvis din " #~ "browser er konfigureret til at blokere pop-up vinduer, vil du ikke være i " #~ "stand til at modtage online meddelelser.
    " #, fuzzy #~ msgid "" #~ "enter your user name and password and click "Log in."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "
    • Hvis du allerede har en konto på %s, skriv dit brugernavn " #~ "og adgangskode og klik "Log på."
    • Hvis du er ny bruger, skriv det brugernavn og adgangskode du ønsker at bruge, og klik "" #~ "Ny Bruger."
    • Log venligst af, når du er færdig.
    • Du skal bruge " #~ "en browser der supporterer frames og cookies.
    • Hvis din " #~ "browser er konfigureret til at blokere pop-up vinduer, vil du ikke være i " #~ "stand til at modtage online meddelelser.
    " #~ msgid "Find out more about Citadel" #~ msgstr "Lær mere om Citadel" #~ msgid "CITADEL" #~ msgstr "CITADEL" #~ msgid "Customize this menu" #~ msgstr "Personliggør denne menu" #~ msgid "Internet configuration" #~ msgstr "Internet konfiguration" #~ msgid "of %d messages." #~ msgstr "af %d meddelelser." #~ msgid " from " #~ msgstr " fra " #~ msgid " in " #~ msgstr " i " #~ msgid "Edit node configuration for " #~ msgstr "Editér node konfiguration for " #~ msgid "ERROR: could not open template " #~ msgstr "FEJL: kunne ikke åbne skabelon" #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Denne meddelse indeholder kalender/skedulerings information, men " #~ "support for kalendere er ikke muligt på dette system. Få din " #~ "systemadministrator til at installere en ny version af Citadel web " #~ "service med kalenderfunktion aktiveret.
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Kan ikke vise kalender emne. Du ser denne fejl fordi WebCit service " #~ "er ikke installeret med kalenderfunktion. Kontakt din " #~ "systemadministrator.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Kan ikke vise opgave emne. Du ser denne fejl fordi WebCit service er " #~ "ikke installeret med kalenderfunktion. Kontakt din systemadministrator.
    \n" #~ msgid "Day: " #~ msgstr "Dag:" #~ msgid "Year: " #~ msgstr "År:" #~ msgid "The calendar view is not available." #~ msgstr "Kalender visning er ikke tilgængelig." #~ msgid "The tasks view is not available." #~ msgstr "Opgave visning er ikke tilgængelig." #~ msgid "Gateway domains" #~ msgstr "Gateway domæner" #~ msgid "(domains whose subdomains match Citadel hosts)" #~ msgstr "(domæner hvis underdomæner matcher Citadel værter" #~ msgid "(This server does not support task lists)" #~ msgstr "(Denne server supporterer ikke opgave lister)" #~ msgid "(This server does not support calendars)" #~ msgstr "(Denne server supporterer ikke kalendre)" #~ msgid "" #~ "This room is not configured to allow self-service subscribe/" #~ "unsubscribe requests." #~ msgstr "" #~ "Dette rum er ikke konfigureret til at tillade selvbetjent " #~ "abonement/sletabonemnet forspørgsler." #~ msgid "Click to enable." #~ msgstr "Klik for at aktivere." #~ msgid "Back to menu" #~ msgstr "Tilbage til menu" #~ msgid "Respond to meeting request" #~ msgstr "Svar på møde forspørgsel" #~ msgid "Update your calendar with this RSVP" #~ msgstr "Opdatér din kalender med denne S.U." #~ msgid "Public room" #~ msgstr "Offentlig rum" #~ msgid "Private - guess name" #~ msgstr "Privat - gæt navn" #~ msgid "Private - require password:" #~ msgstr "Privat - med adgangskode" #~ msgid "localhost" #~ msgstr "lokalvært" #~ msgid "gatewaydomain" #~ msgstr "gatewaydomæne" #~ msgid "rbl" #~ msgstr "rbl" #~ msgid "spamassassin" #~ msgstr "spamassassin" #~ msgid "[ close window ]" #~ msgstr "[ luk vindue ]" webcit-dfsg.orig/po/webcit/nl.po0000644000175000017500000047373713223341037016670 0ustar michaelmichael# translation of nl.po to Nederlands # Copyright (C) 2006-2008 The Citadel Project - http://www.citadel.org # This file is distributed under the GNU General Public License # # Wim Kuilman , 2006, 2007. # Wim Kuilman , 2008, 2009. # Sander Bosman msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-05-22 11:47+0000\n" "Last-Translator: Sander Bosman \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-05-23 05:12+0000\n" "X-Generator: Launchpad (build 16640)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "beschikbaarheid niet bekend" #: ../../availability.c:169 msgid "free" msgstr "vrij" #: ../../availability.c:179 msgid "BUSY" msgstr "BEZET" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Uploaden van afbeelding is afgebroken." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "U heeft geen bestand geüpload." #: ../../graphics.c:106 msgid "your photo" msgstr "uw foto" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "het icoontje voor deze ruimte" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "het welkomsplaatje voor de login prompt" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "het plaatje voor de Uitlog banner" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "het icoontje voor deze verdieping" #: ../../tasks.c:93 msgid "Completed?" msgstr "Afgehandeld?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Naam van taak" #: ../../tasks.c:97 msgid "Date due" msgstr "Streefdatum" #: ../../tasks.c:99 msgid "Category" msgstr "Categorie" #: ../../tasks.c:101 msgid "Show All" msgstr "Toon alles" #: ../../tasks.c:224 msgid "Edit task" msgstr "Taak bewerken" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Omschrijving:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Startdatum:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Geen datum" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "of" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Tijd gekoppeld" #: ../../tasks.c:289 msgid "Due date:" msgstr "Streefdatum:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Afgehandeld:" #: ../../tasks.c:329 msgid "Category:" msgstr "Categorie:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Beschrijving:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Bewaren" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Verwijderen" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Annuleren" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Naamloze taak" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d commentaren" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "permalink" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "nieuwere berichten" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "oudere berichten" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Bewerk %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Tekst wordt weergegeven op de breedte van het scherm " "van de lezer. Voor de goede weergave zorg dat een regel in elk geval een " "spatie bevat." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Wijzigingen bewaren" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Afgebroken. %s is niet bewaard." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " is opgeslagen." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Informatie over deze ruimte" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Uw CV" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Uur: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minuut: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(status onbekend)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(actie gevraagd)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(geaccepteerd)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(afgewezen)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(voorwaardelijk)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(gedelegeerd)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(afgehandeld)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(in bewerking)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(geen)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Beheer account/OpenID verbindingen" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Wilt u dit OpenID echt verwijderen?" #: ../../openid.c:47 msgid "(delete)" msgstr "(verwijderen)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Voeg een OpenID toe: " #: ../../openid.c:58 msgid "Attach" msgstr "Bijlage" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s staat authentificatie via OpenID niet toe." #: ../../summary.c:128 msgid "(None)" msgstr "(Niemand)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Niets)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Ga naar pagina: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Eerste" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Laatste" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() fout! kon niet %d bytes krijgen: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Verwijderd" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Nieuwe gebruiker" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Probleemgebruiker" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Lokale gebruiker" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Netwerkgebruiker" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Voorkeursgebruiker" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Beheerder" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Er is een fout opgetreden." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Nieuwe gebruikers goedkeuren" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Er zijn geen gebruikers die goedgekeurd moeten worden." #: ../../auth.c:617 msgid "very weak" msgstr "erg zwak" #: ../../auth.c:620 msgid "weak" msgstr "zwak" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "sterk" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Huidig toegangsniveau %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Selecteer toegangsniveau voor deze gebruiker:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Geannuleerd: Wachtwoord niet gewijzigd." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Ze komen niet overeen. Wachtwoord is niet gewijzigd." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Wachtwoorden mogen niet leeg zijn." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Uitnodiging bijeenkomst" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Antwoord van de deelnemer op uw uitnodiging" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Gepubliceerde afspraak" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Dit is een onbekend agenda item." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Locatie:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Datum:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Startdatum/-tijd:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Einddatum/-tijd:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Herhalend" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Dit is een zich herhalende gebeurtenis" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Deelnemer:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Dit is een update van '%s' die al in uw agenda staat." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "Deze afspraak zou botsen met '%s' , die al in uw agenda staat." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Update:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLICT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Hoe wilt u reageren op deze uitnodiging?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Accepteren" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Voorwaardelijk" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Afwijzen" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Klik Bijwerken om deze reactie te accepteren en uw agenda bij te " "werken." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Bijwerken" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Negeren" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Fout opgetreden bij het plaatsen van dit agenda-item." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "U heeft de uitnodiging voor deze bijeenkomst geaccepteerd. Uw agenda is " "bijgewerkt." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "U heeft de uitnodiging voor deze bijeenkomst voorwaardelijk geaccepteerd. " "Het staat 'met potlood' in uw agenda." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "U heeft de uitnodiging voor deze bijeenkomst afgewezen. Het is niet in uw " "agenda opgenomen." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Een antwoord is gestuurd naar de organisator van deze bijeenkomst." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Uw agenda is bijgewerkt om dit 'verzoek om antwoord' weer te geven." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "U heeft gekozen dit verzoek om antwoord te negeren. Uw agenda is niet bijgewerkt." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Dag in agenda begint om:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Dag in agenda eindigt om:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Week begint op:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Fout opgetreden bij ophalen dit bestand: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "seconden" #: ../../event.c:72 msgid "minutes" msgstr "minuten" #: ../../event.c:73 msgid "hours" msgstr "uren" #: ../../event.c:74 msgid "days" msgstr "dagen" #: ../../event.c:75 msgid "weeks" msgstr "weken" #: ../../event.c:76 msgid "months" msgstr "maanden" #: ../../event.c:77 msgid "years" msgstr "jaren" #: ../../event.c:78 msgid "never" msgstr "nooit" #: ../../event.c:82 msgid "first" msgstr "eerste" #: ../../event.c:83 msgid "second" msgstr "tweede" #: ../../event.c:84 msgid "third" msgstr "derde" #: ../../event.c:85 msgid "fourth" msgstr "vierde" #: ../../event.c:86 msgid "fifth" msgstr "vijfde" #: ../../event.c:89 msgid "Event" msgstr "Gebeurtenis" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Deelnemers" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Gebeurtenis toevoegen of bewerken" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Samenvatting" #: ../../event.c:222 msgid "Location" msgstr "Locatie" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Start" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Gebeurtenis hele dag" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Eind" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notities" #: ../../event.c:374 msgid "Organizer" msgstr "Organisator" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(u bent de organisator)" #: ../../event.c:397 msgid "Show time as:" msgstr "Toon tijd als:" #: ../../event.c:420 msgid "Free" msgstr "Vrij" #: ../../event.c:428 msgid "Busy" msgstr "Bezet" #: ../../event.c:445 msgid "(One per line)" msgstr "(Een per regel)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contacten" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Zich herhalende regel" #: ../../event.c:522 msgid "Repeats every" msgstr "Herhaalt zich elke" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "op deze weekdagen:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "op dag %s%d%s van de maand" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "op de " #: ../../event.c:631 msgid "of the month" msgstr "van de maand" #: ../../event.c:660 msgid "every " msgstr "iedere " #: ../../event.c:661 msgid "year on this date" msgstr "jaar op deze datum" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "van" #: ../../event.c:717 msgid "Recurrence range" msgstr "Zich herhalende periode" #: ../../event.c:725 msgid "No ending date" msgstr "Geen einddatum" #: ../../event.c:732 msgid "Repeat this event" msgstr "Deze gebeurtenis herhalen" #: ../../event.c:735 msgid "times" msgstr "maal" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Herhaal deze gebeurtenis tot " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Controleer beschikbaarheid deelnemers" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Naamloze gebeurtenis" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Instellingen iconbalk" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Ongeldige parameter" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " is verwijderd." #. added status message #: ../../inetconf.c:144 #, fuzzy msgid " added." msgstr "toegevoegd" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Hogere toegangrechten nodig voor deze functie." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "Je moet de mailinglist specificeren waarop je jezelf wilt abonneren." #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "Je moet het e-mail adres waarmee je je wilt abonneren specificeren." #: ../../messages.c:73 msgid "ERROR:" msgstr "FOUT:" #: ../../messages.c:91 msgid "Empty message" msgstr "Leeg bericht" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Afgebroken. Bericht is niet geplaatst." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automatisch afgebroken omdat u dit bericht al heeft bewaard." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Opslaan als concept mislukt: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Weigering leeg bericht te versturen.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Bericht opgelagen als concept.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Bericht is verstuurd.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Bericht is geplaatst.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Het bericht is niet verplaatst." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Fout opgetreden bij ophalen dit deel: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Fout opgetreden bij ophalen dit deel: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Ondertekening aan emailberichten toevoegen?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Gebruik deze ondertekening:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Standaard tekenset voor emailheaders:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Voorkeur e-mailadres" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Weergegeven naam voor emailberichten" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Voorkeursnaam voor bulletinboard berichten" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Mailboxweergave" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Klik op willekeurige notitie om te bewerken." #: ../../paging.c:29 msgid "Send instant message" msgstr "Stuur direct bericht" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Stuur direct bericht naar: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Tekst bericht toevoegen:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Bericht versturen" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Bericht is niet verstuurd!" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Bericht is verstuurd naar " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Afgebroken. Geen instellingen gewijzigd." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Maak hiervan mijn startpagina" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Niet toegestaan hier de startpagina van te maken." #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "U heeft geen startpagina meer geselecteerd." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Voorkeur startpagina" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Mijn mappen" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Afgebroken. Wijzigingen niet bewaard." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Uw wijzigingen zijn bewaard." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Gebruiker %s uit deze ruimte verwijderd. %s." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Gebruiker %s uitgenodigd in deze ruimte %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Afgebroken. Geen nieuwe ruimte aangemaakt" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Verdieping is verwijderd" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Nieuwe verdieping aangemaakt" #: ../../roomops.c:1363 msgid "Room list view" msgstr "Bekijk als ruimte" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Toon lege verdiepingen" #: ../../roomtokens.c:570 msgid "file" msgstr "bestand" #: ../../roomtokens.c:572 msgid "files" msgstr "bestanden" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Bulletin Board" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Mailmap" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Adresboek" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Agenda" #: ../../roomviews.c:57 msgid "Task List" msgstr "Takenlijst" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Lijst notities" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Agendalijst" #: ../../roomviews.c:61 msgid "Journal" msgstr "Verslag" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Concepten" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "De server draait al met het maximaal aantal gebruikers en kan op dit moment " "geen nieuwe login aannemen. Probeer het later nog eens of neem contact op " "met uw systeembeheerder." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Ontving onverwacht bericht van de Citadel server; afgesloten." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "U bent verbonden met een Citadel server draaiend op Citadel %d.%02d. \n" "Om deze versie van Webcit de kunnen gebruiken moet u ook Citadel versie %d." "%02d of nieuwer hebben.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Uw systeeminstellingen zijn bijgewerkt." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "Eerste poging loopt" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "Er is een fout opgetreden tijdens het aanmaken of bewerken van dit adresboek " "item." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Wijzigingen niet bewaard." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Nieuwe gebruiker aangemaakt." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "U probeert een nieuwe gebruiker aan te maken binnen Citadel terwijl " "uhostbased authenticatie gebruikt. Dan moet u een nieuwe gebruiker aanmaken " "op het hostsysteem en niet in Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(geen naam)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (werk)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (thuis)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobiel)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adres:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefoon:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Dit adresboek is leeg." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Er is een interne fout opgetreden." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Fout" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Bewerk contactinformatie" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Aanhef" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Voornaam" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Voorvoegsel" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Achternaam" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Suffix" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Naamweergave:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titel:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisatie:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Postbus:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Plaats:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Prov.:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Postcode:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Land:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Telefoon thuis:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Telefoon werk:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Mobiele telefoon:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Faxnummer:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Primair e-mailadres:" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Internet e-mail aliases" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Ruimte niet toegankelijk om bericht te bewaren" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Afgebroken" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Kon de vcard foto niet decoderen\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Autorisatie vereist" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "De opgevraagde bron vereist een geldige gebruikersnaam en wachtwoord. U kon " "niet worden ingelogd in: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Dit programma was niet in staat om contact te maken - of te houden met de " "Citadel server. Meld dit probleem alstublieft bij uw systeembeheerder." #: ../../webcit.c:688 msgid "Read More..." msgstr "Lees verder..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s'is geen Wiki ruimte." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Er is hier geen pagina genaamd '%s'" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Selecteer de 'Deze pagina bewerken' link in de banner van de ruimte als u " "deze pagina wilt aanmaken." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Datum" #: ../../wiki.c:143 msgid "Author" msgstr "Auteur" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(toon)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Huidige versie" #: ../../wiki.c:184 msgid "(revert)" msgstr "(terugplaatsen)" #: ../../wiki.c:246 msgid "Page title" msgstr "Paginatitel" #: ../../fmt_date.c:306 msgid "Time format" msgstr "uurformaat" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "van" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Begindatum" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Einddatum" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Datum/tijd" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notities:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "vorige" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "volgende" #: ../../calendar_view.c:750 msgid "Week" msgstr "Week" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Uren" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Onderwerp" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Doorlopende afspraak" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "bewerken" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Ik weet niet hoe ik moet tonen " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(geen onderwerp)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "De queue is leeg" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "U heeft geen toestemming deze bron te bekijken." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Lijst menuitems aanpassen." #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Laat menuitems zien als:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "plaatjes en tekst" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "alleen plaatjes" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "alleen tekst" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Selecteer de menuitems die u graag weergegeven wilt zien in menubalk aan de " "linkerzijde van het scherm" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Ja" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Nee" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logo van de site" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Logo van het bedrijf of de instelling" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Uw samenvattingspagina" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Mail (inbox)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Een snelkoppeling naar uw email Inbox" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Uw persoonlijk adresboek" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Uw persoonlijke notities" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Uw persoonlijke agenda" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Taken" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Uw persoonlijke takenlijst" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Ruimtes" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Hiermee wordt u een lijst van alle toegankelijke ruimtes (of mappen) getoond" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Wie is online?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "Hiermee wordt een lijst getoond van alle gebruikers die op dat moment zijn " "ingelogd." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Hiermee kunt u in 'real-time' chatten met andere gebruikers in dezelfde " "ruimte." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Uitgebreide opties" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Toegang tot het complete menu van Citadelfuncties." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Toont het 'Powered by Citadel' icoontje." #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Menu Systeembeheer" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "Menu ruimte beheerder" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Local host aliases" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Directory domeinen" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart hosts" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Smart hosts" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "RBL hosts" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssasin hosts" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV clamd hosts" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Masqueradable domeinen" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Wijzigingen gemaakt in dit scherm zullen pas actief worden nadat u de " "Citadel server opnieuw heeft gestart." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Netwerk services" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Server IP adres (0.0.0.0 voor 'elk')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) client to server port (-1 voor uitschakelen)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "POP3 listener port (-1 voor uitschakelen)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Uitgebreide server fine-tuning" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Maximale lengte bericht" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Serververbinding timeout (in seconden)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Network run frequency (in seconden)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Maximale gelijktijdige sessies (0 = geen limiet)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Minimum aantal worker threads" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Maximum aantal worker threads" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Wis automatisch bewaarde database logs" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Maak een nieuwe ruimte aan" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Naam van de ruimte: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Bevindt zich op verdieping: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Standaard weergave voor ruimte: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Soort ruimte:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Openbaar (verschijnt automatisch voor iedereen)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privé - verborgen (toegankelijk voor iedereen die z'n naam kent)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privé - wachtwoord nodig: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privé - Alleen op uitnodiging" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Persoonlijk (mailbox voor u alleen)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Maak een nieuwe ruimte aan" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Uitloggen" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Opnieuw inloggen" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Zap (vergeet/verwijder uit) de huidige ruimte" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 #, fuzzy msgid "If you select this option," msgstr "Bewerk of verwijder deze ruimte" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 #, fuzzy msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" "Als u deze optie selecteert verdwijnt %s uit uw lijst met ruimtes. " "Is dat wat u wilt?
    \n" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Zap deze ruimte" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "LET OP: JavaScript is uitgeschakeld op uw computer. Veel functies van dit " "systeem zullen niet goed werken." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Gebruikersnaam" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Ruimte" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Van host" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Afzender" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Laad berichten van de server, een ogenblik" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Open in nieuw venster" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Verplaatsen" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Kopieer" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Print" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Zapped (vergeten) ruimtes" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "Klik op willekeurige ruimte om te unzappen en ga naar die ruimte.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "U heeft een of meer wachtende directe berichten, maar het Instant Messenger " "venster kon niet worden geopend. Dit komt waarschijnlijk omdat uw browser " "pop-up vensters blokkeert. Zorg alstublieft dat uw pop-up blocker popups van " "deze site accepteert als u directe berichten wilt ontvangen." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Uw voorkeuren en instellingen wijzigen" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Uw contactinformatie bijwerken" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Uw wachtwoord wijzigen" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Uw 'CV' toevoegen" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Uw online foto bewerken" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Mailfilters op de server bekijken/bewerken" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Bewerk uw push email instellingen" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Uw OpenID" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 #, fuzzy msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "De Citadel server moet opnieuw opstarten. Het is zo weer beschikbaar." #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "View" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Download" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Instellingen Totaal" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Beheer gebruikeraccounts" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Citadel afsluiten" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Ruimtes en Verdiepingen" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Ga naar een verborgen ruimte" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 #, fuzzy msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Als u de naam kent van een verborgen (raden naam) ruimte of een ruimte met " "wachtwoord, kunt u de ruimte binnenkomen door de naam in te vullen.Als u " "eenmaal toegang heeft tot een privéruimte, zal het verschijnen in uw normale " "lijst met ruimtes, zodat u hier niet steeds hoeft terug te keren." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Geef naam ruimte:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Geef wachtwoord ruimte:" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "Ga er naar toe" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "van " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "aan" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Onderwerp:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Push Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Funambol server (blanco is uit)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Funambol serverpoort " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Funambol sync bron" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Funambol auth details (user:pass)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "Externe pager tool (blanco is uit)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Bekijk als boomstructuur (mappen)" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Tabel (ruimte) instelling" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 uurs (vm/nm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 uur" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Zondag" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Maandag" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Geen ondertekening" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Volledig functioneel" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Veilige modus" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Wijzigen" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Voorkeuren en instellingen" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Basiscommando's" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Uw informatie" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Uitgebreide opdrachten ruimtes" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Gebruikersaccount bewerken: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Gebruikersnaam:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Wachtwoord" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Toestemming om Internetmail te verzenden" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Aantal logins" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Bericht geplaatst" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Toegangsniveau" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Gebruiker ID nummer" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Datum en tijd laatste login" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Opruimen na dit aantal dagen" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 listener port (-1 to disable)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3 over SSL port (-1 to disable)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "POP3 ophaalfrequentie in seconden" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "POP3 snelste ophaalfrequentie in seconden" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Toon de SMTP-wachtrij naar buiten" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Ververs deze pagina" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Hosts op afstand" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Prov.:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "doorgaan met bewerking" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Bericht aan uw gebruikers:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Beheer" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Instellingen" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Instelling bericht verlopen" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Toegangscontrole" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Delen" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Mailinglist service" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Herstel op afstand" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 #, fuzzy msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Uw menubalk is bijgewerkt. U kunt nu hieruit een keuze om verder te gaan." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Algemene items site instellingen" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Wijzig logo Inloggen" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Wijzig logo Uitloggen" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Naam knooppunt" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Fully qualified domain name" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Leesbare knooppuntnaam" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Telefoonnummer" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Prompt volgende pagina (voor textmode clients)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Geografische locatie van dit systeem" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Naam van de systeembeheerder" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Standaard tijdzone voor agenda-items zonder zone" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Netwerkgedeelde ruimte" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Een nieuw knooppunt toevoegen" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Gedeeld geheim" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Host of IP adres" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Poortnummer" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Knooppunt toevoegen" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(beëindig)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Instellingen bewerken" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Item adresboek bewerken" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minuten " #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Voorwaardelijk" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 #, fuzzy msgid "(Edit)" msgstr "(bewerk)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Verwijderen)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Geen nieuwe berichten." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Nieuwe startpagina" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "De startpagina is gewijzigd" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Opmerking: dit verandert niet de startpagina van de browser. Het verandert " "de pagina waarop u begint na het inloggen" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Schrijf een reactie" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Verwijdering bevestigen" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Weet u zeker dat u wilt verwijderen " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Gebruikeraccounts toevoegen, wijzigen of verwijderen" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(hosts waarop de ClamAV clamd service draait)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Versturen" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 #, fuzzy msgid "Restart Citadel" msgstr "Maak hiervan mijn startpagina" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "van" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anoniem" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "in" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Aan:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Onderwerp (optioneel):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- doorgestuurd bericht ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Bericht plaatsen" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 #, fuzzy msgid "Save to Drafts" msgstr "Opslaan als concept mislukt: " #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Bijlagen:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "Verwijder dit bericht?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Lijst met ruimtes" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Zoek: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Resultaten servercommando" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 #, fuzzy msgid "Enter another command" msgstr "Voer een servercommando in" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 #, fuzzy msgid "Return to menu" msgstr "Switch naar menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Gebruikers op dit moment op" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Gebruikersprofiel" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Klik hier om direct een bericht te sturen naar %s" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "Plaatjes in " #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Gebruikers bewerken of verwijderen" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "U moet beheerder zijn om dit te bekijken." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Gebruikers toevoegen" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Gebruikers bewerken of verwijderen" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Even geduld a.u.b. tot Citadel server is opgestart... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Gebruikerslijst voor %s" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Gebruikersnaam" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Nummer" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Toegangsniveau" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Laatste login" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Totaal aantal logins" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Totaal aantal berichten" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Laden" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Uw OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "is goedgekeurd." #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "Echter, de gebruikersnaam" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "botst met een bestaande gebruiker." #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Geef alstublieft de gebruikersnaam die u wilt gebruiken." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Stoppen" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Instelling voor verlopen berichten in deze ruimte" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Gebruik de standaardinstelling voor deze ruimte" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Nooit berichten automatisch laten verlopen" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Verlopen door aantal berichten" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Verlopen door ouderdom bericht" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Aantal berichten of dagen: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Instelling voor het verlopen van berichten op deze verdieping" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Gebruik systeemstandaard" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Venster sluiten" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Upload een bestand:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Weet u zeker dat u wilt verwijderen " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Bijlage toevoegen" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(verwijderen)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexering en Journaling" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Waarschuwing: dit vraagt veel van het systeem." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Geef full-text index vrij" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Voer journaliseren van emailberichten uit" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Voer journaliseren van niet-emailberichten uit" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Bestemming voor gejournaliseerde berichten" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Bestanden beschikbaar voor downloaden in" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Upload een bestand:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Uploaden" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Bestandsnaam" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Grootte" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Inhoud" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Beschrijving" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Deze installatie van Citadel is gebouwd zonder ondersteuning voor " "mailfilters.
    Neem contact op met de beheerder als u deze functie nodig " "heeft." #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "nieuw van" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "berichten" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Kies pagina: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "Haal berichten van deze POP3 accounts en sla ze op in deze ruimte:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Hosts op afstand" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Bewaar berichten op de server?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "interval" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Toevoegen" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Haal berichten van deze RSS-feeds en sla ze op in deze ruimte:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Feed URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Om een nieuw gebruikersaccount aan te maken vul de gewenste gebruikersnaam " "hieronder in en klik op 'Aanmaken'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Nieuwe gebruiker: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Aanmaken" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domeinen in het Algemene adresboek)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(verwijderen)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "De gebruikers hieronder hebben toegang tot deze ruimte. Om een gebruiker te " "verwijderen uit de toegangslijst, selecteer de gebruikersnaam en klik " "'Verwijderen'" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Verwijderen" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Om een andere gebruiker toegang te geven tot deze ruimte vul hieronder de " "gebruikersnaam in en klik op 'Uitnodigen'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Uitnodigen:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Uitnodigen" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "Gebruiker" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Gebruikers" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Adresboek" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Om een bestaande gebruiker te bewerken, selecteer de gebruikersnaam en klik " "op 'Bewerken'" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Gebruiker verwijderen" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "Deze gebruiker verwijderen?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Verwijder regel" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Diashow" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(hosts waarop SpamAssassin draait)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Dit is een update van '%s' die al in uw agenda staat." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "Deze afspraak zou botsen met '%s' , die al in uw agenda staat." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Als nieuwe mail binnenkomt: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Laat het in mijn Inbox zonder filtering" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filter het volgens onderstaande regels" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Filter het door een handmatig aangemaakt script (alleen gevorderde " "gebruikers)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Uw inkomende mail zal door geen enkel script worden gefilterd." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Voeg regel toe" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Het nu actieve script is: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Toevoegen of verwijderen scripts" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Stel de LDAP connector voor Citadel in." #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "LET OP: Deze Citadel server is gebouwd zonder LDAP ondersteuning. Deze " "opties zullen geen effect hebben." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Hostnaam van de LDAP server (blanco is uit)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Poortnummer van de LDAP server (blanco is uit)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Base DN" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Bind DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Wachtwoord voor bind DN" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Bewerk of verwijder deze ruimte" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Ga naar een 'verborgen' ruimte" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Zap (vergeet) deze ruimte" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Toon alle vergeten ruimtes" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Lees nieuwe berichten" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "Message ID" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Datum/tijd ingesteld" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "Laatste poging" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Ontvangers" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Lezen #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "oudste naar nieuwste" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "nieuwste naar oudste" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Even geduld terwijl gebruikers een berichtje hebben, de citadel server zal " "daarna opstarten... " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Bewerk" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Antwoord" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "AntwoordQuoted" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "AntwoordAllen" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Doorsturen" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Headers" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Bewerk 'site-brede' instellingen" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Domeinnamen en Internet mail instellingen" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Stel replicatie met andere Citadel servers in" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Toont het 'Powered by Citadel' icoontje." #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Taal:" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Ga naar uw email inbox" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Mail" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Ga naar uw persoonlijke agenda" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Ga naar uw persoonlijk adresboek" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Ga naar uw persoonlijke notities" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Ga naar uw persoonlijke takenlijst" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Lijst van voor u toegankelijke ruimtes" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Bekijk wie nu online is" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Online gebruikers" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" "Uitgebreide menuopties: Uitgebreide opdrachten ruimtes, Account info, enz." #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Uitgebreid" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Functies ruimte- en systeembeheer" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "Dit menu aanpassen" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Laatste login" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "Switch naar lijst ruimtes" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "Switch naar menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Mijn mappen" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP listener port (-1 to disable)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP over SSL port (-1 to disable)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Bewaar origineel van headers in IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Afbeelding uploaden" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "U kunt direct vanaf uw computer een plaatje uploaden." #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Selecteer een bestand om te uploaden:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Formulier wissen" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Abonneer op lijst" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Abonneer op/ verwijder van lijst" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Bevestigingsverzoek verstuurd" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "Je bent aan het abonneren " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " naar de " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " mailing list." #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Ga terug..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "FOUT" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "van de" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "mailing list." #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Ga terug..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Bevestigingsverzoek verstuurd" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Instellingen" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Naam van taak" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Voorkeur e-mailadres" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Tekst bericht toevoegen:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "uurformaat" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 #, fuzzy msgid "name of room: " msgstr "Naam van de ruimte: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Als privé, zorg dat huidige gebruikers ruimte vergeten" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Alleen beheerders" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Alleen-lezen ruimte" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Alle gebruikers die berichten mogen plaatsen mogen ook wissen" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Ruimte met Bestandsmappen" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Naam van map: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Uploaden toegestaan" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Downloaden toegestaan" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Zichtbare map" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Netwerkgedeelde ruimte" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanent (wordt niet automatisch opgeruimd)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Onderwerp vereist (Dwing gebruikers een onderwerp op te geven)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonieme berichten" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Geen anonieme berichten" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Alle berichten zijn anoniem" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Gebruiker vragen bij invoer bericht" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Ruimte Beheerder: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Deze notitie verwijderen?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Niet gedeeld met" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Gedeeld met" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Knooppunt op afstand" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Naam van ruimte op afstand" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Acties" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Als u een ruimte deelt, moeten beide kanten meewerken. Een knooppunt " "toevoegen aan de 'gedeelde' lijst stuurt berichten naar buiten, maar om " "berichten te ontvangen, moet het andere knooppunt ook zijn ingesteld om " "berichten naar uw systeem te verzenden.
  • Als de naam van de ruimte op " "afstand leeg is weet u zeker dat de naam van de ruimte gelijk wordt geacht " "aan de ruimte op het knooppunt op afstand.
  • Als de naam van de ruimte op " "afstand verschilt moet de ruimte op afstand zelf ook een naam ingesteld " "krijgen.
    \n" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Bewaar berichten op de server?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Toevoegen, wijzigen of verwijderen verdiepingen" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Nummer verdieping" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Naam verdieping" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Aantal ruimtes" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "CSS ruimte" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Maak nieuwe verdieping aan" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Regel naar boven" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Regel naar beneden" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Verwijder regel" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "als" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Aan of Cc" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Antwoord aan" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Afwijzen-Van" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Afwijzen-Aan" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Envelop Van" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Envelop Aan" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "Lijst-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Berichtgrootte" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Alles" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "bevat" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "bevat niet" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "is" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "is niet" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "komt overeen met" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "komt niet overeen met" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Alle berichten)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "is groter dan" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "is kleiner dan" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "bytes" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Bewaren" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Stil verwijderen" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Afwijzen" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Verplaats bericht naar" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Doorsturen naar" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Vakantie" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Bericht:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "en dan" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "doorgaan met bewerking" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "stop" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domeinen waarvoor deze host mail ontvangt)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Netwerk instellingen" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Nu ingestelde knooppunten" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(verwijder verdieping)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(bewerk afbeelding)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Naam wijzigen" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "CSS wijzigen" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Stel het automatisch verlopen van oude berichten in." #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Deze instellingen kunnen worden overschreven op verdieping- of ruimteniveau." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Tijd waarop database opgeruimd wordt" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Standaardinstelling voor het laten verlopen van openbare ruimtes" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "Standaardinstelling voor het laten verlopen van privé mailboxen" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Zelfde instelling als openbare ruimtes" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Standaard opruimen gebruiker (dagen)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Standaard opruimen ruimte (dagen)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Weet u zeker dat u deze ruimte wilt verwijderen?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Deze ruimte verwijderen" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "Zet of wijzig het icoontje voor de banner van deze ruimte" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "Bewerk het Infobestand van deze ruimte" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Voer een servercommando in" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Dit scherm geeft de mogelijkheid Citadel servercommando's in te voeren, die " "niet worden ondersteund door Webcit. Als u niet weet wat dat betekent, dan " "is dit scherm van weinig nut voor u." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Voer commando in:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Commando invoer (indien aanvraag SEND_LISTING overdrachtsmode):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 #, fuzzy msgid "Detected host header is " msgstr "Gevonden host header is %s://%s" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Voer commando in:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Niet delen" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(hosts met de Realtime Blackhole Lijst)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Toegangscontrole en instellingen site policy" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Sta beheerders toe ruimtes te zappen (vergeten)" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Quarantaine berichten van probleemgebruikers" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Naam van de quarantaineruimte" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Naam van de ruimte voor log pagina's" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 #, fuzzy msgid "Authentication mode" msgstr "Authenticatie toe" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "bevat" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 #, fuzzy msgid "Host based" msgstr "Hostnaam:" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 #, fuzzy msgid "Allow anonymous guest access" msgstr "Geen anonieme berichten" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "Gebruikersnaam beheerder (blanco is uit)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Wachtwoord beheerder:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Begin toegangsniveau voor nieuwe gebruikers" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Benodigd toegangsniveau om ruimte aan te maken" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Sta automatisch beheerdersstatus in voor gebruikers die privé ruimtes " "aanmaken" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 #, fuzzy msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" "Sta automatisch beheerdersstatus in voor gebruikers die BLOG ruimtes aanmaken" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Toegang tot Internetmail beperken" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Schakel de self-service uit bij het aanmaken van een account" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Registratie nodig voor nieuwe gebruikers" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Verdiepingen toevoegen, wijzigen of verwijderen" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Toon als:" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "Deze notitie verwijderen?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Laatste login" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 #, fuzzy msgid "Not logged in." msgstr "Niet ingelogd" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Je moet ingelogd zijn om deze pagina te openen." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Log in met gebruikersnaam en wachtwoord" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Wachtwoord:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Nieuwe gebruiker? Schrijf u nu in" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "vul uw gebruikersnaam in en het wachtwoord dat u wilt gebruiken en klik op " ""Nieuwe gebruiker. " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Login met OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "Login met OpenID" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Login met OpenID" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "Login met OpenID" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Even geduld" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Voeg een nieuw script toe" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Om een nieuw script te maken voer de gewenste scriptnaam in en klik op " "'Aanmaken'" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Naam van het script: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Scripts bewerken" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Terug naar het bewerkingsscherm voor script" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Scripts verwijderen" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Om een bestaand script te verwijderen, selecteer de scriptnaam en klik " "'Verwijderen'." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Nu opnieuw opstarten" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Herstarten na bericht aan gebruikers." #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Herstarten als geen gebruikers actief" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 #, fuzzy msgid "Configure Push Email" msgstr "Push Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Push email en SMS instellingen" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 #, fuzzy msgid "Notify Funambol server" msgstr "Funambol serverpoort " #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Stuur direct bericht naar: " #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "op basis van" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA port (-1 to disable)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 to disable)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP over SSL port (-1 to disable)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Voer RBL controles uit bij verbinding i.p.v. na RCPT" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Markeer bericht als spam i.p.v. het af te wijzen" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "Sta unauthenticated SMTP clients toe het domein van deze site te spoofen" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Corrigeer gedwongen Van: regels tijdens authenticated SMTP" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Postfix TCP Dictionary Port" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 voor uitschakelen" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve Port (-1 to disable)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Site instellingen" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Algemeen" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Instellingen iconbalk" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexing/Journaling" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Toegang" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "Naam van map: " #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Auto-wisser" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "De berichten in deze ruimte worden als losse berichten gemaild " "naar de volgende ontvangers:

    \n" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "De berichten in deze ruimte worden als als één pakket gemaild naar " "de volgende ontvangers:

    \n" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "Los" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "Pakket" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Voeg ontvangers toe uit 'Contacten' of andere adresboeken" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Niet geabonneerden toestaan deze ruimte te mailen." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Beheersrechten nodig" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "Deze ruimte is ingesteld voor zelf-service bij abonneren/verwijderen." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "De URL voor abonneren/verwijderen is: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Onderwerp" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Samenvattingspagina voor %s" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Berichten" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Vandaag op uw agenda" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Wie is nu online" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Over deze server" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "Afstemmen" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "vijfde" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "en dan" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Naam van de systeembeheerder" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Wilt u dit OpenID echt verwijderen?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Gebruikers op dit moment op " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "Klik op een naam om de gebruikersinfo te lezen. Klik op" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "Stuur een direct bericht naar die gebruiker." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Oude berichten" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Nieuwe berichten" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Delen" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domeinen die gebruikers mogen gebruiken als 'masquerade')" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Uw nieuwe wachtwoord:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Nogmaals als bevestiging:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Wachtwoord wijzigen" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Bewerk uw sessie weergave" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Dit scherm maakt het mogelijk de wijze waarop uw sessie wordt getoond in de " "'Wie is online' lijst te wijzigen. Om een nepnaam uit te schakelen, die u " "eerst had geplaatst klik eenvoudig op de 'Wijzig' knop zonder iets in te " "vullen in het betreffende veld. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Naam ruimte:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Naam ruimte wijzigen" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Hostnaam:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Hostnaam wijzigen" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Gebruikersnaam wijzigen" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Bevestig verplaatsen bericht" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Dit bericht verplaatsen naar:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Lijst van bekende ruimtes" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Waar kan ik van hieruit naar toe?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Volgende ruimte" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "...met ongelezen berichten" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Ga naar volgende ruimte" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(kom hier later terug)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Ongedaan maken" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "oeps! Terug naar " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Lees nieuwe berichten" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "...in deze ruimte" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Lees alle berichten" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...oude en nieuwe" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Bericht opstellen" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(in deze ruimte plaatsen)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Bestandsbibliotheek" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Toon bestanden beschikbaar voor download)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Samenvattingspagina" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Samenvatting van mijn account" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Gebruikerslijst" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(alle geregistreerde gebruikers)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Tot ziens!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "(indien aanwezig, stuur alle mail naar buiten naar een van deze hosts)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Toon contacten" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Contact toevoegen" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Toon dag" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Toon maand" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Afspraak toevoegen" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Agendalijst" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Toon taken" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Taak toevoegen" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Toon notities" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Notitie toevoegen" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Verversen" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Opstellen" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki home" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Deze pagina bewerken" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Geschiedenis" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "nieuwere berichten" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Laat alle berichten gemarkeerd als ongelezen, ga naar de volgende ruimte met " "ongelezen berichten" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Ruimte overslaan" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Markeer alle berichten als gelezen, ga naar de volgende ruimte met ongelezen " "berichten" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Wijzigingen bewaren" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "U abonneert %s op de %s mailinglijst. De listserver " #~ "heeft u een e-mail gestuurd met een extra link waarop u moet klikken om " #~ "het abonnement te bevestigen. Deze extra stap is voor uw bescherming, " #~ "want het voorkomt dat anderen zonder uw toestemming u abonneren op " #~ "mailinglijsten.

    Klik alstublieft op de gemailde link om uw " #~ "abonnement te bevestigen
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "LET OP: mislukt Server Config te sturen; loopt er een te nieuwe citserver?" #~ msgid "There is no room called '%s'." #~ msgstr "Er is geen ruimte genaamd '%s'" #~ msgid "Network" #~ msgstr "Netwerk" #~ msgid "Tuning" #~ msgstr "Afstemmen" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Verwijder direct gewiste berichten in IMAP" #~ msgid "A script by that name already exists." #~ msgstr "Een script met die naam bestaat al" #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "Een nieuw script is aangemaakt. Terug naar het bewerkingsscherm voor " #~ "bewerking en activering." #~ msgid "Delete script" #~ msgstr "Script verwijderen" #~ msgid "Delete this script?" #~ msgstr "Dit script verwijderen?" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "U bent verbonden met %s, waar %s op draait met %s, server build %s en " #~ "gevestigd in %s. Uw systeembeheerder is %s." #~ msgid "Yes with users list" #~ msgstr "Ja met gebruikerslijst" #~ msgid "Room list" #~ msgstr "Lijst van ruimtes" #~ msgid "View as room list" #~ msgstr "Toon als lijst met ruimtes" #~ msgid "View as folder list" #~ msgstr "Toon als mappenstructuur" #~ msgid " - powered by Citadel" #~ msgstr " - op basis van Citadel" #, fuzzy #~ msgid "uname" #~ msgstr "Bestandsnaam" #, fuzzy #~ msgid "text" #~ msgstr "volgende" #, fuzzy #~ msgid "name" #~ msgstr "Bestandsnaam" #, fuzzy #~ msgid "pname" #~ msgstr "Bestandsnaam" #, fuzzy #~ msgid "password" #~ msgstr "Wachtwoord" #, fuzzy #~ msgid "pass" #~ msgstr "Taken" #, fuzzy #~ msgid "authbox" #~ msgstr "Auteur" #, fuzzy #~ msgid "display: none" #~ msgstr "Naamweergave:" #~ msgid "Your password was not accepted." #~ msgstr "Uw wachtwoord is niet geaccepteerd." #~ msgid "If you already have an account on" #~ msgstr "Als u al een account heeft op" #~ msgid "enter your user name and password and click "Log in."" #~ msgstr "" #~ "vul dan uw gebruikersnaam en wachtwoord in en klik op "Log in."" #~ msgid "Please log off properly when finished. " #~ msgstr "Log correct uit als u klaar bent. " #~ msgid "See the" #~ msgstr "Bekijk de" #~ msgid "recommended browser list" #~ msgstr "aanbevolen browser lijst" #~ msgid "" #~ "if you have trouble using Webcit.
  • You must have cookies " #~ "turned on. " #~ msgstr "" #~ "als u problemen heeft met Webcit.
  • Cookies moeten worden " #~ "toegestaan. " #~ msgid "" #~ "Also keep in mind that if your browser is configured to block pop-up " #~ "windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Als uw browser pop-up vensters blokkeert, zult u geen directe berichten " #~ "kunnen ontvangen." #~ msgid "Enter your OpenID URL and click "Log in"." #~ msgstr "Vul uw OpenID URL in en klik op "Inloggen."" #~ msgid "Click here to learn what OpenID is and how Citadel is using it." #~ msgstr "Klik hier voor meer info over OpenID en hoe Citadel het gebruikt." #~ msgid "Log off now?" #~ msgstr "Nu uitloggen?" #~ msgid "%d new of %d messages%s" #~ msgstr "%d nieuw van in totaal %d berichten%s" #~ msgid "(nothing)" #~ msgstr "(niets)" #~ msgid "unexpected end of message" #~ msgstr "onverwacht einde van bericht" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "Er is een fout opgetreden bij het opzetten van de chat socket." #~ msgid "Now exiting chat mode." #~ msgstr "Nu chatmode verlaten." #~ msgid "Help" #~ msgstr "Help" #~ msgid "List users" #~ msgstr "Gebruikerslijst" #~ msgid "No messages here." #~ msgstr "Hier geen berichten." #, fuzzy #~ msgid "no more messages" #~ msgstr "Anonieme berichten" #~ msgid "" #~ "Your icon bar has been updated. Please select any of its choices to " #~ "continue.
    You may need to force " #~ "refresh (SHIFT-F5) in order for changes to take effect" #~ msgstr "" #~ "Uw iconenbalk is geupdate. Maak een willekeurige keuze om door te gaan." #~ "
    Wellicht moet u verversen (SHIFT-" #~ "F5) om te zorgen dat de veranderingen getoond worden" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "Fout in binnenhalen RSS feed: kon geen berichten vinden\n" #~ msgid "%s from" #~ msgstr "%s van " #~ msgid "%s in %s" #~ msgstr "%s in %s" #~ msgid " on %s" #~ msgstr "op %s" #~ msgid "%s" #~ msgstr "%s" #~ msgid ")>
  • " #~ msgstr ",1)>" #~ msgid "" #~ "
    • Enter your OpenID URL and click "Log in".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "" #~ msgid "" #~ "enter your user name and password and click "Log in."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Vul uw gebruikersnaam en wachtwoord in en klik op "Inloggen." " #~ "
  • Als u een nieuwe gebruiker bent, vul uw gebruikersnaam in en " #~ "het wachtwoord dat u wilt gebruiken en klik op "Nieuwe gebruiker." #~ ""
  • Log correct uit als u klaar bent.
  • Uw browser moet " #~ "frames en cookies ondersteunen.
  • Als uw browser pop-up " #~ "vensters blokkeert, zult u geen directe berichten kunnen ontvangen.
    " #~ msgid "Find out more about Citadel" #~ msgstr "Meer informatie over Citadel" #~ msgid "CITADEL" #~ msgstr "CITADEL" #~ msgid "Customize this menu" #~ msgstr "Dit menu aanpassen" #~ msgid "Internet configuration" #~ msgstr "Internet configuratie" #~ msgid "of %d messages." #~ msgstr "van %d berichten." #~ msgid " from " #~ msgstr " van " #~ msgid " in " #~ msgstr " in " #~ msgid "Edit node configuration for " #~ msgstr "Knooppunt instellingen bewerken voor " #~ msgid "" #~ "Postfix TCP " #~ "Dictionary Port (-1 to disable)" #~ msgstr "" #~ "Postfix TCP " #~ "Dictionary Port (-1 to disable)" #~ msgid "ERROR: could not open template " #~ msgstr "FOUT: kon template niet openen" #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Dit bericht bevat agenda/rooster informatie, maar ondersteuning voor " #~ "agenda's is niet beschikbaar op dit systeem. Vraag uw systeembeheerder a." #~ "u.b. een nieuwe versie van Citadel te installeren met ondersteuning voor " #~ "agenda's
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Kan agenda-item niet weergeven. U ziet deze foutmelding omdat de " #~ "Webcit service niet is geinstalleerd met agenda-ondersteun. Neem " #~ "alstublieft contact op met uw systeembeheerder.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Kan het 'te-doen'-item niet weergeven. U ziet deze foutmelding omdat " #~ "de Webcit service niet is geïnstalleerd met 'te-doen'-ondersteuning. Neem " #~ "alstublieft contact op met uw systeembeheerder.
    \n" #~ msgid "Day: " #~ msgstr "Dag: " #~ msgid "Year: " #~ msgstr "Jaar: " #~ msgid "The calendar view is not available." #~ msgstr "De agenda view is niet beschikbaar." #~ msgid "The tasks view is not available." #~ msgstr "De weergave taken is niet beschikbaar." #~ msgid "Gateway domains" #~ msgstr "Gateway domeinen" #~ msgid "(domains whose subdomains match Citadel hosts)" #~ msgstr "(domeinen waarvan de subdomeinen vallen onder Citadel hosts)" #~ msgid "(This server does not support task lists)" #~ msgstr "(Deze server ondersteunt geen takenlijsten)" #~ msgid "(This server does not support calendars)" #~ msgstr "(Deze server ondersteunt geen agenda's)" webcit-dfsg.orig/po/webcit/cs.po0000644000175000017500000045222013223341037016644 0ustar michaelmichael# Czech translation for citadel # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-08-20 09:48+0000\n" "Last-Translator: Vilem Kebrt \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-08-21 04:32+0000\n" "X-Generator: Launchpad (build 16731)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "dostupnost neznámá" #: ../../availability.c:169 msgid "free" msgstr "volný" #: ../../availability.c:179 msgid "BUSY" msgstr "ZAMĚSTNANÝ" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Nahrání obrázku bylo zrušeno." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Nenahrál jste soubor." #: ../../graphics.c:106 msgid "your photo" msgstr "fotografie" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "ikona této místnosti" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "Uvítací obrázek pro přihlášení" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "obrázek - odhlášení" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "ikona pro toto podlaží" #: ../../tasks.c:93 msgid "Completed?" msgstr "Dokončeno?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Název úlohy" #: ../../tasks.c:97 msgid "Date due" msgstr "Plánované dokončení" #: ../../tasks.c:99 msgid "Category" msgstr "Kategorie" #: ../../tasks.c:101 msgid "Show All" msgstr "Zobrazit vše" #: ../../tasks.c:224 msgid "Edit task" msgstr "Upravit úlohu" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Shrnutí:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Začátek:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Žádné datum" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "nebo" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Přiřazený čas" #: ../../tasks.c:289 msgid "Due date:" msgstr "Konec:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Dokončeno:" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategorie:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Popis:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Uložit" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Odstranit" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Zrušit" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Nepojmenovaná úloha" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d komentářů" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "pevný odkaz" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "Novější příspěvky" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "Starší příspěvky" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Upravit %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Text je formátován pro prohlížeč návštěvníka. Nová řádka je " "vynucena následující druhou prázdnou řádkou." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Uložit změny" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Zrušeno. %s se neuloží." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " byl uložen." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Informace o místnosti" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "biografii" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Hodina: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minuta: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(neznámý stav)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(potřebuje akci)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(přijato)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(zamítnuto)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(předběžně)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegováno)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(dokončeno)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(zpracovává se)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(nic)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Nastavení účtu/OpenID associace" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Chcete opravdu smazat toto OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(smazat)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Přidat OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "Připojit" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s nepodporuje přihlášení přes OpenID." #: ../../summary.c:128 msgid "(None)" msgstr "(Žádný)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nic)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Jdi na stranu: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "První" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Poslední" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "chyba v realloc() nelze získat %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Smazáno" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Nový uživatel" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Problémový uživatel" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Klasický uživatel" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Síťový uživatel" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Preferovaný uživatel" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Poradce" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Došlo k chybě." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Potvrdit nové uživatele" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Žádný uživatel právě nevyžaduje potvrzení." #: ../../auth.c:617 msgid "very weak" msgstr "velmi slabé" #: ../../auth.c:620 msgid "weak" msgstr "slabé" #: ../../auth.c:623 msgid "ok" msgstr "dobré" #: ../../auth.c:627 msgid "strong" msgstr "silné" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Aktuální úroveň přístupových práv: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Úroveň přístupových práv tohoto uživatele:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Zrušeno. Heslo se nezmění." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Hesla nesouhlasí. Heslo nezměněno." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Heslo nemůže být prázdné." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Pozvánka na schůzku" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Odpověď účastníka na pozvánku" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Publikovaná událost" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Toto je neznámý typ kalendářového objektu." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Umístění:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Datum:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Počáteční datum/čas:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Konečný datum/čas:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Opakování" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Toto je opakující se událost" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Účastník:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Toto je aktualizace události '%s' která už je ve vašem kalendáři." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "Tato událost bude v konfliktu s '%s' která už je ve vašem kalendáři." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Aktualizace:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "KONFLIFT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Jak odpovědět na toto pozvání?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Potvrdit" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Předběžné" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Zamítnout" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Klikněte na Aktualizovat pro potvrzení a aktualizování kalendáře." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Aktualizovat" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignorovat" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Chyba při zpracování této kalendářové položky." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "Provedeno potvrzení na pozvánku. Událost byla vložena do kalendáře." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Byl jste předběžně přijat na tuto schůzku. Tato schůzka byla poznačena ve " "vašem kalendáři." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Zamítl jste pozvání na tuto schůzku. Schůzka nebyla poznačena v kalendáři." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Odpověď byla zaslána organizátorovi." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Kalendář byl aktualizován na základě RSVP." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Rozhodli jste se ignorovat tento \"RSVP.\" Váš kalendář nebyl " "aktualizován." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Začáteční den kalendáře:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Koncový den kalendáře:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Týden začíná v:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Došlo k chybě během získávání souboru: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "sekundy" #: ../../event.c:72 msgid "minutes" msgstr "minuty" #: ../../event.c:73 msgid "hours" msgstr "hodiny" #: ../../event.c:74 msgid "days" msgstr "dny" #: ../../event.c:75 msgid "weeks" msgstr "týdny" #: ../../event.c:76 msgid "months" msgstr "měsíce" #: ../../event.c:77 msgid "years" msgstr "let" #: ../../event.c:78 msgid "never" msgstr "nikdy" #: ../../event.c:82 msgid "first" msgstr "první" #: ../../event.c:83 msgid "second" msgstr "druhý" #: ../../event.c:84 msgid "third" msgstr "třetí" #: ../../event.c:85 msgid "fourth" msgstr "čtvrtý" #: ../../event.c:86 msgid "fifth" msgstr "pátý" #: ../../event.c:89 msgid "Event" msgstr "Událost" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Účastníci" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Přidat nebo upravit událost" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Přehled" #: ../../event.c:222 msgid "Location" msgstr "Umístění" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Start" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Celodenní událost" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Konec" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Poznámky" #: ../../event.c:374 msgid "Organizer" msgstr "Organizátor" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(jste organizátor)" #: ../../event.c:397 msgid "Show time as:" msgstr "Ukaž čas jako:" #: ../../event.c:420 msgid "Free" msgstr "Volný" #: ../../event.c:428 msgid "Busy" msgstr "Obsazený" #: ../../event.c:445 msgid "(One per line)" msgstr "(jeden na řádku)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Kontakty" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Pravidlo pro opakování" #: ../../event.c:522 msgid "Repeats every" msgstr "Opakovat vždy" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "v těchto dnech" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "v dni %s%d%s měsíce" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "na " #: ../../event.c:631 msgid "of the month" msgstr "měsíce" #: ../../event.c:660 msgid "every " msgstr "každý " #: ../../event.c:661 msgid "year on this date" msgstr "ročně" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "z" #: ../../event.c:717 msgid "Recurrence range" msgstr "Délka opakování" #: ../../event.c:725 msgid "No ending date" msgstr "Chybí datum ukončení" #: ../../event.c:732 msgid "Repeat this event" msgstr "Opakovat tuto událost" #: ../../event.c:735 msgid "times" msgstr "krát" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Opakovat do " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Zkontrolovat dostupnost účastníka" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Nepojmenovaná akce" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Nastavení Iconbaru" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Neplatný parametr" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " bylo smazáno." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " přidáno." #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Pro přístup k této funkci jsou zapotřebí vyšší práva." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "Musíte zadat poštovní seznam, který chcete použít." #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "Musíte zadat poštovní adresu, kterou chcete použít." #: ../../messages.c:73 msgid "ERROR:" msgstr "CHYBA:" #: ../../messages.c:91 msgid "Empty message" msgstr "Prázdná zpráva" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Zrušeno. Zpráva nebyla odeslána." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automaticky zrušeno, jelikož zpráva už byla uložena." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Uložení do Konceptů selhalo: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Odmítám odeslat prázdnou zprávu.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Zpráva byla uložena do Konceptů.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Zpráva byla odeslána.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Zpráva byla vystavena.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Zpráva nebyla přesunuta." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Vyskytla se chyba při zpracování této části: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Vyskytla se chyba při zpracování této části: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Připojit podpis k e-mailu?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Použít tento podpis:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Základní kódování pro hlavičku e-mailu:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Preferovaná e-mailová adresa" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Zobrazené jméno pro e-maily" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Preferovaný pohled na zobrazení příspěvků na BBS" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Zobrazení pošty" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Klikněte na poznámku pro její úpravu." #: ../../paging.c:29 msgid "Send instant message" msgstr "Odeslat okamžitou zprávu" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Odeslat okamžitou zprávu: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Zadejte text zprávy:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Odeslat zprávu" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Zpráva nebyla odeslána." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Zpráva byla odeslána na " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Zrušeno. Nastavení se nezměnilo." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Toto bude má startovní stránka" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Toto nemůže být startovní stránkou" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Nyní nemáte nastavenou startovací stránku." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Upřednostňovaná startovní stránka" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Mé složky" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Zrušeno. Změny se neuloží." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Vaše změny byly uloženy." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Uživatel '%s' byl vykopnut z místnosti '%s'." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Uživatel '%s' pozván do místnosti '%s'." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Zrušeno. Nová místnost nebyla vytvořena" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Podlaží bylo vymazáno." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Nové podlaží bylo vytvořeno." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Pohled na místnosti" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Zobrazit prázdná podlaží" #: ../../roomtokens.c:570 msgid "file" msgstr "soubor" #: ../../roomtokens.c:572 msgid "files" msgstr "soubory" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Nástěnka" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Poštovní složka" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Adresář" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Kalendář" #: ../../roomviews.c:57 msgid "Task List" msgstr "Seznam úkolů" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Seznam poznámek" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Kalendářní pohled" #: ../../roomviews.c:61 msgid "Journal" msgstr "Deník" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Koncepty" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Tento server již obsluhuje nejvyšší možný počet uživatelů a nyní nemůže " "příjmat žádná další přihlášení. Zkuste to, prosím, později, nebo kontaktujte " "správce systému." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Přijata neočekávaná odpověď od Citadel servru; zachraňuji se." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Jste připojeni k Citadel serveru verze %d.%02d. \n" "Pro možný běh této verze WebCit musíte mít Citadel verze %d.%02d nebo " "novější.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Vaše systémová konfigurace byla změněna" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "První pokus probíhá" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "Vznikla chyba při vytváření nebo úpravě položky v adresáři." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Změny nebyly uloženy." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Nový uživatel byl vytvořen." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Pokoušíte se vytvořit uživatele v Citadel avšak systém je nastaven na HOST " "autentifikaci. V tomto módu musíte vytvořit uživatele na servru/hostu." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(beze jména)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (práce)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (domů)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobil)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adresa:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Tato kniha adres je prázdná." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Objevila se vnitřní chyba." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Chyba" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Upravit kontaktní údaje" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Titul před jménem" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Křestní jméno" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Druhé jméno" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Příjmení" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Titul za jménem" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Zobrazované jméno:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titul:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organizace:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Poštovní schránka:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Obec:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Stát:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "PSČ:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Země:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Telefon domů:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Telefon do práce:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Mobilní telefon:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Fax:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Primární e-mailová adresa" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Ostatní e-mailové adresy" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Nelze vstoupit do této místnosti pro uložení zprávy" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Přerušuji." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Nepodařilo se dekódovat VCard fotografii\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Vyžadována autorizace" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "Pro přístup je potřeba platné uživatelské jméno a heslo. Nemohl jste být " "přihlášen: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Tento program neměl možnost se připojit nebo zůstat připojený k Citadel " "servru. Prosím ohlašte tento problém vašemu administrátorovi." #: ../../webcit.c:688 msgid "Read More..." msgstr "Přečtěte více…" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' není wiki místnost" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Strana '%s' není k nalezení zde." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Vyberte 'Upravte tuto stránku' odkaz v názvu místnosti, pokud chcete " "vytvořit tuto stránku." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Datum" #: ../../wiki.c:143 msgid "Author" msgstr "Autor:" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(zobrazit)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Aktuální verze" #: ../../wiki.c:184 msgid "(revert)" msgstr "(vrátit zpět)" #: ../../wiki.c:246 msgid "Page title" msgstr "Název stránky" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Formát času" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Z" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Počáteční datum:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Konečné datum:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Datum/čas:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Poznámky:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "předchozí" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "další" #: ../../calendar_view.c:750 msgid "Week" msgstr "Týden" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Hodiny" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Předmět" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Probíhající akce" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "upravit" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Nevím jak zobrazit " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(bez předmětu)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "Fronta je prázdná." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Nemáte povolení vidět tento zdroj." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Upravte menu ikon" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Zobraz ikony jako:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "obrázky a text" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "pouze obrázky" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "pouze text" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "Vyberte ikony, které chcete vidět v liště ikon na levé straně okna." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Ano" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Ne" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logo webu" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Ikona popisující tuto stránku" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Souhrnná stránka" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Pošta (příchozí)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Zkratka do složky přijatých zpráv" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Osobní adresář" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Osobní poznámky" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Zkratka do kalendáře" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Úlohy" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Zkratka do seznamu" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Místnosti" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Kliknutím na tuto ikonu zobrazíte seznam přístupných místností (adresářů), " "které jsou dostupné." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Kdo je online?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "Kliknutím na tuto ikonu zobrazíte seznam všech přihlášených uživatelů." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Diskuze" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Kliknutím na tuto ikonu vstoupíte do chatu s ostatními uživateli stejné " "místnosti." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Pokročilé nastavení" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Přístup do kompletního menu funkcí Citadel server." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Zobrazit \"Poháněno přes Citadel\" ikonu" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Systémové Administrační menu" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "Menu poradce pro pokoj" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Lokální alias klienta" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Adresář domén" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "Oznámení hostů" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Domény, mající povolenou maškarádu" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Změny provedené v této části nebudou provedeny dokud nerestartujete server " "Citadelu." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Síťové služby" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "IP adresa serveru (0.0.0.0 pro \"jakákoli\")" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) server <> klient port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "XMPP (Jabber) server <> server port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Pokročilé nastavení serveru" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Maximální délka zprávy" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Spojení se serverem v nečinnosti - timeout (sekundy)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Maximální množství spojení (0 = bez omezení)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Minimální počet pracovních vláken" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Maximální počet pracovních vláken" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Automaticky smazat odeslaný databázový záznam" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Vytvořit novou místnost" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Jméno místnosti: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Nachází se na podlaží: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Základní pohled pro místnost: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Typ místnosti:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Veřejná (místnost je viditelná pro všechny)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Sokromá - skrytá (přístupná pouze pro ty, kteří znají jméno)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Soukromá - vyžaduje heslo: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Soukromé - pouze na pozvání" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Osobní (pošta pouze pro vás)" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "Vytvořit novou místnost" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Odhlásit" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Přihlašte se znovu" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Schovat současnou místnost" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "Pokud vyberete tuto možnost," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "zmizí ze seznamu místností. Přejete si to udělat?" #: ../../i18n_templatelist.c:102 #, fuzzy msgid "Zap this room" msgstr "Přeskočit tuto místnost" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "Varování: Máte zakázaný JavaScript ve vašem webovém prohlížeči. Většina " "funkcí tohoto systému nebude správně fungovat." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Jméno uživatele" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Místnost" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Odesílatel" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Načítám zprávy ze serveru, prosím čekejte" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Otevřít v novém okně" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Přesunout" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Kopírovat" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Vytisknout" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" "(zasílání odchozích mailů na tyto hosty pouze, pokud přímé doručení selže)" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Schované místnosti" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "Klikněte na místnost pro obnovení a vstup do této místnosti." #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Upravte své preference a nastavení" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Aktualizujte své kontaktní informace" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Změnit heslo" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Vložte vaše 'bio'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Upravit online foto" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Zobrazit/upravit e-mailové filtry na straně serveru" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Upravit nastavení push email" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "Upravit OpenID" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Zobrazit" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Stáhnout" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Globální Configurace" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Nastavení uživatelů" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Vypnout Citadel" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Místnosti a podlaží" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Jít do skryté místnosti" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Pokud znáte jméno skryté nebo zaheslované místnosti, můžete vstoupit zadáním " "jejího jméno níže. Jakmile získáte přístup do soukromé místnosti, objeví se " "vám mezi běžnými místnostmi, takže se sem nemusíte vracet." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Vložte jméno místnosti:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Vložte heslo místnosti" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "na " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "od " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "komu" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "Kopie:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Předmět:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Odeslat Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Hostitelský server Funambol (prázdné pole pro vypnutí)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Port serveru Funambol. " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Funambol sync zdroje" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Funambol autorizační detaily (uživatel:heslo)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "Externí pager nástroje (prázdné pole pro vypnutí)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Stromový (adresářový) pohled" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Table (rooms) view" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 hodin (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 hodin" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Neděle" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Pondělí" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Bez podpisu" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Plná funkcionalita" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Bezpečný mód" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" "Bezpečný mód je méně náročný pro prohlížeč, ale ne všechny funkce budou " "fungovat." #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Preference a nastavení" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "(URLS pro oznámení, když uživatel dostane nový email; )" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" "Zápis syntaxe: Šablona pro oznánení:http[s]://user:password@hostname/path" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Základní příkazy" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Informace o vás" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Pokročilé příkazy místnosti" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Upravit nastavení uživatele: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Uživatelské jméno:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Heslo:" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Oprávnění pro odeslání Internetového e-mailu" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Počet přihlášení" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Vložené zprávy" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Úroveň přístupu" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "ID uživatele" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Datum a čas posledního přihlášení" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Automaticky vymazat po dnech" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 naslouchací port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3 přes SSL port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Zobrazit odchozí frontu na SMTP servru" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Obnovit tuto stránku" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Vzdálený host" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Stát:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "pokračovat ve zpracovávání" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Zpráva pro uživatele:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administrace" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Nastavení" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Doba platnosti zprávy" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Kontrola přístupu" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Sdílení" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Služba mailing seznamů" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Vzdálené stažení" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Panel ikon byl aktualizován. Prosím vyberte nějakou volbu pro pokračování." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" "Možná budete potřebovat obnovit stránku (SHIFT - F5) > aby byly změny " "provedeny" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Obecné nastavení služby" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Změnit logo při přihlašování" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Změnit logo při odhlašování" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Jméno uzlu" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Plně kvalifikované doménové jméno" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Člověku čitelný název nodu" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Telefonní číslo" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Zeměpisná poloha tohoto systému" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Jméno systéového administrátora" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Základní časová zóna pro nepřiřazené kalendáře" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Síťová sdílená místnost" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Přidat nový uzel" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Sdílené heslo" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Host nebo IP adresa" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Číslo portu" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Přidat nový uzel" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(ukončit)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Nastavení webu" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "Tato kniha adres je prázdná." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minuty" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Předběžné" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(Upravit)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Smazat)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Žádné nové zprávy." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Nová startovní stránka" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Vaše startovní stránka byla upravena." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Poznámka: tato akce nezmění domovskou stránku prohlížeče. Pouze startovní " "stránku po přihlášení do" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Přidat komentář" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Potvrdit smazání" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Opravdu chcete odstranit " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Přidat, upravit nebo vymazat uživatelské účty" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(hosti využívající ClamAV clamd službu)" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "Odesílatel" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Restartovat Citadel" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "od" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anonymní" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "v" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Příjemce:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "Skrytá kopie:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Předmět (volitelný):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- přeposlaná zpráva ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Odeslat zprávu" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "Uložit do Konceptů" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Přílohy:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Odstranit tuto místnost" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Informace o místnosti" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Hledat: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Výsledek příkazu" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "Vložte další příkaz" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "Zpět do menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Uživatelé kteří jsou online" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Uživatelský profil" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "Klikněte zde pro odeslání okamžité zprávy pro" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "pouze obrázky" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Upravit nebo smazat uživatele" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "Musíte být Admin pro zobrazení tohoto." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Přidat uživatele" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Upravit nebo smazat uživatele" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Prosím čekejte dokud Citadel server je restartován... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "Seznam uživatelů pro " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Uživatelské jméno" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Číslo" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Úroveň přístupu" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Poslední přihlášení" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Celkem přihlášení" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Celkem příspěvků" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Načítání" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Vaše OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "bylo úspěšně ověřeno." #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "Avšak toto uživatelské jméno" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "je v konfliktu s existujícím uživatelem." #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Prosím specifikujte uživatele, kterého použít." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Vymazávací politika pro tuto místnost" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Použij základní politiku pro tuto místnost" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Nikdy nevymazávat prošlé zprávy" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Zprávy vyprší počtem" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Zprávy propadnou stářím" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Počet zprávy nebo dní: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Použít výchozí nastavení systému" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Zavřít okno" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Nahrát soubor:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Opravdu chcete odstranit " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Připojit soubor" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "Odstranit" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexování a Žurnálování" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Varování: tyto možnosti jsou systémově náročné." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Aktivovat full-textové indexování" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Soubory dostupné pro stažení v" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Nahrát soubor:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Nahrát" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Název souboru:" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Velikosti" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Obsah" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Popis" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Tato instalace Citadely nepodporuje filtrování pošty na straně serveru." "
    Pokud tuto funkci potřebujete, kontaktujte administrátora Vašeho systému." #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "nový z" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "zprávy" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Vyberte stránku: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "Stáhnout zprávy ze vzdáleného POP3 servru a ulož je v této místnosti:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Vzdálený host" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Ponechat zprávy na servru?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Rozmezí" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Přidat" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Načti RSS feedy a ulož je v této místnosti:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Adresa kanálu" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Pro vytvoření nového uživatelského účtu vložte požadované jméno do textového " "pole dole a klikněte 'Vytvořit'" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Nový uživatel: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domény uvedené v Globálním Adresáři)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "Seznam stránek Wiki" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(odstranit)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Níže zobrazení uživatelé mají přístup do této místnosti. Pro odstranění " "uživatele z přístupového seznamu, vyberte uživatele a klikněte \"Vykopnout\"" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Pokud chcete umožnit přístup ostatním uživatelům do této místnosti, vložte " "jejich jméno klikněte \"Pozvat\"" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Pozvat:" #: ../../i18n_templatelist.c:426 #, fuzzy msgid "Invite" msgstr "Pozvat:" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Uživatelé" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Uživatelé" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Adresář" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Pro upravení existujícího uživatelského účtu, vyberte jméno ze seznamu a " "klikněte na 'Upravit'" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Smazat skripty" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Odstranit tuto místnost" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Odstranit" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Prezentace" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(hosti využívající SpamAssassin službu)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Toto je aktualizace události '%s' která už je ve vašem kalendáři." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "Tato událost bude v konfliktu s '%s' která už je ve vašem kalendáři." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Kdy e-mail přišel: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Zanechat v mé doručené poště bez filtrování" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Provést filtraci na základě pravidel dole" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "Filtrovat skrz manuálně editované skripty (pokročilý uživatelé)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Vaše příchozí pošta nebude filtrována žádnými skripty." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Přidat pravidlo" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Právě je aktivní skript: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Přidat nebo odstranit text" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Nastavení LDAP konektoru pro Citadel" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "Poznámka: Tento Citadel server byl postaven bez podpory LDAP. Toto nastavení " "nebude mít vliv." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Název hosta LDAP serveru (nechte prázdné pro vypnutí)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Číslo portu LDAP serveru (prázdné pole pro vypnutí)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Upravit nebo odstranit místnost" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Jdi do 'skryté' místnosti" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Schovat tuto místnost" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Seznam všech schovaných místností" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Přečíst nové zprávy" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "ID zprávy" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Datum a čas poslání" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "Další pokus" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Příjemci" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Čtení #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "nejstařší po nejnovější" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "nejnovější po nejstarší" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Prosím počkejte dokud nebudou uživatelé nastránkováni, citadel server se " "poté restartuje. " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Upravit" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Odpovědět" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Odpovědět citací" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "Odpovědět všem" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Přeposlat" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Hlavičky" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Upravit nastavení" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Doménová jména a nastavení Internetových e-mailů" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Nastavit replikaci ostatních Citadel servrů" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Zobrazit \"Poháněno přes Citadel\" ikonu" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Jazyk:" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "Zkratka do složky přijatých zpráv" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "E-mail" #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "Zkratka do kalendáře" #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "Osobní adresář" #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "Osobní poznámky" #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "Zkratka do seznamu" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Seznam všech schovaných místností" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Připojení uživatelé" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Pokročilý" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "Váš systémový administrátor je" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "upravit toto menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Přihlásit se" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "přepnout do seznamu místností" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "přepnout na menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Moje složky" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP naslouchací port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP přes SSL port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Zachovat originální hlavičky na IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Nahrát obrázek" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Můžete nahrát obrázek přímo z vašeho počítače" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Prosím vyberte soubor k nahrání:" #: ../../i18n_templatelist.c:545 #, fuzzy msgid "Reset form" msgstr "Vybraný formát" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Seznam odebírání" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Seznam přihlášených/odhlášených" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Potvrzovací požadavek odeslán" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "Jste přihlášen " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " k " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " poštovnímu seznamu." #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "Distribuční server Vám zaslal e-mail s webovým odkazem, kliknutím na něj " "potvrdíte vaše přihlášení." #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "Tento krok navíc je pro vaši ochranu, aby vás ostatní nemohli přidat do " "seznamu bez vašeho souhlasu." #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" "Prosím klikněte na odkaz, který vám byl zaslán pro potvrzení přihlášení." #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Zpět..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "CHYBA" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "Nejste přihlášen" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "od" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "poštovní seznam" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "Poštovní server vám poslal e-mail, který obsahuje odkaz na potvrzení vašeho " "odhlášení." #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "Tento krok je pro vaši opchranu, aby vás ostatní nemohli odhlásit ze seznamu " "bez vašeho souhlasu." #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "Prosím klikněte na odkaz, který vám byl zaslám e-mailem k potvrzení vašeho " "odhlášení." #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "Zpátky..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "Přihlášení úspěšné!" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "Přihlášení selhalo." #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "To může znamenat dvě věci:" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" "Čekáte příliš dlouho na potvrzení vašeho požadavku na přihlášení/odhlášení " "(potvrzující odkaz je funkční pouze tři dny)" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" "Již \"jste\" úspěšně potvrdil přihlášovací/odhlášovací požadave a není nutné " "provádět znova." #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "Chyba vrácená serverem byla: " #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "Název seznamu:" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "Vaše e-mailová adresa:" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "(Pokud jste přihlášen) preferovaný formát: " #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "Jedna zpráva v čase" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "Vybraný formát" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" "Při pokusu o přihlášení/odhlášení z poštovního seznamu přijmete e-mail " "obsahující webový odkaz potřebný ke konečnému potvrzení." #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" "Tento krok je pro vaši ochranu, brání ostatním uživatelům aby vás mohli " "přihlásit nebo odhlásit z poštovního seznamu." #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "jméno místnosti: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Pouze preferovaný uživatel" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Místnost pouze pro čtení" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Uživatelé, kteří můžou psát zprávy je můžou i mazat." #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Místnost pro soubory" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Jméno adresáře: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Nahrávání povoleno" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Stahování povoleno" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Viditelný adresář" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Síťová sdílená místnost" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Trvalý (nedojde ke smazání)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Předmět vyžadován" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonymní zpráva" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Žádné anonymní zprávy" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Všechny zprávy jsou anonymní" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Vyzvat uživatele při psaní zpráv" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Admin místnosti: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Odstranit tuto místnost" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Nesdíleno s" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Sdíleno s" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Jméno vzdáleného uzlu" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Jméno vzdálené místnosti" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Akce" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Ponechat zprávy na servru?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Přidat/upravit/smazat podlaží" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Číslo podlaží" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Jméno podlaží" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Počet místností" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "CSS úrovně" #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "Vytvořit novou místnost" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Odstranit" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Jestliže" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Příjemce nebo kopie" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Odpovědět na" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Přeposláno z" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Přeposlat kam" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Obálka z" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Obálka k" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "Seznam ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Velikost zprávy" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Vše" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "obsahující" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "neobsahující" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "je" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "není" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "odpovídá" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "neodpovídá" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Všechny zprávy)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "je větší než" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "je menší než" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "bajtů" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Nechat" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Tiše zahodit" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Odmítnout" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Přesunout zprávu do" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Přeposlat kam" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Dovolená" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Zpráva:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "potom" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "pokračovat ve zpracovávání" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "Zastavit" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domény, ze kterých tento host přijímá emaily)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Nastavení sítě" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Současné uzly" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(odstranit podlaží)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(upravit obrázek)" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Změnit jméno místnosti" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Automatické nastavení vypršení starých zpráv" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Toto nastavení může být změněno na úrovni nastavení podlaží nebo místností." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Hodina ke spuštění automatického čištění databáze." #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Výchozí pravidlo pro zprávy o vypršeníl ve veřejných místnostech" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "Výchozí pravidlo prošlých zpráv pro soukromé složky" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Stejné pravidla jako veřejné místnosti" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Default user purge time (days)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Výchozí čas pro vyčištění místnosti (dny)" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "Opravdu chcete odstranit " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Odstranit tuto místnost" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "Nastavit nebo upravit ikonu pro návěstí této místnosti" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "Upravit Informace o místnosti" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Vložte příkaz pro server" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Tato část umožňuje vložit příkaz pro Citadel server, který není podporován " "přes WebCit. Pokud nevíte co to znamená, tato stránka pro vás nebude moc " "užitečná." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Vložte příkaz:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Vstupní příkaz (pokud požaduje SEND_LISTING přenosový mód):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "Detekovaná hlavička hosta je " #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Vložte příkaz:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(List běžících Realtime Blackhole)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Kontrola přístupu a nastavení politiky stránky" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Karanténí zprávy pro problémové uživatele" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Jméno karanténí místnosti" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Jméno místnosti pro stránky s logy" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Ověřovací mód" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "Povolit anonymní přístup" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "Administrátorské jméno" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Administrátorské heslo" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Počáteční úroveň přístupu pro nové uživatele" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Potřebné oprávnění pro vytváření nových místností" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Zakázat přístup k Internetovému e-mailu" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Zakázat vlastní vytvoření uživatele" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "Tip: nevybírejte obě!" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Požadovat registraci pro nové uživatele" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Přidat, upravit nebo odstranit podlaží" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Zobrazit jako:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Odstranit tuto místnost" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Přihlášen jako" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Nepřihlášen." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Musíte být přihlášen pro přístup k této stránce." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Přihlašte se s uživatelským jménem a heslem" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Heslo:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Nový uživatel? Zaregistrujte se" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Přihlašte se s pomocí OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "Přihlásit se použitím Google" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "Přihlásit se použitím Yahoo" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "Přihlásit použitím AOL nebo AIM" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Čekejte prosím" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Přidat nový skript" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Pro vytvoření skriptu napište požadované jméno a klikněte na 'vytvořit'." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Jméno skriptu: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Upravit skripty" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Jít zpět na editaci skriptů" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Smazat skripty" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Pro smazání existujících skriptů, vyberte jejich jména ze seznamu a klikněte " "na 'Smazat'" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Restartovat nyní" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Restartovat after paging users" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Restartovat až budou všichni uživatelé nečinní" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "Nastavit Push Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Push email a SMS nastavení" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "Pokud správce povolil tuto funkci, Citadel může oznámit Funambol servru, že " "jste obdrželi novou zprávu a automaticky se sesynchronizovat se zařízením na " "kterém máte nainstalován Funambol klient." #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "Pokud to správce nastavil, Citadel vám může poslat sms když přijde nová " "zpráva." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "Oznámit Funambol serveru" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "Poslat sms na číslo..." #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" "(použijte mezinárodní formát bez úvodních nul, mezer nebo pomlček, např " "+61415011501)" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "Použit vlastní schéma oznámení nastavené Administrátorem" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "Neposílat žádná upozornění" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "běží na" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP přes SSL port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Provést RBL kontolu před připojením místo pro připojení k RCPT" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Označit zprávu jako spam, místo odmítnutí" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "Povolit neuatentifikované SMTP klienty" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Opravit upravené \"From:\" řádky při autentifikovaném SMTP přenosu" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 pro vypnutí" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve Port (-1 pro vypnutí)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Nastavení webu" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Obecné" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Nastavení Iconbaru" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexování/žurnálovaní" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Přístup" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "Adresář" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Automatické čištění" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "Obsah této místnosti je odesílán jako samostatné zprávy na " "následující seznam příjemců:

    " #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "Obsah této místnosti je odesílán ve formě digest na následující " "seznam příjemců:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Seznam ID" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Vybraný formát" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Přidejte příjemce z Kontaktů nebo ostatních adresních seznamů" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Povolit neodběratelům odesílat mail na tuto místnost." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Publikace příspěvků v místnosti vyžaduje oprávnění Admin." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "Adresa pro odběratele/neodběratele: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Předmět" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "Souhrná strana pro " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Zprávy" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Dnes ve vašem kalendáři" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "Kdo je nyní  online " #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "O tomto serveru" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "Připojen k" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "běží" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "s" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "sestavení serveru" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "nachází se v" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "Váš systémový administrátor je" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Chcete opravdu smazat toto OpenID?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Nyní připojení uživatelé " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "Klikněte na jméno pro informace o uživateli" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "pro odeslání okamžité zprávy tomuto uživateli" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Staré zprávy" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Nové zprávy" #: ../../i18n_templatelist.c:880 #, fuzzy msgid "Share" msgstr "Sdílení" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domény, jejichž uživatelé mají povolenu maškarádu)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Zadejte nové heslo:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Pro ověření heslo zopakujte:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Změnit heslo" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Upravte nastavení sezení" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Tato obrazovka dovoluje změnit způsob, jakým se zobrazuje seznam \"Kdo je " "online\". Pro vypnutí \"falešných\" jmen, před tím nastavených, klikněte na " "odpovídající \"změnové\" tlačítko bez psaní do příslušného boxu. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Jméno místnosti:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Změnit jméno místnosti" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Označení systému:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Změnit označení systému" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Změnit uživatelské jméno" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "Historie editací této stránky" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Potvrďte přesun zpráv" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Přesunout zprávu do:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "Originálně zasláno v " #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Zobraz místnosti" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Kam můžu pokračovat?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Jít do vedlejší místnosti" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "...s nepřečtenými zprávami" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Přeskoč do další místnosti" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(vraťte se sem později)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Jít zpět" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "oops! Zpět na " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Přečíst nové zprávy" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "...v této místnosti" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Přečíst všechny zprávy" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...staré a nové" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Vložte zprávu" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(posláno v této místnosti)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Knihovna souborů" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Zobrazit dostupné soubory pro stáhnutí)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Stránka s přehledem" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Přehled mého účtu" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Seznam uživatelů" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(všichni registrovaní uživatelé)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Mějte se!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" "(Pokud je potvrzeno, přepošle všechny odchozí maily na jednoho z těchto " "hostů)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Zobrazit kontakty" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Přidat kontakt" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Denní pohled" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Měsíční pohled" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Přidat událost" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Zobrazit úkoly" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Přidat nový úkol" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Zobrazit poznámky" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Přidat novou poznámku" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Aktualizovat list zpráv" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Napsat e-mail" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Upravit tuto stránku" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Historie" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "Nový zápisek na blog" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Přeskočit tuto místnost" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Uložit změny" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Zaregistroval jste se %s do %s distribučního seznamu. " #~ "Seznamový server Vám poslal mail s webovým odkazem, kterým potvrdíte své " #~ "přihlášení. Tento zvláštní krok je pro Vaši ochranu, aby Vás zapsali na " #~ "seznam bez Vašeho vědomí. Prosím klikněte na odkaz, který Vám byl poslán " #~ "a Vaše registrace bude potvrzena.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "VAROVÁNÍ: Nepodařilo se zpracovat nastavení serveru; spustit nový " #~ "citserver?" #~ msgid "There is no room called '%s'." #~ msgstr "Místnost '%s' není k nalezení." #~ msgid "Network" #~ msgstr "Síť" #~ msgid "Tuning" #~ msgstr "Ladění" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Okamžitě vymazat smazané zprávy přes IMAP" webcit-dfsg.orig/po/webcit/sl.po0000644000175000017500000036505213223341037016663 0ustar michaelmichael# Slovenian translation for citadel # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2011-04-30 01:30+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-08-01 04:34+0000\n" "X-Generator: Launchpad (build 15719)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" webcit-dfsg.orig/po/webcit/es.po0000644000175000017500000047251213223341037016654 0ustar michaelmichael# translation of webcit.po to es_ES.po # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # Gabriel C. Huertas # Carlos Zayas Guggiari # # Spanish translation # Copyright (C) 2005 - 2009 By Gabriel C. Huertas # This file is distributed under the GNU General Public License; # either Version 2 or # msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-05-03 18:39+0000\n" "Last-Translator: Carlos Zayas Guggiari \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-05-04 05:10+0000\n" "X-Generator: Launchpad (build 16598)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "disponibilidad desconocida" #: ../../availability.c:169 msgid "free" msgstr "libre" #: ../../availability.c:179 msgid "BUSY" msgstr "OCUPADO" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Carga de gafico cancelada." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "No subiste ningún fichero." #: ../../graphics.c:106 msgid "your photo" msgstr "tu foto" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "el icono par esta sala" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "la imagen de Saludo para el indicador de entrada" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "la imagen de la bandera de cierre de sessión" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "el icono para este nivel" #: ../../tasks.c:93 msgid "Completed?" msgstr "¿Terminado?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Nombre de la tarea" #: ../../tasks.c:97 msgid "Date due" msgstr "Fecha coclusión" #: ../../tasks.c:99 msgid "Category" msgstr "Categoría" #: ../../tasks.c:101 msgid "Show All" msgstr "Mostrar Todo" #: ../../tasks.c:224 msgid "Edit task" msgstr "Editar tarea" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Sumario" #: ../../tasks.c:259 msgid "Start date:" msgstr "Fecha de inicio" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Sin fecha" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "o" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Tiempo asociado" #: ../../tasks.c:289 msgid "Due date:" msgstr "Fecha finalización" #: ../../tasks.c:318 msgid "Completed:" msgstr "Completado:" #: ../../tasks.c:329 msgid "Category:" msgstr "Categoría:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Descripción:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Guardar" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Eliminar" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Cancelar" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Tarea sin título" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d comentarios" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "Enlace permanente" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "los nuevos puestos de trabajo" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "las entradas más antiguas" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Editar %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "El texto se reformateará según ancho de pantalla del " "lector. To defeat the formatting, indent a line at least one space." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Salvar cambios" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Cancelado %s no se salvó" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " a sido guardado." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Información de sala" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Tu biografía" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Hora " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minuto " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(estado desconocido)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(requiere actuación)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(aceptado)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(declinado)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(tentativo)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegado)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(completado)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(en proceso)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(ninguno)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Administrar Asociación Cuenta/OpenID" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Realmente quiere borrar este OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(eliminar)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Agregar un OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "Adjuntar" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s no permite autenticación vía OpenID." #: ../../summary.c:128 msgid "(None)" msgstr "(Ninguno)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nada)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Ir a la página: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Primera" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Última" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "¡realloc() error! no se pudieron conseguir %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Borrado" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Nuevo Usuario" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Usuario Problemático" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Usuario Local" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Usuario de la red" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Usuario Preferente" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Administrador" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Se produjo un error" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Validación de nuevos usuarios" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Ningún usuario requiere validación por el momento" #: ../../auth.c:617 msgid "very weak" msgstr "muy débil" #: ../../auth.c:620 msgid "weak" msgstr "débil" #: ../../auth.c:623 msgid "ok" msgstr "correcto" #: ../../auth.c:627 msgid "strong" msgstr "fuerte" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Nivel actual de acceso: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Seleccione el nivel de acceso para este usuario:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Cancelado. No se cambió la contraseña." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "No cuadran. La contraseña no se cambia." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "No se permiten contraseñas en blanco" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Invitación a reunión" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Respuesta en atención a la invitación" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Evento publicado" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Este es un elemento de calendario desconocido." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Localización" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Fecha" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Fecha/hora de comienzo:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Fecha/hora de finalización:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Recurrencia" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Este es un evento recurrente" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Attn.:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Esta es una actualizaciñon de '%s' que está ya en su calendario." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Este evento entrará en conflicto con '%s' que está ya en su calendario." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Actualizar:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLICTO" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "¿Como le gustaría responder a esta invitación?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Aceptar" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Tentativa" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Declinar" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Pulse Actualizar para aceptar esta respuesta y actualizar su " "calendario." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Actualizar" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignorar" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Se produjo un error al pasar este elemento de calendario." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "Aceptaste la convocatoria de reunión. Se ha anotado en tu calendario" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Aceptaste tentativamente la convocatoria de reunión. Se anotó'a lápiz' en tu " "calendario" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Declinaste la convocatoria de reunión. No se anotó en tu calendario" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Se envió una respuesta al organizador de la reunión." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Su calendario se actualizó para reflegar este RSVP." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "Eligió ignorar este RSVP. Su calendario no se actualizó" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "La visualización del calendario comienza por el dia:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Los dias mostrados del calendario finalizan en:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "La semana comienza el día:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Un error ocurrió mientras se obtenía este archivo: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "segundos" #: ../../event.c:72 msgid "minutes" msgstr "minutos" #: ../../event.c:73 msgid "hours" msgstr "horas" #: ../../event.c:74 msgid "days" msgstr "días" #: ../../event.c:75 msgid "weeks" msgstr "semanas" #: ../../event.c:76 msgid "months" msgstr "meses" #: ../../event.c:77 msgid "years" msgstr "años" #: ../../event.c:78 msgid "never" msgstr "nunca" #: ../../event.c:82 msgid "first" msgstr "primero" #: ../../event.c:83 msgid "second" msgstr "segundo" #: ../../event.c:84 msgid "third" msgstr "tercero" #: ../../event.c:85 msgid "fourth" msgstr "cuarto" #: ../../event.c:86 msgid "fifth" msgstr "quinto" #: ../../event.c:89 msgid "Event" msgstr "Evento" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Attn." #: ../../event.c:168 msgid "Add or edit an event" msgstr "Añadir o editar un evento" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Sumario" #: ../../event.c:222 msgid "Location" msgstr "Localización" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Comienzo" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Todos los eventos del día" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Fin" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notas" #: ../../event.c:374 msgid "Organizer" msgstr "Organizador" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(tu eres el organizador)" #: ../../event.c:397 msgid "Show time as:" msgstr "Mostrar hora como:" #: ../../event.c:420 msgid "Free" msgstr "Libre" #: ../../event.c:428 msgid "Busy" msgstr "Ocupado" #: ../../event.c:445 msgid "(One per line)" msgstr "(Uno por línea)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contactos" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Regla de recuerrencia" #: ../../event.c:522 msgid "Repeats every" msgstr "Se repite cada" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "en estos días laborables:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "en días %s%d%s de el mes" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "en el " #: ../../event.c:631 msgid "of the month" msgstr "del mes" #: ../../event.c:660 msgid "every " msgstr "cada " #: ../../event.c:661 msgid "year on this date" msgstr "año de esta fecha" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "de" #: ../../event.c:717 msgid "Recurrence range" msgstr "Rango recurrente" #: ../../event.c:725 msgid "No ending date" msgstr "Sin fecha de finalización" #: ../../event.c:732 msgid "Repeat this event" msgstr "Repetir este evento" #: ../../event.c:735 msgid "times" msgstr "veces" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Repetir este evento hasta " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Comprobar posibilidad de atender" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Evento sin título" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Configuración de barra de iconos" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Parámetro inválido" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " ha sido borrado" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " agregado" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" "Para acceder a esta funcionalidad, se necesita tener un mayor nivel de " "acceso." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "Necesita especificar la lista de correo a suscribirse" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" "Necesita especificar la dirección de correo con la que desea suscribirse." #: ../../messages.c:73 msgid "ERROR:" msgstr "ERROR" #: ../../messages.c:91 msgid "Empty message" msgstr "Mensaje vacío" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Cancelado. El mensaje no ha sido enviado." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Cancelado automáticamente porque ya habías salvado este mensaje." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Guardar a Borradores fallo: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Se negó enviar mensaje vacío.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "El mensaje ha sido guardado en Borradores.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "El mensaje ha sido enviado.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "El mensaje ha sido enviado.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "No se movió el mensaje." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Un error ocurrió mientras se obtenía esta parte: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Ocurrió un error mientras se recuperaba esta parte: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "¿Añadir firma a el correo electrónico?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Usar esta firma:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Juego de caracteres por defecto para cabeceras de correo:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Dirección de correo preferida" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Nombre preferido a mostrar para mensajes de correo" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Nombre preferido a mostrar en envíos al tablero de mensajes" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Modo de vista buzón" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Pulse en cualquier nota para editarla" #: ../../paging.c:29 msgid "Send instant message" msgstr "Enviar mensaje instantáneo" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Enviar un mensaje instantáneo a: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Introducir texto de mensaje:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Enviar mensaje" #: ../../paging.c:78 msgid "Message was not sent." msgstr "El mensaje no se envió." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "El mensaje ha sido enviado a " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Cancelado. No se cambió la configuración." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Hacer de esta mi página de inicio" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Está no está permitida para ser la página de inicio." #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Ya no tiene página de inicio seleccionada." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Página de inicio preferida" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Mis carpetas" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Cancelado. Los cambios no se salvaron" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Los cambios han sido salvados" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Usuario %s expulado de la sala %s." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Usuario %s invitado a la sala %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Cancelado. Ninguna sala nueva se creó." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "El nivel fue borrado." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Un nuevo nivel ha sido creado." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Ver listado de salas" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Mostrrar pisos vacíos" #: ../../roomtokens.c:570 msgid "file" msgstr "archivo" #: ../../roomtokens.c:572 msgid "files" msgstr "archivos" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Tablón de anuncios" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Carpeta de Correo" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Libreta de Direcciones" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Calendario" #: ../../roomviews.c:57 msgid "Task List" msgstr "Lista de Tareas" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Lista de Notas" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Lista de Calendario" #: ../../roomviews.c:61 msgid "Journal" msgstr "Diario" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Borradores" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Este servidor ya está sirviendo su número máximo de usuarios y no puede " "aceptar inicios de sesión adicionales en este momento. Por favor, inténtelo " "de nuevo más tarde o póngase en contacto con el administrador del sistema." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Respuesta inesperada desde el servidor Citadel; liberando operación." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Estas conectado a un servidor Citadel, corriendo Citadel %d.%02d. \n" "Para poder correr esta versión de WebCit, también debes tener Citade %d.%02d " "o posterior.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Su confiración de sistema ha sido actualizada" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "Primer Intento pendiente" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "Un error ocurrio mientras intentaba crear o editar esta entrada en la " "libreta de direcciones." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Los cambios no se salvaron" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Se creó un nuevo usuario" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Está intentando crear un nuevo usuario denrtro de Citadel el cual está en " "modo de autenticación basado en anfitrión. En este modo, debe crear nuevos " "usuarios en el sistema anfitrión, no dentro de Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(sin nombre)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (trabajo)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (casa)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (celular)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Dirección:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Teléfono:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "Correo-e:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Esta libreta de direcciones está vacía." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Un error interno ocurrió." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Error" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Editar información de contacto" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Prefijo" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Primero" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Medio" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Apellido" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Sufijo" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Mostrar nombre:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Título:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organización:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Aptdo. Correos" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Ciudad" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Estado:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Código postal" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "País" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Teléfono de casa" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Teléfono del trabajo" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Teléfono móvil:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Número de fax:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Dirección de email primaria" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Alias de email" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Imposible entrar en la sala para guardar el mensaje" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Abortando." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "No se pudo descodificar vcard foto\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Autorización requerida" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "El recurso solicitado rquiere un nombre y contraseña de usuarios válidos. No " "podrás conectarte a: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Este programa fue incapaz de conectarse o de permanecer conectado al " "servidor Citadel.Por favor, informe de este problema al administrador del " "sistema." #: ../../webcit.c:688 msgid "Read More..." msgstr "Leer más..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' no es una sala Wiki." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Aquí no existe ninguna página denominada '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Seleccione el enlace 'Editar esta página' en el banner de la sala si " "deseacrear esta página." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Fecha" #: ../../wiki.c:143 msgid "Author" msgstr "Autor" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(mostrar)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Versión actual" #: ../../wiki.c:184 msgid "(revert)" msgstr "(revertir)" #: ../../wiki.c:246 msgid "Page title" msgstr "Título de página" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Formato horario" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "De" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Fecha de inicio:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Fecha de fin:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Fecha/hora:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notas:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "anterior" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "siguiente" #: ../../calendar_view.c:750 msgid "Week" msgstr "Semana" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Horas" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Asunto" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Evento en curso" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "editar" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "No se como mostrarlo " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(sin asunto)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Personalizar la barra de iconos" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Mostrar iconos como:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "imágenes y texto" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "sólo imágenes" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "sólo texto" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Seleccione los iconos que le gustaría mostrar en la 'icon bar' menú a " "laizquierda de la pantalla" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Si" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "No" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logotipo del sitio" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Un icono descriptor de este sitio" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Tu página sumario" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Correo (entrante)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Atajo a su buzón de correo" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Su libreta de direcciones personal" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Sus notas personales" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Atajo a su calendario personal" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Tareas" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Atajo a su lista personal de tareas" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Salas" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Pulsando en este icono se mostrará una lista de todas las salas disponibles " "(o carpetas)" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "¿Quién está en línea?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "Pulsando en este icono se mostrará una lista de todos los usuarios " "actualmente conectados." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Pulsando en este icono se entra en el mmodo de chat a tiempor real con otros " "usuarios en la misma sala" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Opciones avanzadas" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Acceso al menú completo de funciones de Citadel." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Logotipo de Citadel" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Muestra el icono 'Powered by Citadel'" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Menú de Administración de Sistema" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Administrador de la sala" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Alias del host local" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Dominios de directorios" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart hosts" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Smart hosts" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "RBL hosts" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssasin hosts" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 #, fuzzy msgid "Masqueradable domains" msgstr "Dominios de puerta de enlace" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Los cambios practicados en esta pantalla no surtirán efectos hasta que " "reinicies el Servidor Citadel" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Servicios de red" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Dirección de servidor IP (0.0.0.0 para 'cualquiera')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 #, fuzzy msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "Puerto de escucha POP3 (-1 para desactivar)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 #, fuzzy msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "Puerto de escucha POP3 (-1 para desactivar)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Control de afinación fina avanzada del servidor" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Longitud máxima de mensajes" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Tiempo máximo de espera de conexión (en segundos)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Frecuencia de marcha de red (en segundos)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Número máximo de sesiones concurrentes (0 = sin límite)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Número mínimo de temáticas funcionando" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Número máximo de temáticas funcionando" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Borrar automáticamente logs de la base de datos pasados" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Crear nueva sala" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Nombre de la sala: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Nivel al que pertenece: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Vista por defecto para esta sala " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Tipo de sala:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Pública (automáticamente aparece visible a todos)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privada - oculta (accesible solo a quienes conocen su nombre)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privada - se requiere contraseña: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privada - sólo mediante invitación" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personal (buzón de correo para tí solo)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Crear nueva sala" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Log off (desconectar)" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Iniciar acceso de nuevo" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Zap (olvidar/cancela suscripción) a la sala actual" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 #, fuzzy msgid "If you select this option," msgstr "Editar o borrar esta sala" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 #, fuzzy msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" "Si selecciona esta opción, %s desaparecerá de su lista de salas. " "¿Es eso lo que desea?
    \n" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Zap a esta sala" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "ADVERTENCIA: Tiene desactivado JavaScript en su navegador. Muchas funciones " "de este sistema no funcionaran apropiadamente." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Nombre de usuario" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Sala" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Desde el host" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Remitente" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Mover" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Imprimir" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Salas Zapped (olvidadas)" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "Pulse en cualqueir sala para recordarla y entrar en ella.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Tienes uno o más mensajes instantáneos esperando, pero la ventanade " "mensajería instantánea no se pudo abrir. Esto ha sido causado probablemente " "porque tienes instalado un bloqueo de popups, configure su herramienta " "parapermitir poups de este sitio si quiere recibir mensajería instantánea." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Cambiar sus preferencias y configuración" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Actualizar su información de contacto" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Cambie su contraseña" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Introducir 'bio' (biografía)" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Editar su foto en línea" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Ver/editar filtros de correo del lado del servidor" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Cambie su contraseña" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Ver" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Descargar" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Configuración Global" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Gestión de cuentas de usuario" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Salas y Niveles" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Ir a una sala oculta" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 #, fuzzy msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Si conoces el nombre de una sala oculta (nombre de invitación) o protegida " "con contraseña, puedesentrar en la sala escribiendo el nombre abajo. Una vez " "que hayas ganado acceso a una salaprivada, aparecerá regularmente en tu " "lista de salas disponibles, por lo que no tendrás que repetir este proceso. " #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Intoduzca el nombre de sala:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Introduzaca la contraseña de sala:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "en el " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "de " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Asunto:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 #, fuzzy msgid "Push Email" msgstr "Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 #, fuzzy msgid "Funambol server host (blank to disable)" msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 #, fuzzy msgid "Funambol server port " msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 #, fuzzy msgid "Funambol sync source" msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 #, fuzzy msgid "External pager tool (blank to disable)" msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Ver (carpetas) en árbol" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Ver (salas) en tabla" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 horas (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 horas" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 #, fuzzy msgid "Sunday" msgstr "Sumario" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 #, fuzzy msgid "Monday" msgstr "Sumario" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Sin firma" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Cambiar" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Preferencias y configuración" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Comandos básicos" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Su información" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Comandos avanzados de sala" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Editar cuenta de usuario: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Nombre de usuario:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Contraseña" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Autorización para enviar correo Internet" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Número de conexiones" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Mensajes enviados" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Nivel de acceso" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "ID de usuario" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Fecha y hora de la última conexión" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Autopurgar despues de estos muchos dias" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "Puerto de escucha POP3 (-1 para desactivar)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "Puerto POP3 sobre SSL (-1 para desactivar)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 #, fuzzy msgid "POP3 fetch frequency in seconds" msgstr "Frecuencia de marcha de red (en segundos)" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 #, fuzzy msgid "POP3 fastest fetch frequency in seconds" msgstr "Frecuencia de marcha de red (en segundos)" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Smart hosts" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Estado:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "seguir procesando" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 #, fuzzy msgid "Message to your Users:" msgstr "El mensaje no se envió." #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administración" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Configuración" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Política de expiración de mensajes" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Controles de acceso" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Compartir" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Servicio de lista de correo" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 #, fuzzy msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Sy barra de iconos ha sido actualizada. Por favor selecciones alguno de sus " "opciones para continuar." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Elementos de configuración general del sitio" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Nombre de nodo" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Nombre de dominio totalmente cualificado" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Nombre del nodo humanamente legible" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Número de teléfono" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Paginador de texto (para clintes en modo texto)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Localización geográfica de este sistema" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Nombre del administrador de sistema" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Sala de intercambio en red" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Añadir un nuevo nodo" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Secreto compartido" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Host o dirección IP" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Puerto número" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Añadir nodo" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(matar)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Editar configuración" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Editar entrada de la libreta de direcciones" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "Minuto" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Tentativa" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 #, fuzzy msgid "(Edit)" msgstr "(editar)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Borrar)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Publicar un comentario" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Confirmar borrar" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "¿Estás seguro de querer borrar?" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Añadir, cambiar, borrar cuentas de usuarios" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 #, fuzzy msgid "(hosts running the ClamAV clamd service)" msgstr "(host corriendo el servicio SpamAssassin)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Enviar" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 #, fuzzy msgid "Restart Citadel" msgstr "Hacer de esta mi página de inicio" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "A" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Asunto" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- mensaje reenviado ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Postear mensaje" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Adjuntos" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "¿Borrar este mensaje?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Información de sala" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Buscar: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Resultado de los comandos de servidor" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 #, fuzzy msgid "Enter another command" msgstr "Introducir comando de servidor" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 #, fuzzy msgid "Return to menu" msgstr "cambiar a menú" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 #, fuzzy msgid "Users currently on" msgstr "Usuarios actualmente en %s" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Profile de usuario" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Pulse aquí para enviar un mensaje instantáneo a %s" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "sólo imágenes" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Editar o borrar usuarios" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Añadir usuarios" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Editar o Borrar usuarios" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Lista de usuarios %s" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Nombre de Usuario" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Número" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Nivel de Acceso" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Última conexión" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Total de conexiones" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Correos Totales" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Salir" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Política de expiración de mensajes para esta sala" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Use la política por defecto para esta sala" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Nunca producir expiración automática de mensajes" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Expirar según cuenta de mensajes" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Expirar según la edad del mensaje" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Número de mensajes o días " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Política de expiración de mensajes para este nivel" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Usar las configuraciones por defecto" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Cerrar ventana" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Subidas permitidas" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "¿Estás seguro de querer borrar?" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Adjuntar fichero" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(remover)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexado y jornalización" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Advertencia: estas utilidades consumen muchos recursos." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Activar índice de texto completo" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Realizar jornalización de mensajes de correo electrónico" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Realizar jornalización de mensajes de tipo no email" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Correo electrónico de destino de los mensajes jornalizados" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Cargar" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Esta instalación de Citadel viene construida sin soporte para la filtración " "de correo server-side.
    Contacte al administrador de su sistema si " "requiere esta funcionalidad.
    " #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 #, fuzzy msgid "Remote host" msgstr "Smart hosts" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 #, fuzzy msgid "Keep messages on server?" msgstr "No hay mensajes aquí" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 #, fuzzy msgid "Interval" msgstr "General" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Añadir" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Para crear una nueva cuenta de usuario, introduzca el usuario deseado en la " "caja de abajo y pulse 'Crear'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Nuevo usuario: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Crear" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(dominios mapeados con la Libreta de Direcciones Global)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(remover)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Los usuarios listados abajo tiene acceso a esta sala. Para borrar un " "usuario seleccione el usuario de la lista de acceso y pulse 'Kick'." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Kick" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Para garantizar el acceso de un usuario a la sala, introduzca su nombre ne " "la caja de abajo y pulse 'Invitar'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Invitar" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Invitar" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Nuevo Usuario" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 #, fuzzy msgid "Users" msgstr "Lista de usuarios" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Libreta de Direcciones" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Para editar una cuenta de usuario existente, seleccione el nombre de usuario " "de la lista y pulse 'Editar'." #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Borrar usuario" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "¿Borrar este usuario?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Borrar usuario" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(host corriendo el servicio SpamAssassin)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Esta es una actualizaciñon de '%s' que está ya en su calendario." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Este evento entrará en conflicto con '%s' que está ya en su calendario." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Al llegar nuevos e-mails: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Dejarlos en mi bandeja de entrada sin filtrarlos" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "La filtración se hará según las reglas siguientes" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Filtrarlo mediante un script editado manualmente (sólo para los usuarios " "avanzados)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Al llegar el correo, no se filtrará mediante ningún script." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Agregar regla" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "El script activo actualmente es: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Añadir o borrar scripts" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Configurar la conexión LDAP para Citadel" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Número del puerto del servidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Base DN" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Bind DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Contraseña para bind DN" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Editar o borrar esta sala" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Ir a una sala 'hidden' (oculta)" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 #, fuzzy msgid "Zap (forget) this room" msgstr "Zap (olvidar) esta sala (%s)" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Listar todas las salas olvidadas" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Leer mensajes nuevos" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Leyendo #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Responder" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Respuesta entrecomillada" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "Responder Todos" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Reenviar" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Cabeceras" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Editar configuración general del sitio" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Dominios y configuración de correo de internet" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Configurar replicación con otros servidores Citadel" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Muestra el icono 'Powered by Citadel' " #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Lenguaje" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Ir a tu buzón de correo entrante" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Correo" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Ir a tu calendario personal" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Ir a tu libreta personal de direcciones" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Ir a tus notas personales" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Ir a tu lista de tareas personal" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Listar todas las salas accesibles" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Ver quien está online ahora mismo" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" "Menú de opciones avanzadas: Comandos Avanzados para Salas, información de " "cuentas,y Chat" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Avanzado" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Funciones de administración de sala y sistema" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "personalizar este menú" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Última conexión" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "cambiar a lista de salas" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "cambiar a menú" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "Puerto de escucha IMAP (-1 para desactivar)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "Puerto IMAP sobre SSL (-1 para desactivar)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Cargar imagen" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Puede sugir una imagen directamente desde su equipo" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Por favor, seleccione el fichero a cargar:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Resetear formulario" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Lista subscripción" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Listar suscribir/cancelar subscripción" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Enviada solicitud de confirmación" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "Se está suscribiendo " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " a la " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " lista de mensajes." #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "El servidor de listas le ha enviado un e-mail con un enlace Web adicional " "para que usted pueda hacer clic para confirmar su suscripción." #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "Este paso adicional es para su protección, ya que impide que otros sean " "capaces de suscribirse a las listas sin su consentimiento." #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" "Por favor, haga clic en el enlace que está siendo enviado por correo " "electrónico a usted y se confirmará su suscripción." #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Ir atrás" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "ERROR" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "Usted está cancelando su suscripción" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "desde el" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "lista de correo." #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "El servidor de listas le ha enviado un e-mail con un enlace Web adicional " "para que haga clic en él para confirmar la anulación de la suscripción." #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "Este paso adicional es para su protección, ya que impide que otros sean " "capaces de darse de baja de listas sin su consentimiento." #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "Por favor, haga clic en el enlace que está siendo enviado por correo " "electrónico a usted y se confirmará la cancelación de su suscripción." #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "Atrás..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "Confirmación falló" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "Esto podría significar una de dos cosas:" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Nombre de la tarea" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Dirección de correo preferida" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Introducir texto de mensaje:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Formato horario" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 #, fuzzy msgid "name of room: " msgstr "Nombre de la sala: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Si privada, hacer que los usuarios actuales olviden la sala" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Usuarios preferentes solamente" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Sala de sólo lectura" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Sala directorio de ficheros" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Nombre de directorio " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Subidas permitidas" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Bajadas permitidas" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Directorio visible" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Sala de intercambio en red" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanente (sin purga automática)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Mensajes anónimos" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Sin mensajes anónimos" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Todos los mensajes anónimos" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Preguntar al usuario cuando esté introduciendo mensajes" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Administrador de la sala " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "¿Borrar esta entrada?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "No compartido con" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Compartido con" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Nombre del nodo remoto" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Nombre de la sala remota" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Acciones" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Las sals compartidas deben compartirse desde los dos lados. Añadiendo un " "nodo a la lista 'shared' (compartida) se envían mensajes afuera, pero para " "recibir, los otros nodos tienen que estar configurados para enviar mensajes " "a su tu sistema también.
  • Si el nombre de la sala remota está vacío, se " "asume que su nombre es idéntico en el nodo remoto.
  • Si el nombre de la " "sala remota es diferente, el nodo remoto debe configurar el nombre de la " "sala también aquí.
    \n" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "No hay mensajes aquí" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Añadir/cambiar/borrar/niveles" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Número de nivel" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Nombre de nivel" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Número de salas" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Sala CSS" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Crear nuevo nivel" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Mover la regla hacia arriba" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Mover la regla hacia abajo" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Eliminar regla" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Si" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Para o CC" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Responder-a" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Reenviado desde" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Enviar a" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Ensobretado Desde" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Ensobretado Para" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "List-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Tamaño del mensaje" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Todo" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "contiene" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "no contiene" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "corresponde con" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "no es" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "coincide" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "no coincide" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Todos los mensajes)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "es más grande que" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "es más pequeño que" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "bytes" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Conservar" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Descartar de manera silenciosa" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Rechazar" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Mover mensaje a" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Reenviar a" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Vacaciones" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Mensaje:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "y entonces" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "seguir procesando" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "detener" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(dominios desde los cuales este host recibirá correo)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Configuración de Red" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Nodos actualmente configurados" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(borrar sala)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(editar gráfico)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Cambiar nombre" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "Cambiar CSS" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Configurar expiración automática de mensajes antiguos" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Esta configuración puede ser obviada en configuraciones por-sala o por-nivel " "aparte." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Hora para correr la autopurga de bases de datos" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Política de expiración por defecto para salas públicas" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "Política de expiración de mensajes por defecto para buzones privados" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Misma política que para salas públicas" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Purga de usuario por defecto (dias)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Purga por defecto de salas (días)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "¿Esta seguro de querer borrar esta sala?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Borrar esta sala" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "Determinar o cambiar el icono para el baner de esta sala" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "Editar el fichero informativo de esta sala" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Introducir comando de servidor" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Esta pantalla te permite introducir comandos del servidor Citadel que no " "están soportados por WebCit. Si no sabes que quiere decir eso, esta pantalla " "no te será de mucha utilidad." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Introducir comando" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Introducción de comando (si se pidiera SEND_LISTING transfer mode):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 #, fuzzy msgid "Detected host header is " msgstr "La cabecera detectada del host es %s://%s" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Introducir comando" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Dejar de compartir" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(host corriendo una lista Agujero Negro en tiempo real)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Control de acceso y política general del sitio" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Permitir a administradores olvidar (zap) salas" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Poner en cuarentena mensajes de usuarios problemáticos" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Nombre de la sala de cuarentena" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Nombre de la sala para páginas de log" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "Acciones" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 #, fuzzy msgid "Host based" msgstr "Nombre de Host" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 #, fuzzy msgid "Allow anonymous guest access" msgstr "Sin mensajes anónimos" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 #, fuzzy msgid "Master user name (blank to disable)" msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Introducir nueva contraseña" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Nivel de acceso inicial para nuevos usuarios" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Nivel de acceso requerido para crear salas" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Garantizar automáticamente estatus de administrador de sala al usuario que " "crea una sala privada" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 #, fuzzy msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" "Garantizar automáticamente estatus de administrador de sala al usuario que " "crea una sala BLOG" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Restringir acceso a Correo Internet" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Desactivar autoservicio en cuanto a creación de cuentas de usuario" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Se requiere registro para nuevos usuarios" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Añadir, cambiar o borrar niveles" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Ver como:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "¿Borrar esta entrada?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Última conexión" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 #, fuzzy msgid "Not logged in." msgstr "No conectado ahora" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "iDebe estar registrado para acceder a esta página." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Contraseña" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "¿Nuevo usuario? Regístrese ahora" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Iniciar acceso de nuevo" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Añadir un nuevo script" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Para crear un nuevo script, entrar le nombre deseado para el script en la " "ventana abajo y pulsar \"Crear\"." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Nombre del script: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Editar scripts" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Volver a la pantalla de edición de script" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Borrar scripts" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Para borrar un script existente, seleccionar su nombre en la lista y pulsar " "\"Borrar\"." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 #, fuzzy msgid "Restart Now" msgstr "Hacer de esta mi página de inicio" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 #, fuzzy msgid "Configure Push Email" msgstr "Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 #, fuzzy msgid "Notify Funambol server" msgstr "Nombre del Host del sevidor LDAP (en blanco para desactivar)" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Enviar un mensaje instantáneo a: " #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "ofrecido por" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "Puerto SMTP MTA (-1 para desactivar)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "Puerto SMTP MSA (-1 para desactivar)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "Puerto SMTP sobre SSL (-1 para desactivar)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 #, fuzzy msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "Permitir a cliente SMTP no autenticados hacer spoof a los dominios de este " "sitio" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Correfir forged From: lineas durante SMTP autenticada" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 #, fuzzy msgid "-1 to disable" msgstr "Pulse para desactivar" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 #, fuzzy msgid "ManageSieve Port (-1 to disable)" msgstr "Puerto de escucha IMAP (-1 para desactivar)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Configuración del sitio" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "General" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Configuración de barra de iconos" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexar/Journaling" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Acceso" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "directorio" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Autopurgar" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "El contenido de esta sala está siendo enviado por correo como mensajes " "individuales a los siguientes receptores:

    \n" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "El contenido de esta sala se envia por correo compilado en boletines " "diarios a los siguientes receptores:

    \n" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Primero" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Formato horario" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 #, fuzzy msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" "Esta sala está configurada para permitir autoservicio en los porcesos de " "suscripción/cancelación." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "La URL para suscribirse/cancelar suscripción es: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Asunto" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Página sumario para %s" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Mensajes" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Hoy en su calendario" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Quién está en línea ahora" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Acerca de este servidor" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "Afinar" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "quinto" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Nombre del administrador de sistema" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "¿Realmente quiere matar esta sesión?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 #, fuzzy msgid "Click on a name to read user info. Click on" msgstr "" "Pulse en un nombre para leer la información del usuario. Pulse en %s para " "enviar un mensaje instantáneo a ese usuario. " #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 #, fuzzy msgid "to send an instant message to that user." msgstr "Enviar un mensaje instantáneo a: " #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Compartir" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Introducir nueva contraseña" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Introdúzcala de nuevo como confirmación:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Cambia contraseña" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Editar la vista de sus sesión" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Esta pantalla te permite cambiar la forma en que tu sesión aparece en 'Quién " "está en línea' Para desactivar cualquier nombre 'fake' (falso alias) creado " "previamente, simplemente pulse el botón apropiado 'cambiar' sin escribir " "nada en la caja correspondiente. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Nombre de sala" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Cambiar nombre de sala" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Nombre de Host" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Cambiar nombre de host" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Cambiar nombre de usuario" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Confirme mover mensaje" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Mover este mensaje a:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Listar salas conocidas" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "¿A dónde se puede ir desde aquí?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Ir a la siguiente sala" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 #, fuzzy msgid "...with unread messages" msgstr "...con mensajes no leídos" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Saltar a la siguiente sala" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(volver aquí después)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Atrás" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 #, fuzzy msgid "oops! Back to " msgstr "(¡oh! Vuelta a %s)" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Leer mensajes nuevos" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... en esta sala" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Leer todos los mensajes" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...viejos y nuevos" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Redactar mensaje" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(postear a esta sala)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Página sumario" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Sumario de mi cuenta" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Lista de usuarios" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(todos los usuarios registrados)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "¡Adiós!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" "(si está activo, reenviar todo el correo de salida a uno de estos hosts)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Ver contactos" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Añadir nuevo contacto" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Visualización de día" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "VIsualización mensual" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Añadir nuevo evento" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Lista de calendario" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Ver tareas" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Añadir nueva tarea" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Ver notas" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Añadir nueva nota" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Redactar mensaje" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki home" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Editar esta página" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "los nuevos puestos de trabajo" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Dejar todos los mensajes marcados como no leídos, yr a la siguiente sala con " "mensajes no leídos" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Saltarse esta sala" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Marcar todso los mensajes como leídos, ir a la siguiente sala con mensajes " "por leer" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Salvar cambios" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Te estás suscribiendo a %s en la %s lista de correo. El " #~ "servidor de la lista te ha enviado un email con un link web y debe " #~ "pulsarlo par confirmar su suscripción. Esta medida se toma por su " #~ "seguridad, de forma que se impida a otros suscribirle sin su " #~ "consentimiento.

    Por favor, pulse en el link que se le ha " #~ "enviadoy su suscripción será activada.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "ADVERTENCIA: No se pudo analizar la configuración del servidor, se " #~ "ejecuta un nuevo citserver?" #~ msgid "There is no room called '%s'." #~ msgstr "No existe la sala denominada '%s'." #~ msgid "Network" #~ msgstr "Red" #~ msgid "Tuning" #~ msgstr "Afinar" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Desechar automáticamente mensajes borrados en IMAP" #~ msgid "A script by that name already exists." #~ msgstr "Un script ya tiene este nombre." #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "Un nuevo script ha sido creado. Vuelva a la pantalla de edición de los " #~ "scripts para editarlo y activarlo." #~ msgid "Delete script" #~ msgstr "Borrar un script" #~ msgid "Delete this script?" #~ msgstr "¿Borrar este script?" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Estás conectado a %s, corriendo %s con %s, server build %s, y localizado " #~ "en %s. Tu administrador de sistema es %s." #, fuzzy #~ msgid "Yes with users list" #~ msgstr "cambiar a lista de salas" #~ msgid "Room list" #~ msgstr "Lista de Salas" #, fuzzy #~ msgid "text" #~ msgstr "siguiente" #, fuzzy #~ msgid "name" #~ msgstr "(sin nombre)" #, fuzzy #~ msgid "password" #~ msgstr "Contraseña" #, fuzzy #~ msgid "pass" #~ msgstr "Tareas" #, fuzzy #~ msgid "display: none" #~ msgstr "Mostrar nombre:" #~ msgid "Your password was not accepted." #~ msgstr "Su contraseña no ha sido aceptada" #~ msgid "Log off now?" #~ msgstr "¿Desconectar ahora?" #, fuzzy #~ msgid "%d new of %d messages%s" #~ msgstr "%d nuevo de %d mensajes" #~ msgid "(nothing)" #~ msgstr "(nada)" #~ msgid "unexpected end of message" #~ msgstr "finalización inesperada de mensaje" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "Se produjo un error al intentar activar la conexión de chat. " #~ msgid "Now exiting chat mode." #~ msgstr "Saliendo de modo chat." #~ msgid "Help" #~ msgstr "Ayuda" #~ msgid "List users" #~ msgstr "Listar usuarios" #~ msgid "No messages here." #~ msgstr "No hay mensajes aquí" #, fuzzy #~ msgid "no more messages" #~ msgstr "Mensajes anónimos" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "Error de respuesta RSS: no se pudieron encontrar mensajes\n" #, fuzzy #~ msgid "%s from" #~ msgstr "de" #, fuzzy #~ msgid "%s in %s" #~ msgstr "sólo imágenes" #, fuzzy #~ msgid "" #~ "
    • Enter your OpenID URL and click "Log in".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "
    • Si ya dispone de una cuenta en %s, introduzca su nombre de " #~ "usuario y contraseña y seleccione "Log in."
    • Si es un " #~ "usuario nuevo, introduzca su nombre y la contraseña que le gustaría " #~ "utilizar, y pulse "Nuevo Usuario."
    • Por favor, cierre su " #~ "conexión adecuadamente al terminar.
    • Debe utilizar un explorador que " #~ "soporte frames y cookies.
    • Tenga también en cuenta que " #~ "si su explorador esta configurado para bloquear pop windows, no podrá " #~ "recibir mensajería instantánea.
    " #, fuzzy #~ msgid "" #~ "enter your user name and password and click "Log in."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "
    • Si ya dispone de una cuenta en %s, introduzca su nombre de " #~ "usuario y contraseña y seleccione "Log in."
    • Si es un " #~ "usuario nuevo, introduzca su nombre y la contraseña que le gustaría " #~ "utilizar, y pulse "Nuevo Usuario."
    • Por favor, cierre su " #~ "conexión adecuadamente al terminar.
    • Debe utilizar un explorador que " #~ "soporte frames y cookies.
    • Tenga también en cuenta que " #~ "si su explorador esta configurado para bloquear pop windows, no podrá " #~ "recibir mensajería instantánea.
    " #~ msgid "Find out more about Citadel" #~ msgstr "Saber más sobre Citadel" #~ msgid "CITADEL" #~ msgstr "CITADEL" #~ msgid "Customize this menu" #~ msgstr "Personalizar este menú" #~ msgid "Internet configuration" #~ msgstr "Configuración de internet" #~ msgid "of %d messages." #~ msgstr "de %d mensajes." #~ msgid " from " #~ msgstr " de " #~ msgid " in " #~ msgstr " en " #~ msgid "Edit node configuration for " #~ msgstr "Editar configuración de nodo para" #~ msgid "ERROR: could not open template " #~ msgstr "ERROR: no se pudo abrir la plantilla (template) " #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Este mensaje contiene información sobre porgrmación anticipada de " #~ "tareas y calendarios,perolos calendarios no son soportados por este " #~ "sistema particular. Por favor, pida a su administrador de sistemas que " #~ "instale una nueva versión del servicio web Citadel con activación de " #~ "calendarios.
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "No puedo mostrar elemento del calendario.Este error significa que " #~ "WebCit no está instalado con soporte para calendarios. Contacte con su " #~ "administrador de sistemas.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "No se puede mostrar el elemento «por hacer». Está viendo este mensaje " #~ "porque su servicio WebCit se instaló sin soporte para calendarios. Por " #~ "favor, contacte con su adminstrador de sistemas.
    \n" #~ msgid "Day: " #~ msgstr "Día" #~ msgid "Year: " #~ msgstr "Año" #~ msgid "The calendar view is not available." #~ msgstr "La visualización del calendario no está disponible." #~ msgid "The tasks view is not available." #~ msgstr "La visualización de tareas no está disponible." #~ msgid "Gateway domains" #~ msgstr "Dominios de puerta de enlace" #~ msgid "(domains whose subdomains match Citadel hosts)" #~ msgstr "" #~ "(dominios cuyos subdominios se corresponden con con el host Citadel)" #~ msgid "(This server does not support task lists)" #~ msgstr "(Este servidro no soporta listas de tarea)" #~ msgid "(This server does not support calendars)" #~ msgstr "(Este servidro no soporta calendarios)" #~ msgid "" #~ "This room is not configured to allow self-service subscribe/" #~ "unsubscribe requests." #~ msgstr "" #~ "Esta sala noestá configurada para permitir autoservicio en cuanto " #~ "peticiones desuscripción/cancelación." #~ msgid "Click to enable." #~ msgstr "Pulse para activar." #~ msgid "Back to menu" #~ msgstr "Volver al menú" #~ msgid "Respond to meeting request" #~ msgstr "Responder a convocatoria de reunión" #~ msgid "Update your calendar with this RSVP" #~ msgstr "Actualizar el calendario con este RVSP" #~ msgid "Public room" #~ msgstr "Sala pública" #~ msgid "Private - guess name" #~ msgstr "Privada - invitación nominativa" #~ msgid "Private - require password:" #~ msgstr "Privada - requiere contraseña:" #~ msgid "localhost" #~ msgstr "localhost" #~ msgid "gatewaydomain" #~ msgstr "gatewaydomain" #~ msgid "rbl" #~ msgstr "rbl" #~ msgid "spamassassin" #~ msgstr "spamassassin" #~ msgid "[ close window ]" #~ msgstr "[ cerrar ventana ]" webcit-dfsg.orig/po/webcit/et.po0000644000175000017500000043174313223341037016656 0ustar michaelmichael# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR The Citadel Project - http://www.citadel.org # Gabriel C. Huertas # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-10-22 14:52+0000\n" "Last-Translator: Rait Lotamõis \n" "Language-Team: LANGUAGE \n" "Language: ee\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-08-01 04:33+0000\n" "X-Generator: Launchpad (build 15719)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "saadavus teadmata" #: ../../availability.c:169 msgid "free" msgstr "vaba" #: ../../availability.c:179 msgid "BUSY" msgstr "HÕIVATUD" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Kujunduse üleslaadimine katkestatud" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Sa ei laadinud faili üles." #: ../../graphics.c:106 msgid "your photo" msgstr "sinu foto" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "selle toa pisipilt" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "Tervituspilt sisselogimise aknasse" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "Väljalogimise bannerpilt" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "selle korruse pisipilt" #: ../../tasks.c:93 msgid "Completed?" msgstr "Lõpetatud?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Ülesande nimi" #: ../../tasks.c:97 msgid "Date due" msgstr "Lõpetamise kuupäev" #: ../../tasks.c:99 msgid "Category" msgstr "Kategooria" #: ../../tasks.c:101 msgid "Show All" msgstr "Näita kõiki" #: ../../tasks.c:224 msgid "Edit task" msgstr "Muuda ülesannet" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Kokkuvõte:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Alguse kuupäev:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Kuupäev puudub" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "või" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Seostatud aeg" #: ../../tasks.c:289 msgid "Due date:" msgstr "Tähtaeg:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Lõpetatud:" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategooria:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Kirjeldus:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Salvesta" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Kustuta" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Katkesta" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Nimetu Ülesanne" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "uuemad postitused" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "vanemad postitused" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Muuda %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Salvesta muudatused" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Katkestatud. %s ei salvestatud." #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s salvestati." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Toa info" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Sinu info" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Tund: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minut: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(olukord teadmata)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(nõuab tegevust)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(vastu võetud)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(keeldutud)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(kahtlane)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegeeritud)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(lõpetatud)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(töös)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(none)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Ei midagi)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Kustutatud" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Uus Kasutaja" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Probleemne Kasutaja" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Kohalik Kasutaja" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Võrgukasutaja" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Privilegeeritud Kasutaja" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Korrapidaja" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Tekkis viga." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Kinnita uusi kasutajaid" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Ükski kasutaja ei vaja hetkel kinnitamist." #: ../../auth.c:617 msgid "very weak" msgstr "väga nõrk" #: ../../auth.c:620 msgid "weak" msgstr "nõrk" #: ../../auth.c:623 msgid "ok" msgstr "käib kah" #: ../../auth.c:627 msgid "strong" msgstr "tugev" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Hetke juurdepääsutase: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Määra kasutaja juurdepääsutase:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Katkestatud. Salasõna ei muudetud." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Need ei ühti. Salasõna ei muudetud." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Tühjad paroolid ei ole lubatud." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Koosoleku kutse" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Osaleja vastus sinu kutsele" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Avaldatud sündmus" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "See on tundmatut tüüpi kalendrisündmus." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Asukoht:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Kuupäev:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Alguse kuu/kell:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Lõpu kuu/kell:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Korduvus:" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "See on korduv sündmus" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Osaleja:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "See on uuendus sinu kalendris olevale sündmusele '%s'." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "See sündmus läheks vastuollu juba kalendris oleva sündmusega '%s'." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Uuendus:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "VASTUOLU:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Kuidas sa soovid sellele kutsele vastata?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Nõustun" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Üritan" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Keeldun" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "Klõpsa Uuenda, et kanda see vastus oma kalendrisündmusele." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Uuenda" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignoreeri" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Selle kalendrikande töötlemisel tekkis viga." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "Sa oled selle kutse vastu võtnud. Sündmus märgiti sinu kalendrisse" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Sa üritad jõuda sellele kohtumisele. Sündmus kanti kalendrisse 'pliiatsiga'." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "Sa keeldusid sellest kutsest. Sündmust ei kantud kalendrisse." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Vastus on saadetud koosoleku korraldajale." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Kalendripäeva vaade algab kell:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Kalendripäeva vaade lõppeb kell:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Nädal algab:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Tekkis viga, kui laadisin seda faili: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "sekundit" #: ../../event.c:72 msgid "minutes" msgstr "minutit" #: ../../event.c:73 msgid "hours" msgstr "tundi" #: ../../event.c:74 msgid "days" msgstr "päeva" #: ../../event.c:75 msgid "weeks" msgstr "nädalat" #: ../../event.c:76 msgid "months" msgstr "kuud" #: ../../event.c:77 msgid "years" msgstr "aastat" #: ../../event.c:78 msgid "never" msgstr "mitte kunagi" #: ../../event.c:82 msgid "first" msgstr "esimene" #: ../../event.c:83 msgid "second" msgstr "teine" #: ../../event.c:84 msgid "third" msgstr "kolmas" #: ../../event.c:85 msgid "fourth" msgstr "neljas" #: ../../event.c:86 msgid "fifth" msgstr "viies" #: ../../event.c:89 msgid "Event" msgstr "Sündmus" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Osalejad" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Lisa või muuda sündmust" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Kokkuvõte" #: ../../event.c:222 msgid "Location" msgstr "Asukoht" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Algus" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Kogu päeva sündmus" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Lõpp" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Märkmed" #: ../../event.c:374 msgid "Organizer" msgstr "Korraldaja" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(sina oled korraldaja)" #: ../../event.c:397 msgid "Show time as:" msgstr "Näita aega kui:" #: ../../event.c:420 msgid "Free" msgstr "Vaba" #: ../../event.c:428 msgid "Busy" msgstr "Hõivatud" #: ../../event.c:445 msgid "(One per line)" msgstr "(iga nimi uuel real)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Kontaktid" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Korduvuse reegel" #: ../../event.c:522 msgid "Repeats every" msgstr "Kordumise intervall" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "nendel nädalapäevadel:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "kuu %s%d%s päeval" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "Korduvuse vahemik" #: ../../event.c:725 msgid "No ending date" msgstr "Lõpukuupäev puudub" #: ../../event.c:732 msgid "Repeat this event" msgstr "Korda seda sündmust" #: ../../event.c:735 msgid "times" msgstr "korda" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Korda seda sündmust kuni " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Kontrolli osalejate saadavust" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Nimetu Sündmus" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Ikooniriba seaded" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Vigane Parameeter" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s on kustutatud." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Kõrgem juurdepääsuluba on vajalik selle funktsiooni kasutamiseks." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 #, fuzzy msgid "You need to specify the email address you'd like to subscribe with." msgstr "Palun sisesta kasutajanimi mida soovid kasutada." #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Katkestatud. Sõnumit ei postitatud." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automaatselt katkestatud, sest sa oled selle sõnumi juba salvestanud." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Sõnum on saadetud.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Sõnum on postitatud.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Sõnumit ei liigutatud." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Lisa allkiri e-kirjadele?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Kasuta seda allkirja:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Eelistatud e-maili aadress" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Eelistatud nimi e-kirjadele" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Eelistatud nimi teadetetahvlile postitades" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Postkasti vaade" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Klõpsa märkmel, et seda muuta." #: ../../paging.c:29 msgid "Send instant message" msgstr "Saada kiirsõnum" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Saada kiirsõnum kasutajale: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Sisesta sõnumi tekst:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Saada sõnum" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Sõnumit ei saadetud." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Sõnum saadetud kasutajale " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Katkestatud. Seadeid ei muudetud." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Tee see leht minu Citadeli avaleheks." #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Sul ei ole enam valitud Citadeli avalehte." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Katkestatud. Muudatusi ei salvestatud." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Sinu muudatused on salvestatud." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Kasutaja %s löödi toast %s välja." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Kasutaja %s kutsutud tuppa %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Katkestatud. Uut tuba ei loodud." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Korrus on kustutatud." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Uus korrus on loodud." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Tubade nimekirja vaade" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Näita tühje korruseid" #: ../../roomtokens.c:570 msgid "file" msgstr "fail" #: ../../roomtokens.c:572 msgid "files" msgstr "faili" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Teadetetahvel" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Meilikast" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Aadressiraamat" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Kalender" #: ../../roomviews.c:57 msgid "Task List" msgstr "Ülesannete nimekiri" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Märkmete nimekiri" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Kalendri nimekiri" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 #, fuzzy msgid "Drafts" msgstr "Kuupäev" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Sinu süsteemiseaded on uuendatud" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Muudatusi ei salvestatud" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Uus kasutaja on loodud" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(nimetu)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (töö)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (kodune)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobiil)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Aadress:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "See aadressiraamat on tühi" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Tekkis sisemine viga" #: ../../vcard_edit.c:940 msgid "Error" msgstr "Viga" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Muuda kontaktinfot" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Tiitel" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Eesnimi" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Lisanimi" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Perekonnanimi" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Kuvatav nimi:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Ametinimi:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisatsioon:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Postkast" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Linn:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Maakond:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Postiindeks" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Riik" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Kodune telefon:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Töötelefon:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Mobiiltelefon:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Faks:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Peamine Interneti e-maili aadress" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Interneti e-maili aliased" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Ei suutnud dekodeerida visiitkaardi fotot\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Nõutav Autoriseering" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "See programm ei suutnud luua või säilitada ühendust Citadeliga. Palun " "teavita oma süsteemiadministraatorit sellest probleemist." #: ../../webcit.c:688 msgid "Read More..." msgstr "Loe edasi..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' ei ole Wiki tuba." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Kuupäev" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Aja formaat" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Alates:" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Alguse kuupäev:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Lõpu kuupäev:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Kuupäev/kellaaeg:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Märkmed:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "Nädal" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Tunnid" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Pealkiri" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Käimasolev sündmus" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "muuda" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Ma ei tea kuidas kuvada " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(pealkiri puudub)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Personaliseeri Ikooniriba" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Näita ikoone kui:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "pildid ja tekst" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "ainult pildid" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "ainult tekst" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "Vali ikoonid mida sa soovid vasakul asuval 'Ikooniribal' näha" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Jah" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Ei" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Lehekülje logo" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Pisipilt kirjeldamaks seda keskkonda" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Sinu kokkuvõttelehekülg" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Kirjakast" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Otsetee sinu e-maili kirjakasti" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Sinu isiklik aadressiraamat" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Sinu isiklikud märkmed" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Otsetee sinu kalendri juurde" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Ülesanded" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Otsetee sinu isikliku ülesannete nimekirja juurde" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Toad" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Sellel ikoonil klõpsamine kuvab nimekirja kõigist juurdepääsetavatest " "tubadest (või kataloogidest)." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Kes on sisse logitud?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "Sellel ikoonil klõpsamine kuvab nimekirja kasutajatest kes on hetkel sisse " "logitud." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Vestle" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Sellel ikoonil klõpsamine avab reaalajas vestluse teiste samas ruumis " "asuvate kasutajatega" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Veel valikuid" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Juurdepääs täieliku Citadeli funktsioonide menüüle" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadeli logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Kuvab 'Powered by Citadel' ikooni" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 #, fuzzy msgid "System Administration Menu" msgstr "Administratsioon" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Toa Korrapidaja: " #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 #, fuzzy msgid "Directory domains" msgstr "Kataloogi nimi:" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 #, fuzzy msgid "Smart hosts" msgstr "Serveri aadress" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Serveri aadress" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 #, fuzzy msgid "RBL hosts" msgstr "Serveri aadress" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 #, fuzzy msgid "SpamAssassin hosts" msgstr "Serveri aadress" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 #, fuzzy msgid "Network services" msgstr "Võrgukasutaja" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Loo uus tuba" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Toa nimi: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Asub korrusel: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Vaikimisi vaade sellele toale: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Toa liik:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Avalik (ilmub automaatselt kõigile)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" "Privaatne - peidetud (juurdepääsetav ainult nendele, kes teavad toa nime)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privaatne - nõua salasõna: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privaatne - ainult kutse alusel" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personaalne (kirjakast ainult sinule)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Loo uus tuba" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Välju" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Sisene uuesti" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Unusta praegune tuba" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 #, fuzzy msgid "If you select this option," msgstr "Muuda või kustuta see tuba" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Unusta tuba" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Kasutajanimi" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Tuba" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Aadressilt" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Saatja" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Laen serverist kirju, palun oota" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Ava uues aknas" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Liiguta" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Kopeeri" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Prindi" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Unustatud toad" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "Klõpsa toal, et seda taas 'meelde tuletada' ning sinna siseneda.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Sul on üks või enam kiirsõnumit ootamas, kuid Citadeli Sõnumitooja aken ei " "suutnud avaneda. See on tingitud arvatavasti installeeritud pop-up " "blokeerijast,või on netilehitsejal hüpikaknad keelatud. Palun luba " "hüpikaknad siit lehelt." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Muuda oma eelistusi ja seadeid" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Uuenda oma kontaktinfot" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Muuda oma salasõna" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Sisesta oma 'resümee'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Muuda oma online fotot" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Vaata/muuda serveris asuvaid postifiltreid" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Muuda oma push email (mobiili special) seadeid" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Muuda oma salasõna" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 #, fuzzy msgid "View" msgstr "Kuva kui:" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Lae" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 #, fuzzy msgid "Global Configuration" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Toad ja Korrused" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Mine peidetud tuppa" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Sisesta toa nimi:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Sisesta toa salasõna:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "Mine sinna" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "postitaja " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "Koopia:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Pealkiri:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 #, fuzzy msgid "Push Email" msgstr "Seadista Push Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Puu (kataloogidena) vaade" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Tabel (tubadena) vaade" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 tundi (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 tundi" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Pühapäevaga" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Esmaspäevaga" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Ei kasuta allkirja" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Täisfunktsionaalsus" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Turvarežiim" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" "Turvarežiim ei kurna sinu veebilehitsejat niipalju, kuid ei ole ka kõigi " "võimalustega." #: ../../i18n_templatelist.c:168 #, fuzzy msgid "Change" msgstr "Muuda CSS" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Eelistused ja seaded" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Põhikäsud" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Sinu info" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Põhjalikumad tubade käsud" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Kasutajanimi:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Salasõna" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 #, fuzzy msgid "Number of logins" msgstr "Tubade arv" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 #, fuzzy msgid "Messages submitted" msgstr "Sõnumi suurus" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 #, fuzzy msgid "Access level" msgstr "Juurdepääsutase" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 #, fuzzy msgid "User ID number" msgstr "Kasutajanimi" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Serveri aadress" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Maakond:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "jätka töötlemist" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 #, fuzzy msgid "Message to your Users:" msgstr "Sõnumit ei saadetud." #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administratsioon" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Sõnumite aegumise reeglid" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Juurdepääsuõigused" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Jagamine" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Mujalt posti kogumine" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 #, fuzzy msgid "General site configuration items" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 #, fuzzy msgid "Node name" msgstr "Kasutajanimi" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 #, fuzzy msgid "Telephone number" msgstr "Telefon:" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 #, fuzzy msgid "Name of system administrator" msgstr "Administratsioon" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Tuba jagatud võrku" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 #, fuzzy msgid "Add a new node" msgstr "Lisa uus märge" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 #, fuzzy msgid "Shared secret" msgstr "Jagatud " #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 #, fuzzy msgid "Port number" msgstr "Korruse number" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Lisa uus märge" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 #, fuzzy msgid "(kill)" msgstr " (mobiil)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "See aadressiraamat on tühi" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minutit" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Üritan" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 #, fuzzy msgid "(Edit)" msgstr "(Muuda)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Kustuta)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Uus avaleht" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Sinu avaleht on muudetud" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "NB: see ei muuda sinu brauseri avalehte. See määrab lehekülje, mida sa " "näedesimesena, kui siia sisse logid" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Postita kommentaar" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Kinnita kustutamine" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Oled sa kindel, et soovid kustutada " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 #, fuzzy msgid "Add, change, delete user accounts" msgstr "Lisa/muuda/kustuta korruseid" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Saada" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 #, fuzzy msgid "Restart Citadel" msgstr "Uus avaleht" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "saatja" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anonüümne" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Saaja:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "Pimekoopia:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Pealkiri (valikuline)" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- edastatud sõnum ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 #, fuzzy msgid "Post message" msgstr "sõnumist" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Manused:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Kustuta see märge?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Toa info" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Otsi: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 #, fuzzy msgid "Return to menu" msgstr "menüü" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 #, fuzzy msgid "Users currently on" msgstr "Kasutajad hetkel võrgus - " #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Kasutajaprofiil" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Klõpsa siin, et saata kasutajale %s kiirsõnum" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "Pildid kaustas" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 #, fuzzy msgid "Edit or delete users" msgstr "Muuda või kustuta see tuba" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 #, fuzzy msgid "Add users" msgstr "Lisa reegel" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 #, fuzzy msgid "Edit or Delete users" msgstr "Muuda või kustuta see tuba" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Palun oota kuni Citadeli serverile restarti tehakse..." #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "%s kasutajate nimekiri" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Kasutajanimi" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Number" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Juurdepääsutase" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Viimati sees" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Logimisi kokku" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Postitusi kokku" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Laadimine" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Palun sisesta kasutajanimi mida soovid kasutada." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Välju" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Sõnumite aegumise reeglid siin toas" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Kasuta vaikimisi reegleid sõnumite aegumiseks" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Sõnumid ei aegu" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Aeguvad sõnumite üldarvu alusel" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Aeguvad sõnumi vanuse alusel" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Sõnumite või päevade arv: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Sõnumite aegumise reeglid siin korrusel" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Kasuta süsteemi vaikimisi seadeid" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Sulge aken" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Lae fail üles:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Oled sa kindel, et soovid kustutada " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Lisa manus" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(eemalda)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 #, fuzzy msgid "Perform journaling of email messages" msgstr "Eelistatud nimi e-kirjadele" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 #, fuzzy msgid "Perform journaling of non-email messages" msgstr "Eelistatud nimi e-kirjadele" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Failid kaustas" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Lae fail üles:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Lae üles" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Failinimi" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Suurus" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Sisu" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Kirjeldus" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "sõnumist" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Vali lehekülg: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "Kogu kirju nendelt POP3 kontodelt ja salvesta siia tuppa" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Serveri aadress" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Säilita koopia serveris?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Intervall" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Lisa" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Kogu järgmiseid RSS feed'e ja salvesta nad siia tuppa:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Feed'i URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 #, fuzzy msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Et anda kasutajale juurdepääsu sellele toale, sisesta kasutajanimi kasti " "ning klõpsa 'Kutsu'" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Uus kasutaja: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Loo" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(eemalda)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Allolevas nimekirjas olevatel kasutajatel on juurdepääs sellele toale. Et " "kasutajatnimekirjast eemaldada, vali kasutajanimi ning klõpsa 'Löö minema'" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Löö minema" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Et anda kasutajale juurdepääsu sellele toale, sisesta kasutajanimi kasti " "ning klõpsa 'Kutsu'" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Kutsu:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Kutsu" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "Kasutaja" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Kasutajad" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Aadressiraamat" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 #, fuzzy msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Et anda kasutajale juurdepääsu sellele toale, sisesta kasutajanimi kasti " "ning klõpsa 'Kutsu'" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Kustuta reegel" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Kas kustutan selle skripti?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Kustuta reegel" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Pildiesitlus" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "See on uuendus sinu kalendris olevale sündmusele '%s'." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "See sündmus läheks vastuollu juba kalendris oleva sündmusega '%s'." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Kui uus kiri saabub: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Jäta see minu Kirjakasti ilma filtreerimata" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filtreeri vastavalt alltoodud reeglitele" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Filtreeri vastavalt käsitsi sisestatud skriptile (pead teadma mida sa teed)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Sinu sissetulevaid kirju ei filtreerita." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Lisa reegel" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Hetkel aktiivne skript on: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Lisa või kustuta skripte" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Muuda või kustuta see tuba" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Mine 'peidetud' tuppa" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Unusta see tuba" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Näita kõiki unustatud tube" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Loe uusi sõnumeid" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Loed #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "vanimast uuemani" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "uuemast vanimani" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 #, fuzzy msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "Palun oota kuni Citadeli serverile restarti tehakse..." #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Vasta" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Tsiteeri" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "VastaKõigile" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Edasta" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 #, fuzzy msgid "Edit site-wide configuration" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Kuvab 'Powered by Citadel' ikooni" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Keel:" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "Otsetee sinu e-maili kirjakasti" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Kirjakast" #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "Otsetee sinu kalendri juurde" #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "Sinu isiklik aadressiraamat" #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "Sinu isiklikud märkmed" #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "Otsetee sinu isikliku ülesannete nimekirja juurde" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Näita kõiki unustatud tube" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Online kasutajad" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Põhjalikum" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "Administratsioon" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "muuda menüüd" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Viimati sees" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "tubade vaade" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "menüü" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Minu kaustad" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Pildi üleslaadimine" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Sa võid laadida pildi otse oma arvutist" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Palun vali fail mida soovid üleslaadida:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Tühjenda vorm" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "Mine sinna" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Mine tagasi..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "postitaja " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "Kalendri nimekiri" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Mine tagasi..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Ülesande nimi" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Eelistatud e-maili aadress" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Sisesta sõnumi tekst:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Aja formaat" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 #, fuzzy msgid "name of room: " msgstr "Toa nimi: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Kui privaatne, sunni kasutajaid tuba unustama" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Ainult Privilegeeritud kasutajad" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Loe-ainult tuba" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Kasutajad, kes tohivad postitada, tohivad ka sõnumeid kustutada" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Failivahetuse tuba" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Kataloogi nimi:" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Üleslaadimine lubatud" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Allalaadimine lubatud" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Nähtav kataloog" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Tuba jagatud võrku" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanentne (ei toimu auto-tühjendamist)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Pealkiri Nõutud (Sunni kasutajaid sõnumitele pealkirju lisama)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonüümsed sõnumid" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Anonüümsed sõnumid keelatud" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Kõik sõnumid on anonüümsed" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Teavita kasutajat sõnumi sisestamisel" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Toa Korrapidaja: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Kustuta see märge?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Ei ole jagatud" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Jagatud" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 #, fuzzy msgid "Remote node name" msgstr "Kasutajanimi" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 #, fuzzy msgid "Remote room name" msgstr "Sisesta toa nimi:" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Tegevused" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Säilita koopia serveris?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Lisa/muuda/kustuta korruseid" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Korruse number" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Korruse nimi" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Tubade arv" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Korruse CSS" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Loo uus korrus" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Liiguta reeglit üles" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Liiguta reeglit alla" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Kustuta reegel" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Kui" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Saaja või Koopia" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Vastus" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Sõnumi suurus" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Kõik" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "sisaldab" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "ei sisalda" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "on" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "ei ole" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "kattub" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "ei kattu" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Kõik sõnumid)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "on suurem kui" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "on väiksem kui" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "aastat" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Säilita" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Kustuta vaikides" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Hülga" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Liiguta kausta" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Saada edasi" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Puhkusel" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Vastus:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "ja siis" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "jätka töötlemist" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "peatu" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 #, fuzzy msgid "Network configuration" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(kustuta korrus)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(muuda kujundust)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Muuda nime" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "Muuda CSS" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 #, fuzzy msgid "Configure automatic expiry of old messages" msgstr "Sõnumid ei aegu" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 #, fuzzy msgid "Default message expire policy for public rooms" msgstr "Sõnumite aegumise reeglid siin toas" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 #, fuzzy msgid "Default message expire policy for private mailboxes" msgstr "Sõnumite aegumise reeglid siin korrusel" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 #, fuzzy msgid "Same policy as public rooms" msgstr "Sõnumite aegumise reeglid siin toas" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Oled sa kindel, et soovid seda tuba kustutada?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Kustuta see tuba" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "Määra või muuda selle toa banneri ikooni" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "Muuda selle toa Info faili" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 #, fuzzy msgid "Enter command:" msgstr "Sisesta toa nimi:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Sisesta toa nimi:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Lõpeta jagamine" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 #, fuzzy msgid "Name of quarantine room" msgstr "Toa nimi: " #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 #, fuzzy msgid "Name of room to log pages" msgstr "Toa nimi: " #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "sisaldab" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 #, fuzzy msgid "Allow anonymous guest access" msgstr "Anonüümsed sõnumid keelatud" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Sisesta uus salasõna:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 #, fuzzy msgid "Initial access level for new users" msgstr "Määra kasutaja juurdepääsutase:" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 #, fuzzy msgid "Add, change, or delete floors" msgstr "Lisa/muuda/kustuta korruseid" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Kuva kui:" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "Kustuta see märge?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Viimati sees" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 #, fuzzy msgid "Not logged in." msgstr "Ei ole võrgus" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Sa pead olema sisselogitud, et siseneda sellele lehele." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Salasõna:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Uus kasutaja? Registreeri nüüd" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "võta ühendust süsteemiadministraatoriga " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Logi sisse kasutades OpenID'd" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "Logi sisse kasutades OpenID'd" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Logi sisse kasutades OpenID'd" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "Logi sisse kasutades OpenID'd" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Palun oota" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Lisa uus skript" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Skripti nimi: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Muuda skripte" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Tagasi skript editori aknasse" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Kustuta skripte" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 #, fuzzy msgid "Restart Now" msgstr "Nädal algab:" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "Seadista Push Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 #, fuzzy msgid "Push email and SMS settings" msgstr "Muuda oma push email (mobiili special) seadeid" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Saada kiirsõnum kasutajale: " #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "jooksutab" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 #, fuzzy msgid "Site configuration" msgstr "Konfiguratsioon" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 #, fuzzy msgid "General" msgstr "Intervall" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Ikooniriba seaded" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 #, fuzzy msgid "Access" msgstr "Juurdepääsutase" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "Kataloogi nimi:" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Ülesannete nimekiri" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Aja formaat" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Lisa saajad Kontaktidest või teistest aadressiraamatutest" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Pealkiri" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Kasutaja %s kokkuvõtteleht" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Sõnumid" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Täna sinu Kalendris" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Kes on hetkel võrgus" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Sellest serverist" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "viies" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "ja siis" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Administratsioon" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Oled sa kindel, et soovid seda tuba kustutada?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Kasutajad hetkel võrgus - " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "Klõpsa nimel et saada kasutaja kohta infot. Klõpsa" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "et saata sellele kasutajale kiirsõnum." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Jaga" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Sisesta uus salasõna:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Sisesta salasõna uuesti:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Muuda salasõna" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Muuda oma sessiooni väljanägemist" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Toa nimi:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Muuda toa nime" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Muuda kasutajanime" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Kinnita sõnumi liigutamine" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Liiguta see sõnum kausta:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Näita kõiki teadaolevaid tube" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Kuhu ma saan siit edasi minna?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Mine järgmisesse tuppa" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "...kus on lugemata sõnumeid" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Hüppa edasi järgmisesse tuppa" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(tule siia hiljem tagasi)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Mine tagasi" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "uups! Tagasi " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Loe uusi sõnumeid" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "...selles toas" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Loe kõiki sõnumeid" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...nii vanu kui uusi" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Sisesta sõnum" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(postita siia tuppa)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Failikaust" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Näita faile mida saab allalaadida)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Kokkuvõttelehekülg" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Minu konto koondülevaade" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Kasutajate nimekiri" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(kõik registreeritud kasutajad)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Nägemist!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Vaata kontakte" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Lisa uus kontakt" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Päeva vaade" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Kuu vaade" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Lisa uus sündmus" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Kalendri nimekiri" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Vaata ülesandeid" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Lisa uus ülesanne" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Vaata märkmeid" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Lisa uus märge" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Värskenda sõnumite nimekirja" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Saada kiri" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki koduleht" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Muuda seda lehekülge" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "uuemad postitused" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Jäta kõik sõnumid märgituks kui lugemata ning mine järgmisesse tuppa kus on " "lugemata sõnumeid" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Jäta tuba vahele" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Märgi siin sõnumid loetuks ja liigu järgmisesse tuppa kus on lugemata " "sõnumeid" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Salvesta muudatused" #~ msgid "There is no room called '%s'." #~ msgstr "Ei leia '%s' nimelist tuba." #, fuzzy #~ msgid "Network" #~ msgstr "Võrgukasutaja" #~ msgid "A script by that name already exists." #~ msgstr "Sellenimeline skript on juba olemas." #~ msgid "Delete script" #~ msgstr "Kustuta skript" #~ msgid "Delete this script?" #~ msgstr "Kas kustutan selle skripti?" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Sa oled ühendunud võrku %s, mis jookseb tarkvaral %s veebiliidesega %s, " #~ "serveri versioon %s ning asukohaga %s. Sinu süsteemiadministraator on %s." #~ msgid "Yes with users list" #~ msgstr "Jah, koos kasutajanimedega" #~ msgid "Room list" #~ msgstr "Tubade nimekiri" #, fuzzy #~ msgid "uname" #~ msgstr "Failinimi" #, fuzzy #~ msgid "text" #~ msgstr "ainult tekst" #, fuzzy #~ msgid "name" #~ msgstr "Failinimi" #, fuzzy #~ msgid "pname" #~ msgstr "Failinimi" #, fuzzy #~ msgid "password" #~ msgstr "Salasõna" #, fuzzy #~ msgid "pass" #~ msgstr "Ülesanded" #, fuzzy #~ msgid "display: none" #~ msgstr "Kuvatav nimi:" #~ msgid "Your password was not accepted." #~ msgstr "Sinu parooli ei aktsepteeritud." #~ msgid "If you already have an account on" #~ msgstr "Kui sul on juba konto" #~ msgid "enter your user name and password and click "Log in."" #~ msgstr "" #~ "siis sisesta oma kasutajanimi ja salasõna ning klõpsa "Logi sisse." #~ """ #~ msgid "Please log off properly when finished. " #~ msgstr "Kui lõpetad, siis palun logi korrektselt välja. " #~ msgid "See the" #~ msgstr "Vaata" #~ msgid "recommended browser list" #~ msgstr "soovitatud brauserite nimekirja" #~ msgid "" #~ "if you have trouble using Webcit.
  • You must have cookies " #~ "turned on. " #~ msgstr "" #~ "kui sul on Webcit'iga probleeme.
  • Sul peavad küpsisedlubatud olema. " #~ msgid "" #~ "Also keep in mind that if your browser is configured to block pop-up " #~ "windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Samuti pea meeles, et kui sinu brauser blokeerib hüpikaknaid (pop-up)siis " #~ "ei ole sa suuteline kiirsõnumeid vastu võtma." #, fuzzy #~ msgid "Log off now?" #~ msgstr "Välju" #~ msgid "%d new of %d messages%s" #~ msgstr "%d uut, %d sõnumist%s" #~ msgid "(nothing)" #~ msgstr "(ei midagi)" #~ msgid "Now exiting chat mode." #~ msgstr "Väljun sõnumivahetuse režiimist." #~ msgid "Help" #~ msgstr "Abi" #~ msgid "List users" #~ msgstr "Kuva kasutajad" #~ msgid "No messages here." #~ msgstr "Siin ei ole sõnumeid." #, fuzzy #~ msgid "no more messages" #~ msgstr "Anonüümsed sõnumid" #~ msgid "" #~ "Your icon bar has been updated. Please select any of its choices to " #~ "continue.
    You may need to force " #~ "refresh (SHIFT-F5) in order for changes to take effect" #~ msgstr "" #~ "Sinu ikooniriba on uuendatud. Palun klõpsa sealt mõnel ikoonil et edasi " #~ "minna.
    Võib juhtuda et sa pead " #~ "lehte refreshima (SHIFT-F5) et muudatused teoks saaksid" #~ msgid "Email" #~ msgstr "E-mail" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "RSS feed'i vastuvõtmisel tekkis viga: ei leidnud sõnumeid\n" webcit-dfsg.orig/po/webcit/create-pot.sh0000755000175000017500000000062713223341037020301 0ustar michaelmichael#!/bin/bash CSOURCES=`find ../.. -name \*.c` HSOURCES=`find ../.. -name \*.html` echo Updating webcit.pot from strings in the source code ... xgettext \ --copyright-holder='The Citadel Project - http://www.citadel.org' \ --from-code='utf-8' \ -k_ \ -o webcit.pot \ --add-comments \ $CSOURCES $HSOURCES for x in *.po do echo Merging webcit.pot into $x ... msgmerge $x webcit.pot -o $x done webcit-dfsg.orig/po/webcit/sv.po0000644000175000017500000036747713223341037016712 0ustar michaelmichael# Swedish translation for citadel # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the citadel package. # Henric, 2010. # Mikael Mustonen # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-06-11 20:01+0000\n" "Last-Translator: Mikael Mustonen \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-06-12 05:10+0000\n" "X-Generator: Launchpad (build 16667)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "bilden på rubriken vid utloggning" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "Kategori" #: ../../tasks.c:101 msgid "Show All" msgstr "Visa alla" #: ../../tasks.c:224 msgid "Edit task" msgstr "Redigera aktivitet" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Sammanfattning:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Startdatum:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Inget datum" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "eller" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Tid kopplad till" #: ../../tasks.c:289 msgid "Due date:" msgstr "Förfallodag:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Klar:" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d kommentarer" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "permalänk" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "nyare tjänster" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "äldre inlägg" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(accepterad)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Första" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Sista" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Raderad" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Ny Användare" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Oönskad användare" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Lokal Användare" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Nätverks Användare" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Moderator" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Chef" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Tomt lösenord är inte tillåtet." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Avbruten. Ändringarna sparades ej." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Dina ändringar har sparats." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Användaren '%s' har sparkats ut från rum '%s'." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Användaren '%s' är inbjuden till rum '%s'." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Avbruten. Inget nytt rum skapades." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Våningen har raderats." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Ny våning har skapats." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Rums lista" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Visa tomma våningar." #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Anslagstavla" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Mailkatalog" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Adressbok" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Kalender" #: ../../roomviews.c:57 msgid "Task List" msgstr "Aktivitetsfält" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "Dagbok" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Utkast" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blogg" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "En ny användare har skapats." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Tidsformat" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 #, fuzzy msgid "Network services" msgstr "Nätverks Användare" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Nätverks Användare" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Skriv en kommentar" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "äLägg till" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 #, fuzzy msgid "New user: " msgstr "Ny Användare" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Ny Användare" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 #, fuzzy msgid "Users" msgstr "Ny Användare" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Adressbok" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Raderad" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Raderad" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 #, fuzzy msgid "Network shared room" msgstr "Nätverks Användare" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Raderad" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "%d kommentarer" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Du måste vara inloggad för att nå denna sida." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Ny användare? Registrera dig nu" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Aktivitetsfält" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "nyare tjänster" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" #, fuzzy #~ msgid "Network" #~ msgstr "Nätverks Användare" #~ msgid "Your password was not accepted." #~ msgstr "Ditt lösenord accepterades inte." webcit-dfsg.orig/po/webcit/Makefile.in0000644000175000017500000000044713223341037017744 0ustar michaelmichaelSRCS:= $(wildcard *.po) OBJS:= $(patsubst %.po, ../../locale/%/LC_MESSAGES/webcit.mo, $(SRCS)) .SUFFIXES: .po .mo .PHONY: all all: $(OBJS) clean: rm -r ../../locale/* ../../locale/%/LC_MESSAGES/webcit.mo: %.po mkdir -p $(patsubst %.po, ../../locale/%/LC_MESSAGES, $<) msgfmt -o $@ $< webcit-dfsg.orig/po/webcit/pt_BR.po0000644000175000017500000050056513223341037017253 0ustar michaelmichael# translation of webcit.po to pt_BR.po # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # Marco Goncalves , 2008. # # Brazilian / Portuguese tranlation # Copyright (C) 2005 - 2009 By Marco Goncalves # This file is distributed under the revised BSD license # # msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-11-25 13:41+0000\n" "Last-Translator: Alessandro Cesar \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-11-26 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "disponibilidade desconhecida" #: ../../availability.c:169 msgid "free" msgstr "disponível" #: ../../availability.c:179 msgid "BUSY" msgstr "OCUPADO" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Upload de gráficos foi cancelado." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Você não fez upload do arquivo." #: ../../graphics.c:106 msgid "your photo" msgstr "sua foto" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "o ícone para essa sala" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "a figura de boas vindas para esse prompt de login" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "a figura para o banner de logoff" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "o ícone para esse andar" #: ../../tasks.c:93 msgid "Completed?" msgstr "Concluído?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Nome da tarefa" #: ../../tasks.c:97 msgid "Date due" msgstr "Data de vencimento" #: ../../tasks.c:99 msgid "Category" msgstr "Categoria" #: ../../tasks.c:101 msgid "Show All" msgstr "Exibir Todos(as)" #: ../../tasks.c:224 msgid "Edit task" msgstr "Editar tarefa" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Resumo:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Data de início:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Sem data" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "ou" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Tempo associado" #: ../../tasks.c:289 msgid "Due date:" msgstr "Vencimento:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Concluído:" #: ../../tasks.c:329 msgid "Category:" msgstr "Categoria:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Descrição:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Salvar" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Excluir" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Cancelar" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Tarefa Anonima" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d comentários" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "posts recentes" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "posts mais antigos" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Editar %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "O texto é formatado com o browser do leitor. Uma nova " "linha é forçada precedendo a nova linha por uma em branco." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Salvar modificações" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Cancelado. %s não foi salvo" #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s foi salvo." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Informações da sala" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Sua bio" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Hora: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minuto: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(estado desconhecido)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(necessita ação)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(aceito)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(rejeitado)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(temporário)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegado)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(completado)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(em processo)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(nenhum)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Gerenciar Contas/Associação com OpenID" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Você realmente quer excluir este OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(excluir)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Adicionar um OpenID " #: ../../openid.c:58 msgid "Attach" msgstr "Anexar" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s não é permitido autenticação via OpenID" #: ../../summary.c:128 msgid "(None)" msgstr "(Nenhum)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nada)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Ir para a página: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Primeiro" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Último" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "Erro de realloc()! não foi possível obter %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Excluído" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Novo Usuário" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Usuário problemático" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Usuário local" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Usuário remoto" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Usuário preferencial" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Admin" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Ocorreu um Erro." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Validar novos usuários" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Sem usuários para validar no momento" #: ../../auth.c:617 msgid "very weak" msgstr "muito fraco" #: ../../auth.c:620 msgid "weak" msgstr "fraco" #: ../../auth.c:623 msgid "ok" msgstr "bom" #: ../../auth.c:627 msgid "strong" msgstr "forte" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Nível de acesso atual: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Selecione o nível de acesso para esse usuário:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Cancelado. A senha não foi modificada." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Eles não batem. Senha não foi modificada." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Senhas em branco não são permitidas." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Convite para reunião" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Reposta do convite do participante" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Evento publicado" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Esse é um tipo desconhecido de item de calendário" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Localização" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Data:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Dia/hora de início:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Dia/hora de término:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Recorrências" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Esse é um evento recorrente" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Participante:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Essa é uma atualização de '%s' que já está no seu calendário." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Esse evento entrará em conflito com '%s' que já está no seu calendário." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Atualização:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLITO:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Como gostaria de responder a esse convite?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Aceitar" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Incerto" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Rejeitar" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Clique em Atualizar para aceitar essa resposta e atualizar seu " "calendário." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Atualizar" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignorar" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Ocorreu um erro ao processar esse item de calendário" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Você aceitou esse convite para reunião. Esta foi inclusa no seu calendário." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Você aceitou temporariamente esse convite para reunião. Esta foi 'rabiscada' " "no seu calendário." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Você rejeitou esse convite para reunião. Esta não foi inclusa no seu " "calendário." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Uma resposta foi enviada para o organizador da reunião" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Seu calendário foi atualizado para refletir esse RSVP." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Você escolheu ignorar esse RSVP. Seu calendário não foi atualizado." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Dia da visualização do calendário começa em:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Dia da visualização do calendário termina em:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Semana começa em:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Ocorreu um erro ao obter esse arquivo: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "segundos" #: ../../event.c:72 msgid "minutes" msgstr "minutos" #: ../../event.c:73 msgid "hours" msgstr "horas" #: ../../event.c:74 msgid "days" msgstr "dias" #: ../../event.c:75 msgid "weeks" msgstr "semanas" #: ../../event.c:76 msgid "months" msgstr "meses" #: ../../event.c:77 msgid "years" msgstr "anos" #: ../../event.c:78 msgid "never" msgstr "nunca" #: ../../event.c:82 msgid "first" msgstr "primeiro" #: ../../event.c:83 msgid "second" msgstr "segundo" #: ../../event.c:84 msgid "third" msgstr "terceiro" #: ../../event.c:85 msgid "fourth" msgstr "quarto" #: ../../event.c:86 msgid "fifth" msgstr "quinto" #: ../../event.c:89 msgid "Event" msgstr "Evento" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Participantes" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Adicionar ou editar um evento" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Resumo" #: ../../event.c:222 msgid "Location" msgstr "Local" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Início" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Evento ocupando todo o dia" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Fim" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notas" #: ../../event.c:374 msgid "Organizer" msgstr "Organizador" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(você é o organizador)" #: ../../event.c:397 msgid "Show time as:" msgstr "Mostrar hora como:" #: ../../event.c:420 msgid "Free" msgstr "Livre" #: ../../event.c:428 msgid "Busy" msgstr "Ocupado" #: ../../event.c:445 msgid "(One per line)" msgstr "(Um por linha)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contatos" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Regra de recorrência" #: ../../event.c:522 msgid "Repeats every" msgstr "Repete a cada" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "Nestes dias da semana" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "nos dias %s%d%s do mês" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "em " #: ../../event.c:631 msgid "of the month" msgstr "do mês" #: ../../event.c:660 msgid "every " msgstr "a cada " #: ../../event.c:661 msgid "year on this date" msgstr "ano desta data" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "de" #: ../../event.c:717 msgid "Recurrence range" msgstr "Intervalo de recorrência" #: ../../event.c:725 msgid "No ending date" msgstr "Nenhuma data de término" #: ../../event.c:732 msgid "Repeat this event" msgstr "Repetir este evento" #: ../../event.c:735 msgid "times" msgstr "vezes" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Repetir este evento até " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Checar disponibilidade do participante" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Evento sem título" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Configuração da barra de ícones" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Parâmetro inválido" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s foi excluído." #. added status message #: ../../inetconf.c:144 #, fuzzy msgid " added." msgstr "adicionada" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Requer-se acesso privilegiado para acessar essa função." #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 #, fuzzy msgid "You need to specify the email address you'd like to subscribe with." msgstr "Por favor especifique o nome do usuário que você gostaria de usar." #: ../../messages.c:73 msgid "ERROR:" msgstr "ERRO:" #: ../../messages.c:91 msgid "Empty message" msgstr "Mensagem vazia" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Cancelado. A mensagem não foi fixada." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Cancelado automaticamente porque você já salvou essa mensagem." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Gravação para rascunhos falhou: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Recusando enviar mensagem vazia\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "A mensagem foi salva em rascunhos\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "A mensagem foi enviada.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Mensagem foi fixada.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "A mensagem não foi movida." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Um erro ocorreu ao obter essa parte: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Um erro ocorreu ao obter essa parte: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Anexar assinatura em mensagens de email?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Usar essa assinatura:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Codificação padrão para cabeçalhos de email:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Endereço de e-mail preferencial" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Nome de exibição para mensagens de e-mail preferencial" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Nome de exibição para mensagens de bulletin board preferencial" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Modo de visualização da Caixa de Mensagens" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Clique em uma nota para editá-la." #: ../../paging.c:29 msgid "Send instant message" msgstr "Mandar mensagem instantânea" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Mandar mensagem instantânea para: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Entrar mensagem de texto:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Enviar mensagem" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Mensagem não foi enviada." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Mensagem foi enviada para " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Cancelado. Nenhuma configuração foi modificada." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Fazer dessa página minha inicial" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Isto não é permitido como página inicial" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Você não tem mais uma página inicial selecionada." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Página Inicial preferencial" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Minhas Pastas" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Cancelado. Modificações não foram salvas." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Suas modificações foram salvas" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Usuário %s foi chutado da sala %s." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Usuário %s foi convidado para a sala %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Cancelado. Nenhuma sala foi criada." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Andar foi excluído." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Um novo andar foi criado." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Visualização lista de salas" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Exibir andares vazios" #: ../../roomtokens.c:570 msgid "file" msgstr "arquivo" #: ../../roomtokens.c:572 msgid "files" msgstr "arquivos" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Quadro de Mensagens" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Pasta para Correio" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Caderno de Endereços" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Calendário" #: ../../roomviews.c:57 msgid "Task List" msgstr "Lista de Tarefas" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Lista de Notas" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Lista de Calendários" #: ../../roomviews.c:61 msgid "Journal" msgstr "Diário" #: ../../roomviews.c:62 #, fuzzy msgid "Drafts" msgstr "Data" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Este servidor já atingiu o número máximo de usuários permitidos e não pode " "aceitar nenhum login adicional neste momento. Por favor tente novamente mais " "tarde ou contate seu administrador de sistemas." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Recebida uma resposta não esperada do servidor Citadel; Salvando." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Você está conectado à um servidor Citadel rodando Citadel %d.%02d. \n" "Para rodar essa versão do WebCit você também deve ter o Citadel %d.%02d ou " "mais novo.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Sua configuração do sistema foi atualizada." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "Um erro ocorreu na criação ou edição desta entrada no caderno de endereços." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Modificações não foram salvas." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Um novo usuário foi criado." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Você está tentando criar um novo usuário no Citadel enquanto no modo de " "autenticação baseado em host. Nesse modo, você deve criar novos usuários no " "sistema hospedeiro, não dentro do Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(sem nome)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (trabalho)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " Página Inicial" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (celular)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Endereço:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefone:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Esse caderno de endereços está vazio." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Um erro interno ocorreu." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Erro" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Editar informação do contato" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Prefixo" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Primeiro" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Meio" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Último" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Sufixo" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Nome para visualização:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Título:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organização:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Caixa postal:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Cidade:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Estado:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "CEP" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "País:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Telefone de casa:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Telefone de trabalho:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Celular" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Número de fax:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Endereço de e-mail primário" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Nomes alternativos para e-mail de Internet" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Impossibilidado de entrar na sala para salvar sua mensagem" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Abortando." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Não foi possível visualizar a foto do vcard\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Autorização Requerida" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "O recurso que você pediu requer um nome de usuário e senha válidos. Você " "pode não estar logado: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Esse programa foi incapaz de conectar ou manter conexão com o servidor " "Citadel. Se possível, reporte esse problema para seu administrador de " "sistema." #: ../../webcit.c:688 msgid "Read More..." msgstr "Continuar..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' não é uma sala Wiki." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Não há página de nome '%s' aqui." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Selecione o link 'Editar essa página' no banner da sala se você quiser criar " "essa página." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Data" #: ../../wiki.c:143 msgid "Author" msgstr "Autor" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(exibir)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Versão atual" #: ../../wiki.c:184 msgid "(revert)" msgstr "(voltar)" #: ../../wiki.c:246 msgid "Page title" msgstr "Título da página" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Formato de hora" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "A partir de" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Data Inicial" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Data Final" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Data/Hora" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notas:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "anterior" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "próximo" #: ../../calendar_view.c:750 msgid "Week" msgstr "Semana" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Horas" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Assunto" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Evento em curso" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "editar" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Eu não sei como exibir " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(sem assunto)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "A fila está vazia." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Você não tem permissão para visualizar esse recurso." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Personalizar a barra de ícones" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Exibir ícones como:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "imagens e texto" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "apenas imagens" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "apenas texto" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Selecione os ícones que deseja ver no menu 'barra de ícones' no lado " "esquerdo da tela" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Sim" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Não" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logotipo do site" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Um ícone descrevendo esse site" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Sua página de resumo" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Correio (caixa de entrada)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Um atalho para sua caixa de entrada" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Seu caderno de endereços pessoal" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Suas notas pessoais" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Um atalho para seu calendário pessoal" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Tarefas" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Um atalho para sua lista de tarefas pessoal" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Salas" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Clicar nesse ícone exibe uma lista de todas as salas (ou pastas) acessíveis." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Quem está online?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "Clicar nesse ícone exibe uma lista de todos os usuários conectados." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Bate-papo" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Clicar nesse ícone inicia um bate-papo em tempo real com outros usuários da " "mesma sala." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Opções avançadas" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Acesso ao menu completo de funções do Citadel" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Logotipo do Citadel" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Mostra o ícone 'Powered by Citadel'" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Menu de administração do sistema" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Admin da sala: " #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Nomes simbólicos do computador local" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Domínios do diretório" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Servidores inteligentes" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Servidores inteligentes" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "Computadores RBL" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "Computadores SpamAssassin" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Domínios mascaráveis" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Mudanças feitas nessa tela não terão efeito até você reiniciar o servidor " "Citadel." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Serviços de rede" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Endereço IP a ser usado pelo servidor (0.0.0.0 para 'qualquer um')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "Porta para requisições XMPP (Jabber) (-1 para desativar)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" "Porta para requisições servidor-servidor XMPP (Jabber) (-1 para desativar)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Controles de afinação-fina do servidor" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Extensão máxima de mensagem" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Timeout para conexões ociosas com o servidor (em segundos)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Frequência do \"network run\" (em segundos)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Número máximo de sessões correntes (0 = sem limites)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Número mínimo de \"worker threads\"" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Número máximo de \"worker threads\"" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Exlcuir automaticamente logs de banco de dados já aplicados" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Criar uma nova sala" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Nome da sala: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Reside no andar: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Visualização padrão para sala: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Tipo da sala:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Público (aparece automaticamente para todos)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privado - escondido (acessível apenas para quem sabe o nome)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privado - requer senha: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privado - apenas por convite" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Pessoal (caixa de correio pessoal)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Criar nova sala" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Log off" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Refazer log in" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Esquecer ou se desinscrever da sala atual" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "Se você selecionou esta opção," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 #, fuzzy msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" "Se você selecionar essa opção, %s irá desaparecer da sua lista de " "salas. Gostaria mesmo de fazer isso?
    \n" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Esquecer essa sala" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "AVISO: O JavaScript do seu navegador está desabilitado. Muitas funções deste " "sistema não funcionarão adequadamente." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Nome do usuário" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Sala" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "De host" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Autor" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Carregando mensagens do servidor, por favor aguarde" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Abrir em uma nova janela" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Mover" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Copiar" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Imprimir" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Salas esquecidas" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "" "Clique em qualquer sala para 'des-esquecê-la' e entrar nela em seguida.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Você tem uma ou mais mensagens instantâneas esperando porém a janela do " "Citadel Instant Messenger falhou em abrir. A causa provável é a ação de um " "bloqueador de 'popups' instalado. Configure seu bloqueador de 'popups' para " "permitir 'popups' desse site se quiser continuar a receber mensagens " "instantâneas." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Modificar suas preferências e configurações" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Atualizar suas informações para contato" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Modificar sua senha" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Entre sua 'bio'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Editar sua foto online" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Visualizar/editar filtros de correio do lado do servidor" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Editar suas configurações de 'push email'" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "Gerencie seus OpenIDs" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 #, fuzzy msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "O servidor Citadel deverá ser reiniciado, Ele voltará em um minuto." #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Visualizar" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Download" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Configuração Global" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Manejamento de contas de usuário" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Desligar o Citadel" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Salas e andares" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Ir para uma sala oculta" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Se você souber o nome de um oculto (acho que o nome) ou sala com senha, você " "pode entrar naquela sala, digitando o seu nome abaixo. Depois de ganhar " "acesso a uma sala privada, ele irá aparecer na sua listagem de sala regular " "assim que você não precisa voltar sempre aqui." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Digite nome da sala:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Digite senha da sala:" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "Ir" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "de " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "até" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Assunto:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Email Push" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Host do servidor Funambol (em branco para desativar" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Porta do servidor Funambol " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Fonte de sincronia Funambol" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Det. autenticação Funambol (user:pass)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "Ferramenta de pager externa (em branco para desativar)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Visualização em árvore (pastas)" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Visualização em tabela (salas)" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 horas (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 horas" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Domingo" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Segunda" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Sem assinatura" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Modo seguro" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Modificar" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Preferências e configurações" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Comandos básicos" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Informações sobre você" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Comandos avançados de sala" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Editar conta de usuário: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Nome do usuário:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Senha" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Permissão para enviar email na Internet" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Número de logins" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Mensagens enviadas" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Nível de acesso" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Número ID do usuário" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Data e hora do último login" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Excluir automaticamente após essa quantidade de dias" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "Porta para requisições POP3 (-1 para desativar)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "Porta para requisições POP3 sobre SSL (-1 para desativar)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 #, fuzzy msgid "POP3 fetch frequency in seconds" msgstr "Frequência do \"network run\" (em segundos)" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 #, fuzzy msgid "POP3 fastest fetch frequency in seconds" msgstr "Frequência do \"network run\" (em segundos)" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Visualizar a fila SMTP externa" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Atualizar essa página" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Servidor remoto" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Estado:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "continuar processando" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Mensagem para seus Usuários:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Administração" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Configuração" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Política de vencimento de mensagens" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Controles de acesso" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Compartilhamento" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Serviço de correio em massa" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Recuperação de mensagens remotas" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Sua barra de ícones foi atualizado. Por favor, selecione qualquer uma das " "suas escolhas para continuar." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" "Você precisa forçar a atualização (SHIFT-F5)> para que as mudanças tenham " "efeito" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Itens de configuração geral do sítio" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Mudar Logotipo de Login" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Mudar Logotipo de Logout" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Nome do nódulo" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Nome de domínio completamente expressado (FQDN)" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Nome legível do nódulo" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Número do telefone" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Prompt do paginador (para clientes em modo texto)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Local geográfico desse sistema" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Nome do administrador do sistema" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Zona horária para itens de calendário sem zona definida" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Sala compartilhada por rede" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Adicionar novo nódulo" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Segredo compartilhado" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Nome do computador ou endereço IP" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Número da porta" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Adicionar nódulo" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(terminar)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Editar configuração" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Editar entrada" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "ocioso desde" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "Minutos" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Incerto" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(Editar)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Excluir)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Nenhuma nova mensagem." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Nova página inicial" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Sua página inicial foi alterada." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Nota: isto não altera a página inicial do seu navegador. Ele altera a " "página que você começa quando você logar no" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Postar um comentário" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Confirmar exclusão" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Tem certeza que quer excluir " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Adicionar, modificar e excluir contas de usuários" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 #, fuzzy msgid "(hosts running the ClamAV clamd service)" msgstr "(computadores rodando o serviço SpamAssassin)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Enviar" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Reinicie o Citadel" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "de" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anônimo" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "em" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Para:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Assunto (opcional):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- mensagem encaminhada ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Fixar mensagem" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "Salvar em rascunhos" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Anexos:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "Excluir essa mensagem?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Lista de salas" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Pesquisar: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Resultados do comando" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "Entre outro comando" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "Retornar ao menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Usuários ativos" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Perfil do usuário" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Clique aqui para mandar uma mensagem instantânea para %s" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "Imagens em %s" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Editar ou excluir usuários" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 #, fuzzy msgid "You need to be aide to view this." msgstr "Você não tem permissão para visualizar esse recurso." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Adicionar usuários" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Editar ou Remover usuários" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Espere enquanto o servidor Citadel é reiniciado... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Lista de usuários para %s" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Nome de Usuário" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Número" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Nível de Acesso" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Último Login" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Número total de Logins" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Número total de Posts" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Carregando" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Sua OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "Verificado com sucesso" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "No entanto, o nome do usuário" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "conflito com um usuário existente." #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Por favor especifique o nome do usuário que você gostaria de usar." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Sair" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Política de vencimento de mensagens para essa sala" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Usar a política padrão para esse andar" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Nunca expirar mensagens automaticamente" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Expirar por número de mensagens" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Expirar por idade das mensagens" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Número de mensagens ou dias: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Política de vencimento de mensagens para esse andar" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Usar o padrão do sistema" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Fechar janela" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Fazer upload de um arquivo:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Tem certeza que quer excluir " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Anexar arquivo" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(excluir)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indexação e Journaling" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Aviso: essas funções utilizam mais recursos do sistema." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Ativar índice de texto inteiro (full text index)" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Realizar journaling de mensagens de email" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Realizar journaling de outras mensagens (não-email)" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Destino (email) de mensagens onde journaling foi realizado" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Arquivos disponíveis para download em" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Fazer upload de um arquivo:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Upload" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Nome do arquivo" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Tamanho" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Conteúdo" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Descrição" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Essa instalação do Citadel foi criada sem suporte para filtros de email na " "parte do servidor (server-side).
    Contate o administrador do sistema se " "você precisa dessa função.
    " #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "novo de" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "mensagens" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Selecione a página: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "Obter mensagens dessas contas POP3 e armazená-las nessa sala:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Servidor remoto" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Manter mensagens no servidor?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 #, fuzzy msgid "Interval" msgstr "Geral" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Adicionar" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Obter as seguintes fontes RSS e armazená-las nessa sala:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "URL do arquivo RSS" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Para criar uma nova conta de usuário, digite o nome de usuário desejado na " "caixa abaixo e clique em 'Criar'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Novo usuário: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Criar" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(domínios mapeados com o Caderno de Endereços Global)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "Lista das páginas Wiki" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(excluir)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Os usuários listados abaixo têm acesso à essa sala. Para excluir um usuário " "da lista de acesso, selecione o nome de usuário da lista e clique em " "'Chutar'." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Chutar" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Para permitir acesso de outro usuário à essa sala, digite o nome do usuário " "na caixa abaixo e clique em 'Convidar'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Convidar:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Convidar" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "Usuário" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Usuários" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Caderno de Endereços" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Para editar uma conta de usuário existente, selecione o nome de usuário na " "lista e clique em 'Editar'." #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Excluir usuário" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "Excluir esse usuário?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Excluir regra" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Apresentação" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(computadores rodando o serviço SpamAssassin)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Essa é uma atualização de '%s' que já está no seu calendário." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Esse evento entrará em conflito com '%s' que já está no seu calendário." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Quando novas mensagens chegarem: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Manter em minha caixa de entrada sem filtragem" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filtrar de acordo com as regras abaixo" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Filtrar através de um script editado manualmente (apenas para usuários " "avançados)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Mensagens novas não serão filtradas por nenhum script" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Adicionar regra" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "O script ativo atualmente é: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Adicionar ou excluir scripts" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Configurar o conector LDAP para o Citadel" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "NOTA: Esse servidor Citadel foi criado sem suporte a LDAP. Essas opções não " "terão efeito." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Nome do servidor LDAP (deixe em branco para desabilitar)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Número da porta do servidor LDAP (deixe em branco para desabilitar)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Base DN" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Bind DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Senha para bind DN" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Editar ou excluir essa sala" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Ir para uma sala 'escondida'" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Zap (esqueça) esta sala" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Listar todas as salas esquecidas" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Ler mensagens novas" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "ID da mensagem" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Data/hora do envio" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "Última tentativa" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Recipientes" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Lendo #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "antigas para mais novas" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "novas para mais antigas" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Por favor espere enquanto seus usuários estão sendo 'pageados', o servidor " "Citadel será reiniciado logo após... " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "editar" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Responder" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "ResponderComCitação" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "ResponderTodos" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Encaminhar" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Cabeçalhos" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Editar configurações globais do site" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Nomes de domínios e configuração de correio eletrônico (Internet)" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Configurar replicação com outros computadores Citadel" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Mostra o ícone 'Powered by Citadel'" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Idioma:" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Ir para a caixa de entrada (inbox)" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Correio" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Ir para o seu calendário pessoal" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Ir para seu caderno de endereços pessoal" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Ir para notas pessoais" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Ir para sua lista de tarefas pessoal" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Listar todas as suas salas acessíveis" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Ver quem está online agora" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Usuários online" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" "Menu de opções avançado: Comandos avançados de sala, Informações de conta, e " "Bate-papo" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Avançado" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Funções administrativas da sala e sistema" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "personalizar esse menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Entrar" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "mudar para lista de salas" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "mudar para menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Minhas pastas" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "Porta para requisições IMAP (-1 para desativar)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "Porta para requisições IMAP sobre SSL (-1 para desativar)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Manter cabeçalhos originais no IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Upload de imagem" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Você pode fazer upload de uma imagem diretamente do seu computador" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Selecione um arquivo para fazer upload:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Limpar campos" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Inscrição da lista" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Inscrever/desinscrever da lista" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Pedido de confirmação enviado" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "em " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 #, fuzzy msgid " mailing list." msgstr "Serviço de correio em massa" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Voltar..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "ERRO:" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "de " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "Serviço de correio em massa" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Voltar..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Pedido de confirmação enviado" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Configuração" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Nome da tarefa" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Endereço de e-mail preferencial" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Entrar mensagem de texto:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Formato de hora" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "nome da sala: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Se privado, fazer outros usuários esquecer a sala" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Usuários preferenciais apenas" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Sala somente leitura" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" "Todos os usuários com permissão para postar também podem remover mensagens" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Sala diretório de arquivos" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Nome do diretório: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Uploads permitidos" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Downloads permitidos" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Diretório visível" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Sala compartilhada por rede" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanente (não se auto-destrói)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" "Assunto Obrigatório (Força usuários a especificar um assunto para a mensagem)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Mensagens anonimas" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Sem mensagens anonimas" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Todas as mensagens são anonimas" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Perguntar ao usuário ao entrar mensagens" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Admin da sala: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Excluir essa entrada?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Não compartilhado com" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Compartilhado com" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Nome do nódulo remoto" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Nome da sala remota" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Ações" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Para compartilhar uma sala, a mesma deve ser compartilhada dos dois lados. " "Adicionar um 'node' a lista de 'compartilhados' faz as mensagens saírem, mas " "para receber mensagens, outros 'nodes' também devem ser configurados para " "mandar mensagens fora de seus sistemas.
  • Se o nome da sala está em " "branco, assume-se que o nome da sala é igual ao do 'node' remoto.
  • Se o " "nome da sala é diferente, o 'node' remoto também deve configurar o nome da " "sala aqui.
    \n" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Manter mensagens no servidor?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Adicionar/modificar/excluir andares" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Número do andar" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Nome do andar" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Numero de salas" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "CSS do andar" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Criar novo andar" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Mover regra para cima" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Mover regra para baixo" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Excluir regra" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Se" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Para ou Cc" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Responder para (reply-to)" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Reenviado-De" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Reenviado-Para" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Envelope De" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Envelope Para" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Estatus" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "List-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Tamanho da mensagem" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Todas" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "contém" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "não contém" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "é" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "não é" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "bate" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "não bate" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Todas as mensagens)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "é maior que" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "é menor que" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "anos" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Manter" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Descartar silenciosamente" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Rejeitar" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Mover mensagens para" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Encaminhar para" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Férias" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Mensagem:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "e depois" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "continuar processando" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "parar" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(domínios os quais esse computador recebe mensagens)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Configuração da rede" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Nódulos atualmente configurados" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(excluir andar)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(editar gráfico)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Modificar nome" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "Modificar CSS" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Configurar vencimento automático de mensagens antigas." #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Essas configurações poderão ser ignoradas dependendo das configurações da " "sala ou andar." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Hora a rodar exclusão automática no banco de dados" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Política de vencimento padrão para salas públicas" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "Política de vencimento padrão para caixas de mensagens privadas" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Usar a mesma política das salas públicas" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Tempo padrão para exclusão automática de usuário (dias)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Tempo padrão para exclusão automática de sala (dias)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Tem certeza que quer remover essa sala?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Remover essa sala" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "Definir ou modificar o ícone para o banner dessa sala" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "Editar o arquivo Info dessa sala" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Entrar um comando de servidor" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Essa tela permite que você entre comandos de servidor Citadel que não são " "suportados pelo WebCit. Se você não sabe o que isso significa, essa tela não " "será de muita utilidade para você." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Entre comando:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 #, fuzzy msgid "Detected host header is " msgstr "Cabeçalho detectado do computador é %s://%s" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Entre comando:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Des-compartilhar" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(computadores rodando um 'Realtime Blackhole List')" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Configurações de controle de acesso e política do sítio" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Permitir que aides esqueçam salas" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Mover mensagens de usuários problema para a quarentena" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Nome da sala de quarentena" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Nome da sala para logar páginas" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 #, fuzzy msgid "Authentication mode" msgstr "Modo de autenticação" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "contém" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 #, fuzzy msgid "Host based" msgstr "Nome do host:" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Diretório Ativo)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "Permitir acesso de convidado anônimo" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "Nome do usuário mestre (em branco para desativar)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Senha do usuário mestre" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Nível de acesso inicial para novos usuários" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Nível de acesso necessário para criar salas" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Permitir que criadores de salas privadas tenham status de aide das mesmas." #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 #, fuzzy msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "Permitir que criadores de salas BLOG tenham status de aide das mesmas." #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Restringir acesso a correio eletrônico da Internet" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" "Desabilitar criação de conta por responsabilidade do usuário (self-service)" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "Dica: não selecione os dois" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Requerer registro de usuários novos" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Adicionar, modificar ou excluir andares" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Visualizar como:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Excluir essa entrada?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Conectado como" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Não está conectado." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Você deve estar logado para acessar esta página." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Log in usando um nome de usuário e senha" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Senha:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Novo usuário? Cadastre-se agora" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "entre com seu nome e senha que você deseja usar, e clique em "Novo " "Usuário." " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Log in usando OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "URL do OpenID:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 #, fuzzy msgid "Log in using Google" msgstr "Log in usando OpenID" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Log in usando OpenID" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 #, fuzzy msgid "Log in using AOL or AIM" msgstr "Log in usando OpenID" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Por favor espere" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Adicionar novo script" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Para criar um novo script, digite o nome do script desjado na caixa abaixo e " "clique em 'Criar'." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Nome do script: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Editar scripts" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Retornar para a tela de edição de scripts" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Excluir scripts" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Para excluir um script existente, selecione o nome do script na lista e " "clique em 'Excluir script'." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Reiniciar agora" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Reiniciar após 'pagear' usuários" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Reiniciar quando todos os usuários estiverem ociosos" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 #, fuzzy msgid "Configure Push Email" msgstr "Email Push" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Configurações de 'push email' e SMS" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "Se você souber o nome de um oculto (acho que o nome) ou sala com senha, você " "pode entrar naquela sala, digitando o seu nome abaixo. Depois de ganhar " "acesso a uma sala privada, ele irá aparecer na sua listagem de sala regular " "assim que você não precisa voltar sempre aqui." #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "Alternativamente, se o administrador configurou isto, o Citadel pode enviar " "uma mensagem de texto para você quando chegar uma nova mensagem." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 #, fuzzy msgid "Notify Funambol server" msgstr "Porta do servidor Funambol" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Mandar mensagem instantânea para: " #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" "(Use formato internacional, without any leading zeros, spaces or hypens, " "like +61415011501)" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" "Use regime de notificação personalizada configuradas pelo administrador" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "Não envie notificações" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "desenvolvido por" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "Porta para requisições SMTP MTA (-1 para desativar)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "Porta para requisições SMTP MSA (-1 para desativar)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "Porta para requisições SMTP sobre SSL (-1 para desativar)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Realizar checagens RBL na conexão ao invés de após RCPT" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Marque a mensagem como spam, ao invés de rejeitá-la" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 #, fuzzy msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "Permitir que clientes SMTP não autenticados personifiquem (spoof) os " "domínios desse sítio" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Corrigir linhas 'De:' forjadas durante autenticação SMTP" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 para desabilitar" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "Porta para requisições ManageSieve (-1 to disable)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Configuração do sítio" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Geral" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Configuração da barra de ícones" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indexação/Journaling" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Acesso" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "Diretório" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Excluidor automático" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "O conteúdo dessa sala será mandado como mensagens individuais para " "os seguintes recipientes:

    \n" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "O conteúdo dessa sala será mandado de forma resumida para os " "seguintes recipientes:

    \n" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "Lista" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "Resumo" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Adicionar recipientes de Contatos ou outros cadernos de endereços" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Permitir que não participantes mandem mensagens para essa sala." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Publicação de posts na sala requer permissão do Admin." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" "Permitir requisições para inscrever/desinscrever de responsabilidade do " "usuário (self-service)" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "O endereço URL para se inscrever/desinscrever é: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Assunto" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Página de resumo de %s" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Mensagens" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Hoje no seu calendário" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Quem está online agora" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Sobre esse servidor" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "Afinação" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "quinto" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "e depois" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Nome do administrador do sistema" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Você realmente quer terminar essa sessão?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Usuário atualmente on line " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "Clique em um nome para ler os dados de usuário. Clique aqui" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "para enviar uma mensagem instantânea para este usuário." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Mensagens antigas" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Novas mensagens" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Compartilhar" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domínios cujos usuários estão autorizados a mascarar)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Digite nova senha:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Digite novamente para confirmar:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Modificar senha" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Editar a visualização de sua sessão" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Essa tela permite que você modifique a maneira que sua sessão aparece na " "tela 'Quem está online'. Para desligar um nome 'falso' que você configurou " "previamente, clique no botão 'modificar' apropriado sem digitar nada na " "caixa correspondente. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Nome da sala:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Mudar nome da sala" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Nome do host:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Mudar nome do host" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Mudar nome do usuário" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "Histórico de edições para esta página" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Confirmar a movimentação da mensagem" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Mover essa mensagem para:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Listar salas conhecidas" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Aonde posso ir daqui?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Ir para próxima sala" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "...com mensagens não lidas" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Pular para próxima sala" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(volte aqui mais tarde)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Desfazer 'ir'" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "oops! Voltar ao " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Ler mensagens novas" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "...nessa sala" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Ler todas as mensagens" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...antigas e novas" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Colocar uma mensagem" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(fixar mensagens nessa sala)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Biblioteca de arquivos" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Listar arquivos disponíveis para download)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Página resumo" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Resumo da minha conta" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Lista de usuários" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(todos os usuários registrados)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Adeus!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" "(se presente, encaminhar todas as mensagens para computadores externos para " "um desses computadores)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Visualizar contatos" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Adicionar novo contato" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Visualização por dia" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Visualização por mês" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Adicionar novo evento" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Lista de calendários" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Visualizar tarefas" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Adicionar nova tarefa" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Visualizar notas" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Adicionar nova nota" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Atualizar lista de mensagens" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Escrever mensagem" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Página inicial do Wiki" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Editar essa página" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Histórico" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "posts recentes" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Deixar todas as mensagens marcadas como não lidas, ir para a próxima sala " "com mensagens não lidas." #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Pular essa sala" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Marcar todas as mensagens como lidas, ir para a próxima sala com mensagens " "não lidas." #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Salvar modificações" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Você está se inscrevendo em %s na lista %s. O servidor " #~ "da lista lhe enviou um link para você confirmar sua inscrição. Esse " #~ "passo extra previne que outros lhe inscrevam em listas sem seu " #~ "consentimento.

    Clique no link que foi mandado para você e sua " #~ "inscrição será confirmada.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "AVISO: Falha ao analisar a Configuração do Servidor; Você quer executar " #~ "um novo citserver?" #~ msgid "There is no room called '%s'." #~ msgstr "Não há sala de nome '%s'." #~ msgid "Network" #~ msgstr "Rede" #~ msgid "Tuning" #~ msgstr "Afinação" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Destruir mensagens excluídas por IMAP instantâneamente" #~ msgid "A script by that name already exists." #~ msgstr "Um script com esse nome já existe." #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "Um novo script foi criado. Volte para a tela de edição de scripts para " #~ "ativá-lo." #~ msgid "Delete script" #~ msgstr "Excluir script" #~ msgid "Delete this script?" #~ msgstr "Excluir esse script?" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Você está conectado à %s, rodando %s com %s, server build %s, e " #~ "localizado em %s. Seu administrador de sistema é %s." #~ msgid "Yes with users list" #~ msgstr "Sim com lista de usuários" #~ msgid "Room list" #~ msgstr "Lista de salas" #~ msgid "View as room list" #~ msgstr "Ver na lista de salas" #~ msgid "View as folder list" #~ msgstr "Ver como lista de pastas" #~ msgid " - powered by Citadel" #~ msgstr " - powered by Citadel" #, fuzzy #~ msgid "uname" #~ msgstr "Nome do arquivo" #, fuzzy #~ msgid "text" #~ msgstr "próximo" #, fuzzy #~ msgid "name" #~ msgstr "Nome do arquivo" #, fuzzy #~ msgid "pname" #~ msgstr "Nome do arquivo" #, fuzzy #~ msgid "password" #~ msgstr "Senha" #, fuzzy #~ msgid "pass" #~ msgstr "Tarefas" #, fuzzy #~ msgid "authbox" #~ msgstr "Autor" #, fuzzy #~ msgid "display: none" #~ msgstr "Nome para visualização:" #~ msgid "Your password was not accepted." #~ msgstr "Sua senha não foi aceita" #~ msgid "If you already have an account on" #~ msgstr "Se você já tiver uma conta ativa" #~ msgid "enter your user name and password and click "Log in."" #~ msgstr "entre com seu usuário e senha e clique em "Log in."" #~ msgid "Please log off properly when finished. " #~ msgstr "Por favor efetue o log off quando terminar " #~ msgid "See the" #~ msgstr "Veja o" #~ msgid "recommended browser list" #~ msgstr "lista de navegação recomendada" #~ msgid "" #~ "if you have trouble using Webcit.
  • You must have cookies " #~ "turned on. " #~ msgstr "" #~ "se você tem problemas ao usar o Webcit.
  • Você tem que ativar os " #~ "cookies. " #~ msgid "" #~ "Also keep in mind that if your browser is configured to block pop-up " #~ "windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Lembre-se também que se seu browser está configurado para bloquear " #~ "janelas pop-up, você não estará habilitado para receber quaisquer " #~ "mensagens instantâneas." #~ msgid "Enter your OpenID URL and click "Log in"." #~ msgstr "Entre com sua URL do OpenID e clique em "Log in"." #~ msgid "Click here to learn what OpenID is and how Citadel is using it." #~ msgstr "" #~ "Clique aqui para aprender o que é o OpenID e como a Citadel está usando " #~ "ele." #~ msgid "Log off now?" #~ msgstr "Realizar log off agora?" #~ msgid "%d new of %d messages%s" #~ msgstr "%d mensagens novas de um total de %d%s" #~ msgid "(nothing)" #~ msgstr "(nada)" #~ msgid "unexpected end of message" #~ msgstr "fim de mensagem inesperado" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "Um erro ocorreu ao tentar configurar o 'soquete' do bate-papo." #~ msgid "Now exiting chat mode." #~ msgstr "Saindo do modo bate-papo." #~ msgid "Help" #~ msgstr "Ajuda" #~ msgid "List users" #~ msgstr "Listar usuários" #~ msgid "No messages here." #~ msgstr "Sem mensagens aqui." #, fuzzy #~ msgid "no more messages" #~ msgstr "Mensagens anonimas" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "Erro ao obter fonte RSS: não foi possível achar mensagens\n" #, fuzzy #~ msgid "%s from" #~ msgstr "de " #, fuzzy #~ msgid "%s in %s" #~ msgstr "Imagens em %s" #, fuzzy #~ msgid "" #~ "
    • Enter your OpenID URL and click "Log in".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "
    • Se você já tem uma conta em %s, digite seu nome de usuário " #~ "e senha e clique em "Log in."
    • Se você for um novo " #~ "usuário, digite o nome de usuário e senha desejados, e clique em " #~ ""Novo Usuário "
    • Se possível, faça o "log off " " #~ "quando terminar de usar o sistema.
    • Seu navegador deverá suportar " #~ "frames e cookies.
    • Se seu browser estiver configurado " #~ "para bloquear pop-ups, você não poderá receber mensagens " #~ "instantâneas.
    " #, fuzzy #~ msgid "" #~ "enter your user name and password and click "Log in."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "
    • Se você já tem uma conta em %s, digite seu nome de usuário " #~ "e senha e clique em "Log in."
    • Se você for um novo " #~ "usuário, digite o nome de usuário e senha desejados, e clique em " #~ ""Novo Usuário "
    • Se possível, faça o "log off " " #~ "quando terminar de usar o sistema.
    • Seu navegador deverá suportar " #~ "frames e cookies.
    • Se seu browser estiver configurado " #~ "para bloquear pop-ups, você não poderá receber mensagens " #~ "instantâneas.
    " #~ msgid "Find out more about Citadel" #~ msgstr "Veja mais sobre o Citadel" #~ msgid "CITADEL" #~ msgstr "CITADEL" #~ msgid "Customize this menu" #~ msgstr "Personalizar esse menu" #~ msgid "Internet configuration" #~ msgstr "Configuração da internet" #~ msgid "of %d messages." #~ msgstr "de %d mensagens" #~ msgid " from " #~ msgstr " de " #~ msgid " in " #~ msgstr " em " #~ msgid "Edit node configuration for " #~ msgstr "Editar configuração do nódulo para" #~ msgid "" #~ "Postfix TCP " #~ "Dictionary Port (-1 to disable)" #~ msgstr "" #~ "Porta TCP para " #~ "\"Dicionário Postfix\" (-1 para desativar)" #~ msgid "ERROR: could not open template " #~ msgstr "ERRO: não foi possível abrir o \"template\"" #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Essa mensagem contém informações de calendário/agenda, mas suporte " #~ "para calendários não está disponível para esse sistema em particular. " #~ "Pergunte para o administrador do sistema para instalar uma nova versão do " #~ "serviço para web Citadel com calendários instalados.
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Não foi possível exibir um item do calendário. Isso ocorreu porque o " #~ "serviço WebCit não foi instalado com suporte para calendários. Contate o " #~ "administrador do sistema.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Não foi possível exibir esse item \"para fazer\".Isso ocorreu porque o " #~ "serviço WebCit não foi instalado com suporte para calendários. Contate o " #~ "administrador do sistema.
    \n" #~ msgid "Day: " #~ msgstr "Dia: " #~ msgid "Year: " #~ msgstr "Ano: " #~ msgid "The calendar view is not available." #~ msgstr "A visualização por calendário não está disponível" #~ msgid "The tasks view is not available." #~ msgstr "A visualização por tarefa não está disponível" #~ msgid "Gateway domains" #~ msgstr "Domínios do gateway" #~ msgid "(domains whose subdomains match Citadel hosts)" #~ msgstr "(domínios cujos subdomínios contém computadores Citadel)" #~ msgid "(This server does not support task lists)" #~ msgstr "(Esse servidor não suporta listas de tarefas)" #~ msgid "(This server does not support calendars)" #~ msgstr "(Esse servidor não suporta calendários)" webcit-dfsg.orig/po/webcit/kk.po0000644000175000017500000036504413223341037016653 0ustar michaelmichael# Kazakh translation for citadel # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-12-26 10:06+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Kazakh \n" "Language: kk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-08-01 04:34+0000\n" "X-Generator: Launchpad (build 15719)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" webcit-dfsg.orig/po/webcit/ar.po0000644000175000017500000050340313223341037016641 0ustar michaelmichael# Arabic translation for citadel # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-03-05 06:12+0000\n" "Last-Translator: husamuldeen \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-03-06 05:06+0000\n" "X-Generator: Launchpad (build 16514)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "حالة الوجود غير معروفة" #: ../../availability.c:169 msgid "free" msgstr "خالي" #: ../../availability.c:179 msgid "BUSY" msgstr "مشغول" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "تم الغاء تحميل الرسومات" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "لم تقم برفع ملف" #: ../../graphics.c:106 msgid "your photo" msgstr "صورتك" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "ايقونة هذه الغرفة" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "صورة التحية لواجهة الدخول" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "صورة بنر الخروج" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "ايقونة هذا الطابق" #: ../../tasks.c:93 msgid "Completed?" msgstr "اكتمل" #: ../../tasks.c:95 msgid "Name of task" msgstr "اسم المهمة" #: ../../tasks.c:97 msgid "Date due" msgstr "الى تاريخ" #: ../../tasks.c:99 msgid "Category" msgstr "القسم" #: ../../tasks.c:101 msgid "Show All" msgstr "إظهار الكل" #: ../../tasks.c:224 msgid "Edit task" msgstr "تحرير مهمة" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "الملخص:" #: ../../tasks.c:259 msgid "Start date:" msgstr "تاريخ البداية:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "بلا تاريخ" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "أو" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "الوقت الازم" #: ../../tasks.c:289 msgid "Due date:" msgstr "تاريخ الاستحقاق:" #: ../../tasks.c:318 msgid "Completed:" msgstr "اكتمال" #: ../../tasks.c:329 msgid "Category:" msgstr "الصنف" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "الوصف:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "حفظ" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "حذف" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "إلغاء" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "مهمة غير معنونة" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d تعليقات" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "الرابط الثابت" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "احدث المشاركات" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "مشاركات أقدم" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "تحرير %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "في النص المهيئ لقارئة المتصفخ الخط الجديد يتم فرض خط جديد فارغ" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "حفظ التغييرات" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "تم الالغاء %s لم يتم حفظ البيانات" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " تم الحفظ" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "معلومات الغرفة" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "الساعة " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "الدقائق " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "الحالة غير معروفة" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "اتخاذ اللازم" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "مقبول" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "الغاء" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "الاطر النسبية" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "تفويض" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "اكتمال" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "قيد التنفيذ" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(بدون)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "ادارة الحساب / اسم المعرف" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "هل انتة متاكد تريد مسح هذا الاسم المعرف" #: ../../openid.c:47 msgid "(delete)" msgstr "مسح" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "اضافة معرف - مستخدم " #: ../../openid.c:58 msgid "Attach" msgstr "إرفاق ملف" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "غير مسموح للتوثيق باستخدتم هذا المعرف - المستخدم %s" #: ../../summary.c:128 msgid "(None)" msgstr "(بدون)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "لاشيء" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "اذهب لللصفحة " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "أول" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "آخر" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "ealloc() خطاء! لانستطيع الحصول %d بايت: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "تم الحذف" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "مستخدم جديد" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "مستخدم مشاكس" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "مستخدم داخلي" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "مستخدم شبكة" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "مستخدم مفضل" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "مدير" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "حدث خطأ." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "التحقق من صحة المستخدمين" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "ولا مستخدم مطلوب التحقق من صحته في هذا الوقت" #: ../../auth.c:617 msgid "very weak" msgstr "جدا ضعيف" #: ../../auth.c:620 msgid "weak" msgstr "ضعيف" #: ../../auth.c:623 msgid "ok" msgstr "حسنا" #: ../../auth.c:627 msgid "strong" msgstr "قوي" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "مستوى الوصول الحالي : %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "اختار مستوى الوصول لهذا المستخدم" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "تم الالغاء لم يتم تغير كلمة السر" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "لم يتم التطابق لكلمة السر , ولم يتم تغير كلمة السر" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "غير مسموح ان تكون كلمة السر فارغة" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "دعوة لقاء" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "المدعون اجابوا دعوتك" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "نشر الحدث" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "هذا هو نوع غير معروف من عنصر التقويم" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "الموقع :" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "تاريخ:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "تاريخ ووقت البدء" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "تاريخ الانتهاء" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "تكرار" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "هذا هو الحدث المتكرر" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "الحاضرين" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "هذا تخديث لل '%s' والذي هوة موجود اصلا في تقويمك" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "هذا تخديث سيتعارض لل '%s' والذي هوة موجود اصلا في تقويمك" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "تحديث:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "تضارب" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "لاتوجد ترجمة لحد الان" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "موافق" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "مؤقت" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "رفض" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "اضغط تحديث لقبول هذه الاجابة وتحديث التقويمr." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "حدّث" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "تجاهل" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "حصل خطا في تحليل عنصر التقويم" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "لقد قبلت دعوة الاجتماع وقد تم ادخالها في تقويمك" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "لقد قبلت هذه الدعوة مبدئيا وتم كتابتها في التقويم الخاص بك" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "لقد رفضت دعوة الاجتماع ولم يتم اضافتها الى التقويم الخاص بك" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "تم ارسال اجابتك لمنظم الاجتماع" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "تم تحديث التقويم ليعكس اجابة الطلب" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "لقد اختاريت عدم ارسال اجابة للطلب و لم يتم تحديث التقويم" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "يبدء يوم عرض التقويم في" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "يتهي يوم عرض التقويم في" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "يبدأ الأسبوع في:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "لقد حصل خطاء عند محاولة استعادة هذا الملف :%s\n" #: ../../event.c:71 msgid "seconds" msgstr "ثوان/ثانية" #: ../../event.c:72 msgid "minutes" msgstr "دقيقة/دقائق" #: ../../event.c:73 msgid "hours" msgstr "ساعات" #: ../../event.c:74 msgid "days" msgstr "أيام" #: ../../event.c:75 msgid "weeks" msgstr "أسابيع" #: ../../event.c:76 msgid "months" msgstr "أشهر" #: ../../event.c:77 msgid "years" msgstr "سنوات" #: ../../event.c:78 msgid "never" msgstr "أبداً" #: ../../event.c:82 msgid "first" msgstr "الأوّل" #: ../../event.c:83 msgid "second" msgstr "ثانية" #: ../../event.c:84 msgid "third" msgstr "الثّالث" #: ../../event.c:85 msgid "fourth" msgstr "الرّابع" #: ../../event.c:86 msgid "fifth" msgstr "الخامس" #: ../../event.c:89 msgid "Event" msgstr "حدث" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "الحضور" #: ../../event.c:168 msgid "Add or edit an event" msgstr "اضف او حرر حدث" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "موجز" #: ../../event.c:222 msgid "Location" msgstr "الموقع" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "أبدء" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "جميع أحداث اليوم" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "نهاية" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "ملاحظات" #: ../../event.c:374 msgid "Organizer" msgstr "المنظِّم" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "انتة المنظم" #: ../../event.c:397 msgid "Show time as:" msgstr "اظهر الوقت ك" #: ../../event.c:420 msgid "Free" msgstr "حرّ" #: ../../event.c:428 msgid "Busy" msgstr "مشغول" #: ../../event.c:445 msgid "(One per line)" msgstr "شخص واحد في كل خط" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "جهات الاتصال" #: ../../event.c:518 msgid "Recurrence rule" msgstr "تكرار الحكم" #: ../../event.c:522 msgid "Repeats every" msgstr "تكرار كل" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "في هذه الايام من الاسبوع" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "في هذه %s%d%s الايام من الشهر" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "في هذه " #: ../../event.c:631 msgid "of the month" msgstr "من هذا الشهر" #: ../../event.c:660 msgid "every " msgstr "كل " #: ../../event.c:661 msgid "year on this date" msgstr "السنة في هذا التاريخ" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "من" #: ../../event.c:717 msgid "Recurrence range" msgstr "تكرار مجموعة" #: ../../event.c:725 msgid "No ending date" msgstr "بلا تاريخ انتهاء" #: ../../event.c:732 msgid "Repeat this event" msgstr "كرر هذا الحدث" #: ../../event.c:735 msgid "times" msgstr "مرات" #: ../../event.c:743 msgid "Repeat this event until " msgstr "كرر هذا الحدث الى " #: ../../event.c:771 msgid "Check attendee availability" msgstr "افحص وجود الحاضرين" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "حدث بغير عنوان" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "اعدادات شريط الايقونات" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "ادخال عنوان خاطء" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " تم المسح" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " تمت الاضافة" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "صلاحية اعلى للسماح بالوصل لهذه الوظيفة" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "يجب تحديد القائمة البريدية للاشتراك بها" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "يجب عليك تحديد العناوين البريدية التي تنوي الاشتراك بها" #: ../../messages.c:73 msgid "ERROR:" msgstr "خطأ:" #: ../../messages.c:91 msgid "Empty message" msgstr "رسالة فارغة" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "تم الالغاء لم يتم اضافة الرسالة" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "تم الالغاء تلقائيا وذلك بسبب كونك حفظت مسبقا" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "فشل الحفظ للمسودات " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "رفض اضافة رسالة فارغة\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "تم حفظ الرسالة للمسودات\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "تم ارسال الرسالة بنجاح\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "تم نشر الرسالة بنجاح\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "لم يتم نقل الرسالة" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "لقد حصل خطا عندما تم محاولة استرجاع هذا %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "لقد حصل خطا عندما تم محاولة استرجاع هذا %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "ادخال توقيع للرسالة" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "استخدم التوقيع" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "الصفة الافتراضية المستخدمة لعنوان الرسالة" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "عناوين البريد الالكتروني المفضلة" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "الاسم المفضل لرسائل البريد الالكتروني" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "اسم العرض المفضل لوظائف لوحة الإعلانات" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "طريقة عرض البريد الالكتروني" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "اضغط على اي من الملاحضات للتعديل عليها" #: ../../paging.c:29 msgid "Send instant message" msgstr "ارسل رسالة فورية" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "ارسل رسالة فورية الى " #: ../../paging.c:51 msgid "Enter message text:" msgstr "ادخل رسالة نصية" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "إرسال رسالة" #: ../../paging.c:78 msgid "Message was not sent." msgstr "لم يتم ارسال الرسالة" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "تم ارسال الرسالة " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "الغاء لم يتم تغير اي من الاعدادات" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "اجعل هذه صفحة البداية" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "هذه غير مسموح لكي تكون صفحة البداية" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "لم تعود تملك صفحة بداية مختارة" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "صفحة البداية المفضلة" #: ../../roomlist.c:105 msgid "My Folders" msgstr "مجلداتي" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "الغاء لن يتم حفظ البيانات" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "التغيرات التي قمت بها تم حفظها" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "المستخدم '%s' تم طرده من الغرفة '%s'." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "المستخدم '%s' تم دعوته '%s'." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "الغام لم يتم انشاء غرفة جديدة" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "تم مسح الطابق" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "تم انشاء طابق جديد" #: ../../roomops.c:1363 msgid "Room list view" msgstr "عرض قائمة الغرفة" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "اضهر الطوابق الفارغة" #: ../../roomtokens.c:570 msgid "file" msgstr "ملف" #: ../../roomtokens.c:572 msgid "files" msgstr "ملفات" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "نشرة الأخبار لمجلس الإدارة" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "مجلد البريد" #: ../../roomviews.c:55 msgid "Address Book" msgstr "دفتر العناوين" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "التقويم" #: ../../roomviews.c:57 msgid "Task List" msgstr "قائمة المهام" #: ../../roomviews.c:58 msgid "Notes List" msgstr "قائمة الملاحظات" #: ../../roomviews.c:59 msgid "Wiki" msgstr "المعرفة" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "قائمة التقويم" #: ../../roomviews.c:61 msgid "Journal" msgstr "السجل اليومي" #: ../../roomviews.c:62 msgid "Drafts" msgstr "المسودّات" #: ../../roomviews.c:63 msgid "Blog" msgstr "المدونة" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "هذا الخادم يقوم بخدمة اقصى عدد ممكن من المستخدمين ولا يقبل محاولات دخول " "جديدة في هذا الوقت يرجى المحاولة لاحقا او الاتصال بمدير النظام ." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "استقبال اجابة غير متوقعة من سيرفر كاتاديل مخرج الحسابات" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "تم تحديث اعدادتك للخادم" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "المحاولة الاولى معلقة" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "حدث خطأ أثناء محاولة إنشاء أو تحرير إدخال دفتر العناوين هذا." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "لم يتم حفظ التغيرات" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "تم انشاء مستخدم جديد" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "تحاول إنشاء مستخدم جديد من داخل القلعة أثناء تشغيل في وضع المضيف المصادقة " "القائمة. في هذا الوضع، يجب إنشاء مستخدمين جدد على النظام المضيف، وليس داخل " "القلعة" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(بلا اسم)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " عمل" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " الرئيسي" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " الخلية" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "العنوان:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "الهاتف:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "البريد الإلكتروني:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "دفتر العناوين فارغ" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "حدث خطا داخلي" #: ../../vcard_edit.c:940 msgid "Error" msgstr "خطأ" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "تحرير معلومات المستخدم" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "البادئة" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "الاسم الأول" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "الاسم الأوسط" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "الاسم الأخير" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "اللاحقة" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "اسم العرض:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr ": العنوان" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "المنظمة/الشركة:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "صندوق البريد:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "المدينة:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "الولاية:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "الرمز البريدي" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "البلد:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "هاتف المنزل" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "هاتف العمل" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "الهاتف المحمول" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "رقم الفاكس" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "العنوان البريدي الرئيسي" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "عناوين البريد المستعارة" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "غير قادر على الدخول للغرفة لحفظ الرسائل" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "الغاء العملية" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "تعذر فك التشفير الصورة\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "التوثيق مطلوب" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "المصادر التي تحاول الوصول اليها تطلب ادخال اسم المستخدم وكلمة السر لا تستطيع " "الدخول %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "لايستطيع البرنامج الاتصال او البقاء متصلا بخادم كاتديل رجاء ابلغ مدير النظام " "بهذه المشكلة" #: ../../webcit.c:688 msgid "Read More..." msgstr "اقراء المزيد" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' هذه ليست غرفة معرفة" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "لاتوجد صفحة تدعى '%s' هنا" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "اختار تحرير الصفحة واربط مع بنر الغرفة اذا كنت تريد انشاء هذه الصفحة" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "تاريخ" #: ../../wiki.c:143 msgid "Author" msgstr "المؤلف" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "عرض" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "النسخة الحالية" #: ../../wiki.c:184 msgid "(revert)" msgstr "العودة" #: ../../wiki.c:246 msgid "Page title" msgstr "عنوان الصفحة" #: ../../fmt_date.c:306 msgid "Time format" msgstr "نسق الوقت" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "من" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "تاريخ وقت البدء" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "تاريخ الانتهاء" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "الوقت / التاريخ" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "ملاحظات" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "السابقة" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "التّالي" #: ../../calendar_view.c:750 msgid "Week" msgstr "الأسبوع" #: ../../calendar_view.c:752 msgid "Hours" msgstr "الساعات" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "الموضوع" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "الحدث الجاري" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "حرر" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "لا اعرف كيف اعرض " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(بدون موضوع)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "قائمة المعالجة فارغة" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "ليس لديك الصلاحية لعرض هذه المصادر" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "تخصيص شريط الايقونات" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "عرض على شكل" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "الصورة والنص" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "الصورة فقط" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "النص فقط" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "حدد الرموز التي تود أن ترى في عرض قائمة \"شريط رمز\" على الجانب الأيسر من " "الشاشة." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "نعم" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "كلا" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "شعار الموقع" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "ايقونة تصف الموقع" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "ملخص الصفحة الخاص بك" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "البريد الوارد" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "طريق مختصر لصندوق البريد الخاص بك" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "دفتر العناوين الخاص بك" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "ملاحظتك" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "طريق مختصر لتقويمك الخاص" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "المهام" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "طريق مختصر لقائمة المهام الخاصة بك" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "الغرف" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "الضغط على هذه الايقونة يعرض جميع الغرف او الحافظات في حالة وجودها" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "من هو موجود الان ؟" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "الضغط على هذه الايقونة يعرض قائمة لجميع المستخدمين المسجلين الدخول حاليا" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "محادثات" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "النقر على هذه الايقونة يسمح لكم بالدخول في حالة المراسلة الحية مع المستخدمين " "في نفس الغرفة" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "خيارات متقدمة" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "الوصول لكامل القائمة ووضائفها في كاتيديل" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "شعار بريد كاتيديل" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "عرض ايقونة مقدم من كاتيديل" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "قائمة مدير النظام" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "قائمة مدير الغرفة" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "الأسماء المستعارة للمضيف المحلي" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "دليل المجالات" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "المضيفين الاذكياء" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "النسخ الاحتياطي للمضيفين الاذكياء" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "اشعار المضيفين" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "مضيفين قاتل البريد المزعج" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "المجالات القابلة للتنكر" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "التعديلات التي تم عملها سوف لن تاخذ مجرها حتى عمل اعادة تشغيل لخادم كاتيديل" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "خدمات الشبكة" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "عنوان الخادم 0.0.0.0" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "الاعدادات المتقدمة مسيطرات التوليف للخادم" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "اقصى طول للرسالة" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "وقت الاتصال بدون عمل على الخادم بالثانية" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "تردد عمل الشبكة بالثانية" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "اقصى عدد للجلسات المتزامنة (0 = لا حدود)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "اقصى عدد من مؤشرات ترابط العمل" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "اقصى عدد من مؤشرات ترابط العمل" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "تلقائيا امسح بيانات السجل المتلازمة" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "انشاء اسم غرفة جديد" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "اسم الغرفة " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "يتواجد في طابق " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "العرض الافتراضي للغرفة " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "انواع الغرف" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "عام تلقائيا يضهر للجميع" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "خاص - مخفي قابل للوصول من قبل اي شخص يعرف الاسم" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "خاص يطلب كلمة مرور " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "خاص عن طريق الدعوات" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "شخصي - صندوق بريد لك فقط" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "انشاء اسم غرفة جديد" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "خروج" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "تسجيل الدخول مجددا" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "نسيان الغاء الاشتراك للغرفة الحالية" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "اذا ضغطت على هذا الخيار" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "سوف تختفي من قائمة الغرف هل هو هذا ما تود عمله ؟" #: ../../i18n_templatelist.c:102 #, fuzzy msgid "Zap this room" msgstr "تخطي هذه الغرفة" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "الانتباه رجاءا , الجافا سكربت معطلة في المتصفح العديد من الوظائف لهذا النضام " "لن تعمل بصورة صحيحة" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "اسم المستخدم" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "غرفة" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "من المضيف" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "المرسِل" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "تحميل الرسائل من الخادم يرجى الانتضار" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "افتح في نافذة جديدة" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "نقل" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "إنسخ" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "طباعة" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" "ارسل البريد الالكتروني الى هؤلاء المضيفين فقط في حالة فشل الاستلام المباشر" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "غرف المتحركين المنسية" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "اضغط على اي غرفة لفتحها وثم اذهب للغرفة" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "تغير اعدادتك المفضلة" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "حدث معلومات المستخدمين" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "تغيير كلمة سرّك" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "ادخل معلومات Bio" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "ادخل صورة التواجد الخاصة بك" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "عرض / تحرير جهة الخادم فلاتر البريد" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "تحرير اعدادات البريد" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "ادارة المعرف الخاص بك" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "عرض" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "نزّل" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "لإعدادات العالمية" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "ادارة حساب المستخدم" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "اطفاء خادم كاتي ديل" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "الغرف والطوابق" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "اذهب للغرفة المخفية" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "اذا كنت تعرف الاسم المخفي واسم الضيف او كلمة السر او كلمة سر الغرفة تستطيع " "الدخول للغرفة بالضغط على الاسم وعند حصولك صلاحية الوصول لهذه الغرفة سوف تضهر " "في قائمة الغرف الاعتيادية لديك" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "ادخل اسم الغرفة" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "ادخل كلمة السر للغرفة" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "في هذه " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "مِن " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "إلى" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "نسخة إلى:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "الموضوع:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "ادفع- اظغط البريد" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "اسم المضيف لخادم Funambol اترك فارغ للتعطيل" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "منفذ خادم Funambol " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "مصدر مزامنة خادم Funambol" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "تفاصيل التوثيق لخادم Funambol" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "اداة التنضيف الخارجية اترك فارغ للتعطيل" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "عرض الحافضات على شكل شجرة" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "عرض الغرف على شكل جدول" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 ساعة" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 ساعة" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "اﻷحد" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "الأثنين" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "بدون توقيع" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "كامل الوضائف" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "الوضع الامن" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "الوضع الامن هو اقل حمل على خادم البريد لكن لايعمل بجميع الميزات" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "الاعدادات والمفضلات" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "الروابط المستخدمة للابلاغ عند استلام بريد الكتروني جديد" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "الاوامر الاساسية" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "معلوماتك" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "اوامر الغرفة المتقدمة" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "حر حساب مستخدم " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "اسم المستخدم:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "كلمة السر" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "الاذونات لارسال بريد داخلي" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "عدد محاولات الدخول" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "تم تقديم الرسالة" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "مستوى الوصول" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "رقم معرف المستخدم" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "تاريخ ووقت اخر محاولة دخول" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "التطهير الاوتماتيكي بعد عدة ايام" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "تردد الاحضار في الثانية \t POP3" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "سرعة تردد الاحضار POP3 في الثانية" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "اعرض حجز الخرج لبروتكول SMTP" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "اعادة تحديث الصفحة" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "اسماء المضيفين البعيدة" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "الولاية:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "مستمر بالمعالجة" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "رسالة للمستخدمين" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "الإدارة" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "الإعدادات" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "سياسة انهاء الرسائل" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "السيطرة على الوصول" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "المشاركة" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "خدمة قائمة البريد" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "الاسترجاع عن بعد" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "لقد تم تحديث شريط الايقونات الريجا اختيار احد الاختيارات للاستمرار" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "تستيطع عمل تحديث عن طريق (SHIFT-F5)> من اجل ان تاخذ التغيرات مفعولها" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "الاعدادت العامة للموقع" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "تغير شعار الدخول" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "تغير شعار الخروج" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "اسم العقدة" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "اسم النطاق المؤهل الكامل" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "اسم العقد القابل للقراء" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "رقم الهاتف" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "الواجه المخصصة لاستخدام النصوص للمستخدمين" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "موقع الرسومات لهذا النظام" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "اسم مدير النظام" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" "وقت المنطقة الافتراضي لعناصر البريد الالكتروني الغير موضوعة ضمن منطقة معينة" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "غرفة المشاركة عن طريق الشبكة" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "اضافة عقدة جديدة" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "كلمة السر المشتركة بين طرفين" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "عنوان الانترنت Ip للمضيف" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "رقم المنفذ" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "اضافة عقدة جديدة" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "اقضي على العملية" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "ضبط الموقع" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "دفتر العناوين فارغ" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "دقيقة/دقائق" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "مؤقت" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "تحرير" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "مسح" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "لاتوجد رسائل جديدة" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "صفحة بداية جديدة" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "صفحة البدء الخاصة بك تم تغيرها" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "ملاحظة: هذا لا يغير الصفحة الرئيسية في المتصفح لديك. يتغير الصفحة التي تبدأ " "عند تسجيل الدخول" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "كتابة تعليق" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "اكد المسح" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "هل انتة متاكد من رغبتك بالمسح " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "اضف غير امسح الحسابات" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "المستخدمين مفعلين خدمة ClamAV" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "المرسِل" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "اعادة تشغيل خادم كاتيديل" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "من" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "مجهول" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "في" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "إلى:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "نسخة مطابقة إلى:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "الموضوع اختياري" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "اعادة توجيه" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "انشر الرسالة" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "حفظ للمسودات" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "مرفقات:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "مسح هذه الغرفة" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "معلومات الغرفة" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "بحث: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "نتائج ايعاز الخادم" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "ادخل ايعاز اخر" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "العودة للقائمة" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "المستخدمين الذي يعملون حاليا" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "الملف الشخصي للمستخدم" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "اضغط هنا لارسال رسالة فورية" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "الصورة فقط" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "حرر او امسح مستخدم" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "يجب ان تكون المعاون لعرض هذا" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "إضافة مستخدمين" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "اضافة او مسح يوزر" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "الرجاء الانتظار ... نقوم باعدة تشغيل خادم كاتيديل ... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "قائمة المستخدمين لاجل " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "إسم المستخدم" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "عدد" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "مستوى الوصول" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "آخر دخول" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "مجمع محاولات الدخول" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "مجموع المشاركات" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "جارٍ التحميل" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "معرف حسابك" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "تم التحقق بنجاح" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "على كل حال" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "تضارب مع مستخدم موجود اصلا" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "الرجاء تحديد اسم المستخدم الذي تنوي استخدامها" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "سياسة انها الرسائل لهذه الغرفة" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "استخدم السياسة الافتراضية لهذا الطابق" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "ابدا لا تسمح بانتهاء الرسائل" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "انهاء الرسائل عن طريق العداد" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "انهاء الرسائل عن طريق عمر الرسالة" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "عدد الرسائل أو أيام " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "سياسة انهاء الرسائل في هذا الطابق" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "اعادة النضام الى الوضع الافتراضي" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "إغلاق النافذة" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "رفع ملف" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "هل انتة متاكد من رغبتك بالمسح " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "الملف المرفق" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "حذف" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "الفهرسة واليوميات" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "تحذير: هذه المراكز تتطلب موارد كثيرة." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "تفعيل فهرسة النص المتكامل" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "تنفيذ يوميات رسائل البريد الإلكتروني" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "تنفيذ يوميات لغير رسائل البريد اللاكتروني" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "وجهات الابريد الالكتروني ليوميات البريد او الرسائل" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "الملفات الجاهزة للتحميل" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "رفع ملف" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "رفع" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "اسم الملف" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "الحجم" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "المحتوى" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "الوصف" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "هذا التنصيب للخادم بدون اي دعم فني - الرجاء الاتصال بمدير النظام في حالة " "رغبتك بالحصول على هذه الميزة" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "جديد من" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "رسائل" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "اختار صفحة " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "استرداد الرسائل من حسابات POP3 البعيد هذه وتخزينها في هذه الغرفة:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "اسماء المضيفين البعيدة" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "ابقاء الرسائل في الخادم" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "الفترة" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "إضافة" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "جلب rss التالية وتخزينها في هذه الغرفة:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "رابط التغذية" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "لانشاء مستخدم جديد ادخل اسم المستخدم المعني في الحقل واضغط انشاء" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "مستخدم جديد " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "المجالات المعين مع عناوني عالمية" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "قائمة بصفحات المعرفة" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "حذف" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "المستخدمين المدرجين ادناه لهم صلاحية الوصول لهذه الغرفة لمسح مستخدم من قائمة " "الصلاحيات حدد اسم المستخدم من القائمة المدرجة واضغط طرد" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "لمنح مستخدم اخر صلاحية الوصول لهذه الغرفة ادخل اسم المستخدم في الحقل واضغط " "ادعو" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "ادعو" #: ../../i18n_templatelist.c:426 #, fuzzy msgid "Invite" msgstr "ادعو" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "المستخدمون" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "المستخدمون" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "دفتر العناوين" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "لتحرير حساب مستخدم موجود اختار اسم المستخدم من القائمة واضغط تحرير" #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "مسح السكربتات - القطع البرمجية" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "مسح هذه الغرفة" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "حذف" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "عرض الشرائح" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "المضيفين مفعلين خدمة قاتل البريد المزعج" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "هذا تخديث لل '%s' والذي هوة موجود اصلا في تقويمك" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "هذا تخديث سيتعارض لل '%s' والذي هوة موجود اصلا في تقويمك" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "عند وصل البريد الجديد " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "اتركه في صندوق البريد بدون فلترة" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "فلتر تبعا للقوانين المختارة هنا" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "فلتر بصور يدوية - وحرر النص - مستخدم متقدم فقط" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "البريد القادم لن تتم فلترته عن طريق اي نص برمجي سكربت معد مسبقا" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "أضف قاعدة" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "النصوص البرمجية المفعلة الان " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "اضف او حرر نص برمجي سكربت" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "تكوين رابط Ldap لخادم كاتيديل" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "ملاحظة: تم بناء هذا الخادم القلعة دون دعم LDAP. وهذه الخيارات ليس لها أي أثر." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "اسم المضيف لخادم Ldab اترك فارغ لتعطيل الميزة" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "رقم المنفذ لخادم Ldap اترك فارغ لتعطيل الميزة" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "قاعدة دي إن (DN)" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "ربط dn" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "كلمة السر لربط dn" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "تحرير او حذف الغرفة" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "الذهاب الى الغرفة المخفية" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "الغرفة المخفية zap" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "اضهار جميع الغرف المحمية zap" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "قراءة الرسائل الجديدة" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "عنوان الرسالة" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "وقت وتاريخ التقديم" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "المحاولة القادمة" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "المتسلمون" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "قراءة #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "الترتيب من القديم للحديث" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "الترتيب من الحديث للقديم" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "الرجاء الانتظار بينما يتم ترحيلها المستخدمين الخاص بك، سيتم إعادة تشغيل " "الملقم بعد ذلك خادم كاتيديل " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "تحرير" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "الرد" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "الرد باقتباس" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "الرد على الجميع" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "إعادة توجيه" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "رؤوس" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "تحرير اعدادات في كافة أنحاء الموقع" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "اعدادات المجالات و البريد الالكتروني" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "اعدادات النسخ التمائلي بين خادمين كاتيديل" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "عرض ايقونة مقدم من كاتيديل" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "اللغة:" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "طريق مختصر لصندوق البريد الخاص بك" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "البريد الإلكتروني" #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "طريق مختصر لتقويمك الخاص" #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "دفتر العناوين الخاص بك" #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "ملاحظتك" #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "طريق مختصر لقائمة المهام الخاصة بك" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "اضهار جميع الغرف المحمية zap" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "المستخدمون المتواجدون حالياً" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "الخيارات المتقدمة" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "اسم مدير النظام هو" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "تخصيص هذه القائمة" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "تسجيل الدخول" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "تبديل الى قائمة الغرف" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "تبديل الى قائمة" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "مجلداتي" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP رقم منفذ (-1 to disable)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP over SSL port (-1 to disable) منفذ" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "رفع صورة" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "تستطيع رفع صورة مباشرتا من حاسبتك" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "الرجاء اختيار ملف للرفع" #: ../../i18n_templatelist.c:545 #, fuzzy msgid "Reset form" msgstr "خلاصة التنسيق" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "قائمة المشتركين" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "قائمة المشتركين والغير المشتركين" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "تم ارسال طلب التاكيد" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "انتة مشترك " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " في " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " القائمة البريدية" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "قائمة الخادم ارسلت لك بريد الكتروني مع معلومات اضافية رابط الكتروني يجب " "الضغط عليها لتاكيد اشتراكك" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "هذه الخطوة الاضفاة هي من اجل حمايتك لمنع الاخرين من اضافتك في قائمة بريدية " "من دون اذنك" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "الرجاء الضغط على الرابط - الذي تم ارساله لك وسيتم تاكيد اشتراكك" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "الرجوع" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "خطأ" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "انتة الان غير مشترك" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "من" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "قائمة البريد" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "قائمة الخادم ارسلت لك بريد الكتروني يحتوي على رابط يجب عليك الضغط على الرابط " "لتاكيد الغاء اشتراكك من القائمة البريدية" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "الخطوة الاضافية لحمايتك من الاخرين لالغاء اشتراكك من القوائم بدون موافقتك" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "الرجاء الضغط على الرابط الذي تم ارساله لك و سيتم تاكيد الغاء الاشتراك من " "القائمة البريدية" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "الرجوع" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "تم التاكيد بنجاح" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "فشلت عملية التاكيد" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "هذا قد يعني واحد من اثنين" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" "لقد تاخرت في تاكيد اشتراكك او عدم اشتراكك هذا الرابط غير صالح - رابط " "التاكيد صالح لمدة ثلاثة ايام فقط يرجى اعادة الطلب" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" "لقد قمت مسبقا وبنجاح تاكيد اشتراكك او عدم اشتراكك وانتة تحاول هذا مجددا" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "الخطاء المرسل من الخادم كان " #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "اسم القائمة:" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "عنوان البريد الالكتروني" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "اذا تم الاشتراك النسق المفضل: " #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "رسالة واحد في الوقت" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "خلاصة التنسيق" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" "عند محاولتك للاشتراك او عدم الاشتراك في قائمة البريد سوف تستلم برمد يحتوي " "على معلومات اضافية اضغط عليها للتاكيد النهائي" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" "هذه الخطوة الاضافية من اجل حمايتك لمنع الاخرين من اضافتك او الغاء اشتراكك في " "قائمة بريدية" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "اسم الغرفة " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "اذا خاص سبب جميع المستخدمين لنسيان هذه الغرفة" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "المستخدمين المفضلين فقط" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "غرفة للقراءة فقط" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "مسموع لجميع المستخدمين المشاركة و حذف الرسائل" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "ملف دليل الغرف" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "اسم الدليل " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "الرفع مسموح" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "مسموح التحميل" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "الدليل المرئي" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "غرفة المشاركة عن طريق الشبكة" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "مسموح او مستثنى لا تقوم بالتنظيف التلقائي" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "اسم الموضوع مطلوب اجبر المستخدمين على تحديد موضوع الرسالة" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "الرسائل من الغرباء" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "لا توجد رسائل من الغرباء" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "جميع الرسائل من غرباء" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "مطالبة المستخدم عن الدخول للرسائل" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "معاون الغرفة " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "مسح هذه الغرفة" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "عدم المشاركة مع" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "المشاركة مع" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "اسم العقدة البعيدة" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "اسم الغرفة البعيدة" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "إجراءات" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "عند مشاركة الغرفة، يجب أن تكون مشتركة من كلا الجانبين. إضافة إلى قائمة عقدة " "'المشتركة' يرسل رسائل، ولكن من أجل الحصول على الرسائل، يجب أن يتم تكوين " "العقد الأخرى لإرسال رسائل إلى النظام الخاص بك أيضا.
  • إذا اسم الغرفة عن " "بعد فارغة، يفترض أن اسم الغرفة مطابق على عقدة البعيد.
  • إذا اسم الغرفة " "البعيد مختلفة، يجب تكوين العقدة البعيدة أيضا اسم الغرفة هنا." #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "ابقاء الرسائل في الخادم" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "اضف او عدل او امسح الطوابق" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "رقم الطابق" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "اسم الطابق" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "عدد الغرف" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "تصميم الغرف" #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "انشاء اسم غرفة جديد" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "حذف" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "اذا" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "الى او مع" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "اجابة الى" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "اعد ارسال الفورم" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "اعد الارسال الى" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "شكل المضروف" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "مضروف الى" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "الريد - اكس" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "علامة - البريد المزعج -اكس" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "حالة البريد المزعج - اكس" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "قائمة المعرفين" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "حجم الرسالة" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "جميع" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "يحتوي على" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "لا يحتوي على" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "يكون" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "لا يكون" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "مطابق" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "لا يطابق" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "جميع الرسائل" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "هوة اكبر من" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "أقل من" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "بايتات" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "حفظ" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "تجاهل بصمت" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "رفض" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "انقل الرسالة الى" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "مرّر إلى" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "اجازة - عطلة" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "الرسالة:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "ثم اضف" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "مستمر بالمعالجة" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "توقف" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "المجالات لهذا المستخدم لاستقبال البريد" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "إعدادات الشبكة" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "الاعدادات الحالية للعقد" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "الطابق الافتراضي" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "تحرير الرسوم" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "غير اسم الغرفة" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "تهيئة وقت انتهاء اوتماتيكي للرسئل القديمة" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "قد يتم تجاوز هذه الإعدادات على أساس لكل الطابق أو في الغرفة" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "الساعات لتفعيل النضام التنضيف الاوتماتيكي لقاعدة البيانات" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "رسالة الانتهاء الافتراضية للغرف العامة" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "السياسة الافتراضية لانهاء صناديق البريد الخاصة" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "نفس السياسة المتبعة في الغرف العامة" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "وقت التنضي الافتراضي للمستخدم الايام" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "الوقت الافتراضي للتنظيف الايام" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "هل انتة متاكد من رغبتك بالمسح " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "مسح هذه الغرفة" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "تهيئة او تغير ايقونة بنر الغرفة" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "تحرير ملف معلومات الغرفة" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "ادخل ايعاز الخادم" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "هذه النافذة تسمح لك ادخال الاوامر لخادم كاتيديل والتي هي غير مدعومة عن طريق " "المتصفح اذا كنت لاتعلم مايعني هذا اذن لن تكون هذه النافذة ذات اهمية لك" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "ادخل الاوامر" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "مدخل الاوامر اذا تطب ارسل SEND_LISTING transfer mode" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "الكشف عن راس المضيف " #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "ادخل الاوامر" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "المضيفين الذي يعملون في الوقت الحالي من القائمة السوداء" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "عناصر التحكم في الوصول وإعدادات سياسة الموقع" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "حجب الرسائل عن المستخدمين المزعجين والمثيرين للمشاكل" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "اسم غرفة حجب الرسائل" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "اسم الغرف المسجلة للصفحات" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "وضع الترابط" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "احتواء الذاتية" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "استنادا للمضيف" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "السماح للضيوف الغريبين بالدخول" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "اسم المستخدم الرئيسي الماستر" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "كلمة السر للمستخدم الرئيسي الماستر" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "اولوية مستوى الوصول لجميع المستخدمين" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "مستوى الوصول مطلوب لانشاء غرف" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "تلقائيا اعطاء حالة المساعد للمستخدمين الذين يقومون بانشاء غرف خاصة" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "تلقائيا اعطاء حالة المساعد للمستخدمين الذين يقومون بانشاء غرف مدونات" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "تقيد الوصول للبريد الالكتروني" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "تعطيل خدمة انشاء حساب مستخدم بنفسه" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "تلميح لا تقوم باختيار الاثنين معا" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "التسجيل مطلوب للمستخدمين الجدد" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "اضافة تعديل مسح طوابق" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "عرض ك" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "مسح هذه الغرفة" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "تم تسجيل الدخول باسم" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "لم يتم تسجيل الدخول." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "يجب عليك تسجيل الدخول للوصول الى هذه القائمة" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "تسجيل الدخول باستخدام اسم وكلمة المرور" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "كلمة السر:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "اسم مستخدم سجل الان" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "أدخل الاسم وكلمة المرور التي ترغب في استخدامها، ثم انقر على \"مستخدم جديد\". " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "الدخول باستخدام المعرف الخاص بك" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "رابط المعرف الخاص بك" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "الدخول باستخدام كوكل" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "الدخول باستخدام ياهوو" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "الدخول باستخدام AOL او AIM" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "ادخل اسم AOL او AIM الخاص بك" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "إنتظر من فضلك" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "اضافة سكربت - نص برمجي" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "لاضافة سكربت - فطعة برمجية - ادخل اسم القطعة البرمجية في هذا الحقل واضغط " "انشاء" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "اسم السكربت - القطعة البرمجية " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "تحرير السكربت - القطعة البرمجية" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "الرجوع الى شاشة فائمة تحرير" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "مسح السكربتات - القطع البرمجية" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "لمسح سكربت - قطعة برمجية موجودة مسبقا اختار اسم السكربت من القائمة ثم اضغط " "مسح" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "إعادة التشغيل الآن" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "اعادة التشغيل بعد ترحيل المستخدمين" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "اعادة التشغيل عندما يكون جميع المستخدمين متوقفين عن العمل" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "اعداد بريد الدفع" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "اعداد دفع ال رسائل القصير والبريد الالكتروني" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "اذا المدير فعل هذه الوظيفية سيرفر كاتيديل يستيطع ابلاغ خادم Funambol بانه " "تم استقبال بريد الكتروني جديد تلقائيا ويقوم بالمزامنة مع اي جهاز مع مستخدم " "Funambol مركب" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "بدلا من ذلك، إذا قام المدير العام باعداده ، يمكن خادم إرسال رسالة نصية إليك " "عند وصول بريد جديد." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "ابلغ خادم Funambol" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "ارسال رسالة نصية الى" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "استخدم الشكل الدولي بدون اصفار او مسافات مثل +61415011501" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "استخدم ابلاغ مخصص مهيئة عن طريق المدير" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "لاترسل اي تنبيهات" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "مدعوم من" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 to disable) منفذ" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP over SSL port (-1 to disable) منفذ" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "ضع علامة على البريد المزعج بدل من رفضه" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "السماح للعملاء SMTP غير مصادق الى المخادعة ومشاهدة بيانات هذه المجالات " "المواقع" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "اقامة فورم صحيح خلال عملية توثيق ال smtp" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Postfix TCP Dictionary Port منفذ القاموس" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "ضبط الموقع" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "عام" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "اعدادات شريط الايقونات" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3 نوع ملقم البريد الالكتروني" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "فهرسة / يوميات" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "الوصول" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "الدليل:" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "التنظيف التلقائي" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" " محتويات هذه الغرفة تم ارسالها بالبريد كرسائل الفردية إلى " "المستلمين القائمة التالية:

    " #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" " محتويات هذه الغرفة تم الارسال بالبريد في شكل خلاصة إلى " "المستلمين القائمة التالية:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "قائمة المعرفين" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "خلاصة التنسيق" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "جميع المستلمين من المستخدمين او من دفتر العناوين" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "السماح لغير المشتركين في البريد لهذه الغرفة" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "المشاركة في الغرف تحتاج لصلاحيات المدير" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "السماح للطلبات بخدمة الاشتراك وعدم الاشرتاك الذاتية التفعيل" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "عنوان الرابط للاشتراك او عدم الاشتراك هو " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "الموضوع" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "ملخص الصفحة " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "الرسائل" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "اليوم هو في التقويم" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "من هوة متواجد الان" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "حول هذا الخادم" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "انتة متصل ب" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "يعمل" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "مع" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "بناء الخادم" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "وموجود في" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "اسم مدير النظام هو" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "هل انتة متاكد تريد مسح هذا الاسم المعرف" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "المستخدمون يعملون حاليا " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "اضغط على الاسم لقراءة معلومات المستخدم اضغط تشغيل" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "لارسال رسالة فورية لهذا المستخدم" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "الرسائل القديمة" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "رسائل جديدة" #: ../../i18n_templatelist.c:880 #, fuzzy msgid "Share" msgstr "المشاركة" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "المجالات التنكرية المسموحة للمستخدمين" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "ادخل كلمة السر الجديدة" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "ادخل المعلومات مرة اخرى للتاكيد" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "تغيير كلمة المرور" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "حرر جلسة العرض" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "هذه الشاشة تسمح لك بتغيير طريقة جلستك يظهر في 'المتواجدون الآن' القائمة. " "لإيقاف أي 'وهمية' اسم قمت بتعيينها مسبقا، يكفي النقر على المناسبة \"التغيير" "\" زر دون كتابة أي شيء في المربع المقابل. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "اسم الغرفة" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "غير اسم الغرفة" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "اسم المضيف:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "تغير اسم المضيف" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "تغير اسم المستخدم" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "قائمة اخر تعديلات اجريتها لهذه الصفحة history" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "اكد نقل الرسالة" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "انقل الرسالة الى" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "اصلا تمت المشاركة في " #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "قائمة الغرف المعروفة" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "اين استطيع الذهاب من هنا" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "الذهاب لغرفة اخرى" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "مع ... غير مقروءة رسائل" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "التخطي الى غرفة اخرى" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "حاول العودة لاحقا" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "عدم الذهاب الى" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "للاسف الدهاب الى " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "قراءة الرسائل الجديدة" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "هل هذه الغرفة" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "قراءة جميع الرسائل" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "و القديمة ... جديد" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "ادخل الرسالة" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(نشر في هذه الغرفة)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "مكتبة الملفات" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "قائمة الملفات المتوفرة للتحميل" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "ملخص الصفحة" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "ملخص حسابي" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "قائمة المستخدمين" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "جميع المستخدمين المسجلين" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "وداعا!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "اذا مسموح اعادة توجيه جميع البريد الصادر الى احد من المضيفين" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "عرض المستخدمين" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "إضافة جهاة اتصال جديدة" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "طريقة عرض اليوم" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "طريقة عرض الشهر" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "اضافة حدث جديد" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "قائمة التقويم" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "اضهار المهام" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "اضافة مهمة جديدة" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "اضهار الملاحظات" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "اضافة ملاحضة جديدة" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "اعادت تحديث قائمة الرسائل" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "كتابة بريد" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "صفحة المعرفة" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "حرر الصفحة" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "السجل للعمليات السابقة الهستوري" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "مشاركة جديدة في المدونة" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "تخطي هذه الغرفة" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "حفظ التغييرات" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "You are subscribing %s to the %s انتة متشرك to the في " #~ "القائمة البريدية تم ارسال بريد لكم من قائمة السيرفير لتاكيد اشتراكك يرجى " #~ "الضغط على الرابط المرسل لتاكيد اشتراكك.

    Please click on the link " #~ "which is being e-mailed to you and your subscription will be confirmed." #~ "
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "فشل تحلي العرض لبرمجة الخادم هل قمت بتشغيل خادم جديد ؟" #~ msgid "There is no room called '%s'." #~ msgstr "هذه الغرفة تدعى '%s'" #~ msgid "Network" #~ msgstr "الشبكة" #~ msgid "Tuning" #~ msgstr "ضبط" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "على الفور محو الرسائل المحذوفة في IMAP" webcit-dfsg.orig/po/webcit/webcit.pot0000644000175000017500000036472313223341037017712 0ustar michaelmichael# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR The Citadel Project - http://www.citadel.org # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "" #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" webcit-dfsg.orig/po/webcit/bg.po0000644000175000017500000036676613223341037016652 0ustar michaelmichael# Bulgarian translation for citadel # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the citadel package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: citadel\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2012-03-12 09:09+0000\n" "Last-Translator: Валери Фиков \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2012-03-21 04:47+0000\n" "X-Generator: Launchpad (build 14981)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "" #: ../../availability.c:169 msgid "free" msgstr "" #: ../../availability.c:179 msgid "BUSY" msgstr "" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "" #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "" #: ../../graphics.c:106 msgid "your photo" msgstr "" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "" #: ../../tasks.c:93 msgid "Completed?" msgstr "" #: ../../tasks.c:95 msgid "Name of task" msgstr "" #: ../../tasks.c:97 msgid "Date due" msgstr "" #: ../../tasks.c:99 msgid "Category" msgstr "" #: ../../tasks.c:101 msgid "Show All" msgstr "" #: ../../tasks.c:224 msgid "Edit task" msgstr "" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "" #: ../../tasks.c:259 msgid "Start date:" msgstr "" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "" #: ../../tasks.c:289 msgid "Due date:" msgstr "" #: ../../tasks.c:318 msgid "Completed:" msgstr "" #: ../../tasks.c:329 msgid "Category:" msgstr "" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "Постоянна връзка" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "по-нови мнения" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "по-възрастните мнения" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "" #: ../../sysmsgs.c:103 msgid " has been saved." msgstr "" #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "" #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "" #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "" #: ../../openid.c:58 msgid "Attach" msgstr "" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "" #: ../../summary.c:184 msgid "(Nothing)" msgstr "" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "" #: ../../bbsview_renderer.c:354 msgid "First" msgstr "" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "" #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "" #: ../../auth.c:617 msgid "very weak" msgstr "" #: ../../auth.c:620 msgid "weak" msgstr "" #: ../../auth.c:623 msgid "ok" msgstr "" #: ../../auth.c:627 msgid "strong" msgstr "" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "" #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "" #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "" #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "" #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "" #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "" #: ../../event.c:71 msgid "seconds" msgstr "" #: ../../event.c:72 msgid "minutes" msgstr "" #: ../../event.c:73 msgid "hours" msgstr "" #: ../../event.c:74 msgid "days" msgstr "" #: ../../event.c:75 msgid "weeks" msgstr "" #: ../../event.c:76 msgid "months" msgstr "" #: ../../event.c:77 msgid "years" msgstr "" #: ../../event.c:78 msgid "never" msgstr "" #: ../../event.c:82 msgid "first" msgstr "" #: ../../event.c:83 msgid "second" msgstr "" #: ../../event.c:84 msgid "third" msgstr "" #: ../../event.c:85 msgid "fourth" msgstr "" #: ../../event.c:86 msgid "fifth" msgstr "" #: ../../event.c:89 msgid "Event" msgstr "" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "" #: ../../event.c:168 msgid "Add or edit an event" msgstr "" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "" #: ../../event.c:222 msgid "Location" msgstr "" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "" #: ../../event.c:374 msgid "Organizer" msgstr "" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "" #: ../../event.c:397 msgid "Show time as:" msgstr "" #: ../../event.c:420 msgid "Free" msgstr "" #: ../../event.c:428 msgid "Busy" msgstr "" #: ../../event.c:445 msgid "(One per line)" msgstr "" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "" #: ../../event.c:518 msgid "Recurrence rule" msgstr "" #: ../../event.c:522 msgid "Repeats every" msgstr "" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "" #: ../../event.c:631 msgid "of the month" msgstr "" #: ../../event.c:660 msgid "every " msgstr "" #: ../../event.c:661 msgid "year on this date" msgstr "" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "" #: ../../event.c:732 msgid "Repeat this event" msgstr "" #: ../../event.c:735 msgid "times" msgstr "" #: ../../event.c:743 msgid "Repeat this event until " msgstr "" #: ../../event.c:771 msgid "Check attendee availability" msgstr "" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "" #: ../../inetconf.c:126 msgid " has been deleted." msgstr "" #. added status message #: ../../inetconf.c:144 msgid " added." msgstr "" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "" #: ../../messages.c:91 msgid "Empty message" msgstr "" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "" #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "" #: ../../paging.c:29 msgid "Send instant message" msgstr "" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "" #: ../../paging.c:51 msgid "Enter message text:" msgstr "" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "" #: ../../paging.c:78 msgid "Message was not sent." msgstr "" #: ../../paging.c:89 msgid "Message has been sent to " msgstr "" #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "" #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "" #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "" #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "" #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "" #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "" #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "" #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "" #: ../../roomops.c:1363 msgid "Room list view" msgstr "" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "" #: ../../roomtokens.c:572 msgid "files" msgstr "" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "" #: ../../roomviews.c:55 msgid "Address Book" msgstr "" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "" #: ../../roomviews.c:57 msgid "Task List" msgstr "" #: ../../roomviews.c:58 msgid "Notes List" msgstr "" #: ../../roomviews.c:59 msgid "Wiki" msgstr "" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "" #: ../../roomviews.c:61 msgid "Journal" msgstr "" #: ../../roomviews.c:62 msgid "Drafts" msgstr "" #: ../../roomviews.c:63 msgid "Blog" msgstr "" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Този сървър е вече обслужва максимален брой потребители и не може да " "обслужва повече потребители в този момент. Моля, опитайте отново по-късно " "или се свържете с вашия системен администратор." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Вие сте свързан към Citadel сървър работещ с Citadel %d.%02d. \n" "За да стартирате тази версия на WebCit, трябва да имате също Citadel %d.%02d " "или по-нова.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "" #: ../../useredit.c:778 msgid "A new user has been created." msgstr "" #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "" #: ../../vcard_edit.c:438 msgid " (work)" msgstr "" #: ../../vcard_edit.c:440 msgid " (home)" msgstr "" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr "" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "" #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" #: ../../webcit.c:688 msgid "Read More..." msgstr "" #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "" #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "" #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "" #: ../../wiki.c:143 msgid "Author" msgstr "" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "" #: ../../fmt_date.c:306 msgid "Time format" msgstr "" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "" #: ../../calendar_view.c:750 msgid "Week" msgstr "" #: ../../calendar_view.c:752 msgid "Hours" msgstr "" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "" #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "" #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "" #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "" #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "" #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "" #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "" #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "" #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Публикувай коментар" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "" #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "" #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "" #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "" #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "" #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "" #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "" #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "" #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "" #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "" #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr "" #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr "" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "" #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "" #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "" #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Трябва да сте влезли в системата за достъп до тази страница." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Нов потребител? Регистрирайте се сега" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "" #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 msgid "List" msgstr "" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "" #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "по-нови мнения" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "" webcit-dfsg.orig/po/webcit/it.po0000644000175000017500000047056413223341037016666 0ustar michaelmichael# translation of webcit.po to it.po # Copyright (C) 2005 - 2009 The Citadel Project - http://www.citadel.org # This file is distributed under the revised BSD license # # Gabriele Tassoni , 2005, 2006. msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2010-11-13 00:06+0000\n" "Last-Translator: Gabriele Tassoni \n" "Language-Team: \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-11-14 05:02+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "Disponibilità sconosciuta" #: ../../availability.c:169 msgid "free" msgstr "libero" #: ../../availability.c:179 msgid "BUSY" msgstr "OCCUPATO" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Il caricamento della grafica è stato cancellato." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Non carichi un file." #: ../../graphics.c:106 msgid "your photo" msgstr "La tua foto" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "l'icona di questa stanza" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "L'icona per questo piano" #: ../../tasks.c:93 msgid "Completed?" msgstr "Completato?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Nome dell'operazione" #: ../../tasks.c:97 msgid "Date due" msgstr "Data dovuta" #: ../../tasks.c:99 msgid "Category" msgstr "Categoria" #: ../../tasks.c:101 msgid "Show All" msgstr "Mostra Tutto" #: ../../tasks.c:224 msgid "Edit task" msgstr "Aggiorna questa operazione." #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Sommario:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Data di inizio:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Nessuna Data" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "o" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Tempo associato" #: ../../tasks.c:289 msgid "Due date:" msgstr "Scadenza:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Completato:" #: ../../tasks.c:329 msgid "Category:" msgstr "Categoria:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Descrizione:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Salva" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Cancella" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Cancella" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, fuzzy, c-format msgid "%d comments" msgstr "Invia il comando" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "i nuovi post" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "i post più vecchi" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Modifica %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Il testo viene formattato dalla larghezza dello " "schermo del lettore. Per non seguire la formattazione, indentare la linea di " "almeno uno spazio." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Cambia i cambiamenti" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Attività cancellata. %s non è stato salvato." #: ../../sysmsgs.c:103 #, fuzzy msgid " has been saved." msgstr "%s è stato salvato." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Informazioni di stanza" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Le tue informazioni personali" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Ora: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minuto: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(stato sconosciuto)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(serve una azione)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(accettato)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(declinato)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(tentativo)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegato)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(completato)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(in lavorazione)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(nessuno)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "" #: ../../openid.c:47 msgid "(delete)" msgstr "(elimina)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Aggiungi un OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "Allega" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "" #: ../../summary.c:128 msgid "(None)" msgstr "(Nessuno)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nulla)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Vai alla pagina: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Primo" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Ultimo" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "errore di realloc()! non riesco a ottenere %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Cancellato" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Nuovo Utente" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Utente con Problemi" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Utente Locale" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Utente di Rete" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Utente Preferito" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Amministratore" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "E' avvenuto un errore." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Valida il nuovo utente" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Non si richiede l'autenticazione utente in questo momento" #: ../../auth.c:617 msgid "very weak" msgstr "molto debole" #: ../../auth.c:620 msgid "weak" msgstr "debole" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "forte" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Attuale livello di accesso: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Seleziona il livello di accesso per l'utente corrente:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Aziona cancellata. La password non è stata cambiata." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Le password non coincidono. Cambiamento non effettuato." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Le password vuote non sono ammesse." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Invito a un incontro" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Risposta del membro al tuo invito" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Evento pubblicato" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Questo è un tipo di calendario sconosciuto." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Luogo:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Data:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Data e ora di inizio:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Data e ora di fine:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Ricorrenza" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Questo è un evento ricorrente" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Membro:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "" "Questo è un aggiornamento di '%s' giè nel tuo calendario." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Questo evento è in conflitto con l'evento '%s' già presente " "nel tuo calendario." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Aggiorna:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "CONFLITTO:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Come vuoi rispondere a questo invito?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Accetta" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Tentativo" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Declina" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Seleziona Aggiorna Per accettare questa risposta e aggiornare il tuo " "calendario." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Aggiorna" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignora" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "C'è un errore in questo oggetto del calendario." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Hai accettato questo invito all'incontro. è stato aggiunto al tuo " "calendario." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Hai accettato questo messaggio in forse. è stato \"segnato a matita\" " "nel tuo calendario" #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Hai declinato l'invito. Non è stato inserito nel tuo calendario." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Una risposta è stata mandata all'organizzatore dell'incontro." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "" "Il tuo calendario è stato aggiornato per riflettere questo RSVP." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Hai scelto di ignorare questo RSVP. il tuo calendario non " "verrà aggiornato." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "La vista giornaliera del calendario inizia il:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "La vista giornaliera del calendario finisce il:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "La settimana parte da:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "E' avvenuto un errore durante il recupero di questa parte: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "secondi" #: ../../event.c:72 msgid "minutes" msgstr "minuti" #: ../../event.c:73 msgid "hours" msgstr "ore" #: ../../event.c:74 msgid "days" msgstr "giorni" #: ../../event.c:75 msgid "weeks" msgstr "settimane" #: ../../event.c:76 msgid "months" msgstr "mesi" #: ../../event.c:77 msgid "years" msgstr "anni" #: ../../event.c:78 msgid "never" msgstr "mai" #: ../../event.c:82 msgid "first" msgstr "primo" #: ../../event.c:83 msgid "second" msgstr "secondo" #: ../../event.c:84 msgid "third" msgstr "terzo" #: ../../event.c:85 msgid "fourth" msgstr "quarto" #: ../../event.c:86 msgid "fifth" msgstr "quinto" #: ../../event.c:89 msgid "Event" msgstr "Evento" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Membri" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Aggiungi o modifica un evento" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Sommario" #: ../../event.c:222 msgid "Location" msgstr "Luogo" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Inizio" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Evento per tutto il giorno" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Fine" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Note" #: ../../event.c:374 msgid "Organizer" msgstr "Organizer" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(tu sei l'organizzatore)" #: ../../event.c:397 msgid "Show time as:" msgstr "Mostra l'ora come:" #: ../../event.c:420 msgid "Free" msgstr "Libero" #: ../../event.c:428 msgid "Busy" msgstr "Occupato" #: ../../event.c:445 msgid "(One per line)" msgstr "(Uno per linea)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Contatti" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Regola ricorrente" #: ../../event.c:522 msgid "Repeats every" msgstr "Ripeti ogni" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "nei giorni di questa settimana:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "nei giorni %s%d%s del mese" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "sul " #: ../../event.c:631 msgid "of the month" msgstr "del mese" #: ../../event.c:660 msgid "every " msgstr "ogni " #: ../../event.c:661 msgid "year on this date" msgstr "anno in questa data" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "di" #: ../../event.c:717 msgid "Recurrence range" msgstr "" #: ../../event.c:725 msgid "No ending date" msgstr "Nessuna data finale" #: ../../event.c:732 msgid "Repeat this event" msgstr "Ripeti questo evento" #: ../../event.c:735 msgid "times" msgstr "tempi" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Ripeti questo evento fino " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Controlla la disponibilità del membro." #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Evento senza Titolo" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Parametro Invalido" #: ../../inetconf.c:126 #, fuzzy msgid " has been deleted." msgstr "%s è stato cancellato." #. added status message #: ../../inetconf.c:144 #, fuzzy msgid " added." msgstr "aggiunto." #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "" #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" #: ../../messages.c:73 msgid "ERROR:" msgstr "ERRORE:" #: ../../messages.c:91 msgid "Empty message" msgstr "Messaggio vuoto" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Cancellato. Il messaggio non è stato inviato." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Cancellato automaticamente, hai già salvato questo messaggio." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "" #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Il messaggio è stato inviato.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Il messaggio è stato postato.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Il messaggio non è stato spostato" #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "E' avvenuto un errore durante il recupero di questa parte: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "E' avvenuto un errore durante il recupero di questa parte: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Allega la firma ai messaggi email?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Usa questa firma:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Set di caratteri di default per le intestazioni delle email:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Indirizzo email preferito" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Clicca su una nota per modificarla." #: ../../paging.c:29 msgid "Send instant message" msgstr "Invia un Messaggio Istantaneo" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Invia un Messaggio istantaneo a: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Inserisci il testo del messaggio:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Invia il messaggio" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Il Messaggio non è stato spedito." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Il Messaggio è stato spedito a " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Attività cancellata. Nessuna impostazione è stata cambiata." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Imposta questa pagina come principale" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Non hai più una pagina principale selezionata." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Le mie Catrelle" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Attività Cancellata.Le modifiche non sono state salvate." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Le tue modifiche sono state salvate." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "L'utente %s è stato espulso dalla stanza %s." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "L'utente %s è stato invitato nella stanza %s." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Attività Cancellata.Nessuna nuova stanza è stata creata." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Il piano è stato cancellato." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Il nuovo piano è stato creato." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Vista della lista delle stanze" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "" #: ../../roomtokens.c:570 msgid "file" msgstr "documento" #: ../../roomtokens.c:572 msgid "files" msgstr "documenti" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Forum" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Cartella di Posta" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Contatti" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Calendario" #: ../../roomviews.c:57 msgid "Task List" msgstr "Lista delle Attività" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Lista delle Note" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Lista Calendario" #: ../../roomviews.c:61 msgid "Journal" msgstr "giornale" #: ../../roomviews.c:62 #, fuzzy msgid "Drafts" msgstr "Data" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "" #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Sei collegato a un server Citadel con installato Citadel %d.%02d. \n" "Per poter usare questa versione di WebCit, devi avere Citadel %d.%02d o più " "recente.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "La configurazione del tuo sistema è stata aggiornata" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "E' avvenuto un errore durante la creazione o la cancellazione di questa voce " "della rubrica dei contatti" #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "I cambiamento non sono stati salvati." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "E' stato creato un nuovo utente." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(nessun nome)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (lavoro)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (casa)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (cellulare)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Indirizzo:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefono:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Questa lista contatti è vuota" #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "" #: ../../vcard_edit.c:940 msgid "Error" msgstr "Errore" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Modifica le informazioni del contatto" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Prefisso" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Nome" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Secondo nome" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Cognome" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Suffisso" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Nome da mostrare:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titolo:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organizzazione:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Presso:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Città:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Provincia:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "C.A.P.:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Nazione:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Telefono di casa:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Telefono di lavoro:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Telefono mobile:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Numero di fax:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Indirizzo email principale" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Alias degli indirizzi email esterni" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Abortendo." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Autorizzazione richiesta" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "Questa risorsa richiede un nome utente e una password. Non puoi essere " "autenticato e accedere a: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Questo programma non riesce a collegarsi o a rimanere collegato al server " "Citadel. Per favore, segnala questo errore all'amministratore di sistema." #: ../../webcit.c:688 msgid "Read More..." msgstr "Leggi Altro..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' non è una stanza di tipo Wiki." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Nessuna pagina chamata '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "Seleziona il collegamento 'Modifica questa pagina' se la vuoi creare." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Data" #: ../../wiki.c:143 msgid "Author" msgstr "Autore" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(mostra)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Versione corrente" #: ../../wiki.c:184 msgid "(revert)" msgstr "" #: ../../wiki.c:246 msgid "Page title" msgstr "Titolo pagina" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Formato dell'ora" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Mittente" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Data di partenza:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Data di arrivo:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Data/tempo:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "note:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "precedente" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "successivo" #: ../../calendar_view.c:750 msgid "Week" msgstr "Settimana" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Ore" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Oggetto" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Evento corrente" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "Modifica" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Non so come mostrare " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(nessun oggetto)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "La coda è vuota." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Non hai il permesso di visualizzare questa risorsa." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Personalizza la barra delle icone" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Mostra le icone come:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "immagini e testo" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "solo immagini" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "solo testo" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Seleziona le icone che vorresti vedere nel menu alla sinistra dello schermo." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Si" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "No" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logo del sito" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Una icona che descriva questo sito" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Visualizza il sommario" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Mail (Posta in arrivo)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Un collegamento alla tua Posta in Arrivo" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "I tuoi Contatti personali" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Le tue note personali" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Un collegamento al tuo calendario personale" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Attività" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Un collegamento alla tua lista di operazioni da effettuare" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Stanze" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Cliccando questa icona, mostra una lista di tutte le stanze o cartelle " "disponibili." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Chi è on line?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "Cliccando su questa icona, mostra tutti gli utenti collegati in questo " "momento." #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Cliccando su questa icona vi porterà a una chat in tempo reale con " "gli altri utenti nella stessa stanza." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Opzioni avanzate" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Accesso al menu completo delle funzioni di Citadel." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Logo Citadel" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Mostra l'icona Potenziato da Citadel" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Menu di amministrazione di sistema" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 #, fuzzy msgid "Room Admin Menu" msgstr "Amministratore della stanza: " #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Alias degli host locali" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Domini delle directory" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart Host" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 #, fuzzy msgid "Fallback smart hosts" msgstr "Smart Host" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "Host RBL" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "Host Spamassassin" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 #, fuzzy msgid "Masqueradable domains" msgstr "Domini del gateway" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "I cambiamenti in questa schemata non avranno effetto finchè non si riavvia " "il server Citadel." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Servizi di rete" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Indirizzo ip del server (0.0.0.0 per 'qualsiasi')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 #, fuzzy msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "Porta POP3 (-1 per disabilitare)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 #, fuzzy msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "Porta POP3 (-1 per disabilitare)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Controlli avanzati per la configurazione delle rifiniture" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Massima lunghezza dei messaggi" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Timeout della connessione per il server in attesa (in secondi)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Velocità della rete (in secondi)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Numero massimo di sessioni concorrenti (0 = nessun limite)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Numero minimo di discussioni attive" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Massimo numero di discussioni attive" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Cancella automaticamente i log del database approvati" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Crea una nuova stanza" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Nome delle stanza: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Appartiene al piano: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Vista di default della stanza: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "TIpo di stanza:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Pubblica (Appare automaticamente a tutti gli utenti)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privata - nascosta (Accessibile solo a chi ne conosce il nome)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privata - richiede password " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privato - solo su invito" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Personale (cassetta della posta solo per te)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Crea una nuova stanza" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Esci" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Esegui nuovamente il Log in" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Zap (dimentica/cancella la tua sottoscrizione) questa stanza" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 #, fuzzy msgid "If you select this option," msgstr "Cancella o modifica questa stanza" #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 #, fuzzy msgid "will disappear from your room list. Is this what you wish to do?" msgstr "" "Se selezioni questa opzione, %s scomparirà dalla tua lista delle " "stanze, vuoi farlo davvero?

    \n" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Zap questa stanza" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Nome utente" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Stanza" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Dall'host" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Mittente" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Apri in una nuova finestra" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Sposta" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Copia" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Stampa" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Stanze zappate (dimenticate)" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 #, fuzzy msgid "Click on any room to un-zap it and goto that room." msgstr "Clicca su una stanza per dezapparla ed entrarci.\n" #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" "Hai uno o più messaggi in coda che aspettano di essere letti, ma la finestra " "per i Messaggi Istantanei di Citadel non può essere aperta. La causa può " "essere un popup blocker installato nel tuo browser. Per favore, se vuoi " "ricevere Messaggi Istantanei, configura il tuo popup blocker in modo da " "permettere i popup da questo sito." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Modifica le tue preferenze e impostazioni" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Aggiorna i tuoi dati personali" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Cambia la tua password" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Inserisci la tua biografia" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Modifica la tua foto on line" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Visualizza/Modifica i filtri email lato server" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 #, fuzzy msgid "Manage your OpenIDs" msgstr "Il tuo OpenID" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Vedi" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Scarica" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Configurazione globale" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Gestione account utenti" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Stanze e piani" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Vai a una stanza segreta" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 #, fuzzy msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Se conosci il nome di una stanza nascosta (indovina il nome) o protetta da " "password, puoi digitarlo qui sotto per accedervi. Una volta che hai " "l'accesso a una stanza privata, comparirà nella tua lista di stanze, così " "non dovrai ripetere questo passaggio." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Inserisci il nome della stanza:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Inserisci la password della stanza:" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "Entra nella stanza" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "da " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "a" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Oggetto:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 #, fuzzy msgid "Push Email" msgstr "Email" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 #, fuzzy msgid "Funambol server host (blank to disable)" msgstr "Nome del server Funambol (vuoto per disabilitare)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 #, fuzzy msgid "Funambol server port " msgstr "Nome del server Funambol (vuoto per disabilitare)" #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 #, fuzzy msgid "Funambol sync source" msgstr "Nome del server Funambol (vuoto per disabilitare)" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 #, fuzzy msgid "External pager tool (blank to disable)" msgstr "Nome del server Funambol (vuoto per disabilitare)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Vista ad albero (cartelle)" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Vista a tabella (stanze)" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 ore (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 ore" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 #, fuzzy msgid "Sunday" msgstr "Sommario" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 #, fuzzy msgid "Monday" msgstr "Sommario" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Nessuna firma" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Cambia" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Preferenze e impostazioni" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Comandi base" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Le tue Informazioni" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Comandi di stanza avanzati" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Modifica l'account dell'utente:" #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Nome utente:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Password" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Permesso di inviare email a internet" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Numero di login" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Numero di Messaggi" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Livello di accesso" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Numero indentificativo" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Data e giorno dell'ultimo accesso" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Auto elimina dopo questo numero di giorni" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "Porta POP3 (-1 per disabilitare)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "Porta POP3 SSL (-1 per disabilitare)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 #, fuzzy msgid "POP3 fetch frequency in seconds" msgstr "Velocità della rete (in secondi)" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 #, fuzzy msgid "POP3 fastest fetch frequency in seconds" msgstr "Velocità della rete (in secondi)" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Visualizza la coda SMTP di posta in uscita" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Ricarica questa pagina" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Smart Host" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Provincia:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "Continua a processare" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 #, fuzzy msgid "Message to your Users:" msgstr "Il Messaggio non è stato spedito." #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Amministrazione" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Configurazione" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Politica di cancellazione dei messaggi" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Controllo Accessi" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Condivisione" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Servizio Mailing List" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 #, fuzzy msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "La tua bara delle icone è stata aggiornata. Per favore, seleziona una " "delle sue possibilità per continuare." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Oggetti di configurazione generali del sito" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Nome del nodo" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Nome di dominio completo" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Nome del nodo leggibile da umani" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Numero di telefono" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Richiamo di impaginazione (per i client solo testo)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Località geografica di questo server" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Nome dell'amministratore di sistema" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Timezone di default per i calendari non localizzati" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Stanza condivisa in rete" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Aggiungi un nuovo nodo" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Segreto condiviso" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Nome dell'host o indirizzo IP" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Numero di porta" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Aggiungi un nodo" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(termina)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Modifica la configurazione" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Modifica il contatto" #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "Minuto:" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Tentativo" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 #, fuzzy msgid "(Edit)" msgstr "(modifica)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Cancella)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Nessun nuovo messaggio." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Nuova pagina iniziale" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "La tua pagina iniziale è stata cambiata" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Invia un commento" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Conferma la cancellazione" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Sei sicuro di voler cancellare? " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Aggiungi, modifica, cancella degli account di utenti" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 #, fuzzy msgid "(hosts running the ClamAV clamd service)" msgstr "(host che forniscono il servizio spamassassin)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Invia" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 #, fuzzy msgid "Restart Citadel" msgstr "Imposta questa pagina come principale" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "da" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anonimo" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "in" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "A:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Oggetto (opzionale):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- messaggio inoltrato ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Posta il messaggio" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Allegati:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "Cancellare questo messaggio?" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Informazioni di stanza" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Cerca: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Risultato del comando impartito al Server" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 #, fuzzy msgid "Enter another command" msgstr "inserisci un comando per il server" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 #, fuzzy msgid "Return to menu" msgstr "Visualizza il menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 #, fuzzy msgid "Users currently on" msgstr "Utenti attualmente su %s" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Profilo utente" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 #, fuzzy msgid "Click here to send an instant message to" msgstr "Clicca qui per inviare un messaggio istantaneo a %s" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "solo immagini" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Modifica o cancella gli utenti" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 #, fuzzy msgid "You need to be aide to view this." msgstr "Non hai il permesso di visualizzare questa risorsa." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Aggiungi utenti" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Modifica o cancella gli utenti" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "" #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 #, fuzzy msgid "User list for " msgstr "Lista utenti per %s" #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Nome Utente" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Numero" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Livello di Accesso" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Ultimo Login" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Login Totali" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Messaggi Totali" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Caricamento" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Il tuo OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "é stato verificato con successo." #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "conflitto con un utente esistente" #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "" #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Uscita" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Politica di cancellazione dei messaggi per questa stanza" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Usa la politica di default per questo piano" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Non permettere ai messaggi di auto cancellarsi" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Cancella per numero di messaggi" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Elimina per età del messaggio" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Numero di messaggi o giorni:" #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Politica di cancellazione messaggi per questo piano" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Usa il default di sistema" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Chiudi la finestra" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Carica un documento:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Sei sicuro di voler cancellare? " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Allega file" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 #, fuzzy msgid "Remove" msgstr "(rimuovi)" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indicizzazione" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Attenzione: queste caratteristiche richiedono molte risorse." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Abilita l'indicizzazione completa dei testi" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Esegui l'indicizzazione delle email" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Esegui l'indicizzazione dei messaggi non-email" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Email di destinazione dei messaggi indicizzati" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Carica un documento:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Carica" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Nome del documento" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Dimensione" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Contenuto" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Descrizione" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "nuovo di" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "messaggi" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Seleziona pagina: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 #, fuzzy msgid "Remote host" msgstr "Smart Host" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 #, fuzzy msgid "Keep messages on server?" msgstr "Nessun messaggio." #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 #, fuzzy msgid "Interval" msgstr "Generale" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Aggiungi" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Per creare un nuovo account utente, inserisci il nome utente desiderato " "nella casella riportata sotto e clicca 'Crea'." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Nuovo utente:" #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Crea" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(Domini mappati nei Contatti Globali)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(rimuovi)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 #, fuzzy msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Gli utenti mostrati sotto hanno accesso a questa stanza. Per rimuovere un " "utente dalla lista degli accessi, selezionalo e clicca 'Espelli'." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Espelli" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Per permettere a un altro utente l'accesso a questa stanza, inserisci il suo " "nome utente e clicca 'Invita'." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Invita:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Invita" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Nuovo Utente" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 #, fuzzy msgid "Users" msgstr "Utenti" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Contatti" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Per modificare un utente esistente, seleziona il suo nome dalla lista e " "clicca 'Modifica'." #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Cancella l'utente" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "Cancellare questo utente?" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Cancella la regola" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(host che forniscono il servizio spamassassin)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "" "Questo è un aggiornamento di '%s' giè nel tuo calendario." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "" "Questo evento è in conflitto con l'evento '%s' già presente " "nel tuo calendario." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Quando arrivano nuove email: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Lasciala nellla mia posta in entrata senza filtrarla" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Crea filtro dalle regole selezionate qui sotto" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "Crea filtro modificando manualmente lo script (solo utenti esperti)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "La tua posta in ingresso non verrà filtrata attraverso nessuno script." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Aggiungi regola" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Lo script attivo è: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Aggiungi o cancella degli script" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Configura il connettore LDAP per Citadel" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "NOTA: Questo server citadel è stato compilato senza il supporto LDAP. Queste " "opzioni non avranno effetto." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Nome del server LDAP (vuoto per disabilitare)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Nuero di porta del server LDAP (vuoto per disabilitare)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "DN di base" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "DN bind" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Password per il DN bind" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Cancella o modifica questa stanza" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Entra in una stanza \"nascosta\"" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 #, fuzzy msgid "Zap (forget) this room" msgstr "Dimentica questa stanza (%s)" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Mostra tutte le stanze dimenticate" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Leggi i nuovi messaggi" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "ID del messaggio" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Ora/Data fornita" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 #, fuzzy msgid "Next attempt" msgstr "Ultimo tentativo" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Destinatari" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Numero di letture" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "dai più vecchi ai più recenti" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "dai più recenti ai più vecchi" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Modifica" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Rispondi" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Rispondi con cronistoria" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "Rispondi A Tutti" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Inoltra" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Intestazione" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Modifica la configurazione per tutto il sito" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Configurazione dei nomi di dominio e della posta internet" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Configura la replicazione con altri server Citadel" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Mostra l'icona Potenziato da Citadel" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Lingua:" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Leggi la tua Posta in Arrivo" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Posta" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Visualizza il tuo calendario personale" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Vai ai tuoi contatti personali" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Visualizza le tue Note personali" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Visualizza le Attività da portare a termine" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Mostra tutte le tue stanze accessibili" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Mostra gli altri utenti collegati in questo momento" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Utenti in rete" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" "Menu di opzioni avnzate: Comandi avanzati di stanza, Informazioni " "dell'utente e Chat" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Avanzato" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Funzioni di amministrazione delle stanze e di sistema" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "modifica questo menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Ultimo Login" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "Visualizza le cartelle" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "Visualizza il menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Le mie cartelle" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "Porta IMAP (-1 per disabilitare)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "Porta IMAP SSL (-1 per disabiliare)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Carica l'immagine" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Puoi caricare una qualsiasi immagine direttamente dal tuo computer." #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Per favore, seleziona un file da caricare:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Cancella" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Mostra le sottoscrizioni" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Mostra le sottoscrizioni/cancella la sottoscrizione" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Richiesta di conferma inviata" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "" #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 #, fuzzy msgid " to the " msgstr "sul " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 #, fuzzy msgid " mailing list." msgstr "Servizio Mailing List" #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Indietro..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 #, fuzzy msgid "ERROR" msgstr "ERRORE:" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 #, fuzzy msgid "from the" msgstr "da " #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 #, fuzzy msgid "mailing list." msgstr "Servizio Mailing List" #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 #, fuzzy msgid "Back..." msgstr "Indietro..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 #, fuzzy msgid "Confirmation successful!" msgstr "Richiesta di conferma inviata" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 #, fuzzy msgid "Confirmation failed." msgstr "Configurazione" #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "" #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 #, fuzzy msgid "Name of list:" msgstr "Nome dell'operazione" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 #, fuzzy msgid "Your e-mail address:" msgstr "Indirizzo email preferito" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "" #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 #, fuzzy msgid "One message at a time" msgstr "Inserisci il testo del messaggio:" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 #, fuzzy msgid "Digest format" msgstr "Formato dell'ora" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 #, fuzzy msgid "name of room: " msgstr "Nome delle stanza:" #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Se impostato come privato, l'utente corrente dimenticherà la stanza" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Solo utenti preferiti" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Stanza in sola lettura" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Stanza direttorio di file" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Nome del direttorio:" #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Upload permesso" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Download permesso" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Direttorio visibile" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Stanza condivisa in rete" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanente (non si auto cancella)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Messaggio anonimo" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Nessun messaggio anonimo" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Tutti i messaggi sono anonimi" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Notifica l'utente quando si sta digitando il messaggio" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Amministratore della stanza: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Cancello questa voce?" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Non condivisa con" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Condivisa con" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "nome del nodo remoto" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Nome della stanza remota" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Azioni" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "La condivisione di una stanza deve essere effettuata in tutti i server in " "cui è presente. Aggiungendo un nodo alla lista di condivisioni fa in modo " "che il messaggio venga inviato, ma per ricevere, anche il nuovo nodo deve " "essere configurato per inviare i messaggi al primo.
  • Se il nome remoto " "della stanza è vuoto, è implicito che il nome della stanza remota sarà lo " "stesso.
  • Se il nome remoto è diverso, si deve configurare anche il nodo " "della stanza iniziale.
    \n" #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Nessun messaggio." #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Agiungi, cambia o cancella i piani" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Numero del piano" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Nome del piano" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Numero di stanze" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Stile del Piano" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Crea un nuovo piano" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Sposta la regola su" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Sposta la regola giù." #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Cancella la regola" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Se" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Destinatario o Cc" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Rispondi a" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Inoltra da" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Inoltra a" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Mittente del contenitore" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Destinatario del contenitore" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "Lista-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Dimensione del messaggio" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Tutti" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "Contiene" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "Non contiene" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "è" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "Non è" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "è uguale a" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "Non è uguale" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(tutti i messaggi)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "E' più grande" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "E' più piccolo" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 #, fuzzy msgid "bytes" msgstr "anni" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Tieni" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Scarta silenziosamente" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Rimanda al mittente" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Sposta il messaggio in" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Inoltra a" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Vacanza" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Messaggio:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "e poi" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "Continua a processare" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "ferma" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(Domini per cui questo host riceve email)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Configurazione di rete" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Nodi configurati" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(Cancella il piano)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(Modifica la grafica)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Cambia nome" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "Modifica lo Stile" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Configura la cancellazione automatica dei vecchi messaggi" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Queste impostazioni possono essere escluse da impostazioni specifiche alla " "stanza o al piano." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Ora in cui lanciare la pulizia del database" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Politica di default per la cancellazione delle stanze publiche" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" "Politica di default per la cancellazione delle cassette postali private" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Stessa politica delle stanze private" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Tempo di eliminazione di default degli utenti (in giorni)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Tempo di eliminazioni di default delle stanze (in giorni)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Sicuro di voler cancellare questa stanza?" #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Cancella questa stanza" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 #, fuzzy msgid "Set or change the icon for this rooms banner" msgstr "Imposta o modifica l'icona per il banner di questa stanza" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 #, fuzzy msgid "Edit this rooms Info file" msgstr "Modifica il file di Informazioni di questa stanza" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "inserisci un comando per il server" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Questa schermata ti permette di inviare comandi al server non supportati da " "WebCit. Se non sai cosa significhi, allora questa schermata non ti " "sarà di molto aiuto." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Inserisci il comando:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "" "Input del comando (se si richiede un modo di traferimento SEND_LISTING):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 #, fuzzy msgid "Detected host header is " msgstr "L'intestazione dell'host rilevata è %s://%s" #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Inserisci il comando:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Elimina condivisione" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(host che usano una lista Blackhole in tempo reale)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Controlli di accesso e impostazioni delle politiche del sito" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Permetti agli amministratori di dimenticare le stanze" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Poni in quarantena i messaggi da utenti con problemi" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Nome della stanza di quarantena" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Nome delle stanze per il log delle pagine" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 #, fuzzy msgid "Self contained" msgstr "Contiene" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 #, fuzzy msgid "Host based" msgstr "Nome dell'host:" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 #, fuzzy msgid "Allow anonymous guest access" msgstr "Nessun messaggio anonimo" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 #, fuzzy msgid "Master user name (blank to disable)" msgstr "Nome del server Funambol (vuoto per disabilitare)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 #, fuzzy msgid "Master user password" msgstr "Inserisci la nuova password:" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Livello di accesso iniziale per i nuovi utenti" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Livello di accesso richiesto per creare le stanze" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Imposta automaticamente lo stato di aide per la stanza agli utenti che " "creano stanze private" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 #, fuzzy msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" "Imposta automaticamente lo stato di aide per la stanza agli utenti che " "creano stanze BLOG" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Restringi l'accesso alla posta internet" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Disabilita l'autocreazione degli account utente" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Richiedi la registrazione per i nuovo utenti" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Aggiungi, modifica o cancella i piani" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Vedi come:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Cancello questa voce?" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 #, fuzzy msgid "Logged in as" msgstr "Ultimo Login" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 #, fuzzy msgid "Not logged in." msgstr "Non autenticato" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Devi essere registrato per accedere a questa pagina." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Password:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Nuovo utente? Registrati ora" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 #, fuzzy msgid "Log in using Yahoo" msgstr "Esegui nuovamente il Log in" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Aggiungi un nuovo script" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Per creare un nuovo script, inserisci il nome desiderato nella casella " "riportata sotto e clicca 'Crea'." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Nome dello script: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Modifica gli script" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Torna alla schermata di modifica dello script" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Cancella gli script" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Per cancellare uno script esistente, seleziona il suo nome dalla lista e " "clicca 'Cancella'." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 #, fuzzy msgid "Restart Now" msgstr "Imposta questa pagina come principale" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 #, fuzzy msgid "Configure Push Email" msgstr "Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 #, fuzzy msgid "Notify Funambol server" msgstr "Nome del server Funambol (vuoto per disabilitare)" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 #, fuzzy msgid "Send a text message to..." msgstr "Invia un Messaggio istantaneo a:" #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "potenziato da" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "Porta SMTP MTA (-1 per disabilitare)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "Porta SMTP MSA (-1 per disabilitare)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "Porta SMTP SSL (-1 per disabilitare)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 #, fuzzy msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "Permetti ai client SMTP non autenticati lo spoofing dei domini del server" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Correggi le linee From: forgiate durante una sessione SMTP autenticata" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 #, fuzzy msgid "-1 to disable" msgstr "Clicca per disabilitare." #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 #, fuzzy msgid "ManageSieve Port (-1 to disable)" msgstr "Porta IMAP (-1 per disabilitare)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Configurazione del sito" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Generale" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indicizza" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Accesso" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 #, fuzzy msgid "Directory" msgstr "directory" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Eliminatore automatico" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 #, fuzzy msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "I contenuti di questa stanza verranno inviati come messaggi " "individuali alla seguente lista di destinatari:

    \n" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 #, fuzzy msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "I contenuti di questa stanza saranno inviati come selezione di " "messaggi alla seguente lista di destinatari

    \n" #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "Cognome" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Formato dell'ora" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "" #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 #, fuzzy msgid "Allow self-service subscribe/unsubscribe requests." msgstr "" "Questa stanza è configurate per permettere la sottoscrizione/cancellazione " "automatica degli utenti." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "L'indirizzo per sottoscriversi/cancellarsi dalla stanza è:" #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Oggetto" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 #, fuzzy msgid "Summary page for " msgstr "Pagina riassuntiva per %s" #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Messaggi" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Oggi nel tuo calendario" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 #, fuzzy msgid "Who‘s online now" msgstr "Chi è online adesso?" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "A proposito di questo server" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 #, fuzzy msgid "running" msgstr "Rifiniture" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 #, fuzzy msgid "with" msgstr "quinto" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 #, fuzzy msgid "and located in" msgstr "e poi" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 #, fuzzy msgid "Your system administrator is" msgstr "Nome dell'amministratore di sistema" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Vuoi davvero terminare questa sessione?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Utenti correntemente attivi " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 #, fuzzy msgid "Click on a name to read user info. Click on" msgstr "" "Clicca su un nome per leggere le informazioni utente.Clicca su %s per " "inviare un messaggio istantaneo a questo utente." #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 #, fuzzy msgid "to send an instant message to that user." msgstr "Invia un Messaggio istantaneo a:" #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Messaggi vecchi" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Condividi" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Inserisci la nuova password:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Inseriscila nuovamente per conferma:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Cambia la password" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Modifica la tua vista della sessione" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Questa schermata ti permette di cambiare il modo in cui appare la tua " "sessione nella lista \"chi è on line\". Per eliminare qualsiasi nome " "fittizio abbia usato in precedenza, clicca semplicemente sul bottone di " "\"modifica\" appropriaton senza digitare nulla nella casella corrispondente. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Nome della stanza:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Cambia il nome della stanza" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Nome dell'host:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Cambia il nome dell'host" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Cambia nome utente" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Conferma lo spostamento del messaggio" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Sposta questo messaggio in:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "" #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Mostra le stanze conosciute" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Dove posso andare da qui?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Vai alla Prossima Stanza" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 #, fuzzy msgid "...with unread messages" msgstr "... contenente messaggi non letti" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Salta alla prossima stanza" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(torna più tardi)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Stanza Precedente" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 #, fuzzy msgid "oops! Back to " msgstr "(oops! Torna a %s)" #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Leggi i nuovi messaggi" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... in questa stanza" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "leggi tutti i messaggi" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...vecchi e nuovo" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Componi un messaggio" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(scrivi in questa stanza)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Sommario" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Sommario del mio account" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Utenti" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(tutti gli utenti registrati)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Ciao!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "(Se presenti, invia tutta la posta non locale a uno di questi host)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Vista contatti" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Aggiungi un nuovo contatto" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Vista giornaliera" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Vista mensile" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Aggiungi un nuovo evento" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Lista dei Calendari" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Mostra le Attività" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Aggiungi una nuova Attività" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Mostra le note" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Aggiungi una nuova nota" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Componi un messaggio" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Home Page del Wiki" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Modifica questa pagina" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Storia" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 #, fuzzy msgid "New blog post" msgstr "i nuovi post" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" "Lascia tutti i messaggi marcati come non letti, passa alla stanza successiva " "con messaggi non letti." #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Salta questa stanza" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" "Marca tutti i messaggi come letti, vai alla prossima stanza con messaggi non " "letti" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Cambia i cambiamenti" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Stai sottoscrivendo %s alla mailing list %s. Il server " #~ "di posta ti ha inviato una email contenente un collegamento da cliccare " #~ "per confermare la tua sottoscrizione. questo passo è necessario " #~ "per la tua protezione, in modo da evitare che altre persone possano " #~ "sottoscriverti senza il tuo consenso.

    Per favore, clicca sul " #~ "collegamento presente nella email per confermare la tua sottoscrizione." #~ "
    \n" #~ msgid "There is no room called '%s'." #~ msgstr "Nessuna stanza col nome '%s'." #~ msgid "Network" #~ msgstr "Rete" #~ msgid "Tuning" #~ msgstr "Rifiniture" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Elimina automaticamente i messaggi cancellati nelle cartelle IMAP" #~ msgid "A script by that name already exists." #~ msgstr "Esiste già uno script con quel nome." #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "E' stato creato un nuovo script. Torna alla schermata di editing per " #~ "modificarlo e attivarlo." #~ msgid "Delete script" #~ msgstr "Cancella lo script" #~ msgid "Delete this script?" #~ msgstr "Cancellare questo script?" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Sei connesso a %s, %s è in esecuzione con %s server build %s e " #~ "localizzato in %s. Il tuo amministratore di sistema è %s." #, fuzzy #~ msgid "Yes with users list" #~ msgstr "Visualizza le cartelle" #~ msgid "Room list" #~ msgstr "Lista delle stanze" #, fuzzy #~ msgid "uname" #~ msgstr "Nome del documento" #, fuzzy #~ msgid "text" #~ msgstr "successivo" #, fuzzy #~ msgid "name" #~ msgstr "Nome del documento" #, fuzzy #~ msgid "pname" #~ msgstr "Nome del documento" #, fuzzy #~ msgid "password" #~ msgstr "Password" #, fuzzy #~ msgid "pass" #~ msgstr "Attività" #, fuzzy #~ msgid "authbox" #~ msgstr "Autore" #, fuzzy #~ msgid "display: none" #~ msgstr "Nome da mostrare:" #~ msgid "Your password was not accepted." #~ msgstr "La tua password non è stata accettata." #~ msgid "See the" #~ msgstr "Guarda il" #~ msgid "Log off now?" #~ msgstr "Uscire adesso?" #, fuzzy #~ msgid "%d new of %d messages%s" #~ msgstr "%d nuovi messaggi su %d totali" #~ msgid "(nothing)" #~ msgstr "(nulla)" #~ msgid "unexpected end of message" #~ msgstr "Fine del messaggio inaspettata" #~ msgid "An error occurred while setting up the chat socket." #~ msgstr "" #~ "Si è verificato un errore durante la creazione della connessione per la " #~ "chat." #~ msgid "Now exiting chat mode." #~ msgstr "Uscita dalla modalità chat." #~ msgid "Help" #~ msgstr "Aiuto" #~ msgid "List users" #~ msgstr "Mostra gli utenti" #~ msgid "No messages here." #~ msgstr "Nessun messaggio." #, fuzzy #~ msgid "no more messages" #~ msgstr "Messaggio anonimo" #~ msgid "Email" #~ msgstr "Email" #~ msgid "Error retrieving RSS feed: couldn't find messages\n" #~ msgstr "" #~ "Errore nella ricezione del RSS: non riesco a trovare dei messaggi
    \n" #, fuzzy #~ msgid "%s from" #~ msgstr "da" #, fuzzy #~ msgid "%s in %s" #~ msgstr "solo immagini" #, fuzzy #~ msgid "" #~ "
    • Enter your OpenID URL and click "Log in".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "
    • Se hai già un account su %s, fornisci il tuo nome " #~ "utente e la tua password e clicca su "Log in."
    • Se sei un " #~ "nuovo utente, fornisci il nome utente e la password che vorresti e " #~ "clicca su "Nuovo Utente."
    • Per favore, eseguire il logout in " #~ "maniera corretta prima di uscire.
    • Devi usare un Browser che supporti " #~ "i frames e i cookies.
    • Tieni anche a mente che se il " #~ "tuo browser è configurato per bloccare le finestre di pop up, non " #~ "riuscirai a ricevere nessun messaggio istantaneo.
    " #, fuzzy #~ msgid "" #~ "enter your user name and password and click "Log in."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "
    • Se hai già un account su %s, fornisci il tuo nome " #~ "utente e la tua password e clicca su "Log in."
    • Se sei un " #~ "nuovo utente, fornisci il nome utente e la password che vorresti e " #~ "clicca su "Nuovo Utente."
    • Per favore, eseguire il logout in " #~ "maniera corretta prima di uscire.
    • Devi usare un Browser che supporti " #~ "i frames e i cookies.
    • Tieni anche a mente che se il " #~ "tuo browser è configurato per bloccare le finestre di pop up, non " #~ "riuscirai a ricevere nessun messaggio istantaneo.
    " #~ msgid "Find out more about Citadel" #~ msgstr "Scopri di più su Citadel" #~ msgid "CITADEL" #~ msgstr "CITADEL" #~ msgid "Customize this menu" #~ msgstr "Personalizza questo menu" #~ msgid "Internet configuration" #~ msgstr "Configurazione internet" #~ msgid "of %d messages." #~ msgstr "di %d messaggi." #~ msgid " from " #~ msgstr "da" #~ msgid " in " #~ msgstr "in" #~ msgid "Edit node configuration for " #~ msgstr "Modifica la configurazione del nodo per" #~ msgid "" #~ "Postfix TCP " #~ "Dictionary Port (-1 to disable)" #~ msgstr "" #~ "Porta del dizionario " #~ "TCP di Postfix (-1 per disabilitare)" #~ msgid "ERROR: could not open template " #~ msgstr "ERRORE non riesco ad aprire il template" #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Questo messaggio contiene informazioni di organizzazione/" #~ "programmazione, ma in questo particolare sistema, il supporto per i " #~ "calendari non è disponibile. Per favore, chiedi al tuo " #~ "amministratore di sistema di installare una nuova versione del servizion " #~ "web di Citadel con il calendario abilitato.
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Non posso mostrare l'oggetto calendario. Stai vedendo questo messaggio " #~ "perchè il servizio WebCit non è stato installato col " #~ "supporto al calendario. Per favore, contatta il tuo amministratore di " #~ "sistema.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Non posso mostrare l'oggetto cose da fare. Stai vedendo questo " #~ "messaggio perchè il servizio WebCit non è stato installato " #~ "col supporto al calendario. Per favore, contatta il tuo amministratore di " #~ "sistema.
    \n" #~ msgid "Day: " #~ msgstr "Giorno:" #~ msgid "Year: " #~ msgstr "Anno:" #~ msgid "The calendar view is not available." #~ msgstr "La vista calendario non è disponibile." #~ msgid "The tasks view is not available." #~ msgstr "La vista operazione non è disponibile." #~ msgid "Gateway domains" #~ msgstr "Domini del gateway" #~ msgid "(domains whose subdomains match Citadel hosts)" #~ msgstr "(domini i cui sottodomini coincidono con host Citadel)" #~ msgid "(This server does not support task lists)" #~ msgstr "(Questo server non supporta la lista delle operazioni)" #~ msgid "(This server does not support calendars)" #~ msgstr "(Questo server non supporta i calendari)" #~ msgid "" #~ "This room is not configured to allow self-service subscribe/" #~ "unsubscribe requests." #~ msgstr "" #~ "Questa stanza non è stata configurata per permettere la " #~ "sottoscrizione/cancellazione automatica degli utenti." #~ msgid "Click to enable." #~ msgstr "Clicca per abilitare." #~ msgid "Back to menu" #~ msgstr "Torna al menu" #~ msgid "Respond to meeting request" #~ msgstr "Rispondi alla richiesta di incontro" #~ msgid "Update your calendar with this RSVP" #~ msgstr "Aggiorna il tuo calendario con questo RSVP" #~ msgid "Public room" #~ msgstr "Stanza pubblica" #~ msgid "Private - guess name" #~ msgstr "Privato - indovina il nome" #~ msgid "Private - require password:" #~ msgstr "Privato - richiede la password" #~ msgid "localhost" #~ msgstr "localhost" #~ msgid "gatewaydomain" #~ msgstr "dominio del gateway" #~ msgid "rbl" #~ msgstr "rbl" #~ msgid "spamassassin" #~ msgstr "spamassassin" #~ msgid "[ close window ]" #~ msgstr "[ chiudi la finestra ]" webcit-dfsg.orig/po/webcit/pl.po0000644000175000017500000045714413223341037016664 0ustar michaelmichael# translation of webcit.po to pl.po # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # This file is distributed under the revised BSD license # # WebCit messages for Polish # Copyright (C) 2005 David Given # This file is distributed under GPL v3 # msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-11-27 15:35+0000\n" "Last-Translator: Waldemar Ogonowski \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-11-28 05:10+0000\n" "X-Generator: Launchpad (build 16847)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "dostępność nieznana" #: ../../availability.c:169 msgid "free" msgstr "wolny" #: ../../availability.c:179 msgid "BUSY" msgstr "ZAJĘTY" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Przesyłanie pliku zostało anulowane." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Nie przesłałeś pliku." #: ../../graphics.c:106 msgid "your photo" msgstr "Twoje zdjęcie" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "ikona dla tego pokoju" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "obrazek graficzny przy logowania" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "obrazek przy wyloggowaniu" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "ikona dla piętra" #: ../../tasks.c:93 msgid "Completed?" msgstr "Zakończone ?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Nazwa zadania" #: ../../tasks.c:97 msgid "Date due" msgstr "Data zakończenia" #: ../../tasks.c:99 msgid "Category" msgstr "Kategoria" #: ../../tasks.c:101 msgid "Show All" msgstr "Wyświetl wszystkie" #: ../../tasks.c:224 msgid "Edit task" msgstr "Edycja zadania" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Podsumowanie:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Data rozpoczęcia:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Brak daty" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "albo" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "Powiązanie czasu" #: ../../tasks.c:289 msgid "Due date:" msgstr "Data zkończenia:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Zakończone:" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategoria:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Opis:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Zapisz" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Usuń" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Anuluj" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Nieopisane zadanie" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d komentarzy" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "permalink" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "Nowsze" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "Starsze" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "Edytuj %s" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "Tekst jest sformatowany dla przeglądarki." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Zapisz zmiany" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Anulowano. %s nie będzie zapisane." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " zostało zapisane." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Informacj o pokoju" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Twoje bio" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Godzina: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minuty: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(status nieznany)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(potrzebne działanie)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(zaakceptowany)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(odrzucony)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(niepewny)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(odelegowany)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(zakoczony)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(w trakcie)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(nieokreślony)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Zarządzanie kontem OpenID" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Czy na pewno chcesz usunąć OpenID?" #: ../../openid.c:47 msgid "(delete)" msgstr "(usuń)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Dodaj OpenID: " #: ../../openid.c:58 msgid "Attach" msgstr "Załącz" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s nie zezwala na uwierzytelnianie za pomocą OpenID." #: ../../summary.c:128 msgid "(None)" msgstr "(Brak)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Brak)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Skocz do strony: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Pierwszej" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Ostatniej" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() łąd! nie może pobrać %d bytes: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Usuń" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Nowy użytkownik" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Problematyczny użytkownik" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Lokalny użytkownik" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Sieciowy użytkownik" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "Preferowany użytkownik" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Admin" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Wystąpił błąd." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Zatwierdź nowych użytkowników" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Obecnie żaden użytkownik nie wymaga zatwierdzenia." #: ../../auth.c:617 msgid "very weak" msgstr "bardzo słabe" #: ../../auth.c:620 msgid "weak" msgstr "słabe" #: ../../auth.c:623 msgid "ok" msgstr "ok" #: ../../auth.c:627 msgid "strong" msgstr "mocne" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Aktualny poziom dostępu: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Wybierz poziom dostępu dla tego użytkownika:" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Anulowane. Hasło nie zostało zmienione." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "One nie pasują. Hasło nie zostało zmienione." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Puste hasła nie są dozwolone." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Zaproszenie na spotkanie" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Odpowiedź uczestnika na zaproszenie" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Opublikowano wydarzenie" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "To jest nieznany rodzaj elementu kalendarza." #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Lokalizacja:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Data:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Data rozpoczęcia/czas:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Data zakończenia/czas:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Powtarzanie" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "To jest wydarzenie cykliczne" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Uczestnik:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Jest to zmiana '%s', które znajduje się już w kalendarzu." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "Wydarzenie to byłoby sprzeczne z '%s', które jest już w kalendarzu." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Aktualizacja:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "KONFLIKT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Jak chcesz odpowiedzieć na to zaproszenie?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Akceptuj" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Niepwne" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Odmowa" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Kliknij Aktualizacja , aby zaakceptować tę odpowiedź i aktualizować " "swój kalendarz." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Zaktualizuj" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignoruj" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Wystąpił błąd podczas analizowania tego elementu kalendarza." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Zaakceptowałeś zaproszenie na spotkanie. Zostało wpisana do Twojego " "kalendarza." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Wstępnie zaakceptowałeś zaproszenie na spotkanie. Zostało \"zaznaczone\" w " "Twoim kalendarzu." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Odrzuciłeś zaproszenie na spotkanie. Zaproszenie nie będzie " "wpisane do Twojego kalendarza." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Odpowiedź została wysłana do organizatora spotkania." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "Twój kalendarz został zaktualizowany, aby odzwierciedlić RSVP." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "" "Wybrałeś ignorowanie ten RSVP. Twój kalendarz nie zostanie " "zaktualizowany." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Widok kalendarza dziennego zaczyna się od:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Widok kalendarza dziennego kńczy się na:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Tydzień zaczyna się od:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Wystąpił błąd podczas pobierania tego pliku: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "sekundy" #: ../../event.c:72 msgid "minutes" msgstr "minuty" #: ../../event.c:73 msgid "hours" msgstr "godzin(y)" #: ../../event.c:74 msgid "days" msgstr "dni" #: ../../event.c:75 msgid "weeks" msgstr "tygodni" #: ../../event.c:76 msgid "months" msgstr "miesięcy" #: ../../event.c:77 msgid "years" msgstr "lat(a)" #: ../../event.c:78 msgid "never" msgstr "nigdy" #: ../../event.c:82 msgid "first" msgstr "pierwszy(a)" #: ../../event.c:83 msgid "second" msgstr "drugi" #: ../../event.c:84 msgid "third" msgstr "trzeci(a)" #: ../../event.c:85 msgid "fourth" msgstr "czwarty(a)" #: ../../event.c:86 msgid "fifth" msgstr "piąty(a)" #: ../../event.c:89 msgid "Event" msgstr "Wydarzenie" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Uczestnicy" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Dodaj lub edytuj zdarzenie" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Zestawienie" #: ../../event.c:222 msgid "Location" msgstr "Lokalizacja:" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Początek" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Wydarzenie całodniowe" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Koniec" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notes" #: ../../event.c:374 msgid "Organizer" msgstr "Notes" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(jesteś organizatorem)" #: ../../event.c:397 msgid "Show time as:" msgstr "Pokaż czas jako:" #: ../../event.c:420 msgid "Free" msgstr "Wolny" #: ../../event.c:428 msgid "Busy" msgstr "Zajety" #: ../../event.c:445 msgid "(One per line)" msgstr "(Jeden na linie)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Kontakty" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Zasady powtarzania" #: ../../event.c:522 msgid "Repeats every" msgstr "Powtarzaj co każdy" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "dzień tygodnia:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "dzień %s%d%s miesiąca" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "w " #: ../../event.c:631 msgid "of the month" msgstr "w miesiącu" #: ../../event.c:660 msgid "every " msgstr "co " #: ../../event.c:661 msgid "year on this date" msgstr "roku o tej datcie" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "z" #: ../../event.c:717 msgid "Recurrence range" msgstr "Zakres powtarzania" #: ../../event.c:725 msgid "No ending date" msgstr "Brak daty zakończenia" #: ../../event.c:732 msgid "Repeat this event" msgstr "Powtarzaj to wydarzenie" #: ../../event.c:735 msgid "times" msgstr "razy" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Powtarzaj to wydarzenie aż do " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Sprawdź dostępność uczestników" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Nie opisane wydarzenie" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Ustawienia ikon" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Nieprawidłowy parametr" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " została usunięta." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " dodana" #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Wyższa poziom dostępu jest niezbędny do korzystania z tej funkcji" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "Trzeba określić listę dyskusyjną, aby zapisać się." #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "Musisz podać adres e-mail, który chcesz zapisać się." #: ../../messages.c:73 msgid "ERROR:" msgstr "BŁĄD:" #: ../../messages.c:91 msgid "Empty message" msgstr "Puta wiadomość" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Anulowane. Wiadomość nie została wysłana." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "Automatycznie anulowane, ponieważ zapisano już tę wiadomość." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "Zapisane w Roboczych nie powiodło sie: " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Odmowa wysłania pustej wiadomości.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Wiadmość została zapisana do Roboczych.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Wiadomość została wysłana.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Wiadomość została wysłana.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Wiadomość nie została przeniesiona." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Wystąpił błąd podczas pobierania tej części: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Wystąpił błąd podczas pobierania tej części: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "Dołączyć podpis do wiadomości e-mail?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Użyj tego podpisu:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Domyślne kodowanie w nagłówkach e-mail:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Preferowany adres e-mail" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Preferowana nazwa wyświetlana w wiadomościach e-mail" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Preferowane nazwa wyświetlana w wiadomościach BBS" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Tryb wyświetlania skrzynki pocztowej" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Kliknij na jakąkolwiek notatkę w celu edycji." #: ../../paging.c:29 msgid "Send instant message" msgstr "Wyślij wiadomość" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Wyślij wiadomość do: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Wpisz tekst wiadomości:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Wyślij wiadomość" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Wiadomość nie została wysłana." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Wiadomość została wysłana do " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Anulowane. Ustawienia nie będą zmienione." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Ustaw jako stronę startową" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "To nie może ustawić jako strona startowa." #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Nie masz strony startowej ustawionej." #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Zalecana strona stratow" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Moje Foldery" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Anulowane. Zmiany nie zostały zapisane." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Twoje zmiany zostały zapisane." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "User '%s' wyrzucony z pokoju '%s'." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "User '%s' zaproszony do pokoju '%s'." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Anulowane. Nowy pokój nie będzie utworzony." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Piętro zostało usunięte." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Nowe piętro zostało utworzone." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Lista pokoi" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Pokaż puste piętra" #: ../../roomtokens.c:570 msgid "file" msgstr "plik" #: ../../roomtokens.c:572 msgid "files" msgstr "pliki" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Bulletin Board" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Folder poczty" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Książka adresowa" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Kalendarz" #: ../../roomviews.c:57 msgid "Task List" msgstr "Lista zadań" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Lista notatek" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Lista kalendarza" #: ../../roomviews.c:61 msgid "Journal" msgstr "Dziennik" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Wersje robocze" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Ten serwer obsługuje już maksymalną liczbę użytkowników i nie może " "przyjmować żadnych dodatkowych loginów w tym czasie. Spróbuj ponownie " "później lub skontaktuj się z administratorem systemu." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Otrzymałeś nieoczekiwaną odpowiedź z serwera Citadel; ratuj się." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Jesteś podłączony do serwera z systemem Citadel %d.%02d. \n" "W celu uruchomienia tej wersji WebCit musisz mieć Citadel %d.%02d lub " "nowszy.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Konfiguracja systemu została zaktualizowany." #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "Pierwsza próba oczekuje" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "" "Wystąpił błąd podczas tworzenia lub edycji tego wpisu książki adresowej.." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Zmiany nie zostały zapisane." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Nowy użytkownik został stworzony." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Próbujesz utworzyć nowego użytkownika od wewnątrz Citadel podczas pracy w " "trybie uwierzytelniania hosta. W tym trybie, należy utworzyć nowego " "użytkownika w systemie hosta, a nie w Citadel." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(brak nazwy)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (praca)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (dom)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (mobile)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adres:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon:" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Ksiązka adresowa pusta." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Wystąpił błąd wewnętrzny." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Błąd" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Edycja informacji kontaktu" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Prefiks" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Imię" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Drugie imię" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Nazwisko" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Sufiks" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Wyświetlana nazwa:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Stanowisko:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organizacja:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Skrytka pocztowa:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Miejscowość:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Stan/województwo:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Kod pocztowy:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Państwo:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Domowy telefon:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Praca telefon:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Komórkowy:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Fax numer:" #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Główny adres email" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Internetowe email aliasy" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Nie można wejść do pokoju, aby zapisać wiadomość" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Przerwane." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Nie można zdekodować vCard zdjęcia\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Wymagana autoryzacja" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "Zasób który prosiłeś wymaga poprawnej nazwy użytkownika i hasło. Nie można " "się zalogować: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Ten program nie był w stanie się połączyć . Proszę zgłosić ten problem do " "administratora systemu." #: ../../webcit.c:688 msgid "Read More..." msgstr "Czytaj więcej ..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' pokój nie jest Wiki." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Brak strony o nazwie '%s' tutaj." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Wybierz link w banerze pokoju \"Edytuj stronę\" , jeśli chcesz utworzyć tę " "stronę." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Data" #: ../../wiki.c:143 msgid "Author" msgstr "Autor" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(pokaż)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Bieżąca wersja" #: ../../wiki.c:184 msgid "(revert)" msgstr "(cofnij)" #: ../../wiki.c:246 msgid "Page title" msgstr "Tytuł strony" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Format czasu" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Od" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Data startowa:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Data zakończenia:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Data/czas:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notatki:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "poprzedni" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "następny" #: ../../calendar_view.c:750 msgid "Week" msgstr "Tydzień" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Godzin(a/y)" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Temat" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "W toku wydarzenie" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "edycja" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Nie wiem, jak wyświetlić " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(brak tematu)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "Kolejka jest pusta" #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Nie masz uprawnień, aby zobaczyć ten zasób." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Dostosuj pasek ikon" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Ikony wyświetlaj jako:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "obrazki i tekst" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "tylko obrazki" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "tylko tekst" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Wybierz ikony, które chcesz zobaczyć, wyświetlany w menu 'bar' po lewej " "stronie ekranu." #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Tak" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Nie" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Logo strony" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Ikona opisująca tę stronę" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Twoja strona z zestawieniem" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Poczta (przychodząca)" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Skrót do skrzynki odbiorczej poczty e-mail" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Twoja osobista książka adresowa" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Twoje osobiste notatki" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Skrót do kalendarza osobistego" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Zadania" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Skrót do osobistej listy zadań" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Pokoje" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "" "Kliknięcie tej ikony wyświetla listę wszystkich dostępnych pokoi (lub " "folderów) dostępnych." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Kot jest online?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "" "Kliknięcie tej ikony wyświetla listę wszystkich aktualnie zalogowanych " "użytkowników" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "" "Kliknięcie tej ikony przechodzi w tryb rozmowy w czasie rzeczywistym z " "innymi użytkownikami w tym samym pokoju." #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Zaawansowane opcje" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Dostęp do pełnego menu funkcji Citadel." #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Wyświetl ikone 'Powered by Citadel'" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Menu Administracji Systemu" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "Pokój Menu Admin" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Lokalne aliasy systemu (host)" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Katalog domen" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart hosts" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "Awaryjne sprytne hosty" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "Hosty powiadamiające" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "RBL hosts" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssassin hosts" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV clamd hosts" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Maskowane domeny" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Zmiany dokonane na tym ekranie nie zostaną zastosowane dopiero po ponownym " "uruchomieniu serwera Cytadeli." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Usługi sieciowe" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 #, fuzzy msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Server IP adres (0.0.0.0 dla 'każdego IP')" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) client to server port (-1 aby włączyć)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "XMPP (Jabber) server to server port (-1 aby włączyć)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Zaawansowana kontrola (dostrajanie) serwera" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Maksymalna długość wiadomości" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "Limit czasu połączenia z serwerem bezczynności (w sekundach)" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Częstotliwość uruchamiania sieci (w sekundach)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Maksimum sesji równoległych (0 = brak limitu)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Minimalna liczba wątków" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Maksymalna liczba wątków roboczych" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Automatyczne usuwanie ?zaangażowanych? lgów baz danych" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Utwórz nowy pokój" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Nazwa pokoju: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Znajduje się na piętrze: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Domyślny widok pokoju: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Typ pokoju:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Publicznych (pojawia się automatycznie dla wszystkich)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Prywatne - ukryte (dostępne dla każdego, kto zna jego nazwę)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Prywatne - wymagają hasła: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Tylko zaproszenia - prywatne" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Prywatne (poczta tylko dla Ciebie)" #: ../../i18n_templatelist.c:95 #, fuzzy msgid "Create new room" msgstr "Utwórz nowy pokój" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Wyloguj" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Zaloguj ponownie" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "Zapomnij /wypisz się z bieżacego pokoju" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "Jeśli wybierzesz tę opcję," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "zniknie z listy pokjów. Czy to chcesz zrobić?" #: ../../i18n_templatelist.c:102 #, fuzzy msgid "Zap this room" msgstr "Pomiń ten pokój" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "WAGA: masz wyłączoną obsługę JavaScript w przeglądarce. Wiele funkcji tego " "systemu nie będzie działać poprawnie." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Nazwa użytkownika" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Pokój" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Połączony z komputera" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Nadawca" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Ładowanie wiadomości z serwera, proszę czekać" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "Otwórz w nowym oknie" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Przenieść" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Kopiuj" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Drukuj" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" "(wysłać pocztę wychodzącą do tych hostów tylko wtedy, gdy bezpośrednie " "dostrczenie nie jest możliwe)" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Zapomniane pokoje" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "" "Kliknij na jakiekolwiek pokoju aby ustawić un-zap i przejdź do tego pokoju." #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "" #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Zmień swoje preferencje i ustawienia" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Aktualizuj swoje dane kontaktowe" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Zmień swoje hasło" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Wprowadź swoje 'bio'" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Edytuj swoje online zdjęcie" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Pokaż/edytuj filtr pocztowy od strony servera" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Edycja Twoich ustawień push email" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "Zarządzaj swoim OpenIDs" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "" #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "" #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Widok" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Pobieranie" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Globalna konfiguracja" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Zarządzanie kontami użytkowników" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Shutdown Citadel" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Pokoje i Piętra" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Idź do ukrytego pokoju" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Jeśli znasz nazwę ukrytego (zgadnij-name) lub hasla pokoju można wejść do " "tego pokoju, wpisując jego nazwę poniżej. Po uzyskaniu dostępu do prywatnego " "pokoju, pojawi się w regularnych ofert w pokojach, więc nie musisz wracać " "tutaj." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Wpisz nazwę pokoju:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Wprowadź hasło dla pokoju:" #: ../../i18n_templatelist.c:144 #, fuzzy msgid "Go there" msgstr "w " #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "od " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "do" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "DW:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Temat:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Natychmiastowe przesyłanie wiadomości (push e-mail)" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Funambol server host (puste aby wyłączyć)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Funambol server port " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Funambol sync source" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Funambol auth details (user:pass)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "Narzędzie do powiadamiania zewnetrzne (puste aby wyłączyć)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Drzewo (foldery) zobacz" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Tabela (pokoje) zobacz" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 hour (am/pm)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 godzinny" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Niedziela" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Poniedziałek" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Bez podpisu" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Pełnea funkcjonalność" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Tryb bezpieczny" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" "Tryb bezpieczny jest mniej intensywny w przeglądarce internetowej, ale nie w " "pełni funkcjonalny." #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Preferencje i ustawienia" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "(URLS do powiadomień, gdy użytkownicy otrzymują nową pocztę; )" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "Syntax: Powiadomienie:http[s]://user:password@hostname/path" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Podstawowe polecenia" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Twoje info" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Zaawansowane komendy pokoju" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Edytuj konto użytkownika: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Nazwa użytkownika" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Hasło" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Uprawnienie do wysyłania poczty internetowej" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Liczba logowań" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Wiadomości wysłane" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Poziom dostępu" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Numer ID użytkownika" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Data i czas ostatniego logowania" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Auto-czyszczenie po ilosci dni" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 listener port (-1 aby włączyć)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3 over SSL port (-1 aby włączyć)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "POP3 sprowadzić częstotliwość w sekundach" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "POP3 najszybciej sprowadzić częstotliwość w sekundach" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "Zobacz wychodzącą kolejkę SMTP" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Odśwież te strone" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "" #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 #, fuzzy msgid "Remote Sites:" msgstr "Odległy host" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 #, fuzzy msgid "Status:" msgstr "Stan/województwo:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 #, fuzzy msgid "Jobs waiting for further processing:" msgstr "kontynuj przetwarzanie" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Wiadomość do użytkowników:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Zarządzanie" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Ustawienia" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Polityka wygasania wiadomości" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Kontrola dostępu" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Współdzielenie" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Obsługa listy mailingowej" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Zdalne pobieranie" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Twój pasek ikon został zaktualizowany. Proszę wybrać jedną z jego opcji, aby " "kontynuować." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "" "Może trzeba wymusić odświeżania (Shift-F5)>, aby zmiany odniosły skutek" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Ogólne elementy konfiguracji systemu" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Zmień logo Logowania" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Zmień logo Wyloguj" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Nazwa węzła" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Pełna nazwa hosta np (nocall.ampr.org)" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Czytelna dla użytkowników nazwa węzła" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Numer telefonu" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Prompt stronicowania (tylko dla klientów w trybie tekstowym)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Lokalizacja geograficzna: kraj, miasto" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Nazwa administratora systemu" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Domyślna strefa czasowa dla pozycji kalendarza" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "" #: ../../i18n_templatelist.c:235 #, fuzzy msgid "Networked Room" msgstr "Sieciowo wspólny pokój" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Dodaj nowy węzeł (node)" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Wspólny serkretny klucz" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Host lub IP adres" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Numer portu" #: ../../i18n_templatelist.c:241 #, fuzzy msgid "Add node?" msgstr "Dodaj nowy węzeł (node)" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(zabij)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 #, fuzzy msgid "Edit configuration" msgstr "Konfiguracja strony" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 #, fuzzy msgid "Edit address book entry" msgstr "Ksiązka adresowa pusta." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 #, fuzzy msgid "Minutes" msgstr "minuty" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 #, fuzzy msgid "active" msgstr "Niepwne" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(Edycja)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Usuń)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Brak nowych wiadomości." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Nowa strona startowa" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Twoja strona startowa została zmieniona." #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Uwaga: to nie zmienia strony startowej w przeglądarce . Zmienia stronę, " "którą rozpoczyna się podczas logowania do" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Zamieść komentarz" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Potwierdź usunięcie" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "Czy na pewno chcesz usunąć " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Dodawanie, zmienianie, usuwanie kont użytkowników" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(hosts na których działa usługa clamd ClamAV)" #: ../../i18n_templatelist.c:270 #, fuzzy msgid "Send" msgstr "Nadawca" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Restart Citadel" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "Od" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anonimowo" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "Do:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Temat (opcjonalnie)" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- wiadomośc przekazywana ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Napisz wiadmość" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "Zapisz do Roboczych" #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Załączniki:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 #, fuzzy msgid "Delete this message?" msgstr "Usuń ten pokój" #: ../../i18n_templatelist.c:300 #, fuzzy msgid "Room Logo" msgstr "Informacj o pokoju" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Szukaj: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Wyniki poleceń serwera" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "Wpisz inną komendę" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "Powrót do menu" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Użytkownicy obecnie na" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Profil użytkownika" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "Kliknij tutaj, aby wysłać wiadomość błyskawiczną do" #: ../../i18n_templatelist.c:308 #, fuzzy msgid "Pictures in" msgstr "tylko obrazki" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Edytowanie lub usuwanie użytkowników" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "Musisz być pomcnikiem aby móc wyświetlić to." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Dodaj użytkowników" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Wdycja lub usuwanie użytkowników" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Poczekaj chwilę server Citadel jest ponownie uruchomiany ... " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "Lista użytkownika dla " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Nazwa użytkownika" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Numer" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Poziom dostępu" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Ostatnie logowanie" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Liczba zalogowań" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Wszystkich postów" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Wczytywanie" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Twój OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "został pomyślnie zweryfikowany." #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "Jednak nazwa użytkownika" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "konflikty z istniejącm użytkownikiem." #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Proszę podać nazwę użytkownika, którego chcesz użyć." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Polityka wygasania wiadomość w tym pokoju" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Użyj domyślnej polityki dla tego piętra" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Nigdy automatycznie wygasa wiadomości" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Tracą ważność wg liczby wiadomości" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Wygasają według wieku wiadomości" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Liczba wiadomości lub dni: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Polityak wygasania wiadomość na tym piętrze" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Użyj domyślnych ustawień systemowych" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Zamknij okno" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "" #: ../../i18n_templatelist.c:361 #, fuzzy msgid "Upload failed" msgstr "Prześlij plik:" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "" #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "" #: ../../i18n_templatelist.c:366 #, fuzzy msgid "Are you shure you want to delete {filename}?" msgstr "Czy na pewno chcesz usunąć " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Dołącz plik" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "" #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "Usuń" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indeksowanie i księgowanie" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Ostrzeżenie: zadania te są źródłem intensywnego obciązenia" #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Umożliwienie pełnego indeksu tekstowego" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "Przeprowadzić księgowanie wiadomości e-mail" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Przeprowadzić księgowanie wiadomości nie będących pocztą" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "Przeznaczenia wiadomości e-mail z księgowanych" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Pliki dostępne do pobrania w" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Prześlij plik:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Wyślij" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Nazwa pliku" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Wielkość" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Zawartość" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Opis" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Instalacja Citadel została zbudowana bez obsługi po stronie serwera " "filtrowania poczty.
    Proszę skontaktować się z administratorem systemu, " "jeśli potrzebujesz tej funkcji
    " #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "nowych z" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "wiadomości" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Wybierz stronę: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "Odległy host" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Zachować wiadomości na serwerze?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Interwał" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Dodaj" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Pobrać następujące kanały RSS i przechowywać je w tym pokoju:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Kanał URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Aby utworzyć nowe konto użytkownika, wprowadź żądaną nazwę użytkownika w " "polu poniżej i kliknij przycisk \"Utwórz\"." #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Nowy użytkownik: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(Domeny odwzorowywane z Global Address Book)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "Lista stron Wiki" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(usunąć)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Wymienieni poniżej użytkownicy mają dostęp do tego pokoju. Aby usunąć " "użytkownika z listy dostępu, wybierz nazwę użytkownika z listy i kliknij " "'Kick \"." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Przyznania innemu użytkownikowi dostępu do tego pokoju, wprowadź nazwę " "użytkownika w polu poniżej i kliknij przycisk \"Invite\"." #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Zaproszenia:" #: ../../i18n_templatelist.c:426 #, fuzzy msgid "Invite" msgstr "Zaproszenia:" #: ../../i18n_templatelist.c:427 #, fuzzy msgid "User" msgstr "Użytkownicy" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Użytkownicy" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 #, fuzzy msgid "Addressbook Popup" msgstr "Książka adresowa" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Aby edytować istniejące konto użytkownika, wybierz nazwę użytkownika z listy " "i kliknij przycisk \"Edytuj\"." #: ../../i18n_templatelist.c:435 #, fuzzy msgid "Delete user" msgstr "Usuń skryptów" #: ../../i18n_templatelist.c:436 #, fuzzy msgid "Delete this user?" msgstr "Usuń ten pokój" #: ../../i18n_templatelist.c:437 #, fuzzy msgid "Delete File" msgstr "Usuń" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Prezentacja" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(hosts na których działa SpamAssassin )" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "which is already in your calendar." msgstr "Jest to zmiana '%s', które znajduje się już w kalendarzu." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 #, fuzzy msgid "This event would conflict with" msgstr "Wydarzenie to byłoby sprzeczne z '%s', które jest już w kalendarzu." #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Gdy nadejdzie nowa poczta: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Zostaw go w skrzynce odbiorczej bez filtrowania" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Filtrować je według zasad wybranych poniżej" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "" "Przefiltrowanego przez edytowanie ręczne skryptu (tylko dla zaawansowanych " "użytkowników)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "woja poczta przychodząca nie będzie filtrowana przez skrypty." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Dodaj regułę" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Skrypt jest aktualnie aktywny: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Dodawanie lub usuwanie skryptów" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "Skonfigurować złącze LDAP dla Cytadeli" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "UWAGA: Ten serwer Citadel została zbudowana bez wsparcia LDAP. Opcje te nie " "mają żadnego wpływu." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Nazwa hosta LDAP server (puste, aby wyłączyć)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Numer portu LDAP server (puste, aby wyłączyć)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Podstawowa domena" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Powiązana DN" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Hasło dla bind DN" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Edytować lub usunąć ten pokój" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "Idź do 'ukrytego' pokoju" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Zapomnij ten pokój" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Listuj wszystkie zapomniane pokoje" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 #, fuzzy msgid "Zap duplicate messages" msgstr "Przeczytaj nowe wiadomości" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "ID wiadomości" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Data/czas wysłania" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "Następna próba" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Adresaci" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Czytanie #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "od najstarszych do najnowszych" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "od najnowszych do najstarszych" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Poczekaj użytkownicy są informowani że serwer zostanie uruchomiony " "ponownie ... " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Edycaj" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Odpowiedź" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Odpowiedz z cytatem" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "Odpowiedz wszystkim" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Przekaż" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Nagłówki" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Edycja konfiguracji systemu" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Nazwy domen i konfiguracja poczty internetowej" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Konfiguracja replikacji z innymi serwerami węzłami Citadel" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "" #: ../../i18n_templatelist.c:503 #, fuzzy msgid "Powered by Citadel" msgstr "Wyświetl ikone 'Powered by Citadel'" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Język:" #: ../../i18n_templatelist.c:507 #, fuzzy msgid "Go to your email inbox" msgstr "Skrót do skrzynki odbiorczej poczty e-mail" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Poczta" #: ../../i18n_templatelist.c:509 #, fuzzy msgid "Go to your personal calendar" msgstr "Skrót do kalendarza osobistego" #: ../../i18n_templatelist.c:511 #, fuzzy msgid "Go to your personal address book" msgstr "Twoja osobista książka adresowa" #: ../../i18n_templatelist.c:513 #, fuzzy msgid "Go to your personal notes" msgstr "Twoje osobiste notatki" #: ../../i18n_templatelist.c:515 #, fuzzy msgid "Go to your personal task list" msgstr "Skrót do osobistej listy zadań" #: ../../i18n_templatelist.c:517 #, fuzzy msgid "List all your accessible rooms" msgstr "Listuj wszystkie zapomniane pokoje" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Użytkownicy online" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Zaawansowane" #: ../../i18n_templatelist.c:526 #, fuzzy msgid "Room and system administration functions" msgstr "Administrator systemu:" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "dostosuj to menu" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Zaloguj" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "przejść do listy pokojowej" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "przejść do menu" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Moje foldery" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP listener port (-1 aby włączyć)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP over SSL port (-1 aby włączyć)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Zachowaj oryginał z nagłówków w IMAP" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Prześlij zdjęcie" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Możesz przesłać zdjęcie bezpośrednio z komputera" #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Wybierz plik do wysłania:" #: ../../i18n_templatelist.c:545 #, fuzzy msgid "Reset form" msgstr "Strawny format" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Lista subskrypcji" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "List" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Żądanie potwierdzenia wysłany" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "Jesteś zapisany " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " do " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " listy dyskusyjnej." #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "List serwerowi wysłał Ci wiadomość e-mail z linkiem łącza internetowego, aby " "kliknąć, aby potwierdzić subskrypcję." #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "Ten dodatkowy krok jest dla ochrony, ponieważ zapobiega innym zapisać się do " "listy bez twojej zgody." #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" "Poszę kliknąć na link, który jest w e-mail, aby została potwierdzona " "subskrybcja." #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Wróc ..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "BŁĄD" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "Wypisałeś sie" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "od" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "listy dyskusyjnej." #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "Listserwerowi wysłał Ci wiadomość e-mail z linkiem do strony internetowego, " "aby kliknąć, aby potwierdzić anulowanie subskrypcji." #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "Ten dodatkowy krok jest dla ochrony, ponieważ zapobiega aby inni nie mogli " "zrezygnować z wypisania sie z listy bez twojej zgody." #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "Proszę kliknąć na link, który jest w e-mail aby wypisanie zostało " "potwierdzone." #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "Wróć ..." #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "Potwierdzenie sukces!" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "Potwierdzenie nie powiodło się." #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "Może to oznaczać jedną z dwóch rzeczy:" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" "Czekałeś zbyt długo, aby potwierdzić subskrypcję /wypisanie (Link " "potwierdzający jest ważny tylko przez trzy dni)" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" "Masz już z powodzeniem potwierdzenie subskrypcji / wypisania i " "starasz się zrobić to ponownie." #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "Błąd zwracany przez serwer był: " #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "Nazwa listy:" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "Twój adres email:" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "(Jeśli subskrypcjia) preferowany format: " #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "Jedna wiadomość na raz" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "Strawny format" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" "Podczas próby zapisać lub wypisać się z listy mailingowej, otrzymasz " "wiadomość e-mail zawierającą Link do strony internetowej kliknij na " "ostateczne potwierdzenie." #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" "Ten dodatkowy krok jest dla ochrony, ponieważ zapobiega prze próbami przez " "innych zapisać lub wypisać ciebie z list." #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "nazwa pokoju: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Jeśli prywatny, to obecni użytkownicy zapomną ten pokój" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "Preferowani użytkownicy tylko" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Pokój tylko do odczytu" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Wszyscy użytkownicy mogą dodawać, mogą usuwać wiadomości" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Pokój katalog plików" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Nazwa katalogu: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Przesyłanie dozwolone" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Pobieranie dozwolone" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Katalog widoczny" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Sieciowo wspólny pokój" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Stałe (nie ma auto-czystki)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Temat Wymagany (Wymuś określić temat wiadomości)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonimowe wiadomości" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Brak anonimowych wiadomości" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Wszystkie wiadomości są anonimowi" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Pytaj użytkownika podczas wprowadzania wiadomości" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Adiutant pokoju: " #: ../../i18n_templatelist.c:611 #, fuzzy msgid "Delete this entry?" msgstr "Usuń ten pokój" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Nie współdzielony z" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Współdzielony z" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Nazwa węzła" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Nazwa pokoju węzła" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Działania" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 #, fuzzy msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Jeśli pokój jest współdzielony musi być współdzielony z obu stron. Dodawanie " "węzła do listy \"Udostępnione\" wysyła wiadomości, ale w celu uzyskania " "wiadomości, inne węzły muszą być skonfigurowane do wysyłania wiadomości w " "systemie.
  • Jeśli nazwa zdalnego pokój jest pusta, to przyjmuje się, że " "pokój ma identyczna nazwa na zdalnym węzle.
  • Jeśli nazwa zdalnego pokój " "jest inna, zdalny węzeł musi również skonfigurować nazwę pokoju." #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "" #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "" #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 #, fuzzy msgid "resend messages to this node" msgstr "Zachować wiadomości na serwerze?" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "" #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Dodaj/zmień/usuń piętra" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Numer piętra" #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Nazwa piętra" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Liczba pokoi" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "CSS piętra" #: ../../i18n_templatelist.c:633 #, fuzzy msgid "Create new floor" msgstr "Utwórz nowy pokój" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "" #: ../../i18n_templatelist.c:636 #, fuzzy msgid "Delete rule" msgstr "Usuń" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Jeśli" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "Do lub CC" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Reply-to" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Resent-From" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Resent-To" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Envelope From" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Envelope To" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "List-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Wielkośc wiadomości" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Wszystko" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "zawiera" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "nie zawiera" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "jest" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "nie jest" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "pasuje do" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "nie pasuje do" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Wszystkie wiadomości)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "większe niż" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "mniejsze niż" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "bajtów" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Zachowaj" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "Wyrzucić po cichu" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Odrzucić" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Przenieś wiadomość do" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Przekaż do" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Urlop" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Wiadomość:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "i wtedy" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "kontynuj przetwarzanie" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "zatrzymaj" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(Domeny, dla których ten host odbiera pocztę)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Konfiguracja sieciowa" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Obecnie skonfigurowane węzły" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(usuń piętro)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(edycja grafiki)" #: ../../i18n_templatelist.c:679 #, fuzzy msgid "Change name" msgstr "Zmień nazę pokoju" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Skonfigurować automatyczne wygaśnięcie starych wiadomości" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Te ustawienia mogą być nadpisane na lub poszczególnych pięter lub " "pojedynczego pokoju." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Godzin do uruchomienia bazy danych auto-oczyszczających" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "Domyślna polityka wygasania wiadomość dal publicznych pokoi" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" "Domyślna polityka wygasania wiadomość w prywatnych skrzynekach pocztowych" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Taka sama polityka jak w pokojach publicznych" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Domyślna czas sprzątanie użytkownika (liczba dni)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Domyślny czas sprzątania pokoi (liczba dni)" #: ../../i18n_templatelist.c:700 #, fuzzy msgid "Are you sure you want to delete this room?" msgstr "Czy na pewno chcesz usunąć " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Usuń ten pokój" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "Ustawić lub zmienić ikonę dla tego pokoje baner" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "Edycja informacji o pokoju" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Wpisz polecenie serwera" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Ekran ten pozwala na wprowadzanie poleceń Citadel serwera, które nie są " "obsługiwane przez WebCit. Jeśli nie wiesz, co to oznacza, to ekran nie " "będzie zbyt użyteczna dla Ciebie." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Wpisz polecenie:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Wprowadzenie komendy (jeżeli żądanie tryb transferu SEND_LISTING):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "Wykryty nagłówek hosta " #: ../../i18n_templatelist.c:709 #, fuzzy msgid "Send command" msgstr "Wpisz polecenie:" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(hosts z Realtime Blackhole Listy)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Kontrola dostępu i ustawienia zasad serwisu" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Umożliwiaj adiuktowi zapomnieć pokoje" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Kwarantanny wiadomości od użytkowników problemowych" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Nazwa miejsca kwarantanny" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Nazwa pokoju do strony logowania" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Tryb uwierzytelniania" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "Autonomiczny" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "Host based" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Active Directory)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "Umożliwiają anonimowy użytkownikom dostęp" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "Nazwa użytkownika Mistrz (puste, aby wyłączyć)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Hasło użytkownika Mistrz" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Początkowy poziom dostępu dla nowych użytkowników" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Poziom dostępu wymagane do utworzenia pokoje" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Automatycznie przyznania statusu pokój-doradca dla użytkowników, którzy " "tworzą prywatne pokoje" #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "" "Automatycznie przyznania statusu pokój-doradca dla użytkowników, którzy " "tworzą pokoje BLOG" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Ograniczanie dostępu do poczty internetowej" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Wyłączenia tworzenia konta użytkownika samoobsługowo" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "Wskazówka: nie należy wybierać obu opcji!" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Wymaga rejestracji dla nowych użytkowników" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Dodaj, zmień, lub usuń piętra" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Wyświetl jako:" #: ../../i18n_templatelist.c:753 #, fuzzy msgid "Delete this note?" msgstr "Usuń ten pokój" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Zalogowany jako" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Nie jesteś zalogowany" #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Musisz się zalogować, aby uzyskać dostęp do tej strony." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Zaloguj się przy użyciu
    nazwy użytkownika i hasła" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Hasło" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Nowy użytkownik? Zarejestruj się" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "Wprowadź login i hasło, którego chcesz używać, a następnie kliknij przycisk " ""Nowy użytkownik" " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Zaloguj się używając OpenID" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "Zaloguj się za pomocą Google" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "Zaloguj się za pomocą Yahoo" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "Zaloguj się za pomocą AOL lub AIM" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "Wpisz swój AOL lub Nazwe użytkownika AIM:" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Proszę czekać" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Dodaj nowy skrypt" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Aby utworzyć nowy skrypt, wprowadź żądaną nazwę skryptu w polu poniżej i " "kliknij przycisk \"Utwórz\"." #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Nazwa skryptu: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Edytuj skrypty" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Powrócić do ekranu edycji skrypt" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Usuń skryptów" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Aby usunąć istniejący skrypt, wybierz nazwę skryptu z listy i kliknij \"Usuń" "\"." #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Uruchom ponownie Citadel" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Restart po poinformowaniu użytkowników" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Uruchom ponownie, gdy wszyscy użytkownicy nic nie robią w Citadel" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "Konfuguracja Push Email" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Push email i SMS ustawienia" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "Jeśli administrator włączył funkcję, Citadel może powiadomić serwer Funambol " "że otrzymałeś nowy e-mail i automatycznie synchronizować wszystkie " "urządzenia z klientem Funambol zainstalowany." #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "Ewentualnie, jeśli administrator skonfigurował go, Cytadela może wysłać " "wiadomość tekstową do Ciebie po nadejściu nowej poczty." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "Zawiadamiać Funambol server" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "Wysłać wiadomość tekstową do ..." #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "(Użyj formatu międzynarodowego, bez zer wiodących np +61415011501)" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" "Użyj niestandardowego systemu powiadamiania skonfigurowanego przez " "administratora" #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "Nie wysyłaj żadnych powiadomień" #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "powered by" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA port (-1 aby włączyć)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA port (-1 aby wyłączyć)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTP over SSL port (-1 aby włączyć)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "Przeprowadzenie kontroli RBL zamiast po RCPT" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Zaznacz jako spam wiadomość, zamiast odrzucenia" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "Allow unauthenticated SMTP clients to spoof this sites domains" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "Skryguj podrobione linie Od: podczas uwierzytelniania protokołu SMTP" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "" #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Postfix TCP Dictionary Port" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 aby wyłączyć" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve Port (-1 aby włączyć)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Konfiguracja strony" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Ogólnie" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 #, fuzzy msgid "Settings" msgstr "Ustawienia ikon" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indeksowanie / księgowanie" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Dostęp" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "Katalog" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Automatyczne czyszczenie" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "Zawartość tego pokoju zostanie wysłana jako indywidualne listy " "do następujących odbiorców:

    " #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "Zawartość tego pokoju zostanie wysłana jako strezczenia w liscie " "do następujących odbiorców

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "" #: ../../i18n_templatelist.c:846 #, fuzzy msgid "List" msgstr "List-ID" #: ../../i18n_templatelist.c:847 #, fuzzy msgid "Digest" msgstr "Strawny format" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Dodaj odbiorców z listy kontaktów lub innych książek adresowych" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Pozwól nie abonentom wysyłać mail do tego pokoju." #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Publikacja po tego pokoju musisz mieć pozwolenie Admin'a." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "Pozwól na samoobsługę wniosków o zapisanie/ wypisanie." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "URL do zapisania / wypisania się jest: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "" #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "" #: ../../i18n_templatelist.c:858 #, fuzzy msgid "Set" msgstr "Temat" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "Zestawienie dla " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Wiadomości" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Dziś w twoim kalendarzu" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "Kto jest online" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "O tym serwerze" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "Jesteś połączony" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "uruchomiona" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "z" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "wersja servera" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "mieszczącym się w" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "Administrator systemu:" #: ../../i18n_templatelist.c:874 #, fuzzy msgid "Do you really want to kill this session?" msgstr "Czy na pewno chcesz usunąć OpenID?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Użytkownicy obecnie na " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "" "Kliknij na nazwe użykownika, aby zobaczyć informacje o użytkowniku. kliknij" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "aby wysłać wiadomość błyskawiczną do tego użytkownika." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Stare wiadomości" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Nowe wiadomości" #: ../../i18n_templatelist.c:880 #, fuzzy msgid "Share" msgstr "Współdzielenie" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(Domeny w które użytkownicy mogą maskować)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Wprowadź nowe hasło:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Wprowadź je ponownie, aby potwierdzić:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Zmień hasło" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Edytuj wyświetlanie Twojej sesji" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Ekran ten pozwala zmienić sposób w jaki sesja pojawi się szczególy w \"Kto " "jest online\"\". Aby wyłączyć wszelkie \"fałszywe\" nazwy już wcześniej " "ustawione, wystarczy kliknąć odpowiedni przycisk \"zmiany\" bez wpisywania w " "odpowiednim polu. " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Nazwa pokoju:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Zmień nazę pokoju" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Nazwa komputera:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Zmień nazwe komputera" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Zmień nazwę użytkownika" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "Historia zmian dla tej strony" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Potwierdzić przeniesienie wiadomości" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Przenieść tę wiadomość:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "Oryginalnie pisał w: " #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Lista znanych pokoi" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Gdzie dalej?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "Idź do następnego pokoju" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "...z nieprzeczytanymi wiadomościami" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Przejdź do następnego pkoju" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(wrócić tu później)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Wróć" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "Ups! Powrót do " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Przeczytaj nowe wiadomości" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... w tym pokoju" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Czytaj wszystkie wiadomości" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "...stare i nowe" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "Wprowadź wiadmomość" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(odpowiedzieć w tym pokoju)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Biblioteka plików" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Lista plików dostępnych do pobrania)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Strona z zestawieniem" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Podsumowanie mojego konta" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Lista użytkowników" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(wszyscy zarejstrowani użytkownicy)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Do zobaczenia!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" "(jeśli występuje, przekąz wszystkie wychodzące e-mail do jednego z tych " "hostów)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Zobacz kontakty" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Dodaj nowy kontakt" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Widok dnia" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Widok miesiąca" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Dodaj nowe wydarzenie" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Lista kalendarza" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Wyświetlanie zadań" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Dodaj nowe zadanie" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Wyświetlanie notatek" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Dodaj nową notatkę" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Odśwież listę wiadomości" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Napisz list" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Strona domowa Wiki" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Edytuj tę stronę" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Historia" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "Nowy wpis na blogu" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Pomiń ten pokój" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "" #: ../../i18n_templatelist.c:995 #, fuzzy msgid "Save changes?" msgstr "Zapisz zmiany" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Zapisałeś się %s do %s listy dyskusyjnej. List serwer " #~ "wysłał Ci wiadomość e-mail z linkiem do strony www, aby kliknąć, aby " #~ "potwierdzić subskrypcję. Ten dodatkowy krok jest dla ochrony, ponieważ " #~ "zapobiega innym zapisać się do listy bez twojej zgody.

    Proszę " #~ "kliknąć na link, który dostaniesz via e-mail, Twoja subskrypcja zostanie " #~ "potwierdzona.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "UWAGA: Nie można przetworzyć Server Config, czy uruchomić nowy citserve?" #~ msgid "There is no room called '%s'." #~ msgstr "Nie ma pokoju o nazwie '%s'." #~ msgid "Network" #~ msgstr "Sieć" #~ msgid "Tuning" #~ msgstr "Dostrajanie" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Natychmiast usuwaj skasowane wiadomości z IMAP" webcit-dfsg.orig/po/webcit/de.po0000644000175000017500000050240513223341037016630 0ustar michaelmichael# translation of de.po to # Copyright (C) 2008 - 2009 The Citadel Project - http://www.citadel.org # Wilfried Gösgens , 2005 - 2009. # Stefan Kleinschmidt # Heiner Wohner # German localization # Copyright (C) 2005 - 2009 By Wilfried Gösgens # This file is distributed under the revised BSD license # "ä ö ü msgid "" msgstr "" "Project-Id-Version: WebCit\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-30 23:08+0100\n" "PO-Revision-Date: 2013-08-08 13:16+0000\n" "Last-Translator: Heiner Wohner \n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2013-08-09 04:34+0000\n" "X-Generator: Launchpad (build 16723)\n" #. #. * Set to 'unknown' right from the beginning. Unless we learn #. * something else, that's what we'll go with. #. #: ../../availability.c:148 msgid "availability unknown" msgstr "Verfügbarkeit unbekannt" #: ../../availability.c:169 msgid "free" msgstr "frei" #: ../../availability.c:179 msgid "BUSY" msgstr "BESCHÄFTIGT" #: ../../graphics.c:50 msgid "Graphics upload has been cancelled." msgstr "Hochladen des Bilds abgebrochen." #: ../../graphics.c:56 msgid "You didn't upload a file." msgstr "Sie haben keine Datei hochgeladen." #: ../../graphics.c:106 msgid "your photo" msgstr "Ihr Photo" #: ../../graphics.c:113 msgid "the icon for this room" msgstr "Das Symbol für diesen Raum" #: ../../graphics.c:121 msgid "the Greetingpicture for the login prompt" msgstr "Das Begrüssungsfoto auf der Anmeldeseite" #: ../../graphics.c:129 msgid "the Logoff banner picture" msgstr "das Abmeldeseiten Foto" #: ../../graphics.c:140 msgid "the icon for this floor" msgstr "Das Symbol für diese Etage" #: ../../tasks.c:93 msgid "Completed?" msgstr "Vollständig?" #: ../../tasks.c:95 msgid "Name of task" msgstr "Name der Aufgaben" #: ../../tasks.c:97 msgid "Date due" msgstr "Fälligkeitsdatum" #: ../../tasks.c:99 msgid "Category" msgstr "Kategorie" #: ../../tasks.c:101 msgid "Show All" msgstr "Alle anzeigen" #: ../../tasks.c:224 msgid "Edit task" msgstr "Aufgabe bearbeiten" #: ../../tasks.c:248 ../../calendar.c:98 ../../calendar_view.c:292 #: ../../calendar_view.c:953 ../../calendar_view.c:997 #: ../../calendar_view.c:1078 ../../i18n_templatelist.c:902 #: ../../static/t/ical/attachment/display.html:25 msgid "Summary:" msgstr "Übersicht:" #: ../../tasks.c:259 msgid "Start date:" msgstr "Anfangsdatum:" #: ../../tasks.c:267 ../../tasks.c:297 msgid "No date" msgstr "Kein Datum" #: ../../tasks.c:271 ../../tasks.c:300 msgid "or" msgstr "oder" #: ../../tasks.c:285 ../../tasks.c:314 msgid "Time associated" msgstr "assoziierte Uhrzeit" #: ../../tasks.c:289 msgid "Due date:" msgstr "Fälligkeitsdatum:" #: ../../tasks.c:318 msgid "Completed:" msgstr "Vollständig:" #: ../../tasks.c:329 msgid "Category:" msgstr "Kategorie:" #: ../../tasks.c:339 ../../calendar.c:159 ../../i18n_templatelist.c:383 #: ../../i18n_templatelist.c:907 ../../static/t/files.html:12 #: ../../static/t/ical/attachment/display.html:38 msgid "Description:" msgstr "Beschreibung:" #: ../../tasks.c:357 ../../event.c:769 ../../i18n_templatelist.c:754 msgid "Save" msgstr "Speichern" #: ../../tasks.c:358 ../../event.c:770 ../../i18n_templatelist.c:115 #: ../../i18n_templatelist.c:299 ../../i18n_templatelist.c:495 #: ../../i18n_templatelist.c:612 ../../i18n_templatelist.c:792 #: ../../i18n_templatelist.c:897 ../../i18n_templatelist.c:971 #: ../../static/t/aide/inet/section.html:5 ../../static/t/msg_listview.html:27 #: ../../static/t/navbar.html:116 ../../static/t/view_blog/comment.html:16 #: ../../static/t/view_blog/post.html:33 ../../static/t/view_message.html:32 msgid "Delete" msgstr "Löschen" #: ../../tasks.c:359 ../../sysmsgs.c:63 ../../event.c:772 ../../paging.c:60 #: ../../vcard_edit.c:1218 ../../i18n_templatelist.c:60 #: ../../i18n_templatelist.c:96 ../../i18n_templatelist.c:103 #: ../../i18n_templatelist.c:145 ../../i18n_templatelist.c:169 #: ../../i18n_templatelist.c:195 ../../i18n_templatelist.c:242 #: ../../i18n_templatelist.c:254 ../../i18n_templatelist.c:293 #: ../../i18n_templatelist.c:330 ../../i18n_templatelist.c:356 #: ../../i18n_templatelist.c:372 ../../i18n_templatelist.c:456 #: ../../i18n_templatelist.c:546 ../../i18n_templatelist.c:581 #: ../../i18n_templatelist.c:609 ../../i18n_templatelist.c:710 #: ../../i18n_templatelist.c:755 ../../i18n_templatelist.c:886 #: ../../i18n_templatelist.c:895 ../../i18n_templatelist.c:924 #: ../../i18n_templatelist.c:996 ../../static/t/confirmlogoff.html:4 #: ../../static/t/edit/markdown_epic.html:76 #: ../../static/t/edit/message.html:132 #: ../../static/t/edit/message/attachments_pane.html:82 msgid "Cancel" msgstr "Abbruch" #: ../../tasks.c:429 ../../calendar_view.c:1373 msgid "Untitled Task" msgstr "Unbenannte Aufgabe" #: ../../blogview_renderer.c:58 ../../blogview_renderer.c:74 #, c-format msgid "%d comments" msgstr "%d Kommentare" #: ../../blogview_renderer.c:61 ../../blogview_renderer.c:77 msgid "permalink" msgstr "permalink" #: ../../blogview_renderer.c:302 msgid "Newer posts" msgstr "neuere Beiträge" #: ../../blogview_renderer.c:311 msgid "Older posts" msgstr "ältere Beiträge" #: ../../sysmsgs.c:46 #, c-format msgid "Edit %s" msgstr "%s bearbeiten" #: ../../sysmsgs.c:49 #, c-format msgid "" "The text is formatted to the reader's browser. A newline is " "forced by preceding the next line by a blank." msgstr "" "Der Text wird auf dem Browser des Lesers formatiert." "Eine neue Zeile erzwingt man, indem man die nächste Zeile mit einem " "Leerschritt beginnt." #: ../../sysmsgs.c:61 ../../vcard_edit.c:1217 ../../i18n_templatelist.c:59 #: ../../i18n_templatelist.c:194 ../../i18n_templatelist.c:355 #: ../../i18n_templatelist.c:455 ../../i18n_templatelist.c:580 #: ../../i18n_templatelist.c:608 ../../i18n_templatelist.c:855 msgid "Save changes" msgstr "Änderungen übernehmen" #: ../../sysmsgs.c:83 #, c-format msgid "Cancelled. %s was not saved." msgstr "Abgebrochen. %s wurde nicht gespeichert." #: ../../sysmsgs.c:103 msgid " has been saved." msgstr " wurde gespeichert." #: ../../sysmsgs.c:110 ../../sysmsgs.c:111 msgid "Room info" msgstr "Rauminfo" #: ../../sysmsgs.c:116 ../../sysmsgs.c:118 msgid "Your bio" msgstr "Ihre Biographie" #: ../../calendar_tools.c:94 msgid "Hour: " msgstr "Stunde: " #: ../../calendar_tools.c:114 msgid "Minute: " msgstr "Minute: " #: ../../calendar_tools.c:185 msgid "(status unknown)" msgstr "(Zustand unbekannt)" #: ../../calendar_tools.c:201 ../../i18n_templatelist.c:397 #: ../../static/t/ical/attachment/display_attendees.html:6 msgid "(needs action)" msgstr "(zu bearbeiten)" #: ../../calendar_tools.c:204 ../../i18n_templatelist.c:398 #: ../../static/t/ical/attachment/display_attendees.html:7 msgid "(accepted)" msgstr "(Angenommen)" #: ../../calendar_tools.c:207 ../../i18n_templatelist.c:399 #: ../../static/t/ical/attachment/display_attendees.html:8 msgid "(declined)" msgstr "(Abgelehnt)" #: ../../calendar_tools.c:210 ../../i18n_templatelist.c:400 #: ../../static/t/ical/attachment/display_attendees.html:9 msgid "(tenative)" msgstr "(Vorläufig)" #: ../../calendar_tools.c:213 ../../i18n_templatelist.c:401 #: ../../static/t/ical/attachment/display_attendees.html:10 msgid "(delegated)" msgstr "(delegiert)" #: ../../calendar_tools.c:216 ../../i18n_templatelist.c:402 #: ../../static/t/ical/attachment/display_attendees.html:11 msgid "(completed)" msgstr "(abgeschlossen)" #: ../../calendar_tools.c:219 ../../i18n_templatelist.c:403 #: ../../static/t/ical/attachment/display_attendees.html:12 msgid "(in process)" msgstr "(in Bearbeitung)" #: ../../calendar_tools.c:222 ../../i18n_templatelist.c:404 #: ../../static/t/ical/attachment/display_attendees.html:13 msgid "(none)" msgstr "(keine)" #: ../../openid.c:28 msgid "Manage Account/OpenID Associations" msgstr "Konten/OpenID Assoziierungen verwalten" #: ../../openid.c:46 msgid "Do you really want to delete this OpenID?" msgstr "Wollen Sie diese OpenID wirklich löschen?" #: ../../openid.c:47 msgid "(delete)" msgstr "(Löschen)" #: ../../openid.c:55 msgid "Add an OpenID: " msgstr "Eine OpenID hinzufügen: " #: ../../openid.c:58 msgid "Attach" msgstr "Verbinden" #: ../../openid.c:62 #, c-format msgid "%s does not permit authentication via OpenID." msgstr "%s erlaubt kein Anmelden per OpenID" #: ../../summary.c:128 msgid "(None)" msgstr "(Keine)" #: ../../summary.c:184 msgid "(Nothing)" msgstr "(Nichts)" #: ../../bbsview_renderer.c:312 msgid "Go to page: " msgstr "Zur Seite gehen: " #: ../../bbsview_renderer.c:354 msgid "First" msgstr "Anfang" #: ../../bbsview_renderer.c:360 msgid "Last" msgstr "Ende" #: ../../html2html.c:131 #, c-format msgid "realloc() error! couldn't get %d bytes: %s" msgstr "realloc() Fehler! Konnte %d Bytes nicht allozieren: %s" #. an erased user #: ../../auth.c:30 ../../i18n_templatelist.c:184 ../../i18n_templatelist.c:728 #: ../../i18n_templatelist.c:736 #: ../../static/t/aide/edituser/detailview.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:43 #: ../../static/t/aide/siteconfig/tab_access.html:54 msgid "Deleted" msgstr "Gelöscht" #. a new user #: ../../auth.c:33 ../../i18n_templatelist.c:185 ../../i18n_templatelist.c:341 #: ../../i18n_templatelist.c:729 ../../i18n_templatelist.c:737 #: ../../i18n_templatelist.c:771 #: ../../static/t/aide/edituser/detailview.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:44 #: ../../static/t/aide/siteconfig/tab_access.html:55 #: ../../static/t/get_logged_in.html:77 msgid "New User" msgstr "Neuer Benutzer" #. a trouble maker #: ../../auth.c:36 ../../i18n_templatelist.c:186 ../../i18n_templatelist.c:730 #: ../../i18n_templatelist.c:738 #: ../../static/t/aide/edituser/detailview.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:45 #: ../../static/t/aide/siteconfig/tab_access.html:56 msgid "Problem User" msgstr "Problematischer Benutzer" #. user with normal privileges #: ../../auth.c:39 ../../i18n_templatelist.c:187 ../../i18n_templatelist.c:731 #: ../../i18n_templatelist.c:739 #: ../../static/t/aide/edituser/detailview.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:46 #: ../../static/t/aide/siteconfig/tab_access.html:57 msgid "Local User" msgstr "Lokaler Benutzer" #. a user that may access network resources #: ../../auth.c:42 ../../i18n_templatelist.c:188 ../../i18n_templatelist.c:732 #: ../../i18n_templatelist.c:740 #: ../../static/t/aide/edituser/detailview.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:47 #: ../../static/t/aide/siteconfig/tab_access.html:58 msgid "Network User" msgstr "Netzwerk Benutzer" #. a moderator #: ../../auth.c:45 ../../i18n_templatelist.c:189 ../../i18n_templatelist.c:733 #: ../../i18n_templatelist.c:741 #: ../../static/t/aide/edituser/detailview.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:48 #: ../../static/t/aide/siteconfig/tab_access.html:59 msgid "Preferred User" msgstr "nur Privilegierte Benutzer" #. chief #: ../../auth.c:48 ../../i18n_templatelist.c:190 ../../i18n_templatelist.c:734 #: ../../i18n_templatelist.c:742 #: ../../static/t/aide/edituser/detailview.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:49 #: ../../static/t/aide/siteconfig/tab_access.html:60 msgid "Admin" msgstr "Verantwortlicher" #: ../../auth.c:367 ../../auth.c:397 ../../vcard_edit.c:1299 #: ../../vcard_edit.c:1343 msgid "An error has occurred." msgstr "Ein Fehler ist aufgetreten." #: ../../auth.c:547 ../../i18n_templatelist.c:268 #: ../../static/t/aide/usermanagement.html:3 msgid "Validate new users" msgstr "Neue Benutzer überprüfen" #: ../../auth.c:567 msgid "No users require validation at this time." msgstr "Zur Zeit müssen keine Benutzer validiert werden." #: ../../auth.c:617 msgid "very weak" msgstr "sehr schwach" #: ../../auth.c:620 msgid "weak" msgstr "schwach" #: ../../auth.c:623 msgid "ok" msgstr "in Ordnung" #: ../../auth.c:627 msgid "strong" msgstr "stark" #: ../../auth.c:645 #, c-format msgid "Current access level: %d (%s)\n" msgstr "Aktuelle Berechtigungen: %d (%s)\n" #: ../../auth.c:653 msgid "Select access level for this user:" msgstr "Berechtigungen dieses Benutzers" #: ../../auth.c:736 msgid "Cancelled. Password was not changed." msgstr "Abgebrochen. Passwort wurde nicht geändert." #: ../../auth.c:745 msgid "They don't match. Password was not changed." msgstr "Die Passwörter stimmen nicht überein. Passwort nicht geändert." #: ../../auth.c:751 msgid "Blank passwords are not allowed." msgstr "Leere Passwörter sind nicht zulässig." #: ../../calendar.c:76 ../../i18n_templatelist.c:899 #: ../../static/t/ical/attachment/display.html:11 msgid "Meeting invitation" msgstr "Terminvorschlag" #: ../../calendar.c:79 ../../i18n_templatelist.c:900 #: ../../static/t/ical/attachment/display.html:14 msgid "Attendee's reply to your invitation" msgstr "Antwort eines Teilnehmers auf Ihre Einladung" #: ../../calendar.c:82 ../../i18n_templatelist.c:901 #: ../../static/t/ical/attachment/display.html:17 msgid "Published event" msgstr "Veröffentlichtes Ereignis" #: ../../calendar.c:85 ../../i18n_templatelist.c:898 #: ../../static/t/ical/attachment/display.html:8 msgid "This is an unknown type of calendar item." msgstr "Dies ist ein unbekanntes Kalender-Datum" #: ../../calendar.c:107 ../../calendar_view.c:300 ../../calendar_view.c:958 #: ../../calendar_view.c:1002 ../../calendar_view.c:1083 #: ../../i18n_templatelist.c:903 #: ../../static/t/ical/attachment/display.html:26 msgid "Location:" msgstr "Ort:" #: ../../calendar.c:132 ../../calendar_view.c:345 ../../calendar_view.c:964 #: ../../i18n_templatelist.c:904 #: ../../static/t/ical/attachment/display.html:31 msgid "Date:" msgstr "Datum:" #: ../../calendar.c:139 ../../calendar_view.c:367 ../../calendar_view.c:1007 #: ../../calendar_view.c:1093 ../../i18n_templatelist.c:905 #: ../../static/t/ical/attachment/display.html:32 msgid "Starting date/time:" msgstr "Startzeit/-Datum:" #: ../../calendar.c:150 ../../calendar_view.c:370 ../../calendar_view.c:1009 #: ../../calendar_view.c:1095 ../../i18n_templatelist.c:906 #: ../../static/t/ical/attachment/display.html:34 msgid "Ending date/time:" msgstr "Endzeit/-Datum:" #: ../../calendar.c:168 ../../event.c:91 ../../i18n_templatelist.c:908 #: ../../static/t/ical/attachment/display.html:41 msgid "Recurrence" msgstr "Wiederholung" #: ../../calendar.c:169 ../../event.c:510 ../../i18n_templatelist.c:909 #: ../../static/t/ical/attachment/display.html:41 msgid "This is a recurring event" msgstr "Terminserie hinzufügen" #: ../../calendar.c:178 ../../i18n_templatelist.c:396 #: ../../static/t/ical/attachment/display_attendees.html:2 msgid "Attendee:" msgstr "Teilnehmer:" #: ../../calendar.c:218 #, c-format msgid "This is an update of '%s' which is already in your calendar." msgstr "Die Änderung '%s', existiert bereits Ihrem Kalender ist." #: ../../calendar.c:222 #, c-format msgid "This event would conflict with '%s' which is already in your calendar." msgstr "" "Dieser Termin würde mit '%s' kollidieren, der bereits in Ihrem Kalender " "vorgemerkt ist." #: ../../calendar.c:227 ../../i18n_templatelist.c:440 #: ../../static/t/ical/attachment/display_conflict.html:2 msgid "Update:" msgstr "Update:" #: ../../calendar.c:228 ../../i18n_templatelist.c:441 #: ../../static/t/ical/attachment/display_conflict.html:3 msgid "CONFLICT:" msgstr "KONFLIKT:" #: ../../calendar.c:251 ../../i18n_templatelist.c:910 #: ../../static/t/ical/attachment/display.html:53 msgid "How would you like to respond to this invitation?" msgstr "Wie möchten Sie auf die Einladung reagieren?" #: ../../calendar.c:252 ../../i18n_templatelist.c:911 #: ../../static/t/ical/attachment/display.html:55 msgid "Accept" msgstr "Annehmen" #: ../../calendar.c:253 ../../i18n_templatelist.c:912 #: ../../static/t/ical/attachment/display.html:57 msgid "Tentative" msgstr "Vorläufig" #: ../../calendar.c:254 ../../i18n_templatelist.c:913 #: ../../static/t/ical/attachment/display.html:59 msgid "Decline" msgstr "Ablehnen" #: ../../calendar.c:271 ../../i18n_templatelist.c:914 #: ../../static/t/ical/attachment/display.html:66 msgid "Click Update to accept this reply and update your calendar." msgstr "" "Klicken Sie Aktualisieren um diese Änderung in ihren Kalender zu " "übernehmen." #: ../../calendar.c:272 ../../i18n_templatelist.c:915 #: ../../static/t/ical/attachment/display.html:68 msgid "Update" msgstr "Aktualisieren" #: ../../calendar.c:273 ../../i18n_templatelist.c:916 #: ../../static/t/ical/attachment/display.html:70 msgid "Ignore" msgstr "Ignorieren" #: ../../calendar.c:295 ../../ical_subst.c:289 msgid "There was an error parsing this calendar item." msgstr "Ein Kalenderdatum konnte nicht verarbeitet werden." #: ../../calendar.c:328 msgid "" "You have accepted this meeting invitation. It has been entered into your " "calendar." msgstr "" "Sie haben die Einladung angenommen. Sie wurde in Ihren Kalender übernommen." #: ../../calendar.c:332 msgid "" "You have tentatively accepted this meeting invitation. It has been " "'pencilled in' to your calendar." msgstr "" "Sie haben diese Einladung vorläufig angenommen. Sie wurde in Ihrem Kalender " "vorgemerkt." #: ../../calendar.c:336 msgid "" "You have declined this meeting invitation. It has not been entered " "into your calendar." msgstr "" "Sie haben diese Einladung abgelehnt. Sie wurde nicht in Ihren " "Kalender übernommen." #: ../../calendar.c:341 msgid "A reply has been sent to the meeting organizer." msgstr "Eine Antwort wurde an den Organisator versendet." #. / Translators: RSVP aka Répondez s'il-vous-plaît Is the term #. / that the recipient of an ical-invitation should please #. / answer this request. #: ../../calendar.c:376 msgid "Your calendar has been updated to reflect this RSVP." msgstr "u.A.w.g. wurde eingetragen." #: ../../calendar.c:378 msgid "" "You have chosen to ignore this RSVP. Your calendar has not been " "updated." msgstr "u.A.w.g. abgelehnt. Sie wurde nicht übernommen." #: ../../calendar.c:932 msgid "Calendar day view begins at:" msgstr "Kalender-Tagesübersicht beginnt um:" #: ../../calendar.c:933 msgid "Calendar day view ends at:" msgstr "Kalender-Tagesübersicht endet um:" #: ../../calendar.c:934 msgid "Week starts on:" msgstr "Wochen starten am:" #: ../../downloads.c:288 #, c-format msgid "An error occurred while retrieving this file: %s\n" msgstr "Ein Fehler trat beim herunterladen dieser Datei auf: %s\n" #: ../../event.c:71 msgid "seconds" msgstr "Sekunden" #: ../../event.c:72 msgid "minutes" msgstr "Minuten" #: ../../event.c:73 msgid "hours" msgstr "Stunden" #: ../../event.c:74 msgid "days" msgstr "Tage" #: ../../event.c:75 msgid "weeks" msgstr "Wochen" #: ../../event.c:76 msgid "months" msgstr "Monate" #: ../../event.c:77 msgid "years" msgstr "Jahre" #: ../../event.c:78 msgid "never" msgstr "nie" #: ../../event.c:82 msgid "first" msgstr "erster" #: ../../event.c:83 msgid "second" msgstr "zweiter" #: ../../event.c:84 msgid "third" msgstr "dritter" #: ../../event.c:85 msgid "fourth" msgstr "vierter" #: ../../event.c:86 msgid "fifth" msgstr "fünfter" #: ../../event.c:89 msgid "Event" msgstr "Ereignis" #: ../../event.c:90 ../../event.c:442 ../../event.c:454 msgid "Attendees" msgstr "Teilnehmer" #: ../../event.c:168 msgid "Add or edit an event" msgstr "Ereignis hinzufügen oder ändern" #: ../../event.c:211 ../../i18n_templatelist.c:17 #: ../../i18n_templatelist.c:506 ../../static/t/iconbar.html:13 #: ../../static/t/iconbar/edit.html:29 msgid "Summary" msgstr "Zusammenfassung" #: ../../event.c:222 msgid "Location" msgstr "Ort" #: ../../event.c:233 ../../calendar_view.c:754 msgid "Start" msgstr "Anfang" #: ../../event.c:276 ../../calendar_view.c:951 ../../calendar_view.c:980 msgid "All day event" msgstr "Ganztägiger Termin" #: ../../event.c:282 ../../calendar_view.c:755 msgid "End" msgstr "Ende" #: ../../event.c:332 ../../i18n_templatelist.c:29 #: ../../i18n_templatelist.c:514 ../../static/t/iconbar.html:34 #: ../../static/t/iconbar/edit.html:49 msgid "Notes" msgstr "Notiz" #: ../../event.c:374 msgid "Organizer" msgstr "Organisator" #: ../../event.c:379 msgid "(you are the organizer)" msgstr "(Sie sind der Organisator)" #: ../../event.c:397 msgid "Show time as:" msgstr "Zeit anzeigen als:" #: ../../event.c:420 msgid "Free" msgstr "Frei" #: ../../event.c:428 msgid "Busy" msgstr "Belegt" #: ../../event.c:445 msgid "(One per line)" msgstr "(einen pro Zeile)" #: ../../event.c:455 ../../i18n_templatelist.c:25 #: ../../i18n_templatelist.c:297 ../../i18n_templatelist.c:334 #: ../../i18n_templatelist.c:512 ../../static/t/edit/markdown_epic.html:84 #: ../../static/t/edit/message.html:140 ../../static/t/iconbar.html:29 #: ../../static/t/iconbar/edit.html:42 msgid "Contacts" msgstr "Adressen" #: ../../event.c:518 msgid "Recurrence rule" msgstr "Serientermin" #: ../../event.c:522 msgid "Repeats every" msgstr "Wiederholt sich alle" #. begin 'weekday_selector' div #: ../../event.c:540 msgid "on these weekdays:" msgstr "an diesem Werktag:" #: ../../event.c:598 #, c-format msgid "on day %s%d%s of the month" msgstr "am Tag %s%d%s des Monats" #: ../../event.c:607 ../../event.c:669 msgid "on the " msgstr "an dem " #: ../../event.c:631 msgid "of the month" msgstr "des Monats" #: ../../event.c:660 msgid "every " msgstr "jedes " #: ../../event.c:661 msgid "year on this date" msgstr "Jahr an diesem Tag" #: ../../event.c:693 ../../i18n_templatelist.c:478 #: ../../i18n_templatelist.c:928 ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 msgid "of" msgstr "im" #: ../../event.c:717 msgid "Recurrence range" msgstr "Serie endet..." #: ../../event.c:725 msgid "No ending date" msgstr "Kein Enddatum" #: ../../event.c:732 msgid "Repeat this event" msgstr "Dieser Termin wiederholt sich" #: ../../event.c:735 msgid "times" msgstr "mal" #: ../../event.c:743 msgid "Repeat this event until " msgstr "Diese Serie geht bis " #: ../../event.c:771 msgid "Check attendee availability" msgstr "Verfügbarkeit der Teilnehmer überprüfen" #: ../../event.c:865 ../../calendar_view.c:266 ../../calendar_view.c:462 #: ../../calendar_view.c:931 msgid "Untitled Event" msgstr "Unbenanntes Ereignis" #: ../../iconbar.c:323 msgid "Iconbar Setting" msgstr "Iconbar einstellungen" #: ../../icontheme.c:173 msgid "Icon Theme" msgstr "Icon Stiel" #: ../../inetconf.c:110 ../../inetconf.c:119 ../../inetconf.c:133 #: ../../inetconf.c:159 ../../netconf.c:157 ../../netconf.c:184 #: ../../netconf.c:192 ../../netconf.c:240 ../../netconf.c:248 msgid "Invalid Parameter" msgstr "Ungültiger Parameter" #: ../../inetconf.c:126 msgid " has been deleted." msgstr " wurde gelöscht." #. added status message #: ../../inetconf.c:144 msgid " added." msgstr " aufgenommen." #: ../../inetconf.c:237 ../../roomlist.c:50 ../../roomlist.c:378 #: ../../roomlist.c:506 ../../roomlist.c:601 ../../siteconfig.c:47 #: ../../siteconfig.c:65 ../../i18n_templatelist.c:357 #: ../../i18n_templatelist.c:431 ../../i18n_templatelist.c:610 #: ../../static/t/room/edit/tab_access.html:44 #: ../../static/t/room/edit/tab_config.html:150 #: ../../static/t/room/edit/tab_expire.html:73 msgid "Higher access is required to access this function." msgstr "Diese Funktion benötigt höhere Zugriffsechte" #: ../../listsub.c:31 ../../listsub.c:69 ../../listsub.c:105 #: ../../listsub.c:112 msgid "You need to specify the mailinglist to subscribe to." msgstr "Sie müssen die Mailing-Liste angeben, die Sie abonnieren möchten." #: ../../listsub.c:38 ../../listsub.c:76 msgid "You need to specify the email address you'd like to subscribe with." msgstr "" "Sie müssen Ihre E-Mail-Adresse angeben, mit der Sie das Abonnement empfangen " "möchten." #: ../../messages.c:73 msgid "ERROR:" msgstr "FEHLER:" #: ../../messages.c:91 msgid "Empty message" msgstr "Leere Nachricht" #: ../../messages.c:1044 msgid "Cancelled. Message was not posted." msgstr "Abgebrochen. Beitrag wurde nicht gesendet." #: ../../messages.c:1047 msgid "Automatically cancelled because you have already saved this message." msgstr "" "Automatisch abgebrochen, weil Sie diesen Beitrag schon gespeichert haben." #: ../../messages.c:1071 msgid "Saved to Drafts failed: " msgstr "In den Entwurfsordner gespeichert " #: ../../messages.c:1138 msgid "Refusing to post empty message.\n" msgstr "Werde keine leere Nachricht senden.\n" #: ../../messages.c:1164 msgid "Message has been saved to Drafts.\n" msgstr "Nachricht in Entwürfen gespeichert.\n" #: ../../messages.c:1174 msgid "Message has been sent.\n" msgstr "Nachricht wurde gesendet.\n" #: ../../messages.c:1177 msgid "Message has been posted.\n" msgstr "Beitrag wurde gesendet.\n" #: ../../messages.c:1791 msgid "The message was not moved." msgstr "Die Meldung wurde nicht verschoben." #: ../../messages.c:1832 #, c-format msgid "An error occurred while retrieving this part: %s/%s\n" msgstr "Ein Fehler trat beim laden dieses Anhangs auf: %s/%s\n" #: ../../messages.c:1922 #, c-format msgid "An error occurred while retrieving this part: %s\n" msgstr "Ein Fehler trat beim laden dieses Anhangs auf: %s\n" #: ../../messages.c:2082 msgid "Attach signature to email messages?" msgstr "EMail-Signatur anhängen?" #: ../../messages.c:2085 msgid "Use this signature:" msgstr "Diese Signatur benutzen:" #: ../../messages.c:2087 msgid "Default character set for email headers:" msgstr "Vorgabezeichensatz für EMail Kopfzeilen:" #: ../../messages.c:2090 msgid "Preferred email address" msgstr "Bevorzugte EMailadresse" #: ../../messages.c:2092 msgid "Preferred display name for email messages" msgstr "Bevorzugter Name als Email-Absender" #: ../../messages.c:2096 msgid "Preferred display name for bulletin board posts" msgstr "Bevorzugter Name in Diskussionsforen" #: ../../messages.c:2099 msgid "Mailbox view mode" msgstr "Anzeigen als Postfach" #: ../../notes.c:345 ../../i18n_templatelist.c:756 msgid "Click on any note to edit it." msgstr "Auf eine Notiz klicken zum bearbeiten" #: ../../paging.c:29 msgid "Send instant message" msgstr "Kurznachricht senden" #: ../../paging.c:37 msgid "Send an instant message to: " msgstr "Kurznachricht senden an: " #: ../../paging.c:51 msgid "Enter message text:" msgstr "Nachrichtentext eingeben:" #: ../../paging.c:59 ../../i18n_templatelist.c:289 #: ../../i18n_templatelist.c:326 ../../static/t/edit/markdown_epic.html:50 #: ../../static/t/edit/message.html:106 msgid "Send message" msgstr "Meldung senden" #: ../../paging.c:78 msgid "Message was not sent." msgstr "Kurznachricht nicht gesendet." #: ../../paging.c:89 msgid "Message has been sent to " msgstr "Kurznachricht gesendet an " #: ../../preferences.c:880 msgid "Cancelled. No settings were changed." msgstr "Abgebrochen. Änderungen wurden nicht gespeichert." #: ../../preferences.c:1128 msgid "Make this my start page" msgstr "Als Startseite setzen" #: ../../preferences.c:1166 msgid "This isn't allowed to become the start page." msgstr "Dies kann nicht ihre Startseite werden!" #: ../../preferences.c:1168 msgid "You no longer have a start page selected." msgstr "Startseite gelöscht" #: ../../preferences.c:1220 msgid "Prefered startpage" msgstr "Bevorzugte Startseite" #: ../../roomlist.c:105 msgid "My Folders" msgstr "Meine Ordner" #: ../../roomops.c:712 ../../roomops.c:1013 ../../sieve.c:367 msgid "Cancelled. Changes were not saved." msgstr "Abgebrochen. Änderungen wurden nicht übernommen." #: ../../roomops.c:839 ../../sieve.c:420 msgid "Your changes have been saved." msgstr "Ihre Änderungen wurden gespeichert." #: ../../roomops.c:885 #, c-format msgid "User '%s' kicked out of room '%s'." msgstr "Benutzer '%s' des Raumes '%s' verwiesen." #: ../../roomops.c:902 #, c-format msgid "User '%s' invited to room '%s'." msgstr "Benutzer '%s' in den Raum '%s' eingeladen." #: ../../roomops.c:933 msgid "Cancelled. No new room was created." msgstr "Abgebrochen. Keinen neuen Raum erzeugt." #: ../../roomops.c:1260 msgid "Floor has been deleted." msgstr "Etage gelöscht." #: ../../roomops.c:1284 msgid "New floor has been created." msgstr "Eine neue Etage wurde erstellt." #: ../../roomops.c:1363 msgid "Room list view" msgstr "Raumlisten Anzeige" #: ../../roomops.c:1366 msgid "Show empty floors" msgstr "Leere Etagen anzeigen" #: ../../roomtokens.c:570 msgid "file" msgstr "Datei" #: ../../roomtokens.c:572 msgid "files" msgstr "Dateien" #: ../../roomviews.c:53 msgid "Bulletin Board" msgstr "Forum" #: ../../roomviews.c:54 msgid "Mail Folder" msgstr "Mailordner" #: ../../roomviews.c:55 msgid "Address Book" msgstr "Adressbuch" #: ../../roomviews.c:56 ../../i18n_templatelist.c:33 #: ../../i18n_templatelist.c:510 ../../static/t/iconbar.html:24 #: ../../static/t/iconbar/edit.html:55 msgid "Calendar" msgstr "Kalender" #: ../../roomviews.c:57 msgid "Task List" msgstr "Aufgabenliste" #: ../../roomviews.c:58 msgid "Notes List" msgstr "Notizliste" #: ../../roomviews.c:59 msgid "Wiki" msgstr "Wiki" #: ../../roomviews.c:60 msgid "Calendar List" msgstr "Kalenderliste" #: ../../roomviews.c:61 msgid "Journal" msgstr "Journal" #: ../../roomviews.c:62 msgid "Drafts" msgstr "Entwürfe" #: ../../roomviews.c:63 msgid "Blog" msgstr "Blog" #: ../../roomviews.c:64 msgid "Markdown Wiki" msgstr "Markdown Wiki" #: ../../serv_func.c:193 msgid "" "This server is already serving its maximum number of users and cannot accept " "any additional logins at this time. Please try again later or contact your " "system administrator." msgstr "" "Dieser Server bedient bereits die maximale Anzahl von Benutzern. Neue " "Anmeldungen können daher nicht akzeptiert werden. Bitte versuchen Sie es " "später noch einmal oder kontaktieren Sie ihren Systemverwalter." #: ../../serv_func.c:198 ../../serv_func.c:227 msgid "Received unexpected answer from Citadel server; bailing out." msgstr "Unerwartete Meldung vom Citadel Server erhalten: Exit." #: ../../serv_func.c:236 #, c-format msgid "" "You are connected to a Citadel server running Citadel %d.%02d. \n" "In order to run this version of WebCit you must also have Citadel %d.%02d or " "newer.\n" "\n" "\n" msgstr "" "Sie sind mit einem Citadel-Server der Version %d.%02d verbunden. \n" "Webcit benötigt mindestens Version %d.%02d.\n" "\n" "\n" #: ../../siteconfig.c:335 msgid "Your system configuration has been updated." msgstr "Ihre Systemkonfiguration wurde übernommen" #: ../../smtpqueue.c:181 msgid "First Attempt pending" msgstr "Erster Versuch steht aus" #: ../../useredit.c:625 msgid "" "An error occurred while trying to create or edit this address book entry." msgstr "Fehler beim Erzeugen / Bearbeiten dieses Adressbuch-Eintrags." #: ../../useredit.c:713 msgid "Changes were not saved." msgstr "Änderungen verworfen." #: ../../useredit.c:778 msgid "A new user has been created." msgstr "Ein neuer Benutzer wurde angelegt." #: ../../useredit.c:782 msgid "" "You are attempting to create a new user from within Citadel while running in " "host based authentication mode. In this mode, you must create new users on " "the host system, not within Citadel." msgstr "" "Sie versuchen einen Benutzer anzulegen. Dieses System verwendet jedoch die " "Konten des Host-Systems, deshalb müssen dort neue Benutzer angelegt werden." #: ../../vcard_edit.c:170 ../../vcard_edit.c:173 msgid "(no name)" msgstr "(kein Name)" #: ../../vcard_edit.c:438 msgid " (work)" msgstr " (Firma)" #: ../../vcard_edit.c:440 msgid " (home)" msgstr " (Privat)" #: ../../vcard_edit.c:442 msgid " (cell)" msgstr " (Handy)" #: ../../vcard_edit.c:453 ../../vcard_edit.c:1122 msgid "Address:" msgstr "Adresse:" #: ../../vcard_edit.c:521 msgid "Telephone:" msgstr "Telefon" #: ../../vcard_edit.c:526 msgid "E-mail:" msgstr "E-Mail:" #: ../../vcard_edit.c:774 msgid "This address book is empty." msgstr "Dieses Adressbuch ist leer." #: ../../vcard_edit.c:788 msgid "An internal error has occurred." msgstr "Ein interner Fehler ist aufgetreten." #: ../../vcard_edit.c:940 msgid "Error" msgstr "Fehler" #: ../../vcard_edit.c:1044 msgid "Edit contact information" msgstr "Kontaktdaten bearbeiten" #: ../../vcard_edit.c:1070 msgid "Prefix" msgstr "Anrede" #: ../../vcard_edit.c:1070 msgid "First Name" msgstr "Vorname" #: ../../vcard_edit.c:1070 msgid "Middle Name" msgstr "Mittelinitial" #: ../../vcard_edit.c:1070 msgid "Last Name" msgstr "Nachname" #: ../../vcard_edit.c:1070 msgid "Suffix" msgstr "Zähler" #: ../../vcard_edit.c:1091 msgid "Display name:" msgstr "Namen anzeigen:" #: ../../vcard_edit.c:1098 msgid "Title:" msgstr "Titel:" #: ../../vcard_edit.c:1105 msgid "Organization:" msgstr "Organisation:" #: ../../vcard_edit.c:1116 msgid "PO box:" msgstr "Postfach:" #: ../../vcard_edit.c:1132 msgid "City:" msgstr "Stadt:" #: ../../vcard_edit.c:1138 msgid "State:" msgstr "Bundesland:" #: ../../vcard_edit.c:1144 msgid "ZIP code:" msgstr "Postleitzahl:" #: ../../vcard_edit.c:1150 msgid "Country:" msgstr "Land:" #: ../../vcard_edit.c:1160 msgid "Home telephone:" msgstr "Telefon:" #: ../../vcard_edit.c:1166 msgid "Work telephone:" msgstr "Telefon/Büro:" #: ../../vcard_edit.c:1172 msgid "Mobile telephone:" msgstr "Mobiltelefon:" #: ../../vcard_edit.c:1178 msgid "Fax number:" msgstr "Faxnummer." #: ../../vcard_edit.c:1189 msgid "Primary Internet e-mail address" msgstr "Haupt-EMailadresse" #: ../../vcard_edit.c:1196 msgid "Internet e-mail aliases" msgstr "Internet EMail-Aliase" #: ../../vcard_edit.c:1263 msgid "Unable to enter the room to save your message" msgstr "Kann nicht in den Raum wechseln um die Nachricht zu speichern" #: ../../vcard_edit.c:1267 msgid "Aborting." msgstr "Abgebrochen." #: ../../vcard_edit.c:1399 msgid "Could Not decode vcard photo\n" msgstr "Konnte VCard-Foto nicht dekodieren\n" #: ../../webcit.c:350 msgid "Authorization Required" msgstr "Authentifizierung benötigt" #: ../../webcit.c:358 #, c-format msgid "" "The resource you requested requires a valid username and password. You could " "not be logged in: %s\n" msgstr "" "Die angeforderte Sektion benötigt einen gültigen Benutzernamen und Passwort." "Sie konnten nicht Angemeldet werden: %s\n" #: ../../webcit.c:681 msgid "" "This program was unable to connect or stay connected to the Citadel server. " "Please report this problem to your system administrator." msgstr "" "Dieses Programm konnte keine Verbindung zum Citadel-Server herstellen oder " "aufrechterhalten. Bitte wenden Sie sich an Ihren Administrator." #: ../../webcit.c:688 msgid "Read More..." msgstr "Weiter lesen..." #: ../../wiki.c:55 #, c-format msgid "'%s' is not a Wiki room." msgstr "'%s' ist kein Wiki-Raum." #: ../../wiki.c:89 #, c-format msgid "There is no page called '%s' here." msgstr "Es gibt hier keine Seite mit Namen '%s'." #: ../../wiki.c:91 msgid "" "Select the 'Edit this page' link in the room banner if you would like to " "create this page." msgstr "" "Klicken Sie auf 'Diese Seite bearbeiten' im Raum-Banner, wenn Sie diesen " "Raum erzeugen möchten." #: ../../wiki.c:142 ../../i18n_templatelist.c:110 #: ../../static/t/msg_listview.html:11 msgid "Date" msgstr "Datum" #: ../../wiki.c:143 msgid "Author" msgstr "Autor" #: ../../wiki.c:170 ../../wiki.c:180 msgid "(show)" msgstr "(anzeigen)" #: ../../wiki.c:171 ../../i18n_templatelist.c:975 #: ../../i18n_templatelist.c:979 ../../static/t/navbar.html:145 #: ../../static/t/navbar.html:168 msgid "Current version" msgstr "Aktuelle Version" #: ../../wiki.c:184 msgid "(revert)" msgstr "(zurücknehmen)" #: ../../wiki.c:246 msgid "Page title" msgstr "Seitentitel" #: ../../fmt_date.c:306 msgid "Time format" msgstr "Uhrzeitformat" #: ../../calendar_view.c:291 ../../calendar_view.c:952 #: ../../calendar_view.c:996 ../../calendar_view.c:1077 #: ../../i18n_templatelist.c:638 ../../static/t/sieve/display_one.html:20 msgid "From" msgstr "Von" #: ../../calendar_view.c:349 ../../calendar_view.c:968 msgid "Starting date:" msgstr "Anfangsdatum:" #: ../../calendar_view.c:355 ../../calendar_view.c:970 msgid "Ending date:" msgstr "Terminende:" #: ../../calendar_view.c:363 ../../calendar_view.c:1089 msgid "Date/time:" msgstr "Datum/Zeit:" #: ../../calendar_view.c:380 ../../calendar_view.c:974 #: ../../calendar_view.c:1012 ../../calendar_view.c:1099 #: ../../i18n_templatelist.c:621 ../../static/t/room/edit/tab_share.html:33 msgid "Notes:" msgstr "Notizen:" #: ../../calendar_view.c:579 ../../calendar_view.c:715 msgid "previous" msgstr "vorheriger" #: ../../calendar_view.c:591 ../../calendar_view.c:727 #: ../../calendar_view.c:1302 msgid "next" msgstr "nächster" #: ../../calendar_view.c:750 msgid "Week" msgstr "Woche" #: ../../calendar_view.c:752 msgid "Hours" msgstr "Stunden" #: ../../calendar_view.c:753 ../../i18n_templatelist.c:108 #: ../../i18n_templatelist.c:640 ../../static/t/msg_listview.html:9 #: ../../static/t/sieve/display_one.html:22 msgid "Subject" msgstr "Betreff" #: ../../calendar_view.c:995 ../../calendar_view.c:1018 msgid "Ongoing event" msgstr "Mehrtägiger Termin" #: ../../msg_renderers.c:629 ../../i18n_templatelist.c:246 #: ../../i18n_templatelist.c:247 msgid "edit" msgstr "bearbeiten" #: ../../msg_renderers.c:1182 msgid "I don't know how to display " msgstr "Kann den folgenden Header nicht darstellen: " #: ../../msg_renderers.c:1416 msgid "(no subject)" msgstr "(kein Betreff)" #: ../../i18n_templatelist.c:3 ../../static/t/view_mailq/footer_empty.html:4 msgid "The queue is empty." msgstr "Diese Warteschlange ist leer." #: ../../i18n_templatelist.c:4 ../../i18n_templatelist.c:699 #: ../../static/t/view_mailq/footer.html:5 #: ../../static/t/view_mailq/footer_empty.html:9 msgid "You do not have permission to view this resource." msgstr "Sie haben keine Berechtigung diese Ressource einzusehen." #: ../../i18n_templatelist.c:5 ../../i18n_templatelist.c:220 #: ../../static/t/iconbar/edit.html:4 ../../static/t/iconbar/save.html:4 msgid "Customize the icon bar" msgstr "Diese Icon-Leiste bearbeiten" #: ../../i18n_templatelist.c:6 ../../static/t/iconbar/edit.html:11 msgid "Display icons as:" msgstr "Icons anzeigen als:" #: ../../i18n_templatelist.c:7 ../../static/t/iconbar/edit.html:12 msgid "pictures and text" msgstr "Bilder und Text" #: ../../i18n_templatelist.c:8 ../../static/t/iconbar/edit.html:13 msgid "pictures only" msgstr "Nur Bilder" #: ../../i18n_templatelist.c:9 ../../static/t/iconbar/edit.html:14 msgid "text only" msgstr "Nur Text" #: ../../i18n_templatelist.c:10 ../../static/t/iconbar/edit.html:16 msgid "" "Select the icons you would like to see displayed in the 'icon bar' menu on " "the left side of the screen." msgstr "" "Die Menüeinträge auswählen, die Sie auf der Leiste links angezeigt haben " "möchten" #: ../../i18n_templatelist.c:11 ../../i18n_templatelist.c:15 #: ../../i18n_templatelist.c:19 ../../i18n_templatelist.c:23 #: ../../i18n_templatelist.c:27 ../../i18n_templatelist.c:31 #: ../../i18n_templatelist.c:35 ../../i18n_templatelist.c:39 #: ../../i18n_templatelist.c:43 ../../i18n_templatelist.c:47 #: ../../i18n_templatelist.c:51 ../../i18n_templatelist.c:55 #: ../../i18n_templatelist.c:163 ../../i18n_templatelist.c:265 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:14 #: ../../static/t/iconbar/edit.html:19 ../../static/t/iconbar/edit.html:26 #: ../../static/t/iconbar/edit.html:32 ../../static/t/iconbar/edit.html:39 #: ../../static/t/iconbar/edit.html:45 ../../static/t/iconbar/edit.html:52 #: ../../static/t/iconbar/edit.html:58 ../../static/t/iconbar/edit.html:64 #: ../../static/t/iconbar/edit.html:70 ../../static/t/iconbar/edit.html:76 #: ../../static/t/iconbar/edit.html:82 ../../static/t/iconbar/edit.html:88 #: ../../static/t/prefs/box.html:198 msgid "Yes" msgstr "Ja" #: ../../i18n_templatelist.c:12 ../../i18n_templatelist.c:16 #: ../../i18n_templatelist.c:20 ../../i18n_templatelist.c:24 #: ../../i18n_templatelist.c:28 ../../i18n_templatelist.c:32 #: ../../i18n_templatelist.c:36 ../../i18n_templatelist.c:40 #: ../../i18n_templatelist.c:44 ../../i18n_templatelist.c:48 #: ../../i18n_templatelist.c:52 ../../i18n_templatelist.c:56 #: ../../i18n_templatelist.c:164 ../../i18n_templatelist.c:266 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:16 #: ../../static/t/iconbar/edit.html:20 ../../static/t/iconbar/edit.html:27 #: ../../static/t/iconbar/edit.html:33 ../../static/t/iconbar/edit.html:40 #: ../../static/t/iconbar/edit.html:46 ../../static/t/iconbar/edit.html:53 #: ../../static/t/iconbar/edit.html:59 ../../static/t/iconbar/edit.html:65 #: ../../static/t/iconbar/edit.html:71 ../../static/t/iconbar/edit.html:77 #: ../../static/t/iconbar/edit.html:83 ../../static/t/iconbar/edit.html:89 #: ../../static/t/prefs/box.html:200 msgid "No" msgstr "Nein" #: ../../i18n_templatelist.c:13 ../../static/t/iconbar/edit.html:23 msgid "Site logo" msgstr "Seitenlogo" #: ../../i18n_templatelist.c:14 ../../static/t/iconbar/edit.html:23 msgid "An icon describing this site" msgstr "Ein Logo, das Ihre Seite beschreibt" #: ../../i18n_templatelist.c:18 ../../i18n_templatelist.c:505 #: ../../static/t/iconbar/edit.html:29 msgid "Your summary page" msgstr "Meine Übersichtsseite" #: ../../i18n_templatelist.c:21 ../../static/t/iconbar/edit.html:36 msgid "Mail (inbox)" msgstr "Posteingang" #: ../../i18n_templatelist.c:22 ../../static/t/iconbar/edit.html:36 msgid "A shortcut to your email Inbox" msgstr "Eine Abkürzung zu Ihrem Posteingang" #: ../../i18n_templatelist.c:26 ../../static/t/iconbar/edit.html:42 msgid "Your personal address book" msgstr "Ihr eigenes Adressbuch" #: ../../i18n_templatelist.c:30 ../../static/t/iconbar/edit.html:49 msgid "Your personal notes" msgstr "Ihre Notizen" #: ../../i18n_templatelist.c:34 ../../static/t/iconbar/edit.html:55 msgid "A shortcut to your personal calendar" msgstr "Eine Abkürzung zu Ihrem Kalender" #: ../../i18n_templatelist.c:37 ../../i18n_templatelist.c:516 #: ../../i18n_templatelist.c:864 ../../static/t/iconbar.html:39 #: ../../static/t/iconbar/edit.html:61 ../../static/t/summary/page.html:30 msgid "Tasks" msgstr "Aufgaben" #: ../../i18n_templatelist.c:38 ../../static/t/iconbar/edit.html:61 msgid "A shortcut to your personal task list" msgstr "Eine Abkürzung zu Ihrer Aufgabenliste" #: ../../i18n_templatelist.c:41 ../../i18n_templatelist.c:518 #: ../../static/t/iconbar.html:48 ../../static/t/iconbar/edit.html:67 msgid "Rooms" msgstr "Räume" #: ../../i18n_templatelist.c:42 ../../static/t/iconbar/edit.html:67 msgid "" "Clicking this icon displays a list of all accessible rooms (or folders) " "available." msgstr "Liste aller verfügbaren Räume (oder Verzeichnisse) auflisten." #: ../../i18n_templatelist.c:45 ../../static/t/iconbar/edit.html:73 msgid "Who is online?" msgstr "Wer ist da?" #: ../../i18n_templatelist.c:46 ../../static/t/iconbar/edit.html:73 msgid "Clicking this icon displays a list of all users currently logged in." msgstr "Wer ist gerade angemeldet?" #: ../../i18n_templatelist.c:49 ../../i18n_templatelist.c:523 #: ../../static/t/iconbar.html:62 ../../static/t/iconbar/edit.html:79 msgid "Chat" msgstr "Chat" #: ../../i18n_templatelist.c:50 ../../static/t/iconbar/edit.html:79 msgid "" "Clicking this icon enters real-time chat mode with other users in the same " "room." msgstr "Interaktiver Chat mit den anderen Benutzern in diesem Raum" #: ../../i18n_templatelist.c:53 ../../static/t/iconbar/edit.html:85 msgid "Advanced options" msgstr "Erweiterte Optionen" #: ../../i18n_templatelist.c:54 ../../static/t/iconbar/edit.html:85 msgid "Access to the complete menu of Citadel functions." msgstr "Zugriff zu allen Citadel-Menü-Funktionen" #: ../../i18n_templatelist.c:57 ../../static/t/iconbar/edit.html:91 msgid "Citadel logo" msgstr "Citadel Logo" #: ../../i18n_templatelist.c:58 ../../static/t/iconbar/edit.html:91 msgid "Displays the 'Powered by Citadel' icon" msgstr "Das 'Powered by Citadel'-Logo anzeigen" #: ../../i18n_templatelist.c:61 ../../i18n_templatelist.c:134 #: ../../static/t/aide/display_inetconf.html:5 #: ../../static/t/aide/display_menu.html:5 msgid "System Administration Menu" msgstr "Systemverwaltungsmenü" #: ../../i18n_templatelist.c:62 ../../i18n_templatelist.c:135 #: ../../static/t/aide/display_inetconf.html:6 #: ../../static/t/aide/display_menu.html:6 msgid "Room Admin Menu" msgstr "Raumverantwortlichen Menü" #: ../../i18n_templatelist.c:63 ../../static/t/aide/display_inetconf.html:14 msgid "Local host aliases" msgstr "Aliase für diese Maschine" #: ../../i18n_templatelist.c:64 ../../static/t/aide/display_inetconf.html:15 msgid "Directory domains" msgstr "Verzeichnis Namen" #: ../../i18n_templatelist.c:65 ../../static/t/aide/display_inetconf.html:16 msgid "Smart hosts" msgstr "Smart Hosts" #: ../../i18n_templatelist.c:66 ../../static/t/aide/display_inetconf.html:17 msgid "Fallback smart hosts" msgstr "Ausweich Smart-Hosts" #: ../../i18n_templatelist.c:67 ../../static/t/aide/display_inetconf.html:18 msgid "Notification hosts" msgstr "Benachrichtigungshosts" #: ../../i18n_templatelist.c:68 ../../static/t/aide/display_inetconf.html:23 msgid "RBL hosts" msgstr "Blacklist-Maschinen" #: ../../i18n_templatelist.c:69 ../../static/t/aide/display_inetconf.html:24 msgid "SpamAssassin hosts" msgstr "SpamAssassin-Maschinen" #: ../../i18n_templatelist.c:70 ../../static/t/aide/display_inetconf.html:25 msgid "ClamAV clamd hosts" msgstr "ClamAV Clamd Maschine" #: ../../i18n_templatelist.c:71 ../../static/t/aide/display_inetconf.html:26 msgid "Masqueradable domains" msgstr "Masquarading-Domains" #: ../../i18n_templatelist.c:72 ../../i18n_templatelist.c:458 #: ../../i18n_templatelist.c:537 ../../i18n_templatelist.c:809 #: ../../static/t/aide/siteconfig/tab_directory.html:3 #: ../../static/t/aide/siteconfig/tab_imap.html:2 #: ../../static/t/aide/siteconfig/tab_setting.html:1 #: ../../static/t/aide/siteconfig/tab_smtp.html:2 msgid "" "Changes made on this screen will not take effect until you restart the " "Citadel server." msgstr "" "Änderungen in diesem Menü werden erst mit Neustart des Citadel-Servers aktiv." #: ../../i18n_templatelist.c:73 #: ../../static/t/aide/siteconfig/tab_setting.html:5 msgid "Network services" msgstr "Netzwerkdienste" #: ../../i18n_templatelist.c:74 #: ../../static/t/aide/siteconfig/tab_setting.html:7 msgid "Server IP address (0.0.0.0 for 'any' IPV4, * for all including IPV6)" msgstr "Server-IP-Adresse (0.0.0.0 um alle IPV4, * um alle plus IPV6 zu binden)" #: ../../i18n_templatelist.c:75 #: ../../static/t/aide/siteconfig/tab_setting.html:10 msgid "XMPP (Jabber) client to server port (-1 to disable)" msgstr "XMPP (Jabber) Client nach Server Port (-1 zum abschalten)" #: ../../i18n_templatelist.c:76 #: ../../static/t/aide/siteconfig/tab_setting.html:13 msgid "XMPP (Jabber) server to server port (-1 to disable)" msgstr "XMPP (Jabber) Server zu Server Port (-1 zum abschalten)" #: ../../i18n_templatelist.c:77 #: ../../static/t/aide/siteconfig/tab_setting.html:16 msgid "Advanced server fine-tuning controls" msgstr "Erweiterte Server Einstellungen" #: ../../i18n_templatelist.c:78 #: ../../static/t/aide/siteconfig/tab_setting.html:18 msgid "Maximum message length" msgstr "Maximale Nachrichtenlänge (in Bytes)" #: ../../i18n_templatelist.c:79 #: ../../static/t/aide/siteconfig/tab_setting.html:21 msgid "Server connection idle timeout (in seconds)" msgstr "ungenutzte Verbindungen trennen nach (in Sekunden):" #: ../../i18n_templatelist.c:80 #: ../../static/t/aide/siteconfig/tab_setting.html:24 msgid "Network run frequency (in seconds)" msgstr "Knoten-Synchronisierunsfrequenz (in Sekunden)" #: ../../i18n_templatelist.c:81 #: ../../static/t/aide/siteconfig/tab_setting.html:27 msgid "Maximum concurrent sessions (0 = no limit)" msgstr "Maximale Anzahl gleichzeitiger Verbindungen (0 = kein Limit)" #: ../../i18n_templatelist.c:82 #: ../../static/t/aide/siteconfig/tab_setting.html:32 msgid "Minimum number of worker threads" msgstr "Minimale Anzahl Server-Threads" #: ../../i18n_templatelist.c:83 #: ../../static/t/aide/siteconfig/tab_setting.html:35 msgid "Maximum number of worker threads" msgstr "Maximale Anzahl Server-Threads" #: ../../i18n_templatelist.c:84 #: ../../static/t/aide/siteconfig/tab_setting.html:40 msgid "Automatically delete committed database logs" msgstr "Automatisch die Datenbanktransferlogs löschen" #: ../../i18n_templatelist.c:85 ../../i18n_templatelist.c:467 #: ../../static/t/menu/advanced_roomcommands.html:6 #: ../../static/t/room/create.html:11 msgid "Create a new room" msgstr "Einen neuen Raum erzeugen" #: ../../i18n_templatelist.c:86 ../../static/t/room/create.html:18 msgid "Name of room: " msgstr "Name des Raums: " #: ../../i18n_templatelist.c:87 ../../i18n_templatelist.c:584 #: ../../static/t/room/create.html:20 #: ../../static/t/room/edit/tab_config.html:11 msgid "Resides on floor: " msgstr "Befindet sich auf Etage: " #: ../../i18n_templatelist.c:88 ../../static/t/room/create.html:32 msgid "Default view for room: " msgstr "Vorgabe-Ansicht für diesen Raum: " #: ../../i18n_templatelist.c:89 ../../i18n_templatelist.c:585 #: ../../static/t/room/create.html:70 #: ../../static/t/room/edit/tab_config.html:17 msgid "Type of room:" msgstr "Raum-Typ:" #: ../../i18n_templatelist.c:90 ../../i18n_templatelist.c:586 #: ../../static/t/room/create.html:75 #: ../../static/t/room/edit/tab_config.html:23 msgid "Public (automatically appears to everyone)" msgstr "Öffentlich (Raum zugänglich für jeden)" #: ../../i18n_templatelist.c:91 ../../i18n_templatelist.c:587 #: ../../static/t/room/create.html:79 #: ../../static/t/room/edit/tab_config.html:29 msgid "Private - hidden (accessible to anyone who knows its name)" msgstr "Privat - versteckt (zugänglich für jeden der den Namen weiß)" #: ../../i18n_templatelist.c:92 ../../i18n_templatelist.c:588 #: ../../static/t/room/create.html:83 #: ../../static/t/room/edit/tab_config.html:36 msgid "Private - require password: " msgstr "Privat - erfordert Passwort: " #: ../../i18n_templatelist.c:93 ../../i18n_templatelist.c:589 #: ../../static/t/room/create.html:88 #: ../../static/t/room/edit/tab_config.html:45 msgid "Private - invitation only" msgstr "Privat - nur mit Einladung" #: ../../i18n_templatelist.c:94 ../../i18n_templatelist.c:590 #: ../../static/t/room/create.html:92 #: ../../static/t/room/edit/tab_config.html:52 msgid "Personal (mailbox for you only)" msgstr "Persönlich (Briefkasten, nur für Sie)" #: ../../i18n_templatelist.c:95 msgid "Create new room" msgstr "Einen neuen Raum erzeugen" #: ../../i18n_templatelist.c:97 ../../i18n_templatelist.c:253 #: ../../i18n_templatelist.c:528 ../../i18n_templatelist.c:529 #: ../../i18n_templatelist.c:952 ../../static/t/confirmlogoff.html:3 #: ../../static/t/iconbar.html:80 ../../static/t/logout.html:10 #: ../../static/t/menu/basic_commands.html:19 msgid "Log off" msgstr "Abmelden" #: ../../i18n_templatelist.c:98 ../../static/t/logout.html:16 msgid "Log in again" msgstr "Erneut anmelden" #: ../../i18n_templatelist.c:99 ../../static/t/room/zap_this.html:3 msgid "Zap (forget/unsubscribe) the current room" msgstr "den aktuellen Raum vergessen (vergessen/abbestellen)" #: ../../i18n_templatelist.c:100 ../../static/t/room/zap_this.html:6 msgid "If you select this option," msgstr "Wenn Sie diese Option wählen," #: ../../i18n_templatelist.c:101 ../../static/t/room/zap_this.html:8 msgid "will disappear from your room list. Is this what you wish to do?" msgstr "aus der Raumliste verschwinden. Wollen Sie das wirklich tun?" #: ../../i18n_templatelist.c:102 msgid "Zap this room" msgstr "Raum weglassen" #: ../../i18n_templatelist.c:104 ../../static/t/trailing.html:18 msgid "" "WARNING: You have JavaScript disabled in your web browser. Many functions " "of this system will not work properly." msgstr "" "WARNUNG: JavaScript ist im Browser abgeschaltet. Viele Funktionen des " "Systems stehen nicht zur verfügung." #: ../../i18n_templatelist.c:105 ../../i18n_templatelist.c:408 #: ../../i18n_templatelist.c:749 ../../static/t/room/edit/tab_feed.html:14 #: ../../static/t/who/box_list_static.html:6 ../../static/t/who/summary.html:5 msgid "User name" msgstr "Benutzername" #: ../../i18n_templatelist.c:106 ../../i18n_templatelist.c:750 #: ../../static/t/who/box_list_static.html:7 ../../static/t/who/summary.html:6 msgid "Room" msgstr "Raum" #: ../../i18n_templatelist.c:107 ../../static/t/who/box_list_static.html:8 msgid "From host" msgstr "Client DNS Name / IP" #: ../../i18n_templatelist.c:109 ../../i18n_templatelist.c:475 #: ../../i18n_templatelist.c:642 ../../static/t/msg_listview.html:10 #: ../../static/t/sieve/display_one.html:24 #: ../../static/t/view_mailq/table.html:10 msgid "Sender" msgstr "Absender" #: ../../i18n_templatelist.c:111 ../../static/t/msg_listview.html:18 msgid "Loading messages from server, please wait" msgstr "Lade Nachrichten vom Server, Bitte warten" #: ../../i18n_templatelist.c:112 ../../static/t/msg_listview.html:24 msgid "Open in new window" msgstr "in neuem Fenster öffnen" #: ../../i18n_templatelist.c:113 ../../i18n_templatelist.c:493 #: ../../i18n_templatelist.c:923 ../../static/t/msg_listview.html:25 #: ../../static/t/view_message.html:31 msgid "Move" msgstr "Verschieben" #: ../../i18n_templatelist.c:114 ../../static/t/msg_listview.html:26 msgid "Copy" msgstr "Kopieren" #: ../../i18n_templatelist.c:116 ../../i18n_templatelist.c:497 #: ../../static/t/msg_listview.html:28 ../../static/t/view_message.html:35 msgid "Print" msgstr "Drucken" #: ../../i18n_templatelist.c:117 ../../static/t/aide/inet/fallbackhosts.html:2 msgid "(send outbound mail to these hosts only when direct delivery fails)" msgstr "" "(sende auslaufende Mails nur für die Hosts, bei denen die direkte Übertragen " "fehlschlägt)" #: ../../i18n_templatelist.c:118 ../../static/t/room/zapped_list.html:7 msgid "Zapped (forgotten) rooms" msgstr "Vergessene Räume" #: ../../i18n_templatelist.c:119 ../../static/t/room/zapped_list.html:10 msgid "Click on any room to un-zap it and goto that room." msgstr "Einen Raum anclicken zum ent-Zap-en und betreten." #: ../../i18n_templatelist.c:120 msgid "" "You have one or more instant messages waiting, but the Citadel Instant " "Messenger window failed to open. This is probably because you have a popup " "blocker installed. Please configure your popup blocker to allow popups from " "this site if you wish to receive instant messages." msgstr "Es warten eine oder mehrere Kurznachrichten, aber das Citadel Nachrichtenfenster" "hat sich nicht geöffnet. Eventuell blockiert ihr Browser Popups. Bitte erlauben" " sie das Citadel Nachrichtenfenster im Popupblocker um Kurznachrichten zu empfangen." #: ../../i18n_templatelist.c:121 ../../static/t/menu/your_info.html:2 msgid "Change your preferences and settings" msgstr "Ihre persönlichen Einstellungen ändern" #: ../../i18n_templatelist.c:122 ../../static/t/menu/your_info.html:3 msgid "Update your contact information" msgstr "Ihre Kontaktinformationen ändern" #: ../../i18n_templatelist.c:123 ../../i18n_templatelist.c:882 #: ../../static/t/menu/change_pw.html:6 ../../static/t/menu/your_info.html:4 msgid "Change your password" msgstr "Ändern Sie Ihr Passwort" #: ../../i18n_templatelist.c:124 ../../static/t/menu/your_info.html:5 msgid "Enter your 'bio'" msgstr "Ihr Lebenslauf eingeben" #: ../../i18n_templatelist.c:125 ../../static/t/menu/your_info.html:6 msgid "Edit your online photo" msgstr "Ihr Photo ändern" #: ../../i18n_templatelist.c:126 ../../i18n_templatelist.c:389 #: ../../i18n_templatelist.c:446 ../../static/t/menu/your_info.html:7 #: ../../static/t/sieve/list.html:32 ../../static/t/sieve/none.html:4 msgid "View/edit server-side mail filters" msgstr "Bearbeiten/Anzeigen von serverseitigen Mailfiltern" #: ../../i18n_templatelist.c:127 ../../static/t/menu/your_info.html:8 msgid "Edit your push email settings" msgstr "Bearbeiten Sie ihre Push-Email einstellungen" #: ../../i18n_templatelist.c:128 ../../static/t/menu/your_info.html:9 msgid "Manage your OpenIDs" msgstr "openID's bearbeiten" #: ../../i18n_templatelist.c:129 ../../static/t/aide/display_logstatus.html:4 msgid "Temporarily enable debug logging for components" msgstr "Temporär debug loggen von Komponenten einschalten" #: ../../i18n_templatelist.c:130 ../../static/t/aide/display_logstatus.html:13 msgid "" "This screen allows you to enable debug logging of components of the current " "citserver process. The setting is non-restart permanent. If you want it to " "be enabled permanently add it to the CITADEL_LOGDEBUG environment variable " "in your init script." msgstr "Dieses Formular erlaubt es, einzelne Komponenten des Citserverprozesses " "zur Fehlersuche verbos zu schalten. Die Einstellung ist nicht neustart fest." "Um es permanent einzuschalten, fügen sie es zu der CITADEL_LOGDEBUG Umgebungsvariable " "im citadel Initscript hinzu." #: ../../i18n_templatelist.c:131 msgid "The citadel server has to be restarted. It will be back in a minute." msgstr "Der Citadelserver muss neu gestartet werden. Er wird sofort wieder da sein." #: ../../i18n_templatelist.c:132 ../../i18n_templatelist.c:987 #: ../../static/t/view_message/inline_attach.html:4 #: ../../static/t/view_message/list_attach.html:3 msgid "View" msgstr "Anzeigen" #: ../../i18n_templatelist.c:133 ../../i18n_templatelist.c:988 #: ../../static/t/view_message/inline_attach.html:5 #: ../../static/t/view_message/list_attach.html:4 msgid "Download" msgstr "Herunterladen" #: ../../i18n_templatelist.c:136 ../../static/t/aide/display_menu.html:12 msgid "Global Configuration" msgstr "Globale Konfiguration" #: ../../i18n_templatelist.c:137 ../../static/t/aide/display_menu.html:14 msgid "User account management" msgstr "Benutzer verwalten" #: ../../i18n_templatelist.c:138 ../../static/t/aide/display_menu.html:16 msgid "Shutdown Citadel" msgstr "Citadel Restarten" #: ../../i18n_templatelist.c:139 ../../static/t/aide/display_menu.html:18 msgid "Rooms and Floors" msgstr "Räume und Etagen" #: ../../i18n_templatelist.c:140 ../../static/t/room/display_private.html:7 msgid "Go to a hidden room" msgstr "Zu einem versteckten Raum gehen" #: ../../i18n_templatelist.c:141 ../../static/t/room/display_private.html:8 msgid "" "If you know the name of a hidden (guess-name) or passworded room, you can " "enter that room by typing its name below. Once you gain access to a private " "room, it will appear in your regular room listings so you don‘t have to keep " "returning here." msgstr "" "Wenn Sie den Namen eines versteckten (Namen-raten) oder passwortgeschützten " "Raums wissen, Hier eingeben um ihn zu betreten. Wenn er einmal sichtbar " "ist, wird er in Ihrer regulären Raumliste erscheinen." #: ../../i18n_templatelist.c:142 ../../static/t/room/display_private.html:14 msgid "Enter room name:" msgstr "Raumname eingeben:" #: ../../i18n_templatelist.c:143 ../../static/t/room/display_private.html:21 msgid "Enter room password:" msgstr "Raumpasswort eingeben:" #: ../../i18n_templatelist.c:144 msgid "Go there" msgstr "Dahin gehen" #: ../../i18n_templatelist.c:146 ../../i18n_templatelist.c:313 #: ../../i18n_templatelist.c:314 ../../i18n_templatelist.c:405 #: ../../i18n_templatelist.c:483 ../../static/t/view_message.html:7 #: ../../static/t/view_message/print.html:8 #: ../../static/t/view_message/replyquote.html:3 #: ../../static/t/view_message/replyquote.html:7 #: ../../static/t/view_submessage.html:4 msgid "from " msgstr "von " #: ../../i18n_templatelist.c:147 ../../i18n_templatelist.c:484 #: ../../static/t/view_message.html:14 #: ../../static/t/view_message/print.html:14 msgid "to" msgstr "an" #: ../../i18n_templatelist.c:148 ../../i18n_templatelist.c:284 #: ../../i18n_templatelist.c:295 ../../i18n_templatelist.c:332 #: ../../i18n_templatelist.c:485 ../../static/t/edit/message.html:54 #: ../../static/t/view_message.html:15 #: ../../static/t/view_message/print.html:15 msgid "CC:" msgstr "CC:" #: ../../i18n_templatelist.c:149 ../../i18n_templatelist.c:287 #: ../../i18n_templatelist.c:315 ../../i18n_templatelist.c:486 #: ../../static/t/edit/message.html:68 ../../static/t/view_message.html:16 #: ../../static/t/view_message/print.html:16 #: ../../static/t/view_message/replyquote.html:8 msgid "Subject:" msgstr "Betreff:" #: ../../i18n_templatelist.c:150 ../../i18n_templatelist.c:831 #: ../../static/t/aide/display_sitewide_config.html:19 #: ../../static/t/aide/siteconfig/tab_pushmail.html:1 msgid "Push Email" msgstr "Mobile Push-EMail" #: ../../i18n_templatelist.c:151 #: ../../static/t/aide/siteconfig/tab_pushmail.html:5 msgid "Funambol server host (blank to disable)" msgstr "Hostname des Funambol-Synchronisierungs-Servers (leer zum Abschalten)" #: ../../i18n_templatelist.c:152 #: ../../static/t/aide/siteconfig/tab_pushmail.html:8 msgid "Funambol server port " msgstr "Funambol Serverport " #: ../../i18n_templatelist.c:153 #: ../../static/t/aide/siteconfig/tab_pushmail.html:11 msgid "Funambol sync source" msgstr "Funambol-Synchronisierungsquelle" #: ../../i18n_templatelist.c:154 #: ../../static/t/aide/siteconfig/tab_pushmail.html:14 msgid "Funambol auth details (user:pass)" msgstr "Funambol-Autentifizierungs-Details (Nutzer:Passwort)" #: ../../i18n_templatelist.c:155 #: ../../static/t/aide/siteconfig/tab_pushmail.html:17 msgid "External pager tool (blank to disable)" msgstr "Externe Pager-Server URL (leer zum Abschalten)" #: ../../i18n_templatelist.c:156 ../../static/t/prefs/box.html:9 msgid "Tree (folders) view" msgstr "Baum- (Ordner) Anzeige" #: ../../i18n_templatelist.c:157 ../../static/t/prefs/box.html:11 msgid "Table (rooms) view" msgstr "Tabellen- (Raum) Anzeige" #: ../../i18n_templatelist.c:158 ../../static/t/prefs/box.html:20 msgid "12 hour (am/pm)" msgstr "12 Stunden (AM/PM)" #: ../../i18n_templatelist.c:159 ../../static/t/prefs/box.html:25 msgid "24 hour" msgstr "24 Stunden" #: ../../i18n_templatelist.c:160 ../../static/t/prefs/box.html:152 msgid "Sunday" msgstr "Sonntag" #: ../../i18n_templatelist.c:161 ../../static/t/prefs/box.html:153 msgid "Monday" msgstr "Montag" #: ../../i18n_templatelist.c:162 ../../static/t/prefs/box.html:174 msgid "No signature" msgstr "Keine Signatur" #: ../../i18n_templatelist.c:165 ../../static/t/prefs/box.html:238 msgid "Full-functionality" msgstr "Volle Funktion" #: ../../i18n_templatelist.c:166 ../../static/t/prefs/box.html:241 msgid "Safe mode" msgstr "Eingeschränkter modus" #: ../../i18n_templatelist.c:167 ../../static/t/prefs/box.html:242 msgid "" "Safe mode is less intensive on your web browser, but not as fully featured." msgstr "" "Der sichere Modus ist ressourcensparender für deinen Browser, stellt aber " "nicht alle Funktionen zur Verfügung." #: ../../i18n_templatelist.c:168 msgid "Change" msgstr "Ändern" #: ../../i18n_templatelist.c:170 ../../i18n_templatelist.c:171 #: ../../static/t/preferences.html:4 ../../static/t/preferences.html:7 msgid "Preferences and settings" msgstr "Einstellungen" #: ../../i18n_templatelist.c:172 ../../static/t/aide/inet/notify.html:2 msgid "(URLS for notifications when users receive new mails; )" msgstr "(URLs für Benachrichtigungen, when ein Nutzer neue Mails erhält;)" #: ../../i18n_templatelist.c:173 ../../static/t/aide/inet/notify.html:2 msgid "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" msgstr "Syntax: Notificationtemplatename:http[s]://user:password@hostname/path" #: ../../i18n_templatelist.c:174 ../../static/t/display_main_menu.html:9 msgid "Basic commands" msgstr "Einfache Kommandos" #: ../../i18n_templatelist.c:175 ../../static/t/display_main_menu.html:12 msgid "Your info" msgstr "Ihre Biographie" #: ../../i18n_templatelist.c:176 ../../static/t/display_main_menu.html:14 msgid "Advanced room commands" msgstr "Erweiterte Raum-Kommandos" #: ../../i18n_templatelist.c:177 #: ../../static/t/aide/edituser/detailview.html:4 msgid "Edit user account: " msgstr "Benutzer bearbeiten: " #: ../../i18n_templatelist.c:178 ../../i18n_templatelist.c:340 #: ../../i18n_templatelist.c:763 ../../i18n_templatelist.c:769 #: ../../i18n_templatelist.c:893 #: ../../static/t/aide/edituser/detailview.html:20 #: ../../static/t/get_logged_in.html:55 ../../static/t/get_logged_in.html:70 #: ../../static/t/openid_manual_create.html:9 ../../static/t/who/edit.html:39 msgid "User name:" msgstr "Benutzername:" #: ../../i18n_templatelist.c:179 ../../i18n_templatelist.c:409 #: ../../static/t/aide/edituser/detailview.html:24 #: ../../static/t/room/edit/tab_feed.html:15 msgid "Password" msgstr "Passwort" #: ../../i18n_templatelist.c:180 #: ../../static/t/aide/edituser/detailview.html:28 msgid "Permission to send Internet mail" msgstr "Erlaubnis Internet-EMail zu senden" #: ../../i18n_templatelist.c:181 #: ../../static/t/aide/edituser/detailview.html:32 msgid "Number of logins" msgstr "Anzahl der Anmeldungen" #: ../../i18n_templatelist.c:182 #: ../../static/t/aide/edituser/detailview.html:36 msgid "Messages submitted" msgstr "Nachricht abgeschickt" #: ../../i18n_templatelist.c:183 #: ../../static/t/aide/edituser/detailview.html:40 msgid "Access level" msgstr "Zugangsberechtigung" #: ../../i18n_templatelist.c:191 #: ../../static/t/aide/edituser/detailview.html:54 msgid "User ID number" msgstr "Benutzer-ID" #: ../../i18n_templatelist.c:192 #: ../../static/t/aide/edituser/detailview.html:58 msgid "Date and time of last login" msgstr "Datum der letzten Anmeldung" #: ../../i18n_templatelist.c:193 #: ../../static/t/aide/edituser/detailview.html:68 msgid "Auto-purge after this many days" msgstr "Automatisch löschen nach n Tagen" #: ../../i18n_templatelist.c:196 #: ../../static/t/aide/siteconfig/tab_pop3.html:1 msgid "POP3" msgstr "POP3" #: ../../i18n_templatelist.c:197 #: ../../static/t/aide/siteconfig/tab_pop3.html:6 msgid "POP3 listener port (-1 to disable)" msgstr "POP3 Server Port (-1 zum abschalten)" #: ../../i18n_templatelist.c:198 #: ../../static/t/aide/siteconfig/tab_pop3.html:9 msgid "POP3 over SSL port (-1 to disable)" msgstr "POP3s Serverport (-1 zum Abschalten)" #: ../../i18n_templatelist.c:199 #: ../../static/t/aide/siteconfig/tab_pop3.html:12 msgid "POP3 fetch frequency in seconds" msgstr "POP3-Abhol-Fequenz (in Sekunden)" #: ../../i18n_templatelist.c:200 #: ../../static/t/aide/siteconfig/tab_pop3.html:15 msgid "POP3 fastest fetch frequency in seconds" msgstr "Höchste POP3-Abhol-Fequenz (in Sekunden)" #: ../../i18n_templatelist.c:201 ../../i18n_templatelist.c:502 #: ../../static/t/aide/global_config.html:6 #: ../../static/t/view_mailq/header.html:3 msgid "View the outbound SMTP queue" msgstr "SMTP-Ausgangswarteschlange anzeigen" #: ../../i18n_templatelist.c:202 ../../i18n_templatelist.c:211 #: ../../static/t/view_mailq/header.html:14 #: ../../static/t/view_mailq/header.html:47 msgid "Refresh this page" msgstr "Diese Seite neu laden" #: ../../i18n_templatelist.c:203 ../../static/t/view_mailq/header.html:20 msgid "HINT" msgstr "HINWEIS" #: ../../i18n_templatelist.c:204 ../../static/t/view_mailq/header.html:21 msgid "" "Citadel reattempts sending mail per interval; it starts at 60 second, and " "doubles each time. You can however bypass this mechanism once; all messages " "will be reattempted on the next queue run." msgstr "Citadel versucht Mails in Intervallen erneut zuzustellen; Die " "Intervalle beginnen mit 60 sekunden und verdoppeln sich jedes mal; Wie auch " "immer, dieser Mechanismus kann einmal ausgesetzt werden und alle in der " "Warteschlange befindlichen Nachrichten werden sofort versucht erneut zu versenden." #: ../../i18n_templatelist.c:205 ../../static/t/view_mailq/header.html:22 msgid "OK, got you, lets go!" msgstr "OK, habs verstanden, auf gehts!" #: ../../i18n_templatelist.c:206 ../../static/t/view_mailq/header.html:29 msgid "Reschedule all messages for delivery on next queue run" msgstr "Alle Nachrichten beim nächsten Lauf erneut versuchen" #: ../../i18n_templatelist.c:207 ../../static/t/view_mailq/header.html:35 msgid "Currently active mail delivery jobs" msgstr "Momentan Aktive mail versand Aufträge" #: ../../i18n_templatelist.c:208 ../../static/t/view_mailq/header.html:36 msgid "Remote Sites:" msgstr "Entfernter Server" #: ../../i18n_templatelist.c:209 ../../static/t/view_mailq/header.html:37 msgid "Status:" msgstr "Status:" #: ../../i18n_templatelist.c:210 ../../static/t/view_mailq/header.html:45 msgid "Jobs waiting for further processing:" msgstr "Jobs, die auf erneuten Versand warten:" #: ../../i18n_templatelist.c:212 #: ../../static/t/aide/display_serverrestart_page.html:4 msgid "Message to your Users:" msgstr "Kurznachricht an die Benutzer:" #: ../../i18n_templatelist.c:213 ../../i18n_templatelist.c:272 #: ../../i18n_templatelist.c:527 ../../static/t/iconbar.html:72 #: ../../static/t/room/edit.html:5 ../../static/t/room/edit/editroom.html:4 msgid "Administration" msgstr "Verwaltung" #: ../../i18n_templatelist.c:214 ../../i18n_templatelist.c:273 #: ../../static/t/room/edit.html:6 ../../static/t/room/edit/editroom.html:5 msgid "Configuration" msgstr "Konfiguration" #: ../../i18n_templatelist.c:215 ../../i18n_templatelist.c:274 #: ../../static/t/room/edit.html:7 ../../static/t/room/edit/editroom.html:6 msgid "Message expire policy" msgstr "Nachrichtenverfalls-Vorgabe" #: ../../i18n_templatelist.c:216 ../../i18n_templatelist.c:275 #: ../../static/t/room/edit.html:8 ../../static/t/room/edit/editroom.html:7 msgid "Access controls" msgstr "Zugangskontrolle" #: ../../i18n_templatelist.c:217 ../../i18n_templatelist.c:276 #: ../../static/t/room/edit.html:9 ../../static/t/room/edit/editroom.html:8 msgid "Sharing" msgstr "Teilen" #: ../../i18n_templatelist.c:218 ../../i18n_templatelist.c:277 #: ../../static/t/room/edit.html:10 ../../static/t/room/edit/editroom.html:9 msgid "Mailing list service" msgstr "Mailinglistendienst" #: ../../i18n_templatelist.c:219 ../../i18n_templatelist.c:278 #: ../../static/t/room/edit.html:11 ../../static/t/room/edit/editroom.html:10 msgid "Remote retrieval" msgstr "Sammeldienste" #: ../../i18n_templatelist.c:221 ../../static/t/iconbar/save.html:11 msgid "" "Your icon bar has been updated. Please select any of its choices to continue." msgstr "" "Deine Symbolleiste wurde aktualisiert. Bitte wähle eine von ihren " "Möglichkeiten, um fortzufahren." #: ../../i18n_templatelist.c:222 ../../static/t/iconbar/save.html:11 msgid "" "You may need to force refresh (SHIFT-F5)> in order for changes to take effect" msgstr "Ggf. aktualisieren (SHIFT-F5)>, damit die Änderungen wirksam werden" #: ../../i18n_templatelist.c:223 #: ../../static/t/aide/siteconfig/tab_general.html:1 msgid "General site configuration items" msgstr "Allgemeine Standortskonfiguration" #: ../../i18n_templatelist.c:224 #: ../../static/t/aide/siteconfig/tab_general.html:5 msgid "Change Login Logo" msgstr "Anmeldelogo wechseln" #: ../../i18n_templatelist.c:225 #: ../../static/t/aide/siteconfig/tab_general.html:6 msgid "Change Logout Logo" msgstr "Abmeldelogo wechseln" #: ../../i18n_templatelist.c:226 ../../i18n_templatelist.c:237 #: ../../i18n_templatelist.c:991 ../../static/t/aide/ignetconf/add.html:15 #: ../../static/t/aide/ignetconf/edit_node.html:15 #: ../../static/t/aide/siteconfig/tab_general.html:8 msgid "Node name" msgstr "Name des Knotens" #: ../../i18n_templatelist.c:227 #: ../../static/t/aide/siteconfig/tab_general.html:11 msgid "Fully qualified domain name" msgstr "Vollqualifizierter Domänenname" #: ../../i18n_templatelist.c:228 #: ../../static/t/aide/siteconfig/tab_general.html:14 msgid "Human-readable node name" msgstr "Menschenlesbarer Knotenname" #: ../../i18n_templatelist.c:229 #: ../../static/t/aide/siteconfig/tab_general.html:17 msgid "Telephone number" msgstr "Telefonnummer" #: ../../i18n_templatelist.c:230 #: ../../static/t/aide/siteconfig/tab_general.html:20 msgid "Paginator prompt (for text mode clients)" msgstr "Eingabeaufforderung (nur für Textclients)" #: ../../i18n_templatelist.c:231 #: ../../static/t/aide/siteconfig/tab_general.html:23 msgid "Geographic location of this system" msgstr "Geografische Position dieses Systems" #: ../../i18n_templatelist.c:232 #: ../../static/t/aide/siteconfig/tab_general.html:26 msgid "Name of system administrator" msgstr "Name des Verwalters" #: ../../i18n_templatelist.c:233 #: ../../static/t/aide/siteconfig/tab_general.html:29 msgid "Default timezone for unzoned calendar items" msgstr "Vorgabe Zeitzone für Kalendereinträge ohne Zeitzone" #: ../../i18n_templatelist.c:234 msgid "Has Files" msgstr "Hat Dateien" #: ../../i18n_templatelist.c:235 msgid "Networked Room" msgstr "Netzwerk öffentlicher Raum" #: ../../i18n_templatelist.c:236 ../../i18n_templatelist.c:675 #: ../../i18n_templatelist.c:990 ../../static/t/aide/display_ignetconf.html:10 #: ../../static/t/aide/ignetconf/add.html:5 #: ../../static/t/aide/ignetconf/edit_node.html:5 msgid "Add a new node" msgstr "Neuen Knoten hinzufügen" #: ../../i18n_templatelist.c:238 ../../i18n_templatelist.c:992 #: ../../static/t/aide/ignetconf/add.html:17 #: ../../static/t/aide/ignetconf/edit_node.html:17 msgid "Shared secret" msgstr "Gemeinsames Passwort" #: ../../i18n_templatelist.c:239 ../../i18n_templatelist.c:993 #: ../../static/t/aide/ignetconf/add.html:19 #: ../../static/t/aide/ignetconf/edit_node.html:19 msgid "Host or IP address" msgstr "Maschinenname oder IP-Adresse" #: ../../i18n_templatelist.c:240 ../../i18n_templatelist.c:994 #: ../../static/t/aide/ignetconf/add.html:21 #: ../../static/t/aide/ignetconf/edit_node.html:21 msgid "Port number" msgstr "Portnummer" #: ../../i18n_templatelist.c:241 msgid "Add node?" msgstr "Knoten hinzufügen?" #: ../../i18n_templatelist.c:243 ../../i18n_templatelist.c:262 #: ../../static/t/who/activesmtpsessions_one.html:13 #: ../../static/t/who/section.html:4 msgid "(kill)" msgstr "(beenden)" #: ../../i18n_templatelist.c:244 ../../i18n_templatelist.c:433 #: ../../static/t/who/section.html:5 msgid "Edit configuration" msgstr "Konfiguration Bearbeiten" #: ../../i18n_templatelist.c:245 ../../i18n_templatelist.c:434 #: ../../static/t/who/section.html:6 msgid "Edit address book entry" msgstr "Adressbuch Eintrag bearbeiten." #: ../../i18n_templatelist.c:248 ../../i18n_templatelist.c:250 #: ../../i18n_templatelist.c:836 msgid "idle since" msgstr "inaktiv seit" #: ../../i18n_templatelist.c:249 ../../i18n_templatelist.c:251 #: ../../i18n_templatelist.c:837 msgid "Minutes" msgstr "Minuten" #: ../../i18n_templatelist.c:252 ../../i18n_templatelist.c:838 msgid "active" msgstr "aktiv" #: ../../i18n_templatelist.c:255 ../../static/t/aide/ignetconf/section.html:4 msgid "(Edit)" msgstr "(Bearbeiten)" #: ../../i18n_templatelist.c:256 ../../i18n_templatelist.c:925 #: ../../static/t/aide/ignetconf/section.html:5 #: ../../static/t/view_mailq/message.html:2 msgid "(Delete)" msgstr "(Löschen)" #: ../../i18n_templatelist.c:257 ../../static/t/no_new_msgs.html:3 msgid "No new messages." msgstr "Keine neuen Nachrichten." #: ../../i18n_templatelist.c:258 ../../static/t/newstartpage.html:4 msgid "New start page" msgstr "Neue Startseite setzen" #: ../../i18n_templatelist.c:259 ../../static/t/newstartpage.html:9 msgid "Your start page has been changed." msgstr "Ihre neue Startseite wurde geändert" #: ../../i18n_templatelist.c:260 ../../static/t/newstartpage.html:12 msgid "" "(Note: this does not change your browser's home page. It changes the page " "you begin on when you log on to" msgstr "" "(Anmerkung: dies setzt nicht die Homepage im Browser. Es ändert die gezeigte " "Seite beim anmelden an" #: ../../i18n_templatelist.c:261 ../../static/t/view_blog/comment_box.html:8 msgid "Post a comment" msgstr "Schreiben Sie einen Kommentar" #: ../../i18n_templatelist.c:263 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:5 msgid "Confirm delete" msgstr "Löschen bestätigen" #: ../../i18n_templatelist.c:264 #: ../../static/t/aide/ignetconf/display_confirm_delete.html:11 msgid "Are you sure you want to delete " msgstr "wirklich löschen? " #: ../../i18n_templatelist.c:267 ../../static/t/aide/usermanagement.html:2 msgid "Add, change, delete user accounts" msgstr "Benutzer bearbeiten/löschen/anlegen" #: ../../i18n_templatelist.c:269 ../../static/t/aide/inet/clamav.html:2 msgid "(hosts running the ClamAV clamd service)" msgstr "(Maschine, auf der Ihr ClamAV läuft)" #: ../../i18n_templatelist.c:270 msgid "Send" msgstr "Absenden" #: ../../i18n_templatelist.c:271 #: ../../static/t/aide/display_serverrestart.html:26 msgid "Restart Citadel" msgstr "Citadel neu starten" #: ../../i18n_templatelist.c:279 ../../static/t/edit/message.html:20 msgid "from" msgstr "von" #: ../../i18n_templatelist.c:280 ../../i18n_templatelist.c:281 #: ../../i18n_templatelist.c:325 ../../static/t/edit/markdown_epic.html:33 #: ../../static/t/edit/message.html:26 ../../static/t/edit/message.html:35 msgid "Anonymous" msgstr "Anonym" #: ../../i18n_templatelist.c:282 ../../static/t/edit/message.html:44 msgid "in" msgstr "in" #: ../../i18n_templatelist.c:283 ../../i18n_templatelist.c:294 #: ../../i18n_templatelist.c:331 ../../static/t/edit/message.html:48 msgid "To:" msgstr "An:" #: ../../i18n_templatelist.c:285 ../../i18n_templatelist.c:296 #: ../../i18n_templatelist.c:333 ../../static/t/edit/message.html:60 msgid "BCC:" msgstr "BCC:" #: ../../i18n_templatelist.c:286 ../../static/t/edit/message.html:68 msgid "Subject (optional):" msgstr "Betreff (optional):" #: ../../i18n_templatelist.c:288 ../../static/t/edit/message.html:83 msgid "--- forwarded message ---" msgstr "--- Weitergeleitete Nachricht ---" #: ../../i18n_templatelist.c:290 ../../i18n_templatelist.c:327 #: ../../static/t/edit/markdown_epic.html:51 #: ../../static/t/edit/message.html:107 msgid "Post message" msgstr "Beitrag senden" #: ../../i18n_templatelist.c:291 ../../i18n_templatelist.c:328 #: ../../static/t/edit/markdown_epic.html:59 #: ../../static/t/edit/message.html:115 msgid "Save to Drafts" msgstr "Als Entwurf speichern." #: ../../i18n_templatelist.c:292 ../../i18n_templatelist.c:329 #: ../../i18n_templatelist.c:359 ../../static/t/edit/markdown_epic.html:67 #: ../../static/t/edit/message.html:123 #: ../../static/t/edit/message/attachments_pane.html:7 msgid "Attachments:" msgstr "Anhänge:" #: ../../i18n_templatelist.c:298 ../../i18n_templatelist.c:494 #: ../../i18n_templatelist.c:896 msgid "Delete this message?" msgstr "Diesen Raum löschen" #: ../../i18n_templatelist.c:300 msgid "Room Logo" msgstr "Raum Logo" #: ../../i18n_templatelist.c:301 ../../static/t/searchomatic.html:4 msgid "Search: " msgstr "Suchen: " #: ../../i18n_templatelist.c:302 #: ../../static/t/aide/display_generic_result.html:2 msgid "Server command results" msgstr "Server-Kommando-Ergebnisse" #: ../../i18n_templatelist.c:303 #: ../../static/t/aide/display_generic_result.html:18 msgid "Enter another command" msgstr "Weiteren Befehl eingeben" #: ../../i18n_templatelist.c:304 #: ../../static/t/aide/display_generic_result.html:19 msgid "Return to menu" msgstr "Zurück zum Menü" #: ../../i18n_templatelist.c:305 ../../static/t/who/list_static_header.html:1 msgid "Users currently on" msgstr "Angemeldete Benutzer auf" #: ../../i18n_templatelist.c:306 ../../i18n_templatelist.c:918 #: ../../static/t/user/show.html:4 ../../static/t/who/bio.html:4 msgid "User profile" msgstr "Benutzerprofil" #: ../../i18n_templatelist.c:307 ../../i18n_templatelist.c:919 #: ../../static/t/user/show.html:9 ../../static/t/who/bio.html:11 msgid "Click here to send an instant message to" msgstr "Hier klicken zum senden einer Kurznachricht an" #: ../../i18n_templatelist.c:308 msgid "Pictures in" msgstr "Bilder in" #: ../../i18n_templatelist.c:309 ../../static/t/aide/edituser/select.html:5 msgid "Edit or delete users" msgstr "Benutzer bearbeiten/löschen" #: ../../i18n_templatelist.c:310 ../../i18n_templatelist.c:825 #: ../../static/t/aide/display_sitewide_config.html:6 #: ../../static/t/aide/edituser/select.html:9 msgid "You need to be aide to view this." msgstr "Sie haben keine Berechtigung diese Ressource einzusehen." #: ../../i18n_templatelist.c:311 ../../static/t/aide/edituser/select.html:17 msgid "Add users" msgstr "Neuer Benutzer" #: ../../i18n_templatelist.c:312 ../../static/t/aide/edituser/select.html:20 msgid "Edit or Delete users" msgstr "Benutzer bearbeiten/löschen" #: ../../i18n_templatelist.c:316 ../../static/t/aide/serverrestart/box.html:3 msgid "Please wait while the Citadel server is restarted... " msgstr "Bitte warten während der Citadel-Server neu gestartet wird " #: ../../i18n_templatelist.c:317 ../../static/t/user/list.html:3 msgid "User list for " msgstr "Benutzer-Liste für " #: ../../i18n_templatelist.c:318 ../../static/t/user/list.html:9 msgid "User Name" msgstr "Benutzername" #: ../../i18n_templatelist.c:319 ../../static/t/user/list.html:10 msgid "Number" msgstr "Zahl" #: ../../i18n_templatelist.c:320 ../../static/t/user/list.html:11 msgid "Access Level" msgstr "Zugangsberechtigung" #: ../../i18n_templatelist.c:321 ../../static/t/user/list.html:12 msgid "Last Login" msgstr "Letzte Anmeldung" #: ../../i18n_templatelist.c:322 ../../static/t/user/list.html:13 msgid "Total Logins" msgstr "Anmeldungen gesamt" #: ../../i18n_templatelist.c:323 ../../static/t/user/list.html:14 msgid "Total Posts" msgstr "Summe aller Beiträge" #: ../../i18n_templatelist.c:324 ../../i18n_templatelist.c:519 #: ../../i18n_templatelist.c:522 ../../static/t/edit/markdown_epic.html:13 #: ../../static/t/iconbar.html:50 ../../static/t/iconbar.html:59 msgid "Loading" msgstr "Lade" #: ../../i18n_templatelist.c:335 ../../static/t/openid_manual_create.html:2 msgid "Your OpenID" msgstr "Ihre OpenID" #: ../../i18n_templatelist.c:336 ../../static/t/openid_manual_create.html:2 msgid "was successfully verified." msgstr "wurde erfolgreich revalidiert." #: ../../i18n_templatelist.c:337 ../../static/t/openid_manual_create.html:3 msgid "However, the user name" msgstr "Wie auch immer, der Benutzername" #: ../../i18n_templatelist.c:338 ../../static/t/openid_manual_create.html:3 msgid "conflicts with an existing user." msgstr "wird bereits von jemand anderem verwendet." #: ../../i18n_templatelist.c:339 ../../static/t/openid_manual_create.html:5 msgid "Please specify the user name you would like to use." msgstr "Bitte gebe den Benutzernamen ein den du verwenden willst." #: ../../i18n_templatelist.c:342 msgid "Exit" msgstr "Beenden" #: ../../i18n_templatelist.c:343 ../../static/t/room/edit/tab_expire.html:9 msgid "Message expire policy for this room" msgstr "Nachrichten-Verfallsvorgabe für diesen Raum" #: ../../i18n_templatelist.c:344 ../../static/t/room/edit/tab_expire.html:15 msgid "Use the default policy for this floor" msgstr "Die Vorgaberichtlinie dieser Etage verwenden" #: ../../i18n_templatelist.c:345 ../../i18n_templatelist.c:351 #: ../../i18n_templatelist.c:686 ../../i18n_templatelist.c:692 #: ../../static/t/aide/siteconfig/tab_autopurger.html:68 #: ../../static/t/aide/siteconfig/tab_autopurger.html:86 #: ../../static/t/room/edit/tab_expire.html:18 #: ../../static/t/room/edit/tab_expire.html:46 msgid "Never automatically expire messages" msgstr "Nachrichten nie automatisch löschen" #: ../../i18n_templatelist.c:346 ../../i18n_templatelist.c:352 #: ../../i18n_templatelist.c:687 ../../i18n_templatelist.c:693 #: ../../static/t/aide/siteconfig/tab_autopurger.html:71 #: ../../static/t/aide/siteconfig/tab_autopurger.html:89 #: ../../static/t/room/edit/tab_expire.html:21 #: ../../static/t/room/edit/tab_expire.html:49 msgid "Expire by message count" msgstr "Nachrichten nach Anzahl löschen" #: ../../i18n_templatelist.c:347 ../../i18n_templatelist.c:353 #: ../../i18n_templatelist.c:688 ../../i18n_templatelist.c:694 #: ../../static/t/aide/siteconfig/tab_autopurger.html:73 #: ../../static/t/aide/siteconfig/tab_autopurger.html:92 #: ../../static/t/room/edit/tab_expire.html:24 #: ../../static/t/room/edit/tab_expire.html:52 msgid "Expire by message age" msgstr "Lösche Nachrichten älter als" #: ../../i18n_templatelist.c:348 ../../i18n_templatelist.c:354 #: ../../i18n_templatelist.c:689 ../../i18n_templatelist.c:695 #: ../../static/t/aide/siteconfig/tab_autopurger.html:75 #: ../../static/t/aide/siteconfig/tab_autopurger.html:94 #: ../../static/t/room/edit/tab_expire.html:26 #: ../../static/t/room/edit/tab_expire.html:54 msgid "Number of messages or days: " msgstr "Anzahl der Nachrichten pro Tag: " #: ../../i18n_templatelist.c:349 ../../static/t/room/edit/tab_expire.html:37 msgid "Message expire policy for this floor" msgstr "Nachrichten-Verfallsvorgabe für diese Etage" #: ../../i18n_templatelist.c:350 ../../static/t/room/edit/tab_expire.html:43 msgid "Use the system default" msgstr "Die Systemvorgabe benutzen" #: ../../i18n_templatelist.c:358 ../../i18n_templatelist.c:760 #: ../../i18n_templatelist.c:761 #: ../../static/t/edit/message/attachments_pane.html:5 #: ../../static/t/get_logged_in.html:7 msgid "Close window" msgstr "Fenster schließen" #: ../../i18n_templatelist.c:360 #, c-format msgid "{percent}% of {total_size}" msgstr "{percent}% von {total_size}" #: ../../i18n_templatelist.c:361 msgid "Upload failed" msgstr "Datei hochladen fehlgeschlagen" #: ../../i18n_templatelist.c:362 msgid "Processing..." msgstr "Bearbeite..." #: ../../i18n_templatelist.c:363 msgid "Paused" msgstr "Pausiert" #: ../../i18n_templatelist.c:364 msgid "You may only drop one file." msgstr "Es kann nur eine Datei auf einmal gedropt werden" #: ../../i18n_templatelist.c:365 msgid "" "Unrecoverable error - the browser does not permit uploading of any kind." msgstr "Fataler Fehler - der Browser unterstützt Datei hochladen nicht." #: ../../i18n_templatelist.c:366 msgid "Are you shure you want to delete {filename}?" msgstr "Soll {filename} wirklich gelöscht werden? " #: ../../i18n_templatelist.c:367 msgid "failed to delete {filename}!" msgstr "Löschen von {filename} fehlgeschlagen" #: ../../i18n_templatelist.c:368 msgid "deleting {filename}" msgstr "Lösche {filename}" #: ../../i18n_templatelist.c:369 #: ../../static/t/edit/message/attachments_pane.html:63 msgid "Drop files here to upload" msgstr "Dateien zum Hochladen hier fallen lassen" #: ../../i18n_templatelist.c:370 #: ../../static/t/edit/message/attachments_pane.html:66 msgid "Attach file" msgstr "Datei anhängen" #: ../../i18n_templatelist.c:371 #: ../../static/t/edit/message/attachments_pane.html:69 msgid "Processing dropped files..." msgstr "Lade Dateien hoch..." #: ../../i18n_templatelist.c:373 #: ../../static/t/edit/message/attachments_pane.html:83 msgid "Retry" msgstr "Erneut versuchen" #: ../../i18n_templatelist.c:374 #: ../../static/t/edit/message/attachments_pane.html:84 msgid "Remove" msgstr "Entfernen" #: ../../i18n_templatelist.c:375 #: ../../static/t/aide/siteconfig/tab_indexing.html:1 msgid "Indexing and Journaling" msgstr "Indizierung und Protokollierung" #: ../../i18n_templatelist.c:376 #: ../../static/t/aide/siteconfig/tab_indexing.html:2 msgid "Warning: these facilities are resource intensive." msgstr "Warnung: Diese Dienste sind Ressourcen intensiv." #: ../../i18n_templatelist.c:377 #: ../../static/t/aide/siteconfig/tab_indexing.html:6 msgid "Enable full text index" msgstr "Volltext-Indexdienst anschalten" #: ../../i18n_templatelist.c:378 #: ../../static/t/aide/siteconfig/tab_indexing.html:9 msgid "Perform journaling of email messages" msgstr "EMail-Nachrichten protokollieren" #: ../../i18n_templatelist.c:379 #: ../../static/t/aide/siteconfig/tab_indexing.html:13 msgid "Perform journaling of non-email messages" msgstr "Nicht-EMail Nachrichten protokollieren" #: ../../i18n_templatelist.c:380 #: ../../static/t/aide/siteconfig/tab_indexing.html:16 msgid "Email destination of journalized messages" msgstr "EMail-Adresse für die Protokollnachrichten" #: ../../i18n_templatelist.c:381 ../../static/t/files.html:4 msgid "Files available for download in" msgstr "Zum Download verfügbare Dateien in" #: ../../i18n_templatelist.c:382 ../../static/t/files.html:9 msgid "Upload a file:" msgstr "Eine Datei hochladen:" #: ../../i18n_templatelist.c:384 ../../i18n_templatelist.c:544 msgid "Upload" msgstr "Hochladen" #: ../../i18n_templatelist.c:385 ../../static/t/files.html:30 msgid "Filename" msgstr "Dateiname" #: ../../i18n_templatelist.c:386 ../../static/t/files.html:31 msgid "Size" msgstr "Größe" #: ../../i18n_templatelist.c:387 ../../static/t/files.html:32 msgid "Content" msgstr "Inhalt" #: ../../i18n_templatelist.c:388 ../../static/t/files.html:33 msgid "Description" msgstr "Beschreibung" #: ../../i18n_templatelist.c:390 ../../static/t/sieve/none.html:9 msgid "" "This installation of Citadel was built without support for server-side mail " "filtering.
    Please contact your system administrator if you require this " "feature.
    " msgstr "" "Diese Citadel installation wurde ohne Serverseitige Mailfilter gebaut
    " "Bitte fragen Sie Ihren Administrator, wenn Sie diese Funktion brauchen." #: ../../i18n_templatelist.c:391 ../../i18n_templatelist.c:393 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "new of" msgstr "neu von" #: ../../i18n_templatelist.c:392 ../../i18n_templatelist.c:394 #: ../../i18n_templatelist.c:479 ../../i18n_templatelist.c:929 #: ../../static/t/msg_listselector_bottom.html:7 #: ../../static/t/msg_listselector_top.html:7 #: ../../static/t/roombanner.html:10 ../../static/t/roombanner.html:11 msgid "messages" msgstr "Nachrichten" #: ../../i18n_templatelist.c:395 ../../static/t/roombanner.html:28 msgid "Select page: " msgstr "Seite wählen: " #: ../../i18n_templatelist.c:406 ../../static/t/room/edit/tab_feed.html:2 msgid "" "Retrieve messages from these remote POP3 accounts and store them in this " "room:" msgstr "Mails von diesen POP3 Konten abholen und in diesem Raum ablegen:" #: ../../i18n_templatelist.c:407 ../../static/t/room/edit/tab_feed.html:13 msgid "Remote host" msgstr "POP3 Server" #: ../../i18n_templatelist.c:410 ../../static/t/room/edit/tab_feed.html:16 msgid "Keep messages on server?" msgstr "Mails auf dem Server belassen?" #: ../../i18n_templatelist.c:411 ../../static/t/room/edit/tab_feed.html:17 msgid "Interval" msgstr "Rhythmus" #: ../../i18n_templatelist.c:412 ../../i18n_templatelist.c:415 #: ../../i18n_templatelist.c:840 ../../i18n_templatelist.c:842 #: ../../i18n_templatelist.c:845 ../../i18n_templatelist.c:861 msgid "Add" msgstr "Hinzufügen" #: ../../i18n_templatelist.c:413 ../../static/t/room/edit/tab_feed.html:32 msgid "Fetch the following RSS feeds and store them in this room:" msgstr "Die folgenden RSS-Feeds abholen und in diesem Raum ablegen:" #: ../../i18n_templatelist.c:414 ../../static/t/room/edit/tab_feed.html:45 msgid "Feed URL" msgstr "Feed URL" #: ../../i18n_templatelist.c:416 ../../static/t/aide/edituser/add.html:1 msgid "" "To create a new user account, enter the desired user name in the box below " "and click 'Create'." msgstr "" "Um einen neuen Benutzer einzurichten, den Anmeldenamen in das Textfeld " "eintragen und 'Anlegen' Klicken" #: ../../i18n_templatelist.c:417 ../../static/t/aide/edituser/add.html:5 msgid "New user: " msgstr "Neuer Benutzer: " #: ../../i18n_templatelist.c:418 ../../i18n_templatelist.c:787 msgid "Create" msgstr "Anlegen" #: ../../i18n_templatelist.c:419 ../../static/t/aide/inet/dirnames.html:2 msgid "(domains mapped with the Global Address Book)" msgstr "(Domäne, auf die das öffentliche Adressbuch zeigt)" #: ../../i18n_templatelist.c:420 ../../static/t/wiki/pagelist.html:1 msgid "List of Wiki pages" msgstr "Wikiseiten" #: ../../i18n_templatelist.c:421 ../../i18n_templatelist.c:582 #: ../../i18n_templatelist.c:627 ../../i18n_templatelist.c:698 #: ../../i18n_templatelist.c:954 ../../i18n_templatelist.c:989 #: ../../static/t/room/edit/alias_removal.html:1 #: ../../static/t/room/edit/digestrecp_removal.html:1 #: ../../static/t/room/edit/listrecp_removal.html:1 #: ../../static/t/room/edit/participate_removal.html:1 #: ../../static/t/room/edit/pop3client_removal.html:9 #: ../../static/t/room/edit/rssclient_removal.html:5 msgid "(remove)" msgstr "(Löschen)" #: ../../i18n_templatelist.c:422 ../../static/t/room/edit/tab_access.html:5 msgid "" "The users listed below have access to this room. To remove a user from the " "access list, select the user name from the list and click 'Kick'." msgstr "" "Folgende Benutzer haben Zugang zu diesem Raum. Um einen Benutzer von der " "Zugangsliste zu entfernen, Benutzernamen auswählen und 'Kick' anklicken." #: ../../i18n_templatelist.c:423 msgid "Kick" msgstr "Rauswerfen" #: ../../i18n_templatelist.c:424 ../../static/t/room/edit/tab_access.html:21 msgid "" "To grant another user access to this room, enter the user name in the box " "below and click 'Invite'." msgstr "" "Um einem weiteren Benutzer den Zugang zu diesem Raum zu erlauben den " "Benutzernamen in das folgende Textfeld eintragen und 'Einladen' drücken" #: ../../i18n_templatelist.c:425 ../../static/t/room/edit/tab_access.html:28 msgid "Invite:" msgstr "Einladen:" #: ../../i18n_templatelist.c:426 msgid "Invite" msgstr "Einladen" #: ../../i18n_templatelist.c:427 msgid "User" msgstr "Benutzer" #: ../../i18n_templatelist.c:428 ../../i18n_templatelist.c:430 #: ../../static/t/room/edit/tab_access.html:37 msgid "Users" msgstr "Benutzer" #: ../../i18n_templatelist.c:429 ../../i18n_templatelist.c:849 msgid "Addressbook Popup" msgstr "Adressbuch Popup" #: ../../i18n_templatelist.c:432 #: ../../static/t/aide/edituser/box_select.html:1 msgid "" "To edit an existing user account, select the user name from the list and " "click 'Edit'." msgstr "" "Einen vorhandenen Benutzer zum Bearbeiten aus der Liste auswählen und dann " "'Bearbeiten' Klicken" #: ../../i18n_templatelist.c:435 msgid "Delete user" msgstr "Benutzer löschen" #: ../../i18n_templatelist.c:436 msgid "Delete this user?" msgstr "Diesen Benutzer löschen?" #: ../../i18n_templatelist.c:437 msgid "Delete File" msgstr "Datei löschen" #: ../../i18n_templatelist.c:438 ../../static/t/files/section_onefile.html:20 msgid "Slideshow" msgstr "Diashow" #: ../../i18n_templatelist.c:439 ../../static/t/aide/inet/spamass.html:2 msgid "(hosts running the SpamAssassin service)" msgstr "(Maschine, auf der Ihr SpamAssassin läuft)" #: ../../i18n_templatelist.c:442 #: ../../static/t/ical/attachment/display_conflict.html:5 msgid "This is an update of" msgstr "Dies ist eine Änderung von" #: ../../i18n_templatelist.c:443 ../../i18n_templatelist.c:445 #: ../../static/t/ical/attachment/display_conflict.html:5 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "which is already in your calendar." msgstr "überlappen, der bereits in Ihrem Kalender ist." #: ../../i18n_templatelist.c:444 #: ../../static/t/ical/attachment/display_conflict.html:6 msgid "This event would conflict with" msgstr "Dieser Termin würde mit" #: ../../i18n_templatelist.c:447 ../../static/t/sieve/list.html:41 msgid "When new mail arrives: " msgstr "Wenn eine neue Mail ankommt: " #: ../../i18n_templatelist.c:448 ../../static/t/sieve/list.html:43 msgid "Leave it in my inbox without filtering" msgstr "Im Posteingang belassen ohne filtern" #: ../../i18n_templatelist.c:449 ../../static/t/sieve/list.html:44 msgid "Filter it according to rules selected below" msgstr "Mit den folgenden Regeln filtern" #: ../../i18n_templatelist.c:450 ../../static/t/sieve/list.html:45 msgid "Filter it through a manually edited script (advanced users only)" msgstr "Mit manuell bearbeitetem Script filtern (nur für erfahrene Benutzer)" #: ../../i18n_templatelist.c:451 ../../static/t/sieve/list.html:52 msgid "Your incoming mail will not be filtered through any scripts." msgstr "Ihre ankommenden Mails werden nicht gefiltert." #: ../../i18n_templatelist.c:452 ../../static/t/sieve/list.html:64 msgid "Add rule" msgstr "Neue Regel" #: ../../i18n_templatelist.c:453 ../../static/t/sieve/list.html:71 msgid "The currently active script is: " msgstr "Das zur Zeit aktive Script ist: " #: ../../i18n_templatelist.c:454 ../../i18n_templatelist.c:783 #: ../../static/t/sieve/add.html:3 ../../static/t/sieve/list.html:76 msgid "Add or delete scripts" msgstr "Script bearbeiten/löschen" #: ../../i18n_templatelist.c:457 #: ../../static/t/aide/siteconfig/tab_directory.html:1 msgid "Configure the LDAP connector for Citadel" msgstr "LDAP-Verzeichnis-Anbindung des Servers konfigurieren" #: ../../i18n_templatelist.c:459 #: ../../static/t/aide/siteconfig/tab_directory.html:4 msgid "" "NOTE: This Citadel server has been built without LDAP support. These " "options will have no effect." msgstr "" "Anmerkung: Dieser Citadelserver wurde ohne LDAP-Support gebaut. Diese Option " "wird keine Auswirkung haben." #: ../../i18n_templatelist.c:460 #: ../../static/t/aide/siteconfig/tab_directory.html:9 msgid "Host name of LDAP server (blank to disable)" msgstr "Hostname des LDAP-Verzeichnisserver (leer zum Abschalten)" #: ../../i18n_templatelist.c:461 #: ../../static/t/aide/siteconfig/tab_directory.html:13 msgid "Port number of LDAP server (blank to disable)" msgstr "Port des LDAP-Verzeichnisservers (leer zum Abschalten)" #: ../../i18n_templatelist.c:462 #: ../../static/t/aide/siteconfig/tab_directory.html:16 msgid "Base DN" msgstr "Base DN im Verzeichnisserver" #: ../../i18n_templatelist.c:463 #: ../../static/t/aide/siteconfig/tab_directory.html:19 msgid "Bind DN" msgstr "Bind DN im Verzeichnisserver" #: ../../i18n_templatelist.c:464 #: ../../static/t/aide/siteconfig/tab_directory.html:22 msgid "Password for bind DN" msgstr "Passwort für die Bind DN am Verzeichnisserver" #: ../../i18n_templatelist.c:465 #: ../../static/t/menu/advanced_roomcommands.html:3 msgid "Edit or delete this room" msgstr "Diesen Raum bearbeiten oder löschen" #: ../../i18n_templatelist.c:466 #: ../../static/t/menu/advanced_roomcommands.html:5 msgid "Go to a 'hidden' room" msgstr "In einen 'versteckten' Raum gehen" #: ../../i18n_templatelist.c:468 #: ../../static/t/menu/advanced_roomcommands.html:7 msgid "Zap (forget) this room" msgstr "Diesen Raum vergessen" #: ../../i18n_templatelist.c:469 #: ../../static/t/menu/advanced_roomcommands.html:8 msgid "List all forgotten rooms" msgstr "Alle vergessenen Räume auflisten" #: ../../i18n_templatelist.c:470 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "Zap duplicate messages" msgstr "Doppelte Nachrichten Entfernen" #: ../../i18n_templatelist.c:471 #: ../../static/t/menu/advanced_roomcommands.html:9 msgid "(Messages of similar subject, sender and date are moved to trash)" msgstr "(Meldungen mit gleichem Betreff, Absender und Datum werden in den Papierkorb verschoben)" #: ../../i18n_templatelist.c:472 ../../static/t/view_mailq/table.html:4 msgid "Message ID" msgstr "Nachrichten-ID" #: ../../i18n_templatelist.c:473 ../../static/t/view_mailq/table.html:6 msgid "Date/time submitted" msgstr "Versandzeitpunkt" #: ../../i18n_templatelist.c:474 ../../static/t/view_mailq/table.html:8 msgid "Next attempt" msgstr "Nächster Versuch" #: ../../i18n_templatelist.c:476 ../../static/t/view_mailq/table.html:12 msgid "Recipients" msgstr "Empfänger" #: ../../i18n_templatelist.c:477 ../../i18n_templatelist.c:927 #: ../../static/t/msg_listselector_bottom.html:2 #: ../../static/t/msg_listselector_top.html:2 msgid "Reading #" msgstr "Lese #" #: ../../i18n_templatelist.c:480 ../../i18n_templatelist.c:930 #: ../../static/t/msg_listselector_bottom.html:12 #: ../../static/t/msg_listselector_top.html:12 msgid "oldest to newest" msgstr "alte vor neu" #: ../../i18n_templatelist.c:481 ../../i18n_templatelist.c:931 #: ../../static/t/msg_listselector_bottom.html:20 #: ../../static/t/msg_listselector_top.html:20 msgid "newest to oldest" msgstr "neue vor alte" #: ../../i18n_templatelist.c:482 #: ../../static/t/aide/serverrestart/box_page_do.html:3 msgid "" "Please wait while your users are being paged, the citadel server will be " "restarted after that... " msgstr "" "Bitte warten während die Benutzer benachrichtigt werden, der Server wird " "dann neu gestarted. " #: ../../i18n_templatelist.c:487 ../../static/t/view_message.html:19 msgid "Edit" msgstr "Bearbeiten" #: ../../i18n_templatelist.c:488 ../../i18n_templatelist.c:490 #: ../../static/t/view_message.html:22 ../../static/t/view_message.html:26 msgid "Reply" msgstr "Antworten" #: ../../i18n_templatelist.c:489 ../../static/t/view_message.html:23 msgid "ReplyQuoted" msgstr "Antworten&Zitieren" #: ../../i18n_templatelist.c:491 ../../static/t/view_message.html:27 msgid "ReplyAll" msgstr "AntwortenAnAlle" #: ../../i18n_templatelist.c:492 ../../static/t/view_message.html:28 msgid "Forward" msgstr "Weiterleiten" #: ../../i18n_templatelist.c:496 ../../static/t/view_message.html:34 msgid "Headers" msgstr "Kopfzeilen" #: ../../i18n_templatelist.c:498 ../../static/t/aide/global_config.html:2 msgid "Edit site-wide configuration" msgstr "Systemvorgaben bearbeiten" #: ../../i18n_templatelist.c:499 ../../static/t/aide/global_config.html:3 msgid "Domain names and Internet mail configuration" msgstr "Domänennamens- und Internetmail-Konfiguration" #: ../../i18n_templatelist.c:500 ../../static/t/aide/global_config.html:4 msgid "Configure replication with other Citadel servers" msgstr "Die Replikation mit anderen Citadel-Servern konfigurieren" #: ../../i18n_templatelist.c:501 ../../static/t/aide/global_config.html:5 msgid "Enable/Disable logging of the server components" msgstr "Ein/Ausschalten des loggens von Serverkomponenten" #: ../../i18n_templatelist.c:503 msgid "Powered by Citadel" msgstr "Betrieben mit Citadel" #: ../../i18n_templatelist.c:504 ../../static/t/iconbar.html:7 msgid "Language:" msgstr "Sprache:" #: ../../i18n_templatelist.c:507 msgid "Go to your email inbox" msgstr "Eine Abkürzung zu Ihrem Posteingang" #: ../../i18n_templatelist.c:508 ../../static/t/iconbar.html:19 msgid "Mail" msgstr "Posteingang" #: ../../i18n_templatelist.c:509 msgid "Go to your personal calendar" msgstr "Eine Abkürzung zu Ihrem Kalender" #: ../../i18n_templatelist.c:511 msgid "Go to your personal address book" msgstr "Eine Abkürzung zu Ihrem eigenen Adressbuch" #: ../../i18n_templatelist.c:513 msgid "Go to your personal notes" msgstr "Eine Abkürzung zu Ihren Notizen" #: ../../i18n_templatelist.c:515 msgid "Go to your personal task list" msgstr "Eine Abkürzung zu Ihrer Aufgabenliste" #: ../../i18n_templatelist.c:517 msgid "List all your accessible rooms" msgstr "Alle zugänglichen Räume auflisten" #: ../../i18n_templatelist.c:520 msgid "See who is online right now" msgstr "Sehen, wer grade angemeldet ist" #: ../../i18n_templatelist.c:521 ../../static/t/iconbar.html:57 msgid "Online users" msgstr "Angemeldete Benutzer" #: ../../i18n_templatelist.c:524 msgid "Advanced Options Menu: Advanced Room commands, Account Info, and Chat" msgstr "Erweiterte Optionen Menü: Erweiterte Raum Kommandos, Konto Informationen, und Chat" #: ../../i18n_templatelist.c:525 ../../static/t/iconbar.html:65 msgid "Advanced" msgstr "Erweitert" #: ../../i18n_templatelist.c:526 msgid "Room and system administration functions" msgstr "Raum und Systemadministrator Funktionen" #: ../../i18n_templatelist.c:530 ../../static/t/iconbar.html:83 msgid "customize this menu" msgstr "Dieses Menü Bearbeiten" #: ../../i18n_templatelist.c:531 ../../i18n_templatelist.c:532 #: ../../i18n_templatelist.c:765 ../../i18n_templatelist.c:774 #: ../../i18n_templatelist.c:776 ../../i18n_templatelist.c:778 #: ../../i18n_templatelist.c:781 ../../i18n_templatelist.c:807 #: ../../static/t/get_logged_in.html:62 ../../static/t/get_logged_in.html:86 #: ../../static/t/get_logged_in.html:91 ../../static/t/get_logged_in.html:96 #: ../../static/t/get_logged_in.html:105 ../../static/t/iconbar.html:88 #: ../../static/t/login.html:17 msgid "Log in" msgstr "Anmelden" #: ../../i18n_templatelist.c:533 ../../static/t/iconbar.html:92 msgid "switch to room list" msgstr "Auf Raumliste wechseln" #: ../../i18n_templatelist.c:534 ../../static/t/iconbar.html:93 msgid "switch to menu" msgstr "Zurück zum Menü" #: ../../i18n_templatelist.c:535 ../../static/t/iconbar.html:94 msgid "My folders" msgstr "Meine Ordner" #: ../../i18n_templatelist.c:536 #: ../../static/t/aide/siteconfig/tab_imap.html:1 msgid "IMAP" msgstr "IMAP" #: ../../i18n_templatelist.c:538 #: ../../static/t/aide/siteconfig/tab_imap.html:5 msgid "IMAP listener port (-1 to disable)" msgstr "IMAP4 Server Port (-1 zum abschalten)" #: ../../i18n_templatelist.c:539 #: ../../static/t/aide/siteconfig/tab_imap.html:8 msgid "IMAP over SSL port (-1 to disable)" msgstr "IMAP-SSL Serverport (-1 zum abschalten)" #: ../../i18n_templatelist.c:540 #: ../../static/t/aide/siteconfig/tab_imap.html:11 msgid "Keep original from headers in IMAP" msgstr "Original IMAP-Header behalten" #: ../../i18n_templatelist.c:541 ../../static/t/files/graphicsupload.html:2 msgid "Image upload" msgstr "Bild hochladen" #: ../../i18n_templatelist.c:542 ../../static/t/files/graphicsupload.html:6 msgid "You can upload an image directly from your computer" msgstr "Sie können ein Bild direkt von ihrem Computer hochladen." #: ../../i18n_templatelist.c:543 ../../static/t/files/graphicsupload.html:8 msgid "Please select a file to upload:" msgstr "Bitte geben Sie eine Datei zum Hochladen an:" #: ../../i18n_templatelist.c:545 msgid "Reset form" msgstr "Formular löschen" #: ../../i18n_templatelist.c:547 ../../static/t/listsub/display.html:7 msgid "List subscription" msgstr "Listenteilnehmer" #: ../../i18n_templatelist.c:548 ../../static/t/listsub/display.html:13 msgid "List subscribe/unsubscribe" msgstr "Liste abonnieren/abmelden" #: ../../i18n_templatelist.c:549 ../../i18n_templatelist.c:558 #: ../../static/t/listsub/display.html:19 #: ../../static/t/listsub/display.html:38 msgid "Confirmation request sent" msgstr "Bestätigungsanfrage gesendet" #: ../../i18n_templatelist.c:550 ../../static/t/listsub/display.html:20 msgid "You are subscribing " msgstr "Sie abonnieren " #: ../../i18n_templatelist.c:551 ../../static/t/listsub/display.html:21 msgid " to the " msgstr " die " #: ../../i18n_templatelist.c:552 ../../static/t/listsub/display.html:22 msgid " mailing list." msgstr " Mailing-Liste." #: ../../i18n_templatelist.c:553 ../../static/t/listsub/display.html:23 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your subscription." msgstr "" "Der Mailing-Listen-Server hat Ihnen eine E-Mail mit einem Verweis gesendet, " "auf den Sie klicken müssen, um Ihr Abonnement zu bestätigen." #: ../../i18n_templatelist.c:554 ../../static/t/listsub/display.html:24 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe you to lists without your consent." msgstr "" "Dieser zusätzliche Schritt dient Ihrem Schutz, weil dadurch verhindert wird, " "dass andere ohne Ihre Zustimmung für Sie Mailing-Listen abonnieren können." #: ../../i18n_templatelist.c:555 ../../static/t/listsub/display.html:26 msgid "" "Please click on the link which is being e-mailed to you and your " "subscription will be confirmed." msgstr "" "Bitte klicken Sie auf den Verweis, der Ihnen per E-Mail gesendet wurde und " "Ihr Abonnement wird bestätigt." #: ../../i18n_templatelist.c:556 ../../static/t/listsub/display.html:28 msgid "Go back..." msgstr "Zurück..." #: ../../i18n_templatelist.c:557 ../../i18n_templatelist.c:566 #: ../../static/t/listsub/display.html:31 #: ../../static/t/listsub/display.html:51 msgid "ERROR" msgstr "FEHLER" #: ../../i18n_templatelist.c:559 ../../static/t/listsub/display.html:39 msgid "You are unsubscribing" msgstr "Sie kündigen das Abonnement" #: ../../i18n_templatelist.c:560 ../../static/t/listsub/display.html:41 msgid "from the" msgstr "der" #: ../../i18n_templatelist.c:561 ../../static/t/listsub/display.html:43 msgid "mailing list." msgstr "Mailing-Liste." #: ../../i18n_templatelist.c:562 ../../static/t/listsub/display.html:44 msgid "" "The listserver has sent you an e-mail with one additional Web link for you " "to click on to confirm your unsubscription." msgstr "" "Der Mailing-Listen-Server hat Ihnen eine E-Mail mit einem Verweis gesendet, " "auf den Sie klicken müssen, um die Kündigung Ihres Abonnements zu bestätigen." #: ../../i18n_templatelist.c:563 ../../static/t/listsub/display.html:45 msgid "" "This extra step is for your protection, as it prevents others from being " "able to unsubscribe you from lists without your consent." msgstr "" "Dieser zusätzliche Schritt dient Ihrem Schutz, weil dadurch verhindert wird, " "dass andere ohne Ihre Zustimmung Ihre Mailing-Listen-Abonnements kündigen " "können." #: ../../i18n_templatelist.c:564 ../../static/t/listsub/display.html:47 msgid "" "Please click on the link which is being e-mailed to you and your " "unsubscription will be confirmed." msgstr "" "Bitte klicken Sie auf den Verweis, der Ihnen per E-Mail gesendet wurde und " "Ihre Abonnement-Kündigung wird bestätigt." #: ../../i18n_templatelist.c:565 ../../static/t/listsub/display.html:48 msgid "Back..." msgstr "Zurück …" #: ../../i18n_templatelist.c:567 ../../static/t/listsub/display.html:58 msgid "Confirmation successful!" msgstr "Bestätigung erfolgreich!" #: ../../i18n_templatelist.c:568 ../../static/t/listsub/display.html:60 msgid "Confirmation failed." msgstr "Bestätigung gescheitert." #: ../../i18n_templatelist.c:569 ../../static/t/listsub/display.html:61 msgid "This could mean one of two things:" msgstr "Das könnte eines von zwei Dingen bedeuten:" #: ../../i18n_templatelist.c:570 ../../static/t/listsub/display.html:63 msgid "" "You waited too long to confirm your subscribe/unsubscribe request (the " "confirmation link is only valid for three days)" msgstr "" "Sie haben mit der Bestätigung Ihres Abonnements/Ihrer Abonnement-Kündigung " "zu lange gewartet (der Verweis zur Bestätigung ist nur drei Tage lang gültig)" #: ../../i18n_templatelist.c:571 ../../static/t/listsub/display.html:64 msgid "" "You have already successfully confirmed your subscribe/unsubscribe " "request and are attempting to do it again." msgstr "" "Sie haben bereits erfolgreich Ihr Abonnement/Ihre Abonnement-" "Kündigung bestätigt und versuchen es gerade erneut." #: ../../i18n_templatelist.c:572 ../../static/t/listsub/display.html:66 msgid "The error returned by the server was: " msgstr "Der vom Server gemeldete Fehler war: " #: ../../i18n_templatelist.c:573 ../../static/t/listsub/display.html:74 msgid "Name of list:" msgstr "Name der Liste:" #: ../../i18n_templatelist.c:574 ../../static/t/listsub/display.html:79 msgid "Your e-mail address:" msgstr "Ihre E-Mail-Adresse:" #: ../../i18n_templatelist.c:575 ../../static/t/listsub/display.html:83 msgid "(If subscribing) preferred format: " msgstr "Bevorzugtes Format (falls Sie abonnieren): " #: ../../i18n_templatelist.c:576 ../../static/t/listsub/display.html:84 msgid "One message at a time" msgstr "Eine Nachricht auf einmal" #: ../../i18n_templatelist.c:577 ../../static/t/listsub/display.html:85 msgid "Digest format" msgstr "Digest-Format" #: ../../i18n_templatelist.c:578 ../../static/t/listsub/display.html:93 msgid "" "When you attempt to subscribe or unsubscribe to a mailing list, you will " "receive an e-mail containing one additional web link to click on for final " "confirmation." msgstr "" "Sie werden eine E-Mail mit einem zusätzlichen Verweis erhalten, auf den Sie " "zur endgültigen Bestätigung klicken müssen, wenn Sie versuchen, eine Mailing-" "Liste zu abonnieren oder zu kündigen." #: ../../i18n_templatelist.c:579 ../../static/t/listsub/display.html:94 msgid "" "This extra step is for your protection, as it prevents others from being " "able to subscribe or unsubscribe you to lists." msgstr "" "Dieser zusätzliche Schritt dient Ihrem Schutz, weil dadurch verhindert wird, " "dass andere ohne Ihre Zustimmung für Sie Mailing-Listen abonnieren oder Ihre " "Mailing-Listen-Abonnements kündigen können." #: ../../i18n_templatelist.c:583 ../../static/t/room/edit/tab_config.html:7 msgid "name of room: " msgstr "Raumname: " #: ../../i18n_templatelist.c:591 ../../static/t/room/edit/tab_config.html:56 msgid "If private, cause current users to forget room" msgstr "Wenn Privat, sollen aktuelle Benutzer den Raum vergessen?" #: ../../i18n_templatelist.c:592 ../../static/t/room/edit/tab_config.html:62 msgid "Preferred users only" msgstr "nur privilegierte Benutzer" #: ../../i18n_templatelist.c:593 ../../static/t/room/edit/tab_config.html:67 msgid "Read-only room" msgstr "Schreibgeschützter Raum" #: ../../i18n_templatelist.c:594 ../../static/t/room/edit/tab_config.html:72 msgid "All users allowed to post may also delete messages" msgstr "Benutzer, die Schreibrechte haben, dürfen auch löschen" #: ../../i18n_templatelist.c:595 ../../static/t/room/edit/tab_config.html:77 msgid "File directory room" msgstr "Dateiverzeichnis-Raum" #: ../../i18n_templatelist.c:596 ../../static/t/room/edit/tab_config.html:81 msgid "Directory name: " msgstr "Verzeichnisname: " #: ../../i18n_templatelist.c:597 ../../static/t/room/edit/tab_config.html:87 msgid "Uploading allowed" msgstr "Hochladen erlaubt" #: ../../i18n_templatelist.c:598 ../../static/t/room/edit/tab_config.html:92 msgid "Downloading allowed" msgstr "Herunterladen erlaubt" #: ../../i18n_templatelist.c:599 ../../static/t/room/edit/tab_config.html:97 msgid "Visible directory" msgstr "Sichtbares Verzeichnis" #: ../../i18n_templatelist.c:600 ../../static/t/room/edit/tab_config.html:104 msgid "Network shared room" msgstr "Netzwerk öffentlicher Raum" #: ../../i18n_templatelist.c:601 ../../static/t/room/edit/tab_config.html:109 msgid "Permanent (does not auto-purge)" msgstr "Permanent (kein automatisches Löschen)" #: ../../i18n_templatelist.c:602 ../../static/t/room/edit/tab_config.html:114 msgid "Subject Required (Force users to specify a message subject)" msgstr "Betreff verlangen (Benutzer zwingen einen Betreff anzugeben)" #: ../../i18n_templatelist.c:603 ../../static/t/room/edit/tab_config.html:117 msgid "Anonymous messages" msgstr "Anonyme Nachrichten" #: ../../i18n_templatelist.c:604 ../../static/t/room/edit/tab_config.html:123 msgid "No anonymous messages" msgstr "Keine anonyme Nachrichten" #: ../../i18n_templatelist.c:605 ../../static/t/room/edit/tab_config.html:128 msgid "All messages are anonymous" msgstr "Alle Nachrichten sind Anonym" #: ../../i18n_templatelist.c:606 ../../static/t/room/edit/tab_config.html:133 msgid "Prompt user when entering messages" msgstr "Benutzer fragen, wenn er die Nachricht eingibt" #: ../../i18n_templatelist.c:607 ../../static/t/room/edit/tab_config.html:137 msgid "Room aide: " msgstr "Raumverantwortlicher: " #: ../../i18n_templatelist.c:611 msgid "Delete this entry?" msgstr "Diesen Eintrag löschen" #: ../../i18n_templatelist.c:613 ../../static/t/room/edit/tab_share.html:5 msgid "Not shared with" msgstr "Nicht geteilt mit" #: ../../i18n_templatelist.c:614 ../../static/t/room/edit/tab_share.html:6 msgid "Shared with" msgstr "Geteilt mit" #: ../../i18n_templatelist.c:615 ../../i18n_templatelist.c:618 #: ../../static/t/room/edit/tab_share.html:12 #: ../../static/t/room/edit/tab_share.html:22 msgid "Remote node name" msgstr "Entfernter Knotenname" #: ../../i18n_templatelist.c:616 ../../i18n_templatelist.c:619 #: ../../static/t/room/edit/tab_share.html:13 #: ../../static/t/room/edit/tab_share.html:23 msgid "Remote room name" msgstr "Entfernter Raumname" #: ../../i18n_templatelist.c:617 ../../i18n_templatelist.c:620 #: ../../static/t/room/edit/tab_share.html:14 #: ../../static/t/room/edit/tab_share.html:24 msgid "Actions" msgstr "Aktionen" #: ../../i18n_templatelist.c:622 ../../static/t/room/edit/tab_share.html:36 msgid "" "When sharing a room, it must be shared from both ends. Adding a node to the " "'shared' list sends messages out, but in order to receive messages, the " "other nodes must be configured to send messages out to your system as well." msgstr "" "Falls ein Raum geteilt werden soll, muss er von beiden Enden her geteilt " "werden. Hinzufügen eines Knotens zu der \"Geteilt\" Liste versendet " "Nachrichten, aber in der Reihenfolge der empfangenen Nachrichten, müssen die " "anderen Knoten so konfiguriert sein, dass sie auch Nachrichten zu deinem " "System senden.
  • Wenn der entfernte Raum leer ist, wird angenommen, dass " "der Name des Raums identisch ist mit dem auf dem entfernten Knoten.
  • Falls " "der Name des entfernten Raumes anders ist, Muss der entfernte Knoten auch " "den Namen des hiesigen Raumes einstellen." #: ../../i18n_templatelist.c:623 ../../static/t/room/edit/tab_share.html:38 msgid "" "If the remote room name is blank, it is assumed that the room name is " "identical on the remote node." msgstr "Wenn der entfernte Raumname leer ist, wird angenommen das er mit dem lokalen Namen identisch ist." #: ../../i18n_templatelist.c:624 ../../static/t/room/edit/tab_share.html:40 msgid "" "If the remote room name is different, the remote node must also configure " "the name of the room here." msgstr "Wenn der entfernte Raumname anders ist, muss er auch hier konfiguriert werden." #: ../../i18n_templatelist.c:625 ../../i18n_templatelist.c:712 msgid "resend messages to this node" msgstr "Nachrichten erneut zum entfernten Knoten versenden" #: ../../i18n_templatelist.c:626 ../../static/t/room/edit/tab_share.html:42 msgid "" "Re-sharing may stress your system and produce large spoolfiles that need to " "be transmitted; All messages in this room not originating from this node are " "re-spooled and re-sent with the next networker run." msgstr "Erneutes versenden kann das system belasten, und grosse Spool-Dateien generieren, " "die erneut versendet werden beim nächsten Netzwerkerlauf." #: ../../i18n_templatelist.c:628 ../../static/t/floors.html:4 msgid "Add/change/delete floors" msgstr "Etage erstellen/ändern/löschen" #: ../../i18n_templatelist.c:629 ../../static/t/floors.html:10 msgid "Floor number" msgstr "Etagen-Nr." #: ../../i18n_templatelist.c:630 ../../static/t/floors.html:11 msgid "Floor name" msgstr "Etagen-Name" #: ../../i18n_templatelist.c:631 ../../static/t/floors.html:12 msgid "Number of rooms" msgstr "Zahl der Räume" #: ../../i18n_templatelist.c:632 ../../static/t/floors.html:13 msgid "Floor CSS" msgstr "Etagen CSS" #: ../../i18n_templatelist.c:633 msgid "Create new floor" msgstr "Einen neuen Flur erzeugen" #: ../../i18n_templatelist.c:634 msgid "Move rule up" msgstr "Regel nach oben bewegen" #: ../../i18n_templatelist.c:635 msgid "Move rule down" msgstr "Regel nach unten bewegen" #: ../../i18n_templatelist.c:636 msgid "Delete rule" msgstr "Regel löschen" #: ../../i18n_templatelist.c:637 ../../static/t/sieve/display_one.html:16 msgid "If" msgstr "Wenn" #: ../../i18n_templatelist.c:639 ../../static/t/sieve/display_one.html:21 msgid "To or Cc" msgstr "To oder Cc" #: ../../i18n_templatelist.c:641 ../../static/t/sieve/display_one.html:23 msgid "Reply-to" msgstr "Reply-to" #: ../../i18n_templatelist.c:643 ../../static/t/sieve/display_one.html:25 msgid "Resent-From" msgstr "Resent-From" #: ../../i18n_templatelist.c:644 ../../static/t/sieve/display_one.html:26 msgid "Resent-To" msgstr "Resent-To" #: ../../i18n_templatelist.c:645 ../../static/t/sieve/display_one.html:27 msgid "Envelope From" msgstr "Envelope From" #: ../../i18n_templatelist.c:646 ../../static/t/sieve/display_one.html:28 msgid "Envelope To" msgstr "Envelope To" #: ../../i18n_templatelist.c:647 ../../static/t/sieve/display_one.html:29 msgid "X-Mailer" msgstr "X-Mailer" #: ../../i18n_templatelist.c:648 ../../static/t/sieve/display_one.html:30 msgid "X-Spam-Flag" msgstr "X-Spam-Flag" #: ../../i18n_templatelist.c:649 ../../static/t/sieve/display_one.html:31 msgid "X-Spam-Status" msgstr "X-Spam-Status" #: ../../i18n_templatelist.c:650 ../../static/t/sieve/display_one.html:32 msgid "List-ID" msgstr "Listen-ID" #: ../../i18n_templatelist.c:651 ../../static/t/sieve/display_one.html:33 msgid "Message size" msgstr "Nachrichten größe" #: ../../i18n_templatelist.c:652 ../../i18n_templatelist.c:796 #: ../../static/t/select_messageindex_all.html:1 #: ../../static/t/sieve/display_one.html:34 msgid "All" msgstr "Alle" #: ../../i18n_templatelist.c:653 ../../static/t/sieve/display_one.html:41 msgid "contains" msgstr "beinhaltet" #: ../../i18n_templatelist.c:654 ../../static/t/sieve/display_one.html:42 msgid "does not contain" msgstr "beinhaltet nicht" #: ../../i18n_templatelist.c:655 ../../static/t/sieve/display_one.html:43 msgid "is" msgstr "ist" #: ../../i18n_templatelist.c:656 ../../static/t/sieve/display_one.html:44 msgid "is not" msgstr "ist nicht" #: ../../i18n_templatelist.c:657 ../../static/t/sieve/display_one.html:45 msgid "matches" msgstr "trifft zu" #: ../../i18n_templatelist.c:658 ../../static/t/sieve/display_one.html:46 msgid "does not match" msgstr "trifft nicht zu" #: ../../i18n_templatelist.c:659 ../../static/t/sieve/display_one.html:52 msgid "(All messages)" msgstr "(Alle Beiträge)" #: ../../i18n_templatelist.c:660 ../../static/t/sieve/display_one.html:56 msgid "is larger than" msgstr "ist größer als" #: ../../i18n_templatelist.c:661 ../../static/t/sieve/display_one.html:57 msgid "is smaller than" msgstr "ist kleiner als" #: ../../i18n_templatelist.c:662 ../../static/t/sieve/display_one.html:59 msgid "bytes" msgstr "bytes" #: ../../i18n_templatelist.c:663 ../../static/t/sieve/display_one.html:65 msgid "Keep" msgstr "Behalten" #: ../../i18n_templatelist.c:664 ../../static/t/sieve/display_one.html:66 msgid "Discard silently" msgstr "still verwerfen" #: ../../i18n_templatelist.c:665 ../../static/t/sieve/display_one.html:67 msgid "Reject" msgstr "Abweisen" #: ../../i18n_templatelist.c:666 ../../static/t/sieve/display_one.html:68 msgid "Move message to" msgstr "Meldung verschieben nach" #: ../../i18n_templatelist.c:667 ../../static/t/sieve/display_one.html:69 msgid "Forward to" msgstr "Weiterleiten an" #: ../../i18n_templatelist.c:668 ../../static/t/sieve/display_one.html:70 msgid "Vacation" msgstr "Abwesenheits-Benachrichtigung" #: ../../i18n_templatelist.c:669 ../../static/t/sieve/display_one.html:82 msgid "Message:" msgstr "Nachricht:" #: ../../i18n_templatelist.c:670 ../../static/t/sieve/display_one.html:90 msgid "and then" msgstr "und dann" #: ../../i18n_templatelist.c:671 ../../static/t/sieve/display_one.html:93 msgid "continue processing" msgstr "weiter Bearbeiten" #: ../../i18n_templatelist.c:672 ../../static/t/sieve/display_one.html:94 msgid "stop" msgstr "stop" #: ../../i18n_templatelist.c:673 ../../static/t/aide/inet/aliases.html:2 msgid "(domains for which this host receives mail)" msgstr "(Domäne für die diese Maschine Mail bekommt)" #: ../../i18n_templatelist.c:674 ../../static/t/aide/display_ignetconf.html:4 msgid "Network configuration" msgstr "Netzwerk-Konfiguration" #: ../../i18n_templatelist.c:676 ../../static/t/aide/display_ignetconf.html:14 msgid "Currently configured nodes" msgstr "Schon konfigurierte Knoten" #: ../../i18n_templatelist.c:677 ../../static/t/floors_edit_one.html:11 msgid "(delete floor)" msgstr "(Etage löschen)" #: ../../i18n_templatelist.c:678 ../../static/t/floors_edit_one.html:13 msgid "(edit graphic)" msgstr "(Bild verändern)" #: ../../i18n_templatelist.c:679 msgid "Change name" msgstr "Namen ändern" #: ../../i18n_templatelist.c:680 msgid "Change CSS" msgstr "CSS Wechseln" #: ../../i18n_templatelist.c:681 ../../static/t/addressbook/namelist.html:4 msgid "Add:" msgstr "Hinzufügen:" #: ../../i18n_templatelist.c:682 #: ../../static/t/aide/siteconfig/tab_autopurger.html:1 msgid "Configure automatic expiry of old messages" msgstr "Automatischen Verfall alter Nachrichten konfigurieren" #: ../../i18n_templatelist.c:683 #: ../../static/t/aide/siteconfig/tab_autopurger.html:2 msgid "These settings may be overridden on a per-floor or per-room basis." msgstr "" "Diese Einstellungen können auf Etagen- oder Raum-Basis aufgehoben werden." #: ../../i18n_templatelist.c:684 #: ../../static/t/aide/siteconfig/tab_autopurger.html:6 msgid "Hour to run database auto-purge" msgstr "Zeit, zu der die Raumsäuberungen laufen sollen" #: ../../i18n_templatelist.c:685 #: ../../static/t/aide/siteconfig/tab_autopurger.html:66 msgid "Default message expire policy for public rooms" msgstr "" "Standardwerte für die Vorhaltedauer von Nachrichten in öffentlichen Räumen" #: ../../i18n_templatelist.c:690 #: ../../static/t/aide/siteconfig/tab_autopurger.html:81 msgid "Default message expire policy for private mailboxes" msgstr "" "Standardwerte für die Vorhaltedauer von Nachrichten in privaten Mailboxen" #: ../../i18n_templatelist.c:691 #: ../../static/t/aide/siteconfig/tab_autopurger.html:83 msgid "Same policy as public rooms" msgstr "Die selben Werte wie in öffentlichen Räumen" #: ../../i18n_templatelist.c:696 #: ../../static/t/aide/siteconfig/tab_autopurger.html:99 msgid "Default user purge time (days)" msgstr "Automatisch inaktive Nutzer löschen nach (Tage)" #: ../../i18n_templatelist.c:697 #: ../../static/t/aide/siteconfig/tab_autopurger.html:102 msgid "Default room purge time (days)" msgstr "Automatische Raumlöschung nach (Tage)" #: ../../i18n_templatelist.c:700 msgid "Are you sure you want to delete this room?" msgstr "Soll dieser Raum wirklich gelöscht werden? " #: ../../i18n_templatelist.c:701 ../../static/t/room/edit/tab_admin.html:5 msgid "Delete this room" msgstr "Raum löschen" #: ../../i18n_templatelist.c:702 ../../static/t/room/edit/tab_admin.html:10 msgid "Set or change the icon for this rooms banner" msgstr "Setze oder ändere das Bild für das Banner des Raumes" #: ../../i18n_templatelist.c:703 ../../static/t/room/edit/tab_admin.html:14 msgid "Edit this rooms Info file" msgstr "Bearbeite die Informationsdatei dieses Raumes" #: ../../i18n_templatelist.c:704 #: ../../static/t/aide/display_generic_cmd.html:4 msgid "Enter a server command" msgstr "Ein Server-Kommando eingeben" #: ../../i18n_templatelist.c:705 #: ../../static/t/aide/display_generic_cmd.html:12 msgid "" "This screen allows you to enter Citadel server commands which are not " "supported by WebCit. If you do not know what that means, then this screen " "will not be of much use to you." msgstr "" "Dieses Fenster erlaubt Ihnen, Citadel-Server Befehle, die nicht in WebCit " "verwendet werden, direkt einzugeben. Wenn Ihnen dies nichts sagt, wird " "dieses Fenster für Sie nicht ohne Studium der Dokumentation von Nutzen sein." #: ../../i18n_templatelist.c:706 #: ../../static/t/aide/display_generic_cmd.html:15 msgid "Enter command:" msgstr "Kommando eingeben:" #: ../../i18n_templatelist.c:707 #: ../../static/t/aide/display_generic_cmd.html:17 msgid "Command input (if requesting SEND_LISTING transfer mode):" msgstr "Kommando Eingabe (wenn Sie SEND_LISTING Transfer-Modus anfordern):" #: ../../i18n_templatelist.c:708 #: ../../static/t/aide/display_generic_cmd.html:20 msgid "Detected host header is " msgstr "Der gefundene Host Header ist " #: ../../i18n_templatelist.c:709 msgid "Send command" msgstr "Kommando senden" #: ../../i18n_templatelist.c:711 msgid "Unshare" msgstr "Teilen wiederrufen" #: ../../i18n_templatelist.c:713 ../../static/t/aide/inet/rbldns.html:2 msgid "(hosts running a Realtime Blackhole List)" msgstr "(Maschinen, von denen Echtzeit-Blacklisten zu beziehen sind)" #: ../../i18n_templatelist.c:714 #: ../../static/t/aide/siteconfig/tab_access.html:1 msgid "Access controls and site policy settings" msgstr "Zugangskontrolle und Vorgabewerte" #: ../../i18n_templatelist.c:715 #: ../../static/t/aide/siteconfig/tab_access.html:5 msgid "Allow aides to zap (forget) rooms" msgstr "Moderatoren erlauben, Räume zu vergessen" #: ../../i18n_templatelist.c:716 #: ../../static/t/aide/siteconfig/tab_access.html:9 msgid "Quarantine messages from problem users" msgstr "Meldungen Problematischer Nutzer moderieren" #: ../../i18n_templatelist.c:717 #: ../../static/t/aide/siteconfig/tab_access.html:12 msgid "Name of quarantine room" msgstr "Name des Quarantäne-Raums" #: ../../i18n_templatelist.c:718 #: ../../static/t/aide/siteconfig/tab_access.html:17 msgid "Name of room to log pages" msgstr "Name des Raums zum Loggen von Kurznachrichten" #: ../../i18n_templatelist.c:719 #: ../../static/t/aide/siteconfig/tab_access.html:22 msgid "Authentication mode" msgstr "Authentifizierungsmodus" #: ../../i18n_templatelist.c:720 #: ../../static/t/aide/siteconfig/tab_access.html:24 msgid "Self contained" msgstr "Abgeschlossen" #: ../../i18n_templatelist.c:721 #: ../../static/t/aide/siteconfig/tab_access.html:25 msgid "Host based" msgstr "Host-basiert" #: ../../i18n_templatelist.c:722 #: ../../static/t/aide/siteconfig/tab_access.html:26 msgid "LDAP (RFC2307)" msgstr "LDAP (RFC2307)" #: ../../i18n_templatelist.c:723 #: ../../static/t/aide/siteconfig/tab_access.html:27 msgid "LDAP (Active Directory)" msgstr "LDAP (Active Directory)" #: ../../i18n_templatelist.c:724 #: ../../static/t/aide/siteconfig/tab_access.html:30 msgid "Allow anonymous guest access" msgstr "Anonymen Gastzugang erlauben" #: ../../i18n_templatelist.c:725 #: ../../static/t/aide/siteconfig/tab_access.html:33 msgid "Master user name (blank to disable)" msgstr "" "Priviligierter Benutzer (z.b. für Asterisk Integration; leer zum Abschalten)" #: ../../i18n_templatelist.c:726 #: ../../static/t/aide/siteconfig/tab_access.html:36 msgid "Master user password" msgstr "Passwort des priviligierten Benuters" #: ../../i18n_templatelist.c:727 #: ../../static/t/aide/siteconfig/tab_access.html:41 msgid "Initial access level for new users" msgstr "Rechtestatus neu angelegter Benutzer" #: ../../i18n_templatelist.c:735 #: ../../static/t/aide/siteconfig/tab_access.html:52 msgid "Access level required to create rooms" msgstr "Zugangsberechtigung um Räume zu erzeugen" #: ../../i18n_templatelist.c:743 #: ../../static/t/aide/siteconfig/tab_access.html:63 msgid "Automatically grant room-aide status to users who create private rooms" msgstr "" "Automatisch Benutzern, die private Räume erstellen, Moderator-Status geben." #: ../../i18n_templatelist.c:744 #: ../../static/t/aide/siteconfig/tab_access.html:66 msgid "Automatically grant room-aide status to users who create BLOG rooms" msgstr "Automatisch Erstellern von BLOG-Räumen Moderator-Status geben" #: ../../i18n_templatelist.c:745 #: ../../static/t/aide/siteconfig/tab_access.html:69 msgid "Restrict access to Internet mail" msgstr "Zugang zu Internetmail beschränken" #: ../../i18n_templatelist.c:746 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Disable self-service user account creation" msgstr "Erzeugen von Benutzerkonten am Anmeldeprompt verbieten" #: ../../i18n_templatelist.c:747 #: ../../static/t/aide/siteconfig/tab_access.html:74 msgid "Hint: do not select both!" msgstr "Hinweis: Nicht beides auswählen!" #: ../../i18n_templatelist.c:748 #: ../../static/t/aide/siteconfig/tab_access.html:77 msgid "Require registration for new users" msgstr "Anmeldung für neue Benutzer erforderlich" #: ../../i18n_templatelist.c:751 ../../static/t/aide/floorconfig.html:2 msgid "Add, change, or delete floors" msgstr "Etagen bearbeiten/löschen/hinzufügen" #: ../../i18n_templatelist.c:752 ../../static/t/viewomatic.html:4 msgid "View as:" msgstr "Anzeigen als:" #: ../../i18n_templatelist.c:753 msgid "Delete this note?" msgstr "Diese Notiz löschen" #: ../../i18n_templatelist.c:757 ../../static/t/loggedinas.html:3 msgid "Logged in as" msgstr "Angemeldet als" #: ../../i18n_templatelist.c:758 ../../static/t/loggedinas.html:6 msgid "Not logged in." msgstr "Nicht angemeldet." #: ../../i18n_templatelist.c:759 ../../static/t/get_logged_in.html:3 msgid "You must be logged in to access this page." msgstr "Sie müssen eingeloggt sein um diese Seite zuzugreifen." #: ../../i18n_templatelist.c:762 ../../static/t/get_logged_in.html:53 msgid "Log in using a user name and password" msgstr "Mit Benutzer und Passwort anmelden" #: ../../i18n_templatelist.c:764 ../../i18n_templatelist.c:770 #: ../../static/t/get_logged_in.html:58 ../../static/t/get_logged_in.html:73 msgid "Password:" msgstr "Passwort:" #: ../../i18n_templatelist.c:766 ../../i18n_templatelist.c:767 #: ../../static/t/get_logged_in.html:63 ../../static/t/get_logged_in.html:67 msgid "New user? Register now" msgstr "Neuer Benutzer? Registrieren Sie sich jetzt" #: ../../i18n_templatelist.c:768 ../../static/t/get_logged_in.html:68 msgid "" "enter the name and password you wish to use, and click "New User." " msgstr "" "einen Loginnamen und Passwort eingeben die verwendet werden sollen; dann " ""Neuer Benutzer" Klicken " #: ../../i18n_templatelist.c:772 ../../static/t/get_logged_in.html:81 msgid "Log in using OpenID" msgstr "Mit einem OpenID Konto Anmelden" #: ../../i18n_templatelist.c:773 ../../static/t/get_logged_in.html:83 msgid "OpenID URL:" msgstr "OpenID URL:" #: ../../i18n_templatelist.c:775 ../../static/t/get_logged_in.html:90 msgid "Log in using Google" msgstr "Über Google anmelden" #: ../../i18n_templatelist.c:777 ../../static/t/get_logged_in.html:95 msgid "Log in using Yahoo" msgstr "Über Yahoo anmelden" #: ../../i18n_templatelist.c:779 ../../static/t/get_logged_in.html:100 msgid "Log in using AOL or AIM" msgstr "Über AOL oder AIM anmelden" #: ../../i18n_templatelist.c:780 ../../static/t/get_logged_in.html:102 msgid "Enter your AOL or AIM screen name:" msgstr "Geben Sie Ihren AOL- oder AIM-Benutzernamen ein:" #: ../../i18n_templatelist.c:782 ../../static/t/get_logged_in.html:113 msgid "Please wait" msgstr "Bitte warten" #: ../../i18n_templatelist.c:784 ../../static/t/sieve/add.html:7 msgid "Add a new script" msgstr "Neues Script hinzufügen" #: ../../i18n_templatelist.c:785 ../../static/t/sieve/add.html:8 msgid "" "To create a new script, enter the desired script name in the box below and " "click 'Create'." msgstr "" "Um eine neues Script anzulegen, den gewünschten Scriptnamen in das Textfeld " "eintragen und 'Anlegen' Klicken" #: ../../i18n_templatelist.c:786 ../../static/t/sieve/add.html:12 msgid "Script name: " msgstr "Script-Name: " #: ../../i18n_templatelist.c:788 ../../static/t/sieve/add.html:16 msgid "Edit scripts" msgstr "Script bearbeiten" #: ../../i18n_templatelist.c:789 ../../static/t/sieve/add.html:18 msgid "Return to the script editing screen" msgstr "Zurück zum Bearbeitungsformular" #: ../../i18n_templatelist.c:790 ../../static/t/sieve/add.html:21 msgid "Delete scripts" msgstr "Script Löschen" #: ../../i18n_templatelist.c:791 ../../static/t/sieve/add.html:22 msgid "" "To delete an existing script, select the script name from the list and click " "'Delete'." msgstr "" "Um ein vorhandenes Script zu löschen, das Script aus der Liste auswählen und " "dann 'Löschen' Klicken" #: ../../i18n_templatelist.c:793 ../../static/t/aide/restart.html:2 msgid "Restart Now" msgstr "Jetzt neustarten" #: ../../i18n_templatelist.c:794 ../../static/t/aide/restart.html:3 msgid "Restart after paging users" msgstr "Nach benachrichtigen der User neustarten" #: ../../i18n_templatelist.c:795 ../../static/t/aide/restart.html:4 msgid "Restart when all users are idle" msgstr "Neustarten, wenn alle Benutzer inaktiv sind" #: ../../i18n_templatelist.c:797 ../../static/t/prefs/pushemail.html:2 msgid "Configure Push Email" msgstr "Push-EMail Konfigurieren" #: ../../i18n_templatelist.c:798 ../../static/t/prefs/pushemail.html:9 msgid "Push email and SMS settings" msgstr "Push Email und SMS Einstellungen" #: ../../i18n_templatelist.c:799 ../../static/t/prefs/pushemail.html:17 msgid "" "If your administrator has enabled the functionality, Citadel can notify a " "Funambol server that you haved recieved new email and automatically " "syncronize any devices you have with the Funambol client installed." msgstr "" "Wenn der Administrator freigeschaltet hat, kann Citadel dem Funambol Server " "automatisch benachrichtigen, das eine neue EMail eingetroffen ist und sie " "auf Endgeräte mit Funambol Client synchronisieren." #: ../../i18n_templatelist.c:800 ../../static/t/prefs/pushemail.html:20 msgid "" "Alternatively, if the administrator has configured it, Citadel can send a " "text message to you when new mail arrives." msgstr "" "Alternativ kann der Administrator das versenden einer SMS mit der " "Zusammenfassung der mail senden lassen." #: ../../i18n_templatelist.c:801 ../../static/t/prefs/pushemail.html:26 msgid "Notify Funambol server" msgstr "Funambol-Server benachrichtigen" #: ../../i18n_templatelist.c:802 ../../static/t/prefs/pushemail.html:31 msgid "Send a text message to..." msgstr "Eine Textnachricht senden an..." #: ../../i18n_templatelist.c:803 ../../static/t/prefs/pushemail.html:33 msgid "" "(Use international format, without any leading zeros, spaces or hypens, like " "+61415011501)" msgstr "" "(bitte das internationale Nummernformat ohne führende Nullen, Leerzeichen " "oder Trennstriche angeben, ala +4917234567890)" #: ../../i18n_templatelist.c:804 ../../static/t/prefs/pushemail.html:38 msgid "Use custom notification scheme configured by your Admin" msgstr "" "Nutze das willkürliche Benachrichtigungsschema, dass von deinem " "Administrator festgelegt wurde." #: ../../i18n_templatelist.c:805 ../../static/t/prefs/pushemail.html:43 msgid "Don‘t send any notifications" msgstr "Keine Benachrichtigungen senden." #: ../../i18n_templatelist.c:806 ../../static/t/login.html:7 msgid "powered by" msgstr "betrieben mit" #: ../../i18n_templatelist.c:808 #: ../../static/t/aide/siteconfig/tab_smtp.html:1 msgid "SMTP-Servers" msgstr "SMTP-Server" #: ../../i18n_templatelist.c:810 #: ../../static/t/aide/siteconfig/tab_smtp.html:5 msgid "SMTP MTA port (-1 to disable)" msgstr "SMTP MTA Server Port (-1 zum abschalten)" #: ../../i18n_templatelist.c:811 #: ../../static/t/aide/siteconfig/tab_smtp.html:8 msgid "SMTP MSA port (-1 to disable)" msgstr "SMTP MSA Serverport (-1 zum abschalten)" #: ../../i18n_templatelist.c:812 #: ../../static/t/aide/siteconfig/tab_smtp.html:11 msgid "SMTP over SSL port (-1 to disable)" msgstr "SMTPS Serverport (-1 zum Abschalten)" #: ../../i18n_templatelist.c:813 #: ../../static/t/aide/siteconfig/tab_smtp.html:14 msgid "Perform RBL checks upon connect instead of after RCPT" msgstr "RBL Prüfung schon beim Verbindungsaufbau durchführen" #: ../../i18n_templatelist.c:814 #: ../../static/t/aide/siteconfig/tab_smtp.html:17 msgid "Flag message as spam, instead of rejecting it" msgstr "Meldung als Spam Markieren, anstelle verwerfen" #: ../../i18n_templatelist.c:815 #: ../../static/t/aide/siteconfig/tab_smtp.html:20 msgid "Allow unauthenticated SMTP clients to spoof this sites domains" msgstr "" "Nicht authentifizierten SMTP clients erlauben die Domain dieser Citadel- " "Installation zu verwenden" #: ../../i18n_templatelist.c:816 #: ../../static/t/aide/siteconfig/tab_smtp.html:23 msgid "Correct forged From: lines during authenticated SMTP" msgstr "'From:' -Kopfzeilen bei authentifizierten SMTP korrigieren" #: ../../i18n_templatelist.c:817 #: ../../static/t/aide/siteconfig/tab_smtp.html:27 msgid "No, allow any address in the From: header" msgstr "Nein, erlaube alle Addressen in der Von:-Kopfzeile" #: ../../i18n_templatelist.c:818 #: ../../static/t/aide/siteconfig/tab_smtp.html:30 msgid "Only change the From: header if the address is not valid for the user" msgstr "Die Von:-Kopfzeile nur verändern wenn sie nicht zu dem Benutzer gehört" #: ../../i18n_templatelist.c:819 #: ../../static/t/aide/siteconfig/tab_smtp.html:33 msgid "Yes, always place the user's primary email address in the From: header" msgstr "Ja, immer des Benutzers primäre E-Mail Addresse in der Von:-Kopfzeile einsetzen." #: ../../i18n_templatelist.c:820 #: ../../static/t/aide/siteconfig/tab_smtp.html:36 msgid "No, REJECT messages containing an invalid From: header" msgstr "Nein, Nachrichten mit ungültigen Von:-Kopfzeilen ZURÜCKWEISEN" #: ../../i18n_templatelist.c:821 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "Postfix TCP Dictionary Port" msgstr "Postfix TCP Wörterbuch Port" #: ../../i18n_templatelist.c:822 #: ../../static/t/aide/siteconfig/tab_smtp.html:43 msgid "-1 to disable" msgstr "-1 zum Abschalten" #: ../../i18n_templatelist.c:823 #: ../../static/t/aide/siteconfig/tab_smtp.html:46 msgid "ManageSieve Port (-1 to disable)" msgstr "ManageSieve-Server-Port (-1 zum abschalten)" #: ../../i18n_templatelist.c:824 #: ../../static/t/aide/display_sitewide_config.html:3 msgid "Site configuration" msgstr "Standortskonfiguration" #: ../../i18n_templatelist.c:826 #: ../../static/t/aide/display_sitewide_config.html:12 msgid "General" msgstr "Allgemein" #: ../../i18n_templatelist.c:827 #: ../../static/t/aide/display_sitewide_config.html:14 msgid "Settings" msgstr "Einstellungen" #: ../../i18n_templatelist.c:828 #: ../../static/t/aide/display_sitewide_config.html:15 msgid "SMTP" msgstr "SMTP" #: ../../i18n_templatelist.c:829 #: ../../static/t/aide/display_sitewide_config.html:16 msgid "IMAP4" msgstr "IMAP4" #: ../../i18n_templatelist.c:830 #: ../../static/t/aide/display_sitewide_config.html:17 msgid "Pop3" msgstr "Pop3" #: ../../i18n_templatelist.c:832 #: ../../static/t/aide/display_sitewide_config.html:21 msgid "Indexing/Journaling" msgstr "Indizierung/Protokollierung" #: ../../i18n_templatelist.c:833 #: ../../static/t/aide/display_sitewide_config.html:23 msgid "Access" msgstr "Zugang" #: ../../i18n_templatelist.c:834 #: ../../static/t/aide/display_sitewide_config.html:24 msgid "Directory" msgstr "Verzeichnis" #: ../../i18n_templatelist.c:835 #: ../../static/t/aide/display_sitewide_config.html:25 msgid "Auto-purger" msgstr "Automatischer Nachrichtenlöscher" #: ../../i18n_templatelist.c:839 ../../static/t/room/edit/tab_listserv.html:6 msgid "" "The contents of this room are being mailed as individual messages " "to the following list recipients:

    " msgstr "" "
    : Der Inhalt dieser Raums werden als einzelne Nachrichten " ", an die folgende Liste von Empfängern verschickt" #: ../../i18n_templatelist.c:841 ../../static/t/room/edit/tab_listserv.html:23 msgid "" "The contents of this room are being mailed in digest form to the " "following list recipients:

    " msgstr "" "Die Inhalte dieses Raums werden als einzelne Nachrichten zu " "folgenden Listenempfängern versendet:

    " #: ../../i18n_templatelist.c:843 ../../static/t/room/edit/tab_listserv.html:43 msgid "Posts to this room will be sent to these mailing lists" msgstr "Nachrichten in diesem Raum werden an diese Mailinglisten versendet" #: ../../i18n_templatelist.c:844 ../../static/t/room/edit/tab_listserv.html:44 msgid "" "All messages posted / mailed into this room will be sent to these email " "addresses. If you link this with mailinglist subscriptions, make shure the " "default sender address below matches the subscribed address. You will see " "your messages twice once the mailinglist sends it back to you." msgstr "Alle Nachrichten, die in diesen Raum geschrieben/gesendet werden an" "diese E-Mail Addresse gesendet. Wenn dies mit einer Mailinglisten Abbonement" " verbunden wird, sollte sichergestellt sein, das die unten konfigurierte " "Absenderaddresse mit der Abbonementsaddresse übereinstimmt. Die Nachrichten " "werden zwei mal zu sehen sein: Einmal das Orginal, Einmal die versendete Nachricht " "der Mailingliste." #: ../../i18n_templatelist.c:846 msgid "List" msgstr "Liste" #: ../../i18n_templatelist.c:847 msgid "Digest" msgstr "Digest-Format" #: ../../i18n_templatelist.c:848 ../../i18n_templatelist.c:850 #: ../../static/t/room/edit/tab_listserv.html:66 msgid "Add recipients from Contacts or other address books" msgstr "Empfänger aus den Kontakten oder anderen Addressbüchern hinzufügen" #: ../../i18n_templatelist.c:851 ../../static/t/room/edit/tab_listserv.html:75 msgid "Allow non-subscribers to mail to this room." msgstr "Nicht-Abbonenten dürfen in diesen Raum senden" #: ../../i18n_templatelist.c:852 ../../static/t/room/edit/tab_listserv.html:81 msgid "Room post publication needs Admin permission." msgstr "Beitrag einreichen erforderd Moderator Privilegien." #: ../../i18n_templatelist.c:853 ../../static/t/room/edit/tab_listserv.html:86 msgid "Allow self-service subscribe/unsubscribe requests." msgstr "Benutzergesteuertes Abonnieren erlauben." #: ../../i18n_templatelist.c:854 ../../static/t/room/edit/tab_listserv.html:92 msgid "The URL for subscribe/unsubscribe is: " msgstr "Die URL zum Ab-/Bestellen lautet: " #: ../../i18n_templatelist.c:856 #: ../../static/t/room/edit/tab_listserv.html:110 msgid "Which from address should be used: " msgstr "Welche Absederaddresse soll verwendet werden: " #: ../../i18n_templatelist.c:857 #: ../../static/t/room/edit/tab_listserv.html:123 msgid "none (not advised)" msgstr "keine (nicht empfohlen)" #: ../../i18n_templatelist.c:858 msgid "Set" msgstr "Setzen" #: ../../i18n_templatelist.c:859 #: ../../static/t/room/edit/tab_listserv.html:135 msgid "Alternative public emailaddresses pointing to this room: " msgstr "Weitere öffentliche Emailaddressen die in diesen Raum ausgeliefert werden:" #: ../../i18n_templatelist.c:860 #: ../../static/t/room/edit/tab_listserv.html:150 msgid "All Domains" msgstr "Alle Domänen" #: ../../i18n_templatelist.c:862 ../../static/t/summary/page.html:4 msgid "Summary page for " msgstr "Übersichtsseite für " #: ../../i18n_templatelist.c:863 ../../static/t/summary/page.html:21 msgid "Messages" msgstr "Nachrichten" #: ../../i18n_templatelist.c:865 ../../static/t/summary/page.html:39 msgid "Today on your calendar" msgstr "Heute in ihrem Kalender" #: ../../i18n_templatelist.c:866 ../../static/t/summary/page.html:51 msgid "Who‘s online now" msgstr "Wer  ist gerade  angemeldet" #: ../../i18n_templatelist.c:867 ../../static/t/summary/page.html:60 msgid "About this server" msgstr "Über diesen Server" #: ../../i18n_templatelist.c:868 ../../static/t/summary/page.html:63 msgid "You are connected to" msgstr "Sie sind verbunden mit" #: ../../i18n_templatelist.c:869 ../../static/t/summary/page.html:64 msgid "running" msgstr "wird ausgeführt" #: ../../i18n_templatelist.c:870 ../../static/t/summary/page.html:65 msgid "with" msgstr "mit" #: ../../i18n_templatelist.c:871 ../../static/t/summary/page.html:66 msgid "server build" msgstr "Server-Build" #: ../../i18n_templatelist.c:872 ../../static/t/summary/page.html:67 msgid "and located in" msgstr "und aufgestellt in" #: ../../i18n_templatelist.c:873 ../../static/t/summary/page.html:68 msgid "Your system administrator is" msgstr "Ihr Systemadministrator ist" #: ../../i18n_templatelist.c:874 msgid "Do you really want to kill this session?" msgstr "Wollen Sie diese Sitzung wirklich beenden?" #: ../../i18n_templatelist.c:875 ../../static/t/who.html:13 msgid "Users currently on " msgstr "Angemeldete Benutzer auf " #: ../../i18n_templatelist.c:876 ../../static/t/who.html:22 msgid "Click on a name to read user info. Click on" msgstr "Auf den Namen klicken um die Benutzerdaten einzusehen. Auf" #: ../../i18n_templatelist.c:877 ../../static/t/who.html:24 msgid "to send an instant message to that user." msgstr "klicken um Ihm eine Kurznachricht zu senden." #: ../../i18n_templatelist.c:878 ../../static/t/start_of_new_msgs.html:4 msgid "Old messages" msgstr "Alte Nachrichten" #: ../../i18n_templatelist.c:879 ../../static/t/start_of_new_msgs.html:8 msgid "New messages" msgstr "Neue Nachrichten" #: ../../i18n_templatelist.c:880 msgid "Share" msgstr "Teilen" #: ../../i18n_templatelist.c:881 ../../static/t/aide/inet/masqdomains.html:2 msgid "(Domains as which users are allowed to masquerade)" msgstr "(nicht lokale Domänen, von denen Benutzer Mails schicken dürfen)" #: ../../i18n_templatelist.c:883 ../../static/t/menu/change_pw.html:16 msgid "Enter new password:" msgstr "Bitte geben Sie ein neues Passwort ein:" #: ../../i18n_templatelist.c:884 ../../static/t/menu/change_pw.html:20 msgid "Enter it again to confirm:" msgstr "Noch einmal zur Verifizierung:" #: ../../i18n_templatelist.c:885 msgid "Change password" msgstr "Passwort ändern" #: ../../i18n_templatelist.c:887 ../../static/t/who/edit.html:5 msgid "Edit your session display" msgstr "Sitzungsparameter Bearbeiten" #: ../../i18n_templatelist.c:888 ../../static/t/who/edit.html:10 msgid "" "This screen allows you to change the way your session appears in the 'Who is " "online' listing. To turn off any 'fake' name you've previously set, simply " "click the appropriate 'change' button without typing anything in the " "corresponding box. " msgstr "" "Auf dieser Seite können Sie die in der Benutzerübersicht angezeigten Texte " "ändern. Um die Defaultwerte wiederherzustellen bei leerem Feld den " "'Raumnamen ändern' Knopf drücken " #: ../../i18n_templatelist.c:889 ../../static/t/who/edit.html:18 msgid "Room name:" msgstr "Raumname:" #: ../../i18n_templatelist.c:890 msgid "Change room name" msgstr "Raumnamen ändern" #: ../../i18n_templatelist.c:891 ../../static/t/who/edit.html:29 msgid "Host name:" msgstr "Rechnername:" #: ../../i18n_templatelist.c:892 msgid "Change host name" msgstr "Rechnernamen ändern" #: ../../i18n_templatelist.c:894 msgid "Change user name" msgstr "Benutzernamen ändern" #: ../../i18n_templatelist.c:917 msgid "(INBOX)" msgstr "(POSTEINGANG)" #: ../../i18n_templatelist.c:920 ../../static/t/wiki/history.html:1 msgid "History of edits for this page" msgstr "editierte Einträge für diese Seite" #: ../../i18n_templatelist.c:921 ../../static/t/msg/confirm_move.html:4 msgid "Confirm move of message" msgstr "Verschieben bestätigen" #: ../../i18n_templatelist.c:922 ../../static/t/msg/confirm_move.html:12 msgid "Move this message to:" msgstr "Meldung verschieben nach:" #: ../../i18n_templatelist.c:926 ../../static/t/view_mailq/message.html:6 msgid "Originaly posted in: " msgstr "Ursprünglich veröffentlicht in: " #: ../../i18n_templatelist.c:932 ../../static/t/menu/basic_commands.html:3 msgid "List known rooms" msgstr "Bekannte Räume aufzählen" #: ../../i18n_templatelist.c:933 ../../static/t/menu/basic_commands.html:3 msgid "Where can I go from here?" msgstr "Wo komme ich von hier aus hin?" #: ../../i18n_templatelist.c:934 ../../i18n_templatelist.c:985 #: ../../static/t/menu/basic_commands.html:4 ../../static/t/navbar.html:191 msgid "Goto next room" msgstr "nächster Raum" #: ../../i18n_templatelist.c:935 ../../static/t/menu/basic_commands.html:4 msgid "...with unread messages" msgstr "... mit ungelesenen Meldungen" #: ../../i18n_templatelist.c:936 ../../static/t/menu/basic_commands.html:5 msgid "Skip to next room" msgstr "Weiter zum nächsten Raum" #: ../../i18n_templatelist.c:937 ../../static/t/menu/basic_commands.html:5 msgid "(come back here later)" msgstr "(später zurückkehren)" #: ../../i18n_templatelist.c:938 ../../i18n_templatelist.c:956 #: ../../static/t/menu/basic_commands.html:6 ../../static/t/navbar.html:5 msgid "Ungoto" msgstr "Zurück" #: ../../i18n_templatelist.c:939 ../../static/t/menu/basic_commands.html:6 msgid "oops! Back to " msgstr "Hoppla! Zurück zu " #: ../../i18n_templatelist.c:940 ../../i18n_templatelist.c:957 #: ../../static/t/menu/basic_commands.html:10 ../../static/t/navbar.html:13 msgid "Read new messages" msgstr "Aktualisieren" #: ../../i18n_templatelist.c:941 ../../static/t/menu/basic_commands.html:10 msgid "...in this room" msgstr "... in diesem Raum" #: ../../i18n_templatelist.c:942 ../../i18n_templatelist.c:958 #: ../../static/t/menu/basic_commands.html:11 ../../static/t/navbar.html:19 msgid "Read all messages" msgstr "Alle Beiträge" #: ../../i18n_templatelist.c:943 ../../static/t/menu/basic_commands.html:11 msgid "...old and new" msgstr "... alte und neue" #: ../../i18n_templatelist.c:944 ../../i18n_templatelist.c:959 #: ../../static/t/menu/basic_commands.html:12 ../../static/t/navbar.html:25 msgid "Enter a message" msgstr "neuer Beitrag" #: ../../i18n_templatelist.c:945 ../../static/t/menu/basic_commands.html:12 msgid "(post in this room)" msgstr "(Beitrag in diesen Raum stellen)" #: ../../i18n_templatelist.c:946 ../../static/t/menu/basic_commands.html:13 msgid "File library" msgstr "Datei-Bibliothek" #: ../../i18n_templatelist.c:947 ../../static/t/menu/basic_commands.html:13 msgid "(List files available for download)" msgstr "(Zum Herunterladen verfügbare Dateien anzeigen)" #: ../../i18n_templatelist.c:948 ../../static/t/menu/basic_commands.html:17 msgid "Summary page" msgstr "Übersichtsseite" #: ../../i18n_templatelist.c:949 ../../static/t/menu/basic_commands.html:17 msgid "Summary of my account" msgstr "Mein Benutzerkonto" #: ../../i18n_templatelist.c:950 ../../static/t/menu/basic_commands.html:18 msgid "User list" msgstr "Benutzerliste" #: ../../i18n_templatelist.c:951 ../../static/t/menu/basic_commands.html:18 msgid "(all registered users)" msgstr "(alle Benutzer)" #: ../../i18n_templatelist.c:953 ../../static/t/menu/basic_commands.html:19 msgid "Bye!" msgstr "Auf Wiedersehen!" #: ../../i18n_templatelist.c:955 ../../static/t/aide/inet/smarthosts.html:2 msgid "(if present, forward all outbound mail to one of these hosts)" msgstr "" "(wenn gesetzt, alle zu versendende Mail über diese Maschine verschicken)" #: ../../i18n_templatelist.c:960 ../../static/t/navbar.html:34 msgid "View contacts" msgstr "Kontakte anzeigen" #: ../../i18n_templatelist.c:961 ../../static/t/navbar.html:40 msgid "Add new contact" msgstr "Neuen Kontakt hinzufügen" #: ../../i18n_templatelist.c:962 ../../static/t/navbar.html:49 msgid "Day view" msgstr "Tagesübersicht" #: ../../i18n_templatelist.c:963 ../../static/t/navbar.html:55 msgid "Month view" msgstr "Monatsübersicht" #: ../../i18n_templatelist.c:964 ../../static/t/navbar.html:61 msgid "Add new event" msgstr "Neuen Termin hinzufügen" #: ../../i18n_templatelist.c:965 ../../static/t/navbar.html:70 msgid "Calendar list" msgstr "Kalenderliste" #: ../../i18n_templatelist.c:966 ../../static/t/navbar.html:79 msgid "View tasks" msgstr "Aufgaben anzeigen" #: ../../i18n_templatelist.c:967 ../../static/t/navbar.html:85 msgid "Add new task" msgstr "Neue Aufgabe" #: ../../i18n_templatelist.c:968 ../../static/t/navbar.html:94 msgid "View notes" msgstr "Nachrichten anzeigen" #: ../../i18n_templatelist.c:969 ../../static/t/navbar.html:101 msgid "Add new note" msgstr "Neue Notiz" #: ../../i18n_templatelist.c:970 ../../static/t/navbar.html:110 msgid "Refresh message list" msgstr "Aktualisieren" #: ../../i18n_templatelist.c:972 ../../static/t/navbar.html:122 msgid "Write mail" msgstr "Email schreiben" #: ../../i18n_templatelist.c:973 ../../i18n_templatelist.c:977 #: ../../static/t/navbar.html:132 ../../static/t/navbar.html:155 msgid "Wiki home" msgstr "Wiki-Startseite" #: ../../i18n_templatelist.c:974 ../../i18n_templatelist.c:978 #: ../../static/t/navbar.html:139 ../../static/t/navbar.html:162 msgid "Edit this page" msgstr "Diese Seite bearbeiten" #: ../../i18n_templatelist.c:976 ../../i18n_templatelist.c:980 #: ../../static/t/navbar.html:145 ../../static/t/navbar.html:168 msgid "History" msgstr "Ältere Versionen" #: ../../i18n_templatelist.c:981 ../../static/t/navbar.html:177 msgid "New blog post" msgstr "Neuer Blog-Beitrag" #: ../../i18n_templatelist.c:982 msgid "" "Leave all messages marked as unread, go to next room with unread messages" msgstr "Alle Nachrichten wieder ungelesen markieren, in den nächsten Raum mit neuen Nachrichten gehen" #: ../../i18n_templatelist.c:983 ../../static/t/navbar.html:185 msgid "Skip this room" msgstr "Raum weglassen" #: ../../i18n_templatelist.c:984 msgid "Mark all messages as read, go to next room with unread messages" msgstr "Alle Nachrichten als gelesen markieren, und in den nächsten Raum mit neuen Nachrichten gehen" #: ../../i18n_templatelist.c:986 ../../static/t/navbar.html:196 msgid "Resend Mailqueue now" msgstr "Mail Warteschlange erneut versenden" #: ../../i18n_templatelist.c:995 msgid "Save changes?" msgstr "Änderungen übernehmen?" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Sie abonnieren für %s die %s-Mailing-Liste. Der Mailing-" #~ "Listen-Server hat Ihnen eine E-Mail mit einem Verweis gesendet, auf den " #~ "Sie klicken müssen, um Ihr Abonnement zu bestätigen. Dieser zusätzliche " #~ "Schritt dient Ihrem Schutz, weil dadurch verhindert wird, dass andere " #~ "ohne Ihre Zustimmung für Sie Mailing-Listen abonnieren können.
    \n" #~ msgid "" #~ "WARNING: Failed to parse Server Config; do you run a to new citserver?" #~ msgstr "" #~ "WARNUNG: Konnte die Serverkonfiguration nicht lesen; ist der Citserver " #~ "neuer als WebCit?" #~ msgid "There is no room called '%s'." #~ msgstr "Es gibt keinen Raum mit dem Namen '%s'." #~ msgid "Network" #~ msgstr "Netzwerk" #~ msgid "Tuning" #~ msgstr "Feinabstimmung" #~ msgid "Instantly expunge deleted messages in IMAP" #~ msgstr "Löschen via IMAP nicht cachen (instant expunge)?" #~ msgid "A script by that name already exists." #~ msgstr "Es gibt schon ein Script mit diesem Namen!" #~ msgid "" #~ "A new script has been created. Return to the script editing screen to " #~ "edit and activate it." #~ msgstr "" #~ "Ein neues Script wurde erzeugt. Es kann im Script-Bearbeitungs Formular " #~ "aktiviert werden." #~ msgid "Delete script" #~ msgstr "Script löschen" #~ msgid "" #~ "You are connected to %s, running %s with %s, server build %s and located " #~ "in %s. Your system administrator is %s." #~ msgstr "" #~ "Sie sind angemeldet auf %s, mit %s über %s, Server-Release %s in %s. Ihr " #~ "Systemverwalter ist %s." #~ msgid "Yes with users list" #~ msgstr "Ja, mit Benutzer Liste" #~ msgid "Room list" #~ msgstr "Raumlisten Anzeige" #~ msgid "View as room list" #~ msgstr "Auf Raumlistenansicht wechseln" #~ msgid "View as folder list" #~ msgstr "Auf Ordnerlistenansicht wechseln" #~ msgid "Your password was not accepted." #~ msgstr "Ihr Passwort wurde nicht akzeptiert" #~ msgid "" #~ "You are subscribing %s to the %s mailing list. The " #~ "listserver has sent you an e-mail with one additional Web link for you to " #~ "click on to confirm your subscription. This extra step is for your " #~ "protection, as it prevents others from being able to subscribe you to " #~ "lists without your consent.

    Please click on the link which is " #~ "being e-mailed to you and your subscription will be confirmed.
    \n" #~ msgstr "" #~ "Sie abonnieren für %s die %s Liste. Der Listenserver hat " #~ "Ihnen eine URL zur Bestätigung der Anmeldung zugeschickt. Dieser " #~ "zusätzliche Schritt ist zu Ihrem eigenen Schutz, damit Sie niemand ohne " #~ "Ihre Zustimmung auf einer Liste anmelden kann.
    \n" #~ msgid "If you already have an account on" #~ msgstr "Wenn schon ein Benutzerkonto existiert auf" #~ msgid "enter your user name and password and click "Login."" #~ msgstr "Benutzername und Passwort angeben und "Anmelden" clicken" #~ msgid "" #~ "If you are a new user, enter the name and password you wish to " #~ "use, and click "New User." " #~ msgstr "" #~ "Wenn Sie noch keinen Benutzer haben einen Loginnamen und Passwort " #~ "eingeben die verwendet werden sollen; dann "Neuer Benutzer" " #~ "Klicken " #~ msgid "Please log off properly when finished. " #~ msgstr "Bitte die Sitzung ordentlich beenden. " #~ msgid "See the" #~ msgstr "Die" #~ msgid "recommended browser list" #~ msgstr "Liste empfohlener Browser einsehen" #~ msgid "" #~ "if you have trouble using Webcit.
  • You must have cookies " #~ "turned on. " #~ msgstr "" #~ "wenn es Probleme mit Webcit gibt..
  • Cookies müßen " #~ "aktiviert sein. " #~ msgid "" #~ "Also keep in mind that if your browser is configured to block pop-up " #~ "windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "Bitte auch Popup Fenster zulassen wenn Chat-Fenster benutzt werden sollen." #~ msgid "Enter your OpenID URL and click "Login"." #~ msgstr "Geben Sie ihre OpenID URL ein, und "Anmelden" klicken" #~ msgid "Click here to learn what OpenID is and how Citadel is using it." #~ msgstr "Hier klicken um mehr über OpenID und Citadel zu lernen" #~ msgid " - powered by Citadel" #~ msgstr " - mit Citadel Technologie" #~ msgid "enter your user name and password and click "Log in."" #~ msgstr "Benutzername und Passwort angeben und "Anmelden" clicken" #~ msgid "Enter your OpenID URL and click "Log in"." #~ msgstr "Geben Sie ihre OpenID URL ein, und "Anmelden" klicken" #~ msgid "" #~ "
    • Enter your OpenID URL and click "Log in".
    • Click here to " #~ "learn what OpenID is and how Citadel is using it.
    • Please log off " #~ "properly when finished.
    • You must use a browser that supports " #~ "frames and cookies.
    • Also keep in mind that if your " #~ "browser is configured to block pop-up windows, you will not be able to " #~ "receive any instant messages.
    " #~ msgstr "" #~ "
      \n" #~ "
    • Wenn Sie schon einen Benutzer bei %s haben, Benutzername und " #~ "Passwort eingeben und 'Anmelden' drücken.
    • \n" #~ "
    • Wenn Sie einen neuen Benutzer anlegen wollen, Benutzername und " #~ "Passwort eingeben und 'Neuer Benutzer' drücken.
    • \n" #~ "
    • Bitte melden Sie sich ordentlich ab, wenn Sie fertig sind.
    • \n" #~ "
    • Ihr Browser muss Frames und Cookies unterstützen
    • \n" #~ "
    • Kurznachrichten könnten dem Popup-Blocker Ihres Browsers zum Opfer " #~ "fallen
    • \n" #~ "
    " #~ msgid "" #~ "enter your user name and password and click "Log in."
  • If " #~ "you are a new user, enter the name and password you wish to use, and " #~ "click "New User."
  • Please log off properly when finished. " #~ "
  • You must use a browser that supports frames and cookies.
  • Also keep in mind that if your browser is configured to block pop-" #~ "up windows, you will not be able to receive any instant messages." #~ msgstr "" #~ "
      \n" #~ "
    • Wenn Sie schon einen Benutzer bei %s haben, Benutzername und " #~ "Passwort eingeben und 'Anmelden' drücken.
    • \n" #~ "
    • Wenn Sie einen neuen Benutzer anlegen wollen, Benutzername und " #~ "Passwort eingeben und 'Neuer Benutzer' drücken.
    • \n" #~ "
    • Bitte melden Sie sich ordentlich ab, wenn Sie fertig sind.
    • \n" #~ "
    • Ihr Browser muss Frames und Cookies unterstützen
    • \n" #~ "
    • Kurznachrichten könnten dem Popup-Blocker Ihres Browsers zum Opfer " #~ "fallen
    • \n" #~ "
    " #~ msgid "" #~ "This message contains calendaring/scheduling information, but support " #~ "for calendars is not available on this particular system. Please ask " #~ "your system administrator to install a new version of the Citadel web " #~ "service with calendaring enabled.
    \n" #~ msgstr "" #~ "Diese Nachricht enthält Kalender/Datums Informationen, aber die " #~ "Unterstützung für Kalender ist auf diesem System nicht verfügbar. Bitte " #~ "fragen Sie ihren System-Administrator nach einer Version des Citadel-Web-" #~ "Services mit unterstützung für Kalender.
    \n" #~ msgid "" #~ "Cannot display calendar item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Kann Kalender-Element nicht darstellen. Sie sehen diesen Fehler, weil " #~ "ihr Citadel System ohne Kalenderunterstützung installiert wurde. Bitte " #~ "wenden Sie sich an Ihren Systemadministrator.
    \n" #~ msgid "" #~ "Cannot display to-do item. You are seeing this error because your " #~ "WebCit service has not been installed with calendar support. Please " #~ "contact your system administrator.
    \n" #~ msgstr "" #~ "Kann To-Do Datum nicht darstellen. Sie sehen diesen Fehler, weil ihr " #~ "Citadel System ohne Kalenderunterstützung installiert wurde. Bitte wenden " #~ "Sie sich an Ihren Systemadministrator.
    \n" webcit-dfsg.orig/webcit.h0000644000175000017500000005176313223341037015441 0ustar michaelmichael/* * Copyright (c) 1987-2018 by the citadel.org team * * This program is open source software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "sysdep.h" #include #include #include #ifdef HAVE_UNISTD_H #include #endif #include #ifdef HAVE_FCNTL_H #include #endif #include #include #include #include #include #ifdef HAVE_LIMITS_H #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_ICONV #include #endif #ifdef ENABLE_NLS #ifdef HAVE_XLOCALE_H #include #endif #include #include #define _(string) gettext(string) #else #define _(string) (string) #endif #define DO_DBG_QR 0 #define DBG_QR(x) if(DO_DBG_QR) _DBG_QR(x) #define DBG_QR2(x) if(DO_DBG_QR) _DBG_QR2(x) #include #include #undef PACKAGE #undef VERSION #undef PACKAGE_NAME #undef PACKAGE_STRING #undef PACKAGE_TARNAME #undef PACKAGE_VERSION #undef PACKAGE_BUGREPORT typedef struct wcsession wcsession; #include "sysdep.h" #include "subst.h" #include "messages.h" #include "paramhandling.h" #include "roomops.h" #include "preferences.h" #include "tcp_sockets.h" #include "utils.h" #ifdef HAVE_OPENSSL /* Work around RedHat's b0rken OpenSSL includes */ #define OPENSSL_NO_KRB5 #include #include #include extern char *ssl_cipher_list; #define DEFAULT_SSL_CIPHER_LIST "DEFAULT" /* See http://openssl.org/docs/apps/ciphers.html */ #endif #if SIZEOF_SIZE_T == SIZEOF_INT #define SIZE_T_FMT "%d" #else #define SIZE_T_FMT "%ld" #endif #if SIZEOF_LONG_UNSIGNED_INT == SIZEOF_INT #define ULONG_FMT "%d" #else #define ULONG_FMT "%ld" #endif #define CALENDAR_ROOM_NAME "Calendar" #define PRODID "-//Citadel//NONSGML Citadel Calendar//EN" #define SIZ 4096 /* generic buffer size */ #define TRACE syslog(LOG_DEBUG, "\033[3%dmCHECKPOINT: %s:%d\033[0m", ((__LINE__%6)+1), __FILE__, __LINE__) #ifdef UNDEF_MEMCPY #undef memcpy #endif #define SLEEPING 180 /* TCP connection timeout */ #define WEBCIT_TIMEOUT 900 /* WebCit session timeout */ #define PORT_NUM 2000 /* port number to listen on */ #define DEVELOPER_ID 0 #define CLIENT_ID 4 #define CLIENT_VERSION 917 /* This version of WebCit */ #define MINIMUM_CIT_VERSION 917 /* Minimum required version of Citadel server */ #define LIBCITADEL_MIN 914 /* Minimum required version of libcitadel */ #define DEFAULT_HOST "localhost" /* Default Citadel server */ #define DEFAULT_PORT "504" #define TARGET "webcit01" /* Window target for inline URL's */ #define HOUSEKEEPING 15 /* Housekeeping frequency */ #define MAX_WORKER_THREADS 250 #define LISTEN_QUEUE_LENGTH 100 /* listen() backlog queue */ #define USERCONFIGROOM "My Citadel Config" #define DEFAULT_MAXMSGS 20 #ifdef LIBCITADEL_VERSION_NUMBER #if LIBCITADEL_VERSION_NUMBER < LIBCITADEL_MIN #error libcitadel is too old. Please upgrade it before continuing. #endif #endif #define SRV_STATUS_MSG(ServerLineBuf) (ChrPtr(ServerLineBuf) + 4), (StrLength(ServerLineBuf) - 4) #define MAJORCODE(a) (((int)(a / 100) ) * 100) #define LISTING_FOLLOWS 100 #define CIT_OK 200 #define MORE_DATA 300 #define SEND_LISTING 400 #define ERROR 500 #define BINARY_FOLLOWS 600 #define SEND_BINARY 700 #define START_CHAT_MODE 800 #define ASYNC_MSG 900 #define MINORCODE(a) (a % 100) #define ASYNC_GEXP 02 #define INTERNAL_ERROR 10 #define TOO_BIG 11 #define ILLEGAL_VALUE 12 #define NOT_LOGGED_IN 20 #define CMD_NOT_SUPPORTED 30 #define SERVER_SHUTTING_DOWN 31 #define PASSWORD_REQUIRED 40 #define ALREADY_LOGGED_IN 41 #define USERNAME_REQUIRED 42 #define HIGHER_ACCESS_REQUIRED 50 #define MAX_SESSIONS_EXCEEDED 51 #define RESOURCE_BUSY 52 #define RESOURCE_NOT_OPEN 53 #define NOT_HERE 60 #define INVALID_FLOOR_OPERATION 61 #define NO_SUCH_USER 70 #define FILE_NOT_FOUND 71 #define ROOM_NOT_FOUND 72 #define NO_SUCH_SYSTEM 73 #define ALREADY_EXISTS 74 #define MESSAGE_NOT_FOUND 75 /* * NLI is the string that shows up in a who's online listing for sessions * that are active but do not (yet) have a user logged in. */ #define NLI "(not logged in)" /* * Expiry policy for the autopurger */ typedef struct __ExpirePolicy { int expire_mode; int expire_value; } ExpirePolicy; /* * Linked list of session variables encoded in an x-www-urlencoded content type */ typedef struct urlcontent urlcontent; struct urlcontent { char url_key[32]; /* key */ long klen; StrBuf *url_data; /* value */ HashList *sub; }; /* * Information about the Citadel server to which we are connected */ typedef struct _serv_info { int serv_pid; /* Process ID of the Citadel server */ StrBuf *serv_nodename; /* Node name of the Citadel server */ StrBuf *serv_humannode; /* Juman readable node name of the Citadel server */ StrBuf *serv_fqdn; /* Fully qualified Domain Name (such as uncensored.citadel.org) */ StrBuf *serv_software; /* Free form text description of the server software in use */ int serv_rev_level; /* Server version number (times 100) */ StrBuf *serv_bbs_city; /* Geographic location of the Citadel server */ StrBuf *serv_sysadm; /* Name of system administrator */ int serv_supports_ldap; /* is the server linked against an ldap tree for adresses? */ int serv_newuser_disabled; /* Has the server disabled self-service new user creation? */ StrBuf *serv_default_cal_zone; /* Default timezone for unspecified calendar items */ int serv_supports_sieve; /* Server supports Sieve mail filtering */ int serv_fulltext_enabled; /* Full text index is enabled */ StrBuf *serv_svn_revision; /* svn or git revision of the server */ int serv_supports_openid; /* Server supports authentication via OpenID */ int serv_supports_guest; /* Server supports unauthenticated guest logins */ } ServInfo; typedef struct _disp_cal { icalcomponent *cal; /* cal items for display */ long cal_msgnum; /* cal msgids for display */ char *from; /* owner of this component */ int unread; /* already seen by the user? */ time_t event_start; time_t event_end; int multi_day_event; int is_repeat; icalcomponent *SortBy; /* cal items for display */ icalproperty_status Status; } disp_cal; typedef struct _IcalKindEnumMap { const char *Name; long NameLen; icalproperty_kind map; } IcalKindEnumMap; typedef struct _IcalMethodEnumMap { const char *Name; long NameLen; icalproperty_method map; } IcalMethodEnumMap; #define AJAX (1<<0) #define ANONYMOUS (1<<1) #define NEED_URL (1<<2) #define XHTTP_COMMANDS (1<<3) #define BOGUS (1<<4) #define URLNAMESPACE (1<<4) #define LOGCHATTY (1<<5) #define COOKIEUNNEEDED (1<<6) #define ISSTATIC (1<<7) #define FORCE_SESSIONCLOSE (1<<8) #define PARSE_REST_URL (1<<9) #define PROHIBIT_STARTPAGE (1<<10) #define DATEFMT_FULL 0 #define DATEFMT_BRIEF 1 #define DATEFMT_RAWDATE 2 #define DATEFMT_LOCALEDATE 3 long webcit_fmt_date(char *buf, size_t siz, time_t thetime, int Format); typedef enum _RESTDispatchID { ExistsID, PutID, DeleteID } RESTDispatchID; typedef int (*WebcitRESTDispatchID)(RESTDispatchID WhichAction, int IgnoreFloor); typedef void (*WebcitHandlerFunc)(void); typedef struct _WebcitHandler{ WebcitHandlerFunc F; WebcitRESTDispatchID RID; long Flags; StrBuf *Name; StrBuf *DisplayName; } WebcitHandler; void WebcitAddUrlHandler(const char * UrlString, long UrlSLen, const char *DisplayName, long dslen, WebcitHandlerFunc F, long Flags); typedef struct _headereval { ExamineMsgHeaderFunc evaluator; int Type; } headereval; struct attach_link { char partnum[32]; char html[1024]; }; enum { eUp, eDown, eNone }; enum { eGET, ePOST, eOPTIONS, ePROPFIND, ePUT, eDELETE, eHEAD, eMOVE, eCOPY, eREPORT, eNONE }; extern const char *ReqStrs[eNONE]; #define NO_AUTH 0 #define AUTH_COOKIE 1 #define AUTH_BASIC 2 typedef struct _HdrRefs { long eReqType; /* HTTP method */ int desired_session; int SessionKey; int got_auth; int DontNeedAuth; long ContentLength; time_t if_modified_since; int gzip_ok; /* Nonzero if Accept-encoding: gzip */ int prohibit_caching; int dav_depth; int Static; /* these are references into Hdr->HTTPHeaders, so we don't need to free them. */ StrBuf *ContentType; StrBuf *RawCookie; StrBuf *ReqLine; StrBuf *browser_host; StrBuf *browser_language; StrBuf *user_agent; StrBuf *plainauth; StrBuf *dav_ifmatch; const WebcitHandler *Handler; } HdrRefs; typedef struct _ParsedHttpHdrs { int http_sock; /* HTTP server socket */ long HaveRange; long RangeStart; long RangeTil; long TotalBytes; const char *Pos; StrBuf *ReadBuf; StrBuf *c_username; StrBuf *c_password; StrBuf *c_roomname; StrBuf *c_language; StrBuf *this_page; /* URL of current page */ StrBuf *PlainArgs; StrBuf *HostHeader; HashList *urlstrings; /* variables passed to webcit in a URL */ HashList *HTTPHeaders; /* the headers the client sent us */ int nWildfireHeaders; /* how many wildfire headers did we already send? */ HdrRefs HR; } ParsedHttpHdrs; /* * One of these is kept for each active Citadel session. * HTTP transactions are bound to one at a time. */ struct wcsession { /* infrastructural members */ wcsession *next; /* Linked list */ pthread_mutex_t SessionMutex; /* mutex for exclusive access */ int wc_session; /* WebCit session ID */ int killthis; /* Nonzero == purge this session */ int ctdl_pid; /* Session ID on the Citadel server */ int nonce; /* session nonce (to prevent session riding) */ int inuse; /* set to nonzero if bound to a running thread */ int isFailure; /* Http 2xx or 5xx? */ /* Session local Members */ int serv_sock; /* Client socket to Citadel server */ StrBuf *ReadBuf; /* linebuffered reads from the server */ StrBuf *MigrateReadLineBuf; /* here we buffer legacy server read stuff */ const char *ReadPos; /* whats our read position in ReadBuf? */ int last_chat_seq; /* When in chat - last message seq# we saw */ time_t lastreq; /* Timestamp of most recent HTTP */ time_t last_pager_check; /* last time we polled for instant msgs */ ServInfo *serv_info; /* Information about the citserver we're connected to */ StrBuf *PushedDestination; /* Where to go after login, registration, etc. */ /* Request local Members */ StrBuf *CLineBuf; /* linebuffering client stuff */ ParsedHttpHdrs *Hdr; StrBuf *WBuf; /* Our output buffer */ StrBuf *HBuf; /* Our HeaderBuffer */ StrBuf *WFBuf; /* Wildfire error logging buffer */ StrBuf *trailing_javascript; /* extra javascript to be appended to page */ StrBuf *ImportantMsg; HashList *Directory; /* Parts of the directory URL in snippets */ const Floor *CurrentFloor; /* when Parsing REST, which floor are we on? */ /* accounting */ StrBuf *wc_username; /* login name of current user */ StrBuf *wc_fullname; /* Screen name of current user */ StrBuf *wc_password; /* Password of current user */ StrBuf *httpauth_pass; /* only for GroupDAV sessions */ int axlevel; /* this user's access level */ int is_aide; /* nonzero == this user is an Admin */ int connected; /* nonzero == we are connected to Citadel */ int logged_in; /* nonzero == we are logged in */ int need_regi; /* This user needs to register. */ int need_vali; /* New users require validation. */ /* Preferences */ StrBuf *cs_inet_email; /* User's preferred Internet addr. */ HashList *hash_prefs; /* WebCit preferences for this user */ StrBuf *DefaultCharset; /* Charset the user preferes */ int downloaded_prefs; /* Has the client download its prefs yet? */ int SavePrefsToServer; /* Should we save our preferences to the server at the end of the request? */ int selected_language; /* Language selected by user */ int time_format_cache; /* which timeformat does our user like? */ folder CurRoom; /* information about our current room */ const folder *ThisRoom; /* if REST found a room, remember it here. */ /* next/previous room thingabob */ struct march *march; /* march mode room list */ char ugname[128]; /* where does 'ungoto' take us */ long uglsn; /* last seen message number for ungoto */ /* Uploading; mime attachments for composing messages */ HashList *attachments; /* list of attachments for 'enter message' */ int upload_length; /* content length of http-uploaded data */ StrBuf *upload; /* pointer to http-uploaded data */ StrBuf *upload_filename; /* filename of http-uploaded data */ char upload_content_type[256]; /* content type of http-uploaded data */ int remember_new_mail; /* last count of new mail messages */ /* Roomiew control */ HashList *Floors; /* floors our citserver has hashed numeric for quicker access*/ HashList *FloorsByName; /* same but hashed by its name */ HashList *Rooms; /* our directory structure as loaded by LKRA */ HashList *summ; /* list of messages for mailbox summary view */ /** Perhaps these should be within a struct instead */ long startmsg; /* message number to start at */ long maxmsgs; /* maximum messages to display */ long num_displayed; /* number of messages actually displayed */ HashList *disp_cal_items; /* sorted list of calendar items; startdate is the sort criteria. */ char last_chat_user[256]; StrBuf *IconTheme; /* Icontheme setting */ /* Iconbar controls */ int cache_max_folders; int cache_num_floors; long *IBSettingsVec; /* which icons should be shown / not shown? */ const StrBuf *floordiv_expanded; /* which floordiv currently expanded */ int ib_wholist_expanded; int ib_roomlist_expanded; /* our known Sieve scripts; loaded by SIEVE:SCRIPTS iterator. */ HashList *KnownSieveScripts; /* Transcoding cache buffers; used to avoid to frequent realloc */ StrBuf *ConvertBuf1; StrBuf *ConvertBuf2; /* cache stuff for templates. TODO: find a smarter way */ HashList *ServCfg; /* cache our server config for editing */ HashList *InetCfg; /* Our inet server config for editing */ ExpirePolicy Policy[maxpolicy]; }; typedef void (*Header_Evaluator)(StrBuf *Line, ParsedHttpHdrs *hdr); typedef struct _HttpHeader { Header_Evaluator H; StrBuf *Val; int HaveEvaluator; } OneHttpHeader; void RegisterHeaderHandler(const char *Name, long Len, Header_Evaluator F); enum { S_SHUTDOWN, S_SPAWNER, MAX_SEMAPHORES }; #ifndef num_parms #define num_parms(source) num_tokens(source, '|') #endif #define site_prefix (WC ? (WC->Hdr->HostHeader) : NULL) /* Per-session data */ #define WC ((struct wcsession *)pthread_getspecific(MyConKey)) extern pthread_key_t MyConKey; /* Per-thread SSL context */ #ifdef HAVE_OPENSSL #define THREADSSL ((SSL *)pthread_getspecific(ThreadSSL)) extern pthread_key_t ThreadSSL; extern char ctdl_key_dir[PATH_MAX]; extern char file_crpt_file_key[PATH_MAX]; extern char file_crpt_file_csr[PATH_MAX]; extern char file_crpt_file_cer[PATH_MAX]; void init_ssl(void); void endtls(void); int starttls(int sock); extern SSL_CTX *ssl_ctx; int client_read_sslbuffer(StrBuf *buf, int timeout); int client_write_ssl(const StrBuf *Buf); #endif extern int is_https; extern int follow_xff; extern char *server_cookie; extern char *ctdlhost, *ctdlport; extern char *axdefs[]; extern int num_threads_existing; extern int num_threads_executing; extern int setup_wizard; extern char wizard_filename[]; void InitialiseSemaphores(void); void begin_critical_section(int which_one); void end_critical_section(int which_one); void CheckGZipCompressionAllowed(const char *MimeType, long MLen); extern void do_404(void); void http_redirect(const char *); #ifdef UBER_VERBOSE_DEBUGGING #define wc_printf(...) wcc_printf(__FILE__, __FUNCTION__, __LINE__, __VA_ARGS__) void wcc_printf(const char *FILE, const char *FUNCTION, long LINE, const char *format, ...); #else void wc_printf(const char *format,...)__attribute__((__format__(__printf__,1,2))); #endif void hprintf(const char *format,...)__attribute__((__format__(__printf__,1,2))); void CheckAuthBasic(ParsedHttpHdrs *hdr); void GetAuthBasic(ParsedHttpHdrs *hdr); void sleeeeeeeeeep(int); size_t wc_strftime(char *s, size_t max, const char *format, const struct tm *tm); void fmt_time(char *buf, size_t siz, time_t thetime); void httpdate(char *buf, time_t thetime); time_t httpdate_to_timestamp(StrBuf *buf); void end_webcit_session(void); void cookie_to_stuff(StrBuf *cookie, int *session, StrBuf *user, StrBuf *pass, StrBuf *room, StrBuf *language ); void locate_host(StrBuf *TBuf, int); void become_logged_in(const StrBuf *user, const StrBuf *pass, StrBuf *serv_response); void display_login(void); void display_openids(void); void display_default_landing_page(void); void do_welcome(void); void display_reg(int during_login); void display_main_menu(void); void display_aide_menu(void); void RegisterEmbeddableMimeType(const char *MimeType, long MTLen, int Priority); void CreateMimeStr(void); void pop_destination(void); void FmOut(StrBuf *Target, const char *align, const StrBuf *Source); void wDumpContent(int); void PutRequestLocalMem(void *Data, DeleteHashDataFunc DeleteIt); void output_headers( int do_httpheaders, int do_htmlhead, int do_room_banner, int unset_cookies, int suppress_check, int cache); void cdataout(char *rawdata); void url(char *buf, size_t bufsize); void UrlizeText(StrBuf* Target, StrBuf *Source, StrBuf *WrkBuf); void display_success(const char *successmessage); void shutdown_sessions(void); StrBuf *load_mimepart(long msgnum, char *partnum); void MimeLoadData(wc_mime_attachment *Mime); void do_edit_vcard(long msgnum, char *partnum, message_summary *VCMsg, wc_mime_attachment *VCAtt, const char *return_to, const char *force_room); void select_user_to_edit(const char *preselect); void convenience_page(const char *titlebarcolor, const char *titlebarmsg, const char *messagetext); void output_html(const char *, int, int, StrBuf *, StrBuf *); ssize_t write(int fd, const void *buf, size_t count); void cal_process_attachment(wc_mime_attachment *Mime); void begin_ajax_response(void); void end_ajax_response(void); extern char *months[]; extern char *days[]; long locate_user_vcard_in_this_room(message_summary **VCMsg, wc_mime_attachment **VCAtt); void http_transmit_thing(const char *content_type, int is_static); void http_transmit_headers(const char *content_type, int is_static, long is_chunked, int is_gzip); long unescape_input(char *buf); void check_thread_pool_size(void); void StrEndTab(StrBuf *Target, int tabnum, int num_tabs); void StrBeginTab(StrBuf *Target, int tabnum, int num_tabs, StrBuf **Names); void StrTabbedDialog(StrBuf *Target, int num_tabs, StrBuf *tabnames[]); void tabbed_dialog(int num_tabs, const char *tabnames[]); void begin_tab(int tabnum, int num_tabs); void end_tab(int tabnum, int num_tabs); int get_time_format_cached (void); void display_wiki_pagelist(void); void str_wiki_index(StrBuf *); HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP); /* actual supported locales */ void TmplGettext(StrBuf *Target, WCTemplputParams *TP); void set_selected_language(const char *); void go_selected_language(void); const char *get_selected_language(void); void utf8ify_rfc822_string(char **buf); void begin_burst(void); long end_burst(void); void AppendImportantMessage(const char *pch, long len); void http_datestring(char *buf, size_t n, time_t xtime); /* These should be empty, but we have them for testing */ #define DEFAULT_HTTPAUTH_USER "" #define DEFAULT_HTTPAUTH_PASS "" /* Exit codes 101 through 109 are initialization failures so we don't want to * just keep respawning indefinitely. */ #define WC_EXIT_BIND 101 /* Can't bind to the port */ #define WC_EXIT_SSL 102 /* Can't initialize SSL */ #define WC_TIMEFORMAT_NONE 0 #define WC_TIMEFORMAT_AMPM 1 #define WC_TIMEFORMAT_24 2 extern int time_to_die; /* Nonzero if server is shutting down */ extern int DisableGzip; void display_summary_page(void); HashList *GetValidDomainNames(StrBuf *Target, WCTemplputParams *TP); void output_error_pic(const char *ErrMsg1, const char *ErrMsg2); webcit-dfsg.orig/sitemap.c0000644000175000017500000001032513223341037015606 0ustar michaelmichael/* * XML sitemap generator * * Copyright (c) 2010-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" /* * XML sitemap generator -- go through the message list for a BBS room */ void sitemap_do_bbs(void) { wcsession *WCC = WC; int num_msgs = 0; int i; SharedMessageStatus Stat; message_summary *Msg = NULL; memset(&Stat, 0, sizeof Stat); Stat.maxload = INT_MAX; Stat.lowest_found = (-1); Stat.highest_found = (-1); num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0); if (num_msgs < 1) return; for (i=0; isumm); if (Msg != NULL) { wc_printf("%s/readfwd", ChrPtr(site_prefix)); wc_printf("?go="); urlescputs(ChrPtr(WC->CurRoom.name)); wc_printf("?start_reading_at=%ld", Msg->msgnum); wc_printf("\r\n"); } } } /* * XML sitemap generator -- go through the message list for a wiki room */ void sitemap_do_wiki(void) { wcsession *WCC = WC; int num_msgs = 0; int i; SharedMessageStatus Stat; message_summary *Msg = NULL; char buf[256]; memset(&Stat, 0, sizeof Stat); Stat.maxload = INT_MAX; Stat.lowest_found = (-1); Stat.highest_found = (-1); num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0); if (num_msgs < 1) return; for (i=0; isumm); if (Msg != NULL) { serv_printf("MSG0 %ld|3", Msg->msgnum); serv_getln(buf, sizeof buf); if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { if ( (!strncasecmp(buf, "exti=", 5)) && (!bmstrcasestr(buf, "_HISTORY_")) ) { wc_printf("%s/wiki", ChrPtr(site_prefix)); wc_printf("?go="); urlescputs(ChrPtr(WC->CurRoom.name)); wc_printf("?page=%s", &buf[5]); wc_printf("\r\n"); } } } } } struct sitemap_room_list { struct sitemap_room_list *next; StrBuf *roomname; int defview; }; /* * Load the room list for the sitemap */ struct sitemap_room_list *sitemap_load_roomlist(void) { char buf[SIZ]; char roomname_plain[SIZ]; struct sitemap_room_list *roomlist = NULL; serv_puts("LKRA"); serv_getln(buf, sizeof buf); if (buf[0] == '1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) { struct sitemap_room_list *ptr = malloc(sizeof(struct sitemap_room_list)); extract_token(roomname_plain, buf, 0, '|', sizeof roomname_plain); ptr->roomname = NewStrBufPlain(roomname_plain, -1); ptr->defview = extract_int(buf, 6); ptr->next = roomlist; roomlist = ptr; } return(roomlist); } extern void sitemap_do_blog(void); /* * Entry point for RSS feed generator */ void sitemap(void) { struct sitemap_room_list *roomlist = NULL; output_headers(0, 0, 0, 0, 1, 0); hprintf("Content-type: text/xml\r\n"); hprintf( "Server: %s / %s\r\n" "Connection: close\r\n" , PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software) ); begin_burst(); wc_printf("\r\n"); wc_printf("\r\n"); roomlist = sitemap_load_roomlist(); while (roomlist != NULL) { struct sitemap_room_list *ptr; gotoroom(roomlist->roomname); /* Output the messages in this room only if it's a room type we can make sense of */ switch(roomlist->defview) { case VIEW_BBS: sitemap_do_bbs(); break; case VIEW_WIKI: case VIEW_WIKIMD: sitemap_do_wiki(); break; case VIEW_BLOG: sitemap_do_blog(); break; default: break; } ptr = roomlist; roomlist = roomlist->next; FreeStrBuf(&ptr->roomname); free(ptr); } wc_printf("\r\n"); wDumpContent(0); } void InitModule_SITEMAP (void) { WebcitAddUrlHandler(HKEY("sitemap"), "", 0, sitemap, ANONYMOUS|COOKIEUNNEEDED); WebcitAddUrlHandler(HKEY("sitemap.xml"), "", 0, sitemap, ANONYMOUS|COOKIEUNNEEDED); } webcit-dfsg.orig/cookie_conversion.c0000644000175000017500000000457413223341037017673 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /* * String to unset the cookie. * Any date "in the past" will work, so I chose my birthday, right down to * the exact minute. :) */ static char *unset = "; expires=28-May-1971 18:10:00 GMT"; typedef unsigned char byte; /* Byte type used by cookie_to_stuff() */ extern const char *get_selected_language(void); /* * Pack all session info into one easy-to-digest cookie. Healthy and delicious! */ void stuff_to_cookie(int unset_cookies) { wcsession *WCC = WC; char buf[SIZ]; if (unset_cookies) { hprintf("Set-cookie: webcit=%s; path=/\r\n", unset); } else { StrBufAppendPrintf(WCC->HBuf, "Set-cookie: webcit="); snprintf(buf, sizeof(buf), "%d", WCC->wc_session); StrBufHexescAppend(WCC->HBuf, NULL, buf); StrBufHexescAppend(WCC->HBuf, NULL, "|"); StrBufHexescAppend(WCC->HBuf, WCC->wc_username, NULL); StrBufHexescAppend(WCC->HBuf, NULL, "|"); StrBufHexescAppend(WCC->HBuf, WCC->wc_password, NULL); StrBufHexescAppend(WCC->HBuf, NULL, "|"); StrBufHexescAppend(WCC->HBuf, WCC->CurRoom.name, NULL); StrBufHexescAppend(WCC->HBuf, NULL, "|"); StrBufHexescAppend(WCC->HBuf, NULL, get_selected_language()); StrBufHexescAppend(WCC->HBuf, NULL, "|"); if (server_cookie != NULL) { StrBufAppendPrintf(WCC->HBuf, ";path=/ \r\n%s\r\n", server_cookie); } else { StrBufAppendBufPlain(WCC->HBuf, HKEY("; path=/\r\n"), 0); } } } /* * Extract all that fun stuff out of the cookie. */ void cookie_to_stuff(StrBuf *cookie, int *session, StrBuf *user, StrBuf *pass, StrBuf *room, StrBuf *language) { if (session != NULL) { *session = StrBufExtract_int(cookie, 0, '|'); } if (user != NULL) { StrBufExtract_token(user, cookie, 1, '|'); } if (pass != NULL) { StrBufExtract_token(pass, cookie, 2, '|'); } if (room != NULL) { StrBufExtract_token(room, cookie, 3, '|'); } if (language != NULL) { StrBufExtract_token(language, cookie, 4, '|'); } } webcit-dfsg.orig/vcard_edit.c0000644000175000017500000007660413223341037016264 0ustar michaelmichael/* * Copyright (c) 1996-2017 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "calendar.h" CtxType CTX_VCARD = CTX_NONE; CtxType CTX_VCARD_LIST = CTX_NONE; CtxType CTX_VCARD_TYPE = CTX_NONE; long VCEnumCounter = 0; typedef enum _VCStrEnum { FlatString, StringCluster, PhoneNumber, EmailAddr, Address, Street, Number, AliasFor, Base64BinaryAttachment, UnKnown, TerminateList }VCStrEnum; typedef struct vcField vcField; struct vcField { ConstStr STR; VCStrEnum Type; vcField *Sub; long cval; long parentCVal; ConstStr Name; }; vcField VCStr_Ns [] = { {{HKEY("last")}, FlatString, NULL, 0, 0, {HKEY("Last Name")}}, {{HKEY("first")}, FlatString, NULL, 0, 0, {HKEY("First Name")}}, {{HKEY("middle")}, FlatString, NULL, 0, 0, {HKEY("Middle Name")}}, {{HKEY("prefix")}, FlatString, NULL, 0, 0, {HKEY("Prefix")}}, {{HKEY("suffix")}, FlatString, NULL, 0, 0, {HKEY("Suffix")}}, {{HKEY("")}, TerminateList, NULL, 0, 0, {HKEY("")}} }; vcField VCStr_Addrs [] = { {{HKEY("POBox")}, Address, NULL, 0, 0, {HKEY("PO box")}}, {{HKEY("extadr")}, Address, NULL, 0, 0, {HKEY("Address")}}, {{HKEY("street")}, Address, NULL, 0, 0, {HKEY("")}}, {{HKEY("city")}, Address, NULL, 0, 0, {HKEY("City")}}, {{HKEY("state")}, Address, NULL, 0, 0, {HKEY("State")}}, {{HKEY("zip")}, Address, NULL, 0, 0, {HKEY("ZIP code")}}, {{HKEY("country")}, Address, NULL, 0, 0, {HKEY("Country")}}, {{HKEY("")}, TerminateList, NULL, 0, 0, {HKEY("")}} }; vcField VCStrE [] = { {{HKEY("version")}, Number, NULL, 0, 0, {HKEY("")}}, {{HKEY("rev")}, Number, NULL, 0, 0, {HKEY("")}}, {{HKEY("label")}, FlatString, NULL, 0, 0, {HKEY("")}}, {{HKEY("uid")}, FlatString, NULL, 0, 0, {HKEY("")}}, {{HKEY("n")}, StringCluster, VCStr_Ns, 0, 0, {HKEY("")}}, /* N is name, but only if there's no FN already there */ {{HKEY("fn")}, FlatString, NULL, 0, 0, {HKEY("")}}, /* FN (full name) is a true 'display name' field */ {{HKEY("title")}, FlatString, NULL, 0, 0, {HKEY("Title:")}}, {{HKEY("org")}, FlatString, NULL, 0, 0, {HKEY("Organization:")}},/* organization */ {{HKEY("email")}, EmailAddr, NULL, 0, 0, {HKEY("E-mail:")}}, {{HKEY("tel")}, PhoneNumber, NULL, 0, 0, {HKEY("Telephone:")}}, {{HKEY("adr")}, StringCluster, VCStr_Addrs, 0, 0, {HKEY("Address:")}}, {{HKEY("photo")}, Base64BinaryAttachment, NULL, 0, 0, {HKEY("Photo:")}}, {{HKEY("tel;home")}, PhoneNumber, NULL, 0, 0, {HKEY(" (home)")}}, {{HKEY("tel;work")}, PhoneNumber, NULL, 0, 0, {HKEY(" (work)")}}, {{HKEY("tel;fax")}, PhoneNumber, NULL, 0, 0, {HKEY(" (fax)")}}, {{HKEY("tel;cell")}, PhoneNumber, NULL, 0, 0, {HKEY(" (cell)")}}, {{HKEY("email;internet")}, EmailAddr, NULL, 0, 0, {HKEY("E-mail:")}}, {{HKEY("UNKNOWN")}, UnKnown, NULL, 0, 0, {HKEY("")}}, {{HKEY("")}, TerminateList, NULL, 0, 0, {HKEY("")}} }; ConstStr VCStr [] = { {HKEY("")}, {HKEY("n")}, /* N is name, but only if there's no FN already there */ {HKEY("fn")}, /* FN (full name) is a true 'display name' field */ {HKEY("title")}, /* title */ {HKEY("org")}, /* organization */ {HKEY("email")}, {HKEY("tel")}, {HKEY("work")}, {HKEY("home")}, {HKEY("cell")}, {HKEY("adr")}, {HKEY("photo")}, {HKEY("version")}, {HKEY("rev")}, {HKEY("label")}, {HKEY("uid")} }; /* * Address book entry (keep it short and sweet, it's just a quickie lookup * which we can use to get to the real meat and bones later) */ typedef struct _addrbookent { StrBuf *name; HashList *VC; long ab_msgnum; /* message number of address book entry */ StrBuf *msgNoStr; } addrbookent; void deleteAbEnt(void *v) { addrbookent *vc = (addrbookent*)v; DeleteHash(&vc->VC); FreeStrBuf(&vc->name); FreeStrBuf(&vc->msgNoStr); free(vc); } HashList *DefineToToken = NULL; HashList *VCTokenToDefine = NULL; HashList *vcNames = NULL; /* todo: fill with the name strings */ vcField* vcfUnknown = NULL; /****************************************************************************** * initialize vcard structure * ******************************************************************************/ void RegisterVCardToken(vcField* vf, StrBuf *name, int inTokenCount) { if (vf->Type == UnKnown) { vcfUnknown = vf; } RegisterTokenParamDefine(SKEY(name), vf->cval); Put(DefineToToken, LKEY(vf->cval), vf, reference_free_handler); Put(vcNames, LKEY(vf->cval), NewStrBufPlain(CKEY(vf->Name)), HFreeStrBuf); syslog(LOG_DEBUG, "Token: %s -> %ld, %d", ChrPtr(name), vf->cval, inTokenCount); } void autoRegisterTokens(long *enumCounter, vcField* vf, StrBuf *BaseStr, int layer, long parentCVal) { int i = 0; StrBuf *subStr = NewStrBuf(); while (vf[i].STR.len > 0) { FlushStrBuf(subStr); vf[i].cval = (*enumCounter) ++; vf[i].parentCVal = parentCVal; StrBufAppendBuf(subStr, BaseStr, 0); if (StrLength(subStr) > 0) { StrBufAppendBufPlain(subStr, HKEY("."), 0); } StrBufAppendBufPlain(subStr, CKEY(vf[i].STR), 0); if (layer == 0) { Put(VCTokenToDefine, CKEY(vf[i].STR), &vf[i], reference_free_handler); } switch (vf[i].Type) { case FlatString: break; case StringCluster: { autoRegisterTokens(enumCounter, vf[i].Sub, subStr, 1, vf[i].cval); } break; case PhoneNumber: break; case EmailAddr: break; case Street: break; case Number: break; case AliasFor: break; case Base64BinaryAttachment: break; case TerminateList: break; case Address: break; case UnKnown: break; } RegisterVCardToken(&vf[i], subStr, i); i++; } FreeStrBuf(&subStr); } /****************************************************************************** * VCard template functions * ******************************************************************************/ int preeval_vcard_item(WCTemplateToken *Token) { WCTemplputParams TPP; WCTemplputParams *TP; int searchFieldNo; StrBuf *Target = NULL; memset(&TPP, 0, sizeof(WCTemplputParams)); TP = &TPP; TP->Tokens = Token; searchFieldNo = GetTemplateTokenNumber(Target, TP, 0, 0); if (searchFieldNo >= VCEnumCounter) { LogTemplateError(NULL, "VCardItem", ERR_PARM1, TP, "Invalid define"); return 0; } return 1; } void tmpl_vcard_item(StrBuf *Target, WCTemplputParams *TP) { void *vItem; long searchFieldNo = GetTemplateTokenNumber(Target, TP, 0, 0); addrbookent *ab = (addrbookent*) CTX(CTX_VCARD); if (GetHash(ab->VC, LKEY(searchFieldNo), &vItem) && (vItem != NULL)) { StrBufAppendTemplate(Target, TP, (StrBuf*) vItem, 1); } } void tmpl_vcard_context_item(StrBuf *Target, WCTemplputParams *TP) { void *vItem; vcField *t = (vcField*) CTX(CTX_VCARD_TYPE); addrbookent *ab = (addrbookent*) CTX(CTX_VCARD); if (t == NULL) { LogTemplateError(NULL, "VCard item", ERR_NAME, TP, "Missing context"); return; } if (GetHash(ab->VC, LKEY(t->cval), &vItem) && (vItem != NULL)) { StrBufAppendTemplate(Target, TP, (StrBuf*) vItem, 0); } else { LogTemplateError(NULL, "VCard item", ERR_NAME, TP, "Doesn't have that key - did you miss to filter in advance?"); } } int preeval_vcard_name_str(WCTemplateToken *Token) { WCTemplputParams TPP; WCTemplputParams *TP; int searchFieldNo; StrBuf *Target = NULL; memset(&TPP, 0, sizeof(WCTemplputParams)); TP = &TPP; TP->Tokens = Token; searchFieldNo = GetTemplateTokenNumber(Target, TP, 0, 0); if (searchFieldNo >= VCEnumCounter) { LogTemplateError(NULL, "VCardName", ERR_PARM1, TP, "Invalid define"); return 0; } return 1; } void tmpl_vcard_name_str(StrBuf *Target, WCTemplputParams *TP) { void *vItem; long searchFieldNo = GetTemplateTokenNumber(Target, TP, 0, 0); /* todo: get descriptive string for this vcard type */ if (GetHash(vcNames, LKEY(searchFieldNo), &vItem) && (vItem != NULL)) { StrBufAppendTemplate(Target, TP, (StrBuf*) vItem, 1); } else { LogTemplateError(NULL, "VCard item type", ERR_NAME, TP, "No i18n string for this."); return; } } void tmpl_vcard_msgno(StrBuf *Target, WCTemplputParams *TP) { addrbookent *ab = (addrbookent*) CTX(CTX_VCARD); if (ab->msgNoStr == NULL) { ab->msgNoStr = NewStrBufPlain(NULL, 64); } StrBufPrintf(ab->msgNoStr, "%ld", ab->ab_msgnum); StrBufAppendTemplate(Target, TP, ab->msgNoStr, 0); } void tmpl_vcard_context_name_str(StrBuf *Target, WCTemplputParams *TP) { void *vItem; vcField *t = (vcField*) CTX(CTX_VCARD_TYPE); if (t == NULL) { LogTemplateError(NULL, "VCard item type", ERR_NAME, TP, "Missing context"); return; } if (GetHash(vcNames, LKEY(t->cval), &vItem) && (vItem != NULL)) { StrBufAppendTemplate(Target, TP, (StrBuf*) vItem, 1); } else { LogTemplateError(NULL, "VCard item type", ERR_NAME, TP, "No i18n string for this."); return; } } int filter_VC_ByType(const char* key, long len, void *Context, StrBuf *Target, WCTemplputParams *TP) { long searchType; long type = 0; void *v; vcField *vf = (vcField*) Context; int rc = 0; memcpy(&type, key, sizeof(long)); searchType = GetTemplateTokenNumber(Target, TP, IT_ADDT_PARAM(0), 0); if (vf->Type == searchType) { addrbookent *ab = (addrbookent*) CTX(CTX_VCARD); if (GetHash(ab->VC, LKEY(vf->cval), &v) && v != NULL) { return 1; } } return rc; } HashList *getContextVcard(StrBuf *Target, WCTemplputParams *TP) { vcField *vf = (vcField*) CTX(CTX_VCARD_TYPE); addrbookent *ab = (addrbookent*) CTX(CTX_VCARD); if ((vf == NULL) || (ab == NULL)) { LogTemplateError(NULL, "VCard item type", ERR_NAME, TP, "Need VCard and Vcard type in context"); return NULL; } return ab->VC; } int filter_VC_ByContextType(const char* key, long len, void *Context, StrBuf *Target, WCTemplputParams *TP) { long searchType; vcField *vf = (vcField*) CTX(CTX_VCARD_TYPE); memcpy(&searchType, key, sizeof(long)); if (vf->cval == searchType) { return 1; } else { return 0; } } int conditional_VC_Havetype(StrBuf *Target, WCTemplputParams *TP) { addrbookent *ab = (addrbookent*) CTX(CTX_VCARD); long HaveFieldType = GetTemplateTokenNumber(Target, TP, 2, 0); int rc = 0; void *vVCitem; const char *Key; long len; HashPos *it = GetNewHashPos(ab->VC, 0); while (GetNextHashPos(ab->VC, it, &len, &Key, &vVCitem) && (vVCitem != NULL)) { void *vvcField; long type = 0; memcpy(&type, Key, sizeof(long)); if (GetHash(DefineToToken, LKEY(type), &vvcField) && (vvcField != NULL)) { vcField *t = (vcField*) vvcField; if (t && t->Type == HaveFieldType) { rc = 1; break; } } } DeleteHashPos(&it); return rc; } /****************************************************************************** * parse one VCard * ******************************************************************************/ void PutVcardItem(HashList *thisVC, vcField *thisField, StrBuf *ThisFieldStr, int is_qp, StrBuf *Swap) { /* if we have some untagged QP, detect it here. */ if (is_qp || (strstr(ChrPtr(ThisFieldStr), "=?")!=NULL)){ FlushStrBuf(Swap); StrBuf_RFC822_to_Utf8(Swap, ThisFieldStr, NULL, NULL); /* default charset, current charset */ SwapBuffers(Swap, ThisFieldStr); FlushStrBuf(Swap); } Put(thisVC, LKEY(thisField->cval), ThisFieldStr, HFreeStrBuf); } void parse_vcard(StrBuf *Target, struct vCard *v, HashList *VC, wc_mime_attachment *Mime) { StrBuf *Swap = NULL; int i, j, k; char buf[SIZ]; int is_qp = 0; int is_b64 = 0; int ntokens, len; StrBuf *thisname = NULL; char firsttoken[SIZ]; StrBuf *thisVCToken; void *vField = NULL; Swap = NewStrBuf (); thisname = NewStrBuf(); thisVCToken = NewStrBufPlain(NULL, 63); for (i=0; i<(v->numprops); ++i) { FlushStrBuf(thisVCToken); is_qp = 0; is_b64 = 0; // syslog(LOG_DEBUG, "i: %d oneprop: %s - value: %s", i, v->prop[i].name, v->prop[i].value); StrBufPlain(thisname, v->prop[i].name, -1); StrBufLowerCase(thisname); extract_token(firsttoken, ChrPtr(thisname), 0, ';', sizeof firsttoken); ntokens = num_tokens(ChrPtr(thisname), ';'); for (j=0, k=0; j < ntokens && k < 10; ++j) { len = extract_token(buf, ChrPtr(thisname), j, ';', sizeof buf); if (!strcasecmp(buf, "encoding=quoted-printable")) { is_qp = 1; } else if (!strcasecmp(buf, "encoding=base64")) { is_b64 = 1; } else { if (StrLength(thisVCToken) > 0) { StrBufAppendBufPlain(thisVCToken, HKEY(";"), 0); } StrBufAppendBufPlain(thisVCToken, buf, len, 0); } } vField = NULL; if ((StrLength(thisVCToken) > 0) && GetHash(VCTokenToDefine, SKEY(thisVCToken), &vField) && (vField != NULL)) { vcField *thisField = (vcField *)vField; StrBuf *ThisFieldStr = NULL; // syslog(LOG_DEBUG, "got this token: %s, found: %s", ChrPtr(thisVCToken), thisField->STR.Key); switch (thisField->Type) { case StringCluster: { int j = 0; const char *Pos = NULL; StrBuf *thisArray = NewStrBufPlain(v->prop[i].value, -1); StrBuf *Buf = NewStrBufPlain(NULL, StrLength(thisArray)); while (thisField->Sub[j].STR.len > 0) { StrBufExtract_NextToken(Buf, thisArray, &Pos, ';'); ThisFieldStr = NewStrBufDup(Buf); PutVcardItem(VC, &thisField->Sub[j], ThisFieldStr, is_qp, Swap); j++; } FreeStrBuf(&thisArray); FreeStrBuf(&Buf); } break; case Address: case FlatString: case PhoneNumber: case EmailAddr: case Street: case Number: case AliasFor: /* copy over the payload into a StrBuf */ ThisFieldStr = NewStrBufPlain(v->prop[i].value, -1); PutVcardItem(VC, thisField, ThisFieldStr, is_qp, Swap); break; case Base64BinaryAttachment: ThisFieldStr = NewStrBufPlain(v->prop[i].value, -1); StrBufDecodeBase64(ThisFieldStr); PutVcardItem(VC, thisField, ThisFieldStr, is_qp, Swap); break; case TerminateList: case UnKnown: break; } } else if (StrLength(thisVCToken) > 0) { /* Add it to the UNKNOWN field... */ void *pv = NULL; StrBuf *oldVal; GetHash(VC, IKEY(vcfUnknown->cval), &pv); oldVal = (StrBuf*) pv; if (oldVal == NULL) { oldVal = NewStrBuf(); Put(VC, IKEY(vcfUnknown->cval), oldVal, HFreeStrBuf); } else { StrBufAppendBufPlain(oldVal, HKEY("\n"), 0); } StrBufAppendBuf(oldVal, thisVCToken, 0); StrBufAppendBufPlain(oldVal, HKEY(":"), 0); StrBufAppendBufPlain(oldVal, v->prop[i].value, -1, 0); continue; } } FreeStrBuf(&thisname); FreeStrBuf(&Swap); FreeStrBuf(&thisVCToken); } HashList *CtxGetVcardList(StrBuf *Target, WCTemplputParams *TP) { HashList *pb = CTX(CTX_VCARD_LIST); return pb; } /****************************************************************************** * Extract an embedded photo from a vCard for display on the client * ******************************************************************************/ void display_vcard_photo_img(void) { long msgnum = 0L; StrBuf *vcard; struct vCard *v; char *photosrc; const char *contentType; wcsession *WCC = WC; msgnum = StrBufExtract_long(WCC->Hdr->HR.ReqLine, 0, '/'); vcard = load_mimepart(msgnum,"1"); v = VCardLoad(vcard); photosrc = vcard_get_prop(v, "PHOTO", 1,0,0); FlushStrBuf(WCC->WBuf); StrBufAppendBufPlain(WCC->WBuf, photosrc, -1, 0); if (StrBufDecodeBase64(WCC->WBuf) <= 0) { FlushStrBuf(WCC->WBuf); hprintf("HTTP/1.1 500 %s\n","Unable to get photo"); output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf(_("Could Not decode vcard photo\n")); end_burst(); return; } contentType = GuessMimeType(ChrPtr(WCC->WBuf), StrLength(WCC->WBuf)); http_transmit_thing(contentType, 0); free(v); free(photosrc); } wc_mime_attachment *load_vcard(message_summary *Msg) { HashPos *it; StrBuf *FoundCharset = NewStrBuf(); StrBuf *Error; void *vMime; const char *Key; long len; wc_mime_attachment *Mime; wc_mime_attachment *VCMime = NULL; Msg->MsgBody = (wc_mime_attachment*) malloc(sizeof(wc_mime_attachment)); memset(Msg->MsgBody, 0, sizeof(wc_mime_attachment)); Msg->MsgBody->msgnum = Msg->msgnum; load_message(Msg, FoundCharset, &Error); FreeStrBuf(&FoundCharset); /* look up the vcard... */ it = GetNewHashPos(Msg->AllAttach, 0); while (GetNextHashPos(Msg->AllAttach, it, &len, &Key, &vMime) && (vMime != NULL)) { Mime = (wc_mime_attachment*) vMime; if ((strcmp(ChrPtr(Mime->ContentType), "text/x-vcard") == 0) || (strcmp(ChrPtr(Mime->ContentType), "text/vcard") == 0)) { VCMime = Mime; break; } } DeleteHashPos(&it); if (VCMime == NULL) return NULL; if (VCMime->Data == NULL) MimeLoadData(VCMime); return VCMime; } /* * Edit the vCard component of a MIME message. * Supply the message number * and MIME part number to fetch. Or, specify -1 for the message number * to start with a blank card. */ void do_edit_vcard(long msgnum, char *partnum, message_summary *VCMsg, wc_mime_attachment *VCAtt, const char *return_to, const char *force_room) { WCTemplputParams SubTP; wcsession *WCC = WC; message_summary *Msg = NULL; wc_mime_attachment *VCMime = NULL; struct vCard *v; char whatuser[256]; addrbookent ab; memset(&ab, 0, sizeof(addrbookent)); ab.VC = NewHash(0, lFlathash); /* Display the form */ output_headers(1, 1, 1, 0, 0, 0); safestrncpy(whatuser, "", sizeof whatuser); if ((msgnum >= 0) || ((VCMsg != NULL) && (VCAtt != NULL))) { if ((VCMsg == NULL) && (VCAtt == NULL)) { Msg = (message_summary *) malloc(sizeof(message_summary)); memset(Msg, 0, sizeof(message_summary)); Msg->msgnum = msgnum; VCMime = load_vcard(Msg); if (VCMime == NULL) { convenience_page("770000", _("Error"), "");/*TODO: important message*/ DestroyMessageSummary(Msg); return; DeleteHash(&ab.VC); } v = VCardLoad(VCMime->Data); } else { v = VCardLoad(VCAtt->Data); } parse_vcard(WCC->WBuf, v, ab.VC, NULL); vcard_free(v); } memset(&SubTP, 0, sizeof(WCTemplputParams)); { WCTemplputParams *TP = NULL; WCTemplputParams SubTP; StackContext(TP, &SubTP, &ab, CTX_VCARD, 0, NULL); DoTemplate(HKEY("vcard_edit"), WCC->WBuf, &SubTP); UnStackContext(&SubTP); } DeleteHash(&ab.VC); wDumpContent(1); if (Msg != NULL) { DestroyMessageSummary(Msg); } } /* * commit the edits to the citadel server */ void edit_vcard(void) { long msgnum; char *partnum; msgnum = lbstr("msgnum"); partnum = bstr("partnum"); do_edit_vcard(msgnum, partnum, NULL, NULL, "", NULL); } /* * parse edited vcard from the browser */ void submit_vcard(void) { struct vCard *v; char *serialized_vcard; StrBuf *Buf; const StrBuf *ForceRoom; HashList* postVcard; HashPos *it, *itSub; const char *Key; long len; void *pv; StrBuf *SubStr; const StrBuf *s; const char *Pos = NULL; if (!havebstr("ok_button")) { readloop(readnew, eUseDefault); return; } if (havebstr("force_room")) { ForceRoom = sbstr("force_room"); if (gotoroom(ForceRoom) != 200) { AppendImportantMessage(_("Unable to enter the room to save your message"), -1); AppendImportantMessage(HKEY(": ")); AppendImportantMessage(SKEY(ForceRoom)); AppendImportantMessage(HKEY("; ")); AppendImportantMessage(_("Aborting."), -1); if (!strcmp(bstr("return_to"), "select_user_to_edit")) { select_user_to_edit(NULL); } else if (!strcmp(bstr("return_to"), "do_welcome")) { do_welcome(); } else if (!IsEmptyStr(bstr("return_to"))) { http_redirect(bstr("return_to")); } else { readloop(readnew, eUseDefault); } return; } } postVcard = getSubStruct(HKEY("VC")); if (postVcard == NULL) { AppendImportantMessage(_("An error has occurred."), -1); edit_vcard(); return;/*/// more details*/ } Buf = NewStrBuf(); serv_write(HKEY("ENT0 1|||4\n")); if (!StrBuf_ServGetln(Buf) && (GetServerStatus(Buf, NULL) != 4)) { edit_vcard(); return; } /* Make a vCard structure out of the data supplied in the form */ StrBufPrintf(Buf, "begin:vcard\r\n%s\r\nend:vcard\r\n", bstr("extrafields") ); v = VCardLoad(Buf); /* Start with the extra fields */ if (v == NULL) { AppendImportantMessage(_("An error has occurred."), -1); edit_vcard(); FreeStrBuf(&Buf); return; } SubStr = NewStrBuf(); it = GetNewHashPos(DefineToToken, 0); while (GetNextHashPos(DefineToToken, it, &len, &Key, &pv) && (pv != NULL)) { char buf[32]; long blen; vcField *t = (vcField*) pv; if (t->Sub != NULL){ vcField *Sub; FlushStrBuf(SubStr); itSub = GetNewHashPos(DefineToToken, 0); while (GetNextHashPos(DefineToToken, itSub, &len, &Key, &pv) && (pv != NULL)) { Sub = (vcField*) pv; if (Sub->parentCVal == t->cval) { if (StrLength(SubStr) > 0) StrBufAppendBufPlain(SubStr, HKEY(";"), 0); blen = snprintf(buf, sizeof(buf), "%ld", Sub->cval); s = SSubBstr(postVcard, buf, blen); if ((s != NULL) && (StrLength(s) > 0)) { /// todo: utf8 qp StrBufAppendBuf(SubStr, s, 0); } } } if (StrLength(SubStr) > 0) { vcard_add_prop(v, t->STR.Key, ChrPtr(SubStr)); } DeleteHashPos(&itSub); } else if (t->parentCVal == 0) { blen = snprintf(buf, sizeof(buf), "%ld", t->cval); s = SSubBstr(postVcard, buf, blen); if ((s != NULL) && (StrLength(s) > 0)) { vcard_add_prop(v, t->STR.Key, ChrPtr(s)); } } } DeleteHashPos(&it); s = sbstr("other_inetemail"); if (StrLength(s) > 0) { FlushStrBuf(SubStr); while (StrBufSipLine(SubStr, s, &Pos), ((Pos!=StrBufNOTNULL) && (Pos!=NULL)) ) { if (StrLength(SubStr) > 0) { vcard_add_prop(v, "email;internet", ChrPtr(SubStr)); } } } FreeStrBuf(&SubStr); serialized_vcard = vcard_serialize(v); vcard_free(v); if (serialized_vcard == NULL) { AppendImportantMessage(_("An error has occurred."), -1); edit_vcard(); FreeStrBuf(&Buf); return; } printf("%s", serialized_vcard); serv_write(HKEY("Content-type: text/x-vcard; charset=UTF-8\n")); serv_write(HKEY("\n")); serv_printf("%s\r\n", serialized_vcard); serv_write(HKEY("000\n")); free(serialized_vcard); if (!strcmp(bstr("return_to"), "select_user_to_edit")) { select_user_to_edit(NULL); } else if (!strcmp(bstr("return_to"), "do_welcome")) { do_welcome(); } else if (!IsEmptyStr(bstr("return_to"))) { http_redirect(bstr("return_to")); } else { readloop(readnew, eUseDefault); } FreeStrBuf(&Buf); } /****************************************************************************** * Render Addressbooks * ******************************************************************************/ typedef struct _vcardview_struct { long is_singlecard; HashList *addrbook; } vcardview_struct; int vcard_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { vcardview_struct *VS; VS = (vcardview_struct*) malloc (sizeof(vcardview_struct)); memset(VS, 0, sizeof(vcardview_struct)); *ViewSpecific = (void*)VS; VS->is_singlecard = ibstr("is_singlecard"); if (VS->is_singlecard != 1) { VS->addrbook = NewHash(0, NULL); if (oper == do_search) { snprintf(cmd, len, "MSGS SEARCH|%s", bstr("query")); } else { strcpy(cmd, "MSGS ALL"); } Stat->maxmsgs = 9999999; } return 200; } int vcard_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i) { wcsession *WCC = WC; WCTemplputParams *TP = NULL; WCTemplputParams SubTP; vcardview_struct *VS; wc_mime_attachment *VCMime = NULL; struct vCard *v; addrbookent* abEntry; VS = (vcardview_struct*) *ViewSpecific; VCMime = load_vcard(Msg); if (VCMime == NULL) return 0; v = VCardLoad(VCMime->Data); if (v == NULL) return 0; abEntry = (addrbookent*) malloc(sizeof(addrbookent)); memset(abEntry, 0, sizeof(addrbookent)); abEntry->name = NewStrBuf(); abEntry->VC = NewHash(0, lFlathash); abEntry->ab_msgnum = Msg->msgnum; parse_vcard(WCC->WBuf, v, abEntry->VC, VCMime); memset(&SubTP, 0, sizeof(WCTemplputParams)); StackContext(TP, &SubTP, abEntry, CTX_VCARD, 0, NULL); // No, don't display the name, it just shits all over the screen // DoTemplate(HKEY("vcard_list_name"), WCC->WBuf, &SubTP); UnStackContext(&SubTP); if (StrLength(abEntry->name) == 0) { StrBufPlain(abEntry->name, _("(no name)"), -1); } syslog(LOG_DEBUG, "abEntry->name : %s", ChrPtr(abEntry->name)); vcard_free(v); Put(VS->addrbook, SKEY(abEntry->name), abEntry, deleteAbEnt); return 0; } /* * Render the address book using info we gathered during the scan * * addrbook the addressbook to render * num_ab the number of the addressbook */ static int NAMESPERPAGE = 60; void do_addrbook_view(vcardview_struct* VS) { long i = 0; int num_pages = 0; int tabfirst = 0; int tablast = 0; StrBuf **tablabels; int num_ab = GetCount(VS->addrbook); HashList *headlines; wcsession *WCC = WC; WCTemplputParams *TP = NULL; WCTemplputParams SubTP; memset(&SubTP, 0, sizeof(WCTemplputParams)); if (num_ab == 0) { do_template("vcard_list_empty"); return; } if (num_ab > 1) { SortByHashKey(VS->addrbook, 1); } num_pages = (GetCount(VS->addrbook) / NAMESPERPAGE) + 1; tablabels = malloc(num_pages * sizeof (StrBuf *)); if (tablabels == NULL) { return; } headlines = NewHash(0, lFlathash); for (i=0; i (num_ab - 1)) tablast = (num_ab - 1); headline = NewStrBufPlain(NULL, StrLength(v1) + StrLength(v2) + 10); if (GetHashAt(VS->addrbook, tabfirst, &hklen1, &c1, &v1)) { a1 = (addrbookent*) v1; StrBufAppendBuf(headline, a1->name, 0); StrBuf_Utf8StrCut(headline, 3); if (GetHashAt(VS->addrbook, tablast, &hklen2, &c2, &v2)) { a2 = (addrbookent*) v2; StrBufAppendBufPlain(headline, HKEY(" - "), 0); StrBufAppendBuf(headline, a2->name, 0); StrBuf_Utf8StrCut(headline, 9); } } tablabels[i] = headline; Put(headlines, LKEY(i), headline, HFreeStrBuf); } StrTabbedDialog(WC->WBuf, num_pages, tablabels); StackContext(TP, &SubTP, VS->addrbook, CTX_VCARD_LIST, 0, NULL); DoTemplate(HKEY("vcard_list"), WCC->WBuf, &SubTP); UnStackContext(&SubTP); DeleteHash(&headlines); free(tablabels); StrBufAppendBufPlain(WCC->WBuf, HKEY("
  • "), 0);/* closes: id=global */ } int vcard_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { const StrBuf *Mime; vcardview_struct *VS; VS = (vcardview_struct*) *ViewSpecific; if (VS->is_singlecard) { read_message(WC->WBuf, HKEY("view_message"), lbstr("startmsg"), NULL, &Mime, NULL); } else { do_addrbook_view(VS); /* Render the address book */ } return 0; } int vcard_Cleanup(void **ViewSpecific) { vcardview_struct *VS; VS = (vcardview_struct*) *ViewSpecific; wDumpContent(1); if ((VS != NULL) && (VS->addrbook != NULL)) { DeleteHash(&VS->addrbook); } if (VS != NULL) { free(VS); } return 0; } void render_MIME_VCard(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); wcsession *WCC = WC; if (StrLength(Mime->Data) == 0) { MimeLoadData(Mime); } if (StrLength(Mime->Data) > 0) { struct vCard *v; StrBuf *Buf; Buf = NewStrBuf(); /** If it's my vCard I can edit it */ if ( (!strcasecmp(ChrPtr(WCC->CurRoom.name), USERCONFIGROOM)) || ((StrLength(WCC->CurRoom.name) > 11) && (!strcasecmp(&(ChrPtr(WCC->CurRoom.name)[11]), USERCONFIGROOM))) || (WCC->CurRoom.view == VIEW_ADDRESSBOOK) ) { StrBufAppendPrintf(Buf, "", Mime->msgnum, ChrPtr(Mime->PartNum)); StrBufAppendPrintf(Buf, "[%s]", _("edit")); } /* In all cases, display the full card */ v = VCardLoad(Mime->Data); if (v != NULL) { WCTemplputParams *TP = NULL; WCTemplputParams SubTP; addrbookent ab; memset(&ab, 0, sizeof(addrbookent)); ab.VC = NewHash(0, lFlathash); ab.ab_msgnum = Mime->msgnum; parse_vcard(Target, v, ab.VC, Mime); memset(&SubTP, 0, sizeof(WCTemplputParams)); StackContext(TP, &SubTP, &ab, CTX_VCARD, 0, NULL); DoTemplate(HKEY("vcard_msg_display"), Target, &SubTP); UnStackContext(&SubTP); DeleteHash(&ab.VC); vcard_free(v); } else { StrBufPlain(Buf, _("failed to load vcard"), -1); } FreeStrBuf(&Mime->Data); Mime->Data = Buf; } } void ServerStartModule_VCARD (void) { } void ServerShutdownModule_VCARD (void) { DeleteHash(&DefineToToken); DeleteHash(&vcNames); DeleteHash(&VCTokenToDefine); } void InitModule_VCARD (void) { StrBuf *Prefix = NewStrBufPlain(HKEY("VC:")); DefineToToken = NewHash(1, lFlathash); vcNames = NewHash(1, lFlathash); VCTokenToDefine = NewHash(1, NULL); autoRegisterTokens(&VCEnumCounter, VCStrE, Prefix, 0, 0); FreeStrBuf(&Prefix); REGISTERTokenParamDefine(NAMESPERPAGE); RegisterCTX(CTX_VCARD); RegisterCTX(CTX_VCARD_LIST); RegisterCTX(CTX_VCARD_TYPE); RegisterReadLoopHandlerset( VIEW_ADDRESSBOOK, vcard_GetParamsGetServerCall, NULL, NULL, NULL, vcard_LoadMsgFromServer, vcard_RenderView_or_Tail, vcard_Cleanup, NULL); RegisterIterator("MAIL:VCARDS", 0, NULL, CtxGetVcardList, NULL, NULL, CTX_VCARD, CTX_VCARD_LIST, IT_NOFLAG); WebcitAddUrlHandler(HKEY("edit_vcard"), "", 0, edit_vcard, 0); WebcitAddUrlHandler(HKEY("submit_vcard"), "", 0, submit_vcard, 0); WebcitAddUrlHandler(HKEY("vcardphoto"), "", 0, display_vcard_photo_img, NEED_URL); RegisterNamespace("VC:ITEM", 2, 2, tmpl_vcard_item, preeval_vcard_item, CTX_VCARD); RegisterNamespace("VC:CTXITEM", 1, 1, tmpl_vcard_context_item, NULL, CTX_VCARD_TYPE); RegisterNamespace("VC:NAME", 1, 1, tmpl_vcard_name_str, preeval_vcard_name_str, CTX_VCARD); RegisterNamespace("VC:MSGNO", 0, 1, tmpl_vcard_msgno, NULL, CTX_VCARD); RegisterNamespace("VC:CTXNAME", 1, 1, tmpl_vcard_context_name_str, NULL, CTX_VCARD_TYPE); REGISTERTokenParamDefine(FlatString); REGISTERTokenParamDefine(StringCluster); REGISTERTokenParamDefine(PhoneNumber); REGISTERTokenParamDefine(EmailAddr); REGISTERTokenParamDefine(Street); REGISTERTokenParamDefine(Number); REGISTERTokenParamDefine(AliasFor); REGISTERTokenParamDefine(Base64BinaryAttachment); REGISTERTokenParamDefine(TerminateList); REGISTERTokenParamDefine(Address); RegisterConditional("VC:HAVE:TYPE", 1, conditional_VC_Havetype, CTX_VCARD); RegisterFilteredIterator("VC:TYPE", 1, DefineToToken, NULL, NULL, NULL, filter_VC_ByType, CTX_VCARD_TYPE, CTX_VCARD, IT_NOFLAG); RegisterFilteredIterator("VC:TYPE:ITEMS", 0, NULL, getContextVcard, NULL, NULL, filter_VC_ByContextType, CTX_STRBUF, CTX_VCARD_TYPE, IT_NOFLAG); RegisterMimeRenderer(HKEY("text/x-vcard"), render_MIME_VCard, 1, 201); RegisterMimeRenderer(HKEY("text/vcard"), render_MIME_VCard, 1, 200); } webcit-dfsg.orig/summary.c0000644000175000017500000001143313223341037015642 0ustar michaelmichael/* * Displays the "Summary Page" * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "calendar.h" extern int calendar_summary_view(void); /* * Display today's date in a friendly format */ void output_date(void) { struct tm tm; time_t now; char buf[128]; time(&now); localtime_r(&now, &tm); wc_strftime(buf, 32, "%A, %x", &tm); wc_printf("%s", buf); } void tmplput_output_date(StrBuf *Target, WCTemplputParams *TP) { struct tm tm; time_t now; char buf[128]; size_t n; time(&now); localtime_r(&now, &tm); n = wc_strftime(buf, 32, "%A, %x", &tm); StrBufAppendBufPlain(Target, buf, n, 0); } /* * New messages section */ void new_messages_section(void) { char buf[SIZ]; char room[SIZ]; int i; int number_of_rooms_to_check; char *rooms_to_check = "Mail|Lobby"; number_of_rooms_to_check = num_tokens(rooms_to_check, '|'); if (number_of_rooms_to_check == 0) return; wc_printf("\n"); for (i=0; i\n", extract_int(&buf[4], 1), extract_int(&buf[4], 2) ); } } wc_printf("
    "); escputs(room); wc_printf("%d/%d
    \n"); } /* * Task list section */ void tasks_section(void) { int num_msgs = 0; HashPos *at; const char *HashKey; long HKLen; void *vMsg; message_summary *Msg; wcsession *WCC = WC; StrBuf *Buf; SharedMessageStatus Stat; memset(&Stat, 0, sizeof(SharedMessageStatus)); Stat.maxload = 10000; Stat.lowest_found = (-1); Stat.highest_found = (-1); Buf = NewStrBufPlain(HKEY("_TASKS_")); gotoroom(Buf); FreeStrBuf(&Buf); if (WCC->CurRoom.view != VIEW_TASKS) { num_msgs = 0; } else { num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0); } if (num_msgs > 0) { at = GetNewHashPos(WCC->summ, 0); while (GetNextHashPos(WCC->summ, at, &HKLen, &HashKey, &vMsg)) { Msg = (message_summary*) vMsg; tasks_LoadMsgFromServer(NULL, NULL, Msg, 0, 0); } DeleteHashPos(&at); } if (calendar_summary_view() < 1) { wc_printf(""); wc_printf(_("(None)")); wc_printf("
    \n"); } } /* * Calendar section */ void calendar_section(void) { char cmd[SIZ]; char filter[SIZ]; int num_msgs = 0; HashPos *at; const char *HashKey; long HKLen; void *vMsg; message_summary *Msg; wcsession *WCC = WC; StrBuf *Buf; void *v = NULL; SharedMessageStatus Stat; memset(&Stat, 0, sizeof(SharedMessageStatus)); Stat.maxload = 10000; Stat.lowest_found = (-1); Stat.highest_found = (-1); Buf = NewStrBufPlain(HKEY("_CALENDAR_")); gotoroom(Buf); FreeStrBuf(&Buf); if ( (WC->CurRoom.view != VIEW_CALENDAR) && (WC->CurRoom.view != VIEW_CALBRIEF) ) { num_msgs = 0; } else { num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0); } calendar_GetParamsGetServerCall(&Stat, &v, readnew, cmd, sizeof(cmd), filter, sizeof(filter)); if (num_msgs > 0) { at = GetNewHashPos(WCC->summ, 0); while (GetNextHashPos(WCC->summ, at, &HKLen, &HashKey, &vMsg)) { Msg = (message_summary*) vMsg; calendar_LoadMsgFromServer(NULL, &v, Msg, 0, 0); } DeleteHashPos(&at); } if (calendar_summary_view() < 1) { wc_printf(""); wc_printf(_("(Nothing)")); wc_printf("
    \n"); } __calendar_Cleanup(&v); } void tmplput_new_messages_section(StrBuf *Target, WCTemplputParams *TP) { new_messages_section(); } void tmplput_tasks_section(StrBuf *Target, WCTemplputParams *TP) { tasks_section(); } void tmplput_calendar_section(StrBuf *Target, WCTemplputParams *TP) { calendar_section(); } /* * summary page */ void display_summary_page(void) { output_headers(1, 1, 1, 0, 0, 0); do_template("summary_page"); wDumpContent(1); } void InitModule_SUMMARY (void) { RegisterNamespace("TIME:NOW", 0, 0, tmplput_output_date, NULL, CTX_NONE); WebcitAddUrlHandler(HKEY("summary"), "", 0, display_summary_page, ANONYMOUS); WebcitAddUrlHandler(HKEY("new_messages_html"), "", 0, new_messages_section, AJAX); WebcitAddUrlHandler(HKEY("tasks_inner_html"), "", 0, tasks_section, AJAX); WebcitAddUrlHandler(HKEY("calendar_inner_html"), "", 0, calendar_section, AJAX); } webcit-dfsg.orig/subst.h0000644000175000017500000003373713223341037015325 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * subst template processing functions */ extern HashList *Conditionals; extern HashList *GlobalNS; extern HashList *Iterators; extern HashList *WirelessTemplateCache; extern HashList *WirelessLocalTemplateCache; extern HashList *TemplateCache; extern HashList *LocalTemplateCache; #define TYPE_STR 1 #define TYPE_LONG 2 #define TYPE_PREFSTR 3 #define TYPE_ROOMPREFSTR 4 #define TYPE_PREFINT 5 #define TYPE_GETTEXT 6 #define TYPE_BSTR 7 #define TYPE_SUBTEMPLATE 8 #define TYPE_INTDEFINE 9 #define MAXPARAM 25 #define IS_NUMBER(a) ((a == TYPE_LONG) || (a == TYPE_PREFINT) || (a == TYPE_INTDEFINE)) /* * \brief Values for wcs_type */ enum { WCS_STRING, /* its a string */ WCS_FUNCTION, /* its a function callback */ WCS_SERVCMD, /* its a command to send to the citadel server */ WCS_STRBUF, /* its a strbuf we own */ WCS_STRBUF_REF, /* its a strbuf we mustn't free */ WCS_LONG /* its an integer */ }; #define CTX_NONE 0 typedef int CtxType; typedef struct __CtxTypeStruct { CtxType Type; StrBuf *Name; } CtxTypeStruct; CtxTypeStruct *GetContextType(CtxType Type); void RegisterContextType(const char *name, long len, CtxType *TheCtx); #define RegisterCTX(a) RegisterContextType(#a, sizeof(#a) - 1, &a) extern CtxType CTX_STRBUF; extern CtxType CTX_STRBUFARR; extern CtxType CTX_LONGVECTOR; /** * @ingroup subst * ContextFilter resembles our RTTI information. With this structure * we can make shure a tmplput function can live with the environment * we call it in. * if not, we will log/print an error and refuse to call it. */ typedef struct _contexts { CtxType ContextType; /* do we require a User Context ? */ int nMinArgs; /* How many arguments do we need at least? */ int nMaxArgs; /* up to how many arguments can we handle? */ } ContextFilter; /* Forward declarations... */ typedef struct WCTemplateToken WCTemplateToken; typedef struct WCTemplputParams WCTemplputParams; /* this is the signature of a tmplput function */ typedef void (*WCHandlerFunc)(StrBuf *Target, WCTemplputParams *TP); /* if you want to pre-evaluate parts of your token, or do additional syntax, use this. */ typedef int (*WCPreevalFunc)(WCTemplateToken *Token); /* make a template token a lookup key: */ #define TKEY(a) TP->Tokens->Params[a]->Start, TP->Tokens->Params[a]->len void *GetContextPayload(WCTemplputParams *TP, CtxType ContextType); #define CTX(a) GetContextPayload(TP, a) /** * @ingroup subst * this is the signature of a conditional function * Note: Target is just passed in for error messages; don't write onto it in regular cases. */ typedef int (*WCConditionalFunc)(StrBuf *Target, WCTemplputParams *TP); typedef enum _eBitMask { eNO = 0, eOR, eAND }eBitMask; typedef struct _TemplateParam { /* are we a string or a number? */ int Type; /* string data: */ const char *Start; long len; /* if we're a number: */ long lvalue; eBitMask MaskBy; } TemplateParam; /** * @ingroup subst * Representation of a token; everything thats inbetween */ struct WCTemplateToken { /* Reference to the filename we're in to print error messages; not to be freed */ const StrBuf *FileName; /* Raw copy of our original token; for error printing */ StrBuf *FlatToken; /* Which line did the template parser pick us up in? For error printing */ long Line; /* our position in the template cache buffer */ const char *pTokenStart; /* our token length */ size_t TokenStart; size_t TokenEnd; /* point after us */ const char *pTokenEnd; /* just our token name: */ const char *pName; size_t NameEnd; /* stuff the pre-evaluater finds out: */ int Flags; /* pointer to our runntime evaluator; so we can cache this and save hash-lookups */ void *PreEval; void *Preeval2; /* if we have parameters here we go: */ /* do we have parameters or not? */ int HaveParameters; /* How many of them? */ int nParameters; /* the parameters */ TemplateParam *Params[MAXPARAM]; }; struct WCTemplputParams { ContextFilter Filter; void *Context; int nArgs; WCTemplateToken *Tokens; WCTemplputParams *Sub, *Super; WCConditionalFunc ExitCtx; long ExitCTXID; }; typedef struct _ConditionalStruct { ContextFilter Filter; const char *PlainName; WCConditionalFunc CondF; WCConditionalFunc CondExitCtx; } ConditionalStruct; typedef void (*SubTemplFunc)(StrBuf *TemplBuffer, WCTemplputParams *TP); typedef HashList *(*RetrieveHashlistFunc)(StrBuf *Target, WCTemplputParams *TP); typedef void (*HashDestructorFunc) (HashList **KillMe); typedef int (*FilterByParamFunc)(const char* key, long len, void *Context, StrBuf *Target, WCTemplputParams *TP); extern WCTemplputParams NoCtx; #define HAVE_PARAM(a) (TP->Tokens->nParameters > a) #define ERR_NAME 0 #define ERR_PARM1 1 #define ERR_PARM2 2 /** * @ingroup subst * @brief log an error while evaluating a token; print it to the actual template * @param Target your Target Buffer to print the error message next to the log * @param Type What sort of thing are we talking about? Tokens? Conditionals? * @param TP grab our set of default information here * @param Format for the custom error message */ void LogTemplateError (StrBuf *Target, const char *Type, int ErrorPos, WCTemplputParams *TP, const char *Format, ...)__attribute__((__format__(__printf__,5,6))); /** * @ingroup subst * @brief log an error while in global context; print it to Wildfire / Target * @param Target your Target Buffer to print the error message next to the log * @param Type What sort of thing are we talking about? Tokens? Conditionals? * @param Format for the custom error message */ void LogError (StrBuf *Target, const char *Type, const char *Format, ...); /** * @ingroup subst * @brief get the actual value of a token parameter * in your tmplputs or conditionals use this function to access parameters that can also be * retrieved from dynamic facilities: * _ -> Gettext; retrieve this token from the i18n facilities * : -> lookup a setting of that name * B -> bstr; an URL-Parameter * = -> subtemplate; parse a template by this name, and treat its content as this tokens value * * @param N which token do you want to lookup? * @param Value reference to the string of the token; don't free me. * @param len the length of Value */ void GetTemplateTokenString(StrBuf *Target, WCTemplputParams *TP, int N, const char **Value, long *len); /** * @ingroup subst * @return whether @ref GetTemplateTokenString would be able to give you a string */ int HaveTemplateTokenString(StrBuf *Target, WCTemplputParams *TP, int N, const char **Value, long *len); /** * @ingroup subst * @brief get the actual integer value of a token parameter * in your tmplputs or conditionals use this function to access parameters that can also be * retrieved from dynamic facilities: * _ -> Gettext; retrieve this token from the i18n facilities * : -> lookup a setting of that name * B -> bstr; an URL-Parameter * = -> subtemplate; parse a template by this name, and treat its content as this tokens value * * @param N which token do you want to lookup? * @param dflt default value to be retrieved if not found in preferences * \returns the long value */ long GetTemplateTokenNumber(StrBuf *Target, WCTemplputParams *TP, int N, long dflt); /** * @brief put a token value into the template * use this function to append your strings into a Template. * it can escape your string according to the token at FormattypeIndex: * H: de-QP and utf8-ify * X: escapize for HTML * J: JSON Escapize * @param Target the destination buffer * @param TP the template token information * @param Source string to append * @param FormatTypeIndex which parameter contains the escaping functionality? * if this token doesn't have as much parameters, plain append is done. */ void StrBufAppendTemplate(StrBuf *Target, WCTemplputParams *TP, const StrBuf *Source, int FormatTypeIndex); void StrBufAppendTemplateStr(StrBuf *Target, WCTemplputParams *TP, const char *Source, int FormatTypeIndex); #define RegisterNamespace(a, b, c, d, e, f) RegisterNS(a, sizeof(a)-1, b, c, d, e, f) /** * @ingroup subst * @brief register a template token handler * call this function in your InitModule_MODULENAME which will be called at the server start * @param nMinArgs how much parameters does your token require at least? * @param nMaxArgs how many parameters does your token accept? * @param HandlerFunc your callback when the template is rendered and your token is there * @param PreEvalFunc is called when the template is parsed; you can do additional * syntax checks here or pre-evaluate stuff for better performance * @param ContextRequired if your token requires a specific context, else say CTX_NONE here. */ void RegisterNS(const char *NSName, long len, int nMinArgs, int nMaxArgs, WCHandlerFunc HandlerFunc, WCPreevalFunc PreEvalFunc, int ContextRequired); /** * @ingroup subst * @brief register a conditional token handler * call this function in your InitModule_MODULENAME which will be called at the server start * conditionals can be ? or ! with a pair or % similar to an implicit if * @param Name whats the name of your conditional? should start with COND: * @param len the token length so we don't have to measure it. * @param nParams how many parameters does your conditional need on top of the default conditional parameters * @param CondF your Callback to be called when the template is evaluated at runtime; return 0 or 1 to us please. * @param ExitCtxCond if non-NULL, will be called after the area of the conditional is left behind. * @param ContextRequired if your token requires a specific context, else say CTX_NONE here. */ void RegisterContextConditional(const char *Name, long len, int nParams, WCConditionalFunc CondF, WCConditionalFunc ExitCtxCond, int ContextRequired); #define RegisterCtxConditional(Name, nParams, CondF, ExitCtxCond, ContextRequired) \ RegisterContextConditional(Name, sizeof(Name) -1, nParams, CondF, ExitCtxCond, ContextRequired) #define RegisterConditional(Name, nParams, CondF, ContextRequired) \ RegisterContextConditional(Name, sizeof(Name) -1, nParams, CondF, NULL, ContextRequired) /** * @ingroup subst * @brief register a string that will represent a long value * this will allow to resolve to Value; that way * plain strings can be used an lexed in templates without having the * lookup overhead at runtime. * @param Name The name of the define * @param len length of Name * @param Value the value to associate with Name */ void RegisterTokenParamDefine(const char *Name, long len, long Value); /** * teh r0x0r! forward your favourite define from C to the templates with one easy call! */ #define REGISTERTokenParamDefine(a) RegisterTokenParamDefine(#a, sizeof(#a) - 1, a); /** * @ingroup subst * @brief retrieve the long value of a registered string define * @param Name The name of the define * @param len length of Name * @param Value the value to return if not found */ long GetTokenDefine(const char *Name, long len, long DefValue); #define IT_NOFLAG 0 #define IT_FLAG_DETECT_GROUPCHANGE (1<<0) #define IT_ADDT_PARAM(n) 5 + n /* If you have AdditionalParams, use this macro to fetch them. */ #define RegisterIterator(a, b, c, d, e, f, g, h, i) RegisterITERATOR(a, sizeof(a)-1, b, c, d, e, f, NULL, g, h, i) #define RegisterFilteredIterator(a, b, c, d, e, f, g, h, i, j) RegisterITERATOR(a, sizeof(a)-1, b, c, d, e, f, g, h, i, j) void RegisterITERATOR(const char *Name, long len, /* Our identifier */ int AdditionalParams, /* do we use more parameters? */ HashList *StaticList, /* pointer to webcit lifetime hashlists */ RetrieveHashlistFunc GetHash, /* else retrieve the hashlist by calling this function */ SubTemplFunc DoSubTempl, /* call this function on each iteration for svput & friends */ HashDestructorFunc Destructor, /* use this function to shut down the hash; NULL if its a reference */ FilterByParamFunc Filter, /* use this function if you want to skip items */ CtxType ContextType, /* which context do we provide to the subtemplate? */ CtxType XPectContextType, /* which context do we expct to be called in? */ int Flags); void StackDynamicContext(WCTemplputParams *Super, WCTemplputParams *Sub, void *Context, CtxType ContextType, int nArgs, WCTemplateToken *Tokens, WCConditionalFunc ExitCtx, long ExitCTXID); #define StackContext(Super, Sub, Context, ContextType, nArgs, Tokens) \ StackDynamicContext(Super, Sub, Context, ContextType, nArgs, Tokens, NULL, 0) void UnStackContext(WCTemplputParams *Sub); CompareFunc RetrieveSort(WCTemplputParams *TP, const char *OtherPrefix, long OtherPrefixLen, const char *Default, long ldefault, long DefaultDirection); void RegisterSortFunc(const char *name, long len, const char *prepend, long preplen, CompareFunc Forward, CompareFunc Reverse, CompareFunc GroupChange, CtxType ContextType); void dbg_print_longvector(long *LongVector); #define do_template(a) DoTemplate(a, sizeof(a) -1, NULL, &NoCtx) const StrBuf *DoTemplate(const char *templatename, long len, StrBuf *Target, WCTemplputParams *TP); void url_do_template(void); int CompareSubstToToken(TemplateParam *ParamToCompare, TemplateParam *ParamToLookup); int CompareSubstToStrBuf(StrBuf *Compare, TemplateParam *ParamToLookup); webcit-dfsg.orig/netconf.c0000644000175000017500000001616613223341037015611 0ustar michaelmichael#include "webcit.h" void display_netconf(void); CtxType CTX_NODECONF = CTX_NONE; /*----------------------------------------------------------------------*/ /* Business Logic */ /*----------------------------------------------------------------------*/ typedef struct _nodeconf { int DeleteMe; StrBuf *NodeName; StrBuf *Secret; StrBuf *Host; StrBuf *Port; }NodeConf; void DeleteNodeConf(void *vNode) { NodeConf *Node = (NodeConf*) vNode; FreeStrBuf(&Node->NodeName); FreeStrBuf(&Node->Secret); FreeStrBuf(&Node->Host); FreeStrBuf(&Node->Port); free(Node); } NodeConf *NewNode(StrBuf *SerializedNode) { NodeConf *Node; if (StrLength(SerializedNode) < 8) return NULL; /** we need at least 4 pipes and some other text so its invalid. */ Node = (NodeConf *) malloc(sizeof(NodeConf)); Node->DeleteMe = 0; Node->NodeName=NewStrBuf(); StrBufExtract_token(Node->NodeName, SerializedNode, 0, '|'); Node->Secret=NewStrBuf(); StrBufExtract_token(Node->Secret, SerializedNode, 1, '|'); Node->Host=NewStrBuf(); StrBufExtract_token(Node->Host, SerializedNode, 2, '|'); Node->Port=NewStrBuf(); StrBufExtract_token(Node->Port, SerializedNode, 3, '|'); return Node; } NodeConf *HttpGetNewNode(void) { NodeConf *Node; if (!havebstr("node") || !havebstr("secret")|| !havebstr("host")|| !havebstr("port")) return NULL; Node = (NodeConf *) malloc(sizeof(NodeConf)); Node->DeleteMe = 0; Node->NodeName = NewStrBufDup(sbstr("node")); Node->Secret = NewStrBufDup(sbstr("secret")); Node->Host = NewStrBufDup(sbstr("host")); Node->Port = NewStrBufDup(sbstr("port")); return Node; } void SerializeNode(NodeConf *Node, StrBuf *Buf) { StrBufPrintf(Buf, "%s|%s|%s|%s", ChrPtr(Node->NodeName), ChrPtr(Node->Secret), ChrPtr(Node->Host), ChrPtr(Node->Port)); } HashList *load_netconf(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Buf; HashList *Hash; char nnn[64]; char buf[SIZ]; int nUsed; NodeConf *Node; serv_puts("CONF getsys|application/x-citadel-ignet-config"); serv_getln(buf, sizeof buf); if (buf[0] == '1') { Hash = NewHash(1, NULL); Buf = NewStrBuf(); while (StrBuf_ServGetln(Buf), strcmp(ChrPtr(Buf), "000")) { Node = NewNode(Buf); if (Node != NULL) { nUsed = GetCount(Hash); nUsed = snprintf(nnn, sizeof(nnn), "%d", nUsed+1); Put(Hash, nnn, nUsed, Node, DeleteNodeConf); } } FreeStrBuf(&Buf); return Hash; } return NULL; } void save_net_conf(HashList *Nodelist) { char buf[SIZ]; StrBuf *Buf; HashPos *where; void *vNode; NodeConf *Node; const char *Key; long KeyLen; serv_puts("CONF putsys|application/x-citadel-ignet-config"); serv_getln(buf, sizeof buf); if (buf[0] == '4') { if ((Nodelist != NULL) && (GetCount(Nodelist) > 0)) { where = GetNewHashPos(Nodelist, 0); Buf = NewStrBuf(); while (GetNextHashPos(Nodelist, where, &KeyLen, &Key, &vNode)) { Node = (NodeConf*) vNode; if (Node->DeleteMe==0) { SerializeNode(Node, Buf); serv_putbuf(Buf); } } FreeStrBuf(&Buf); DeleteHashPos(&where); } serv_puts("000"); } } /*----------------------------------------------------------------------*/ /* WEB Handlers */ /*----------------------------------------------------------------------*/ /* * edit a network node */ void edit_node(void) { HashList *NodeConfig; const StrBuf *Index; NodeConf *NewNode; if (havebstr("ok_button")) { Index = sbstr("index"); NewNode = HttpGetNewNode(); if ((NewNode == NULL) || (Index == NULL)) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } NodeConfig = load_netconf(NULL, &NoCtx); Put(NodeConfig, ChrPtr(Index), StrLength(Index), NewNode, DeleteNodeConf); save_net_conf(NodeConfig); DeleteHash(&NodeConfig); } url_do_template(); } /* * modify an existing node */ void display_edit_node(void) { WCTemplputParams SubTP; HashList *NodeConfig; const StrBuf *Index; void *vNode; const StrBuf *Tmpl; Index = sbstr("index"); if (Index == NULL) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } NodeConfig = load_netconf(NULL, &NoCtx); if (!GetHash(NodeConfig, ChrPtr(Index), StrLength(Index), &vNode) || (vNode == NULL)) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); DeleteHash(&NodeConfig); return; } StackContext(NULL, &SubTP, vNode, CTX_NODECONF, 0, NULL); { begin_burst(); Tmpl = sbstr("template"); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(SKEY(Tmpl), NULL, &SubTP); end_burst(); } UnStackContext(&SubTP); DeleteHash(&NodeConfig); } /* * display all configured nodes */ void display_netconf(void) { wDumpContent(1); } /* * display the dialog to verify the deletion */ void display_confirm_delete_node(void) { wDumpContent(1); } /* * actually delete the node */ void delete_node(void) { HashList *NodeConfig; const StrBuf *Index; NodeConf *Node; void *vNode; Index = sbstr("index"); if (Index == NULL) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } NodeConfig = load_netconf(NULL, &NoCtx); if (!GetHash(NodeConfig, ChrPtr(Index), StrLength(Index), &vNode) || (vNode == NULL)) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); DeleteHash(&NodeConfig); return; } Node = (NodeConf *) vNode; Node->DeleteMe = 1; save_net_conf(NodeConfig); DeleteHash(&NodeConfig); url_do_template(); } void tmplput_NodeName(StrBuf *Target, WCTemplputParams *TP) { NodeConf *Node = (NodeConf*) CTX(CTX_NODECONF); StrBufAppendTemplate(Target, TP, Node->NodeName, 0); } void tmplput_Secret(StrBuf *Target, WCTemplputParams *TP) { NodeConf *Node = (NodeConf*) CTX(CTX_NODECONF); StrBufAppendTemplate(Target, TP, Node->Secret, 0); } void tmplput_Host(StrBuf *Target, WCTemplputParams *TP) { NodeConf *Node= (NodeConf*) CTX(CTX_NODECONF); StrBufAppendTemplate(Target, TP, Node->Host, 0); } void tmplput_Port(StrBuf *Target, WCTemplputParams *TP) { NodeConf *Node= (NodeConf*) CTX(CTX_NODECONF); StrBufAppendTemplate(Target, TP, Node->Port, 0); } void InitModule_NETCONF (void) { RegisterCTX(CTX_NODECONF); WebcitAddUrlHandler(HKEY("display_edit_node"), "", 0, display_edit_node, 0); WebcitAddUrlHandler(HKEY("aide_ignetconf_edit_node"), "", 0, edit_node, 0); WebcitAddUrlHandler(HKEY("display_netconf"), "", 0, display_netconf, 0); WebcitAddUrlHandler(HKEY("display_confirm_delete_node"), "", 0, display_confirm_delete_node, 0); WebcitAddUrlHandler(HKEY("delete_node"), "", 0, delete_node, 0); RegisterNamespace("CFG:IGNET:NODE", 0, 1, tmplput_NodeName, NULL, CTX_NODECONF); RegisterNamespace("CFG:IGNET:SECRET", 0, 1, tmplput_Secret, NULL, CTX_NODECONF); RegisterNamespace("CFG:IGNET:HOST", 0, 1, tmplput_Host, NULL, CTX_NODECONF); RegisterNamespace("CFG:IGNET:PORT", 0, 1, tmplput_Port, NULL, CTX_NODECONF); RegisterIterator("NODECONFIG", 0, NULL, load_netconf, NULL, DeleteHash, CTX_NODECONF, CTX_NONE, IT_NOFLAG); } webcit-dfsg.orig/modules_init.c0000644000175000017500000003566113223341060016645 0ustar michaelmichael/* * /var/www/easyinstall/citadel/webcit/modules_init.c * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE */ #include "sysdep.h" #include #include #include #include #include #include #include #include "webcit.h" #include "modules_init.h" #include "webserver.h" void LogPrintMessages(long err); extern long DetailErrorFlags; void start_modules (void) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting CONTEXT\n"); #endif ServerStartModule_CONTEXT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting DAV\n"); #endif ServerStartModule_DAV(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting ICONBAR\n"); #endif ServerStartModule_ICONBAR(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting ICONTHEME\n"); #endif ServerStartModule_ICONTHEME(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting MSGRENDERERS\n"); #endif ServerStartModule_MSGRENDERERS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting PREFERENCES\n"); #endif ServerStartModule_PREFERENCES(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting SERV_FUNC\n"); #endif ServerStartModule_SERV_FUNC(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting SITECONFIG\n"); #endif ServerStartModule_SITECONFIG(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting SMTP_QUEUE\n"); #endif ServerStartModule_SMTP_QUEUE(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting STATIC\n"); #endif ServerStartModule_STATIC(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting SUBST\n"); #endif ServerStartModule_SUBST(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting VCARD\n"); #endif ServerStartModule_VCARD(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting WEBCIT\n"); #endif ServerStartModule_WEBCIT(); } void initialise_modules (void) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ADDRBOOK_POPUP\n"); #endif InitModule_ADDRBOOK_POPUP(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing AUTH\n"); #endif InitModule_AUTH(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing AUTO_COMPLETE\n"); #endif InitModule_AUTO_COMPLETE(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing BBSVIEWRENDERERS\n"); #endif InitModule_BBSVIEWRENDERERS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing BLOGVIEWRENDERERS\n"); #endif InitModule_BLOGVIEWRENDERERS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing CALENDAR\n"); #endif InitModule_CALENDAR(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing CALENDAR_VIEW\n"); #endif InitModule_CALENDAR_VIEW(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing CONTEXT\n"); #endif InitModule_CONTEXT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing DATE\n"); #endif InitModule_DATE(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing DATETIME\n"); #endif InitModule_DATETIME(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing DOWNLOAD\n"); #endif InitModule_DOWNLOAD(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing GETTEXT\n"); #endif InitModule_GETTEXT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing GRAPHICS\n"); #endif InitModule_GRAPHICS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing GROUPDAV\n"); #endif InitModule_GROUPDAV(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ICAL_MAPS\n"); #endif InitModule_ICAL_MAPS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ICAL_SUBST\n"); #endif InitModule_ICAL_SUBST(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ICONBAR\n"); #endif InitModule_ICONBAR(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ICONTHEME\n"); #endif InitModule_ICONTHEME(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing INETCONF\n"); #endif InitModule_INETCONF(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing JSONRENDERER\n"); #endif InitModule_JSONRENDERER(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing LISTSUB\n"); #endif InitModule_LISTSUB(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MAILVIEW_RENDERERS\n"); #endif InitModule_MAILVIEW_RENDERERS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MAINMENU\n"); #endif InitModule_MAINMENU(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MARCHLIST\n"); #endif InitModule_MARCHLIST(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MSG\n"); #endif InitModule_MSG(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MSGRENDERERS\n"); #endif InitModule_MSGRENDERERS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing NETCONF\n"); #endif InitModule_NETCONF(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing NOTES\n"); #endif InitModule_NOTES(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing OPENID\n"); #endif InitModule_OPENID(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PAGING\n"); #endif InitModule_PAGING(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PARAMHANDLING\n"); #endif InitModule_PARAMHANDLING(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PREFERENCES\n"); #endif InitModule_PREFERENCES(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PROPFIND\n"); #endif InitModule_PROPFIND(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PUSHMAIL\n"); #endif InitModule_PUSHMAIL(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing REPORT\n"); #endif InitModule_REPORT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMCHAT\n"); #endif InitModule_ROOMCHAT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMLIST\n"); #endif InitModule_ROOMLIST(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMOPS\n"); #endif InitModule_ROOMOPS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMTOKENS\n"); #endif InitModule_ROOMTOKENS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMVIEWS\n"); #endif InitModule_ROOMVIEWS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing RSS\n"); #endif InitModule_RSS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SERVFUNC\n"); #endif InitModule_SERVFUNC(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SETUP_WIZARD\n"); #endif InitModule_SETUP_WIZARD(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SIEVE\n"); #endif InitModule_SIEVE(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SITECONFIG\n"); #endif InitModule_SITECONFIG(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SITEMAP\n"); #endif InitModule_SITEMAP(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SMTP_QUEUE\n"); #endif InitModule_SMTP_QUEUE(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing STATIC\n"); #endif InitModule_STATIC(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SUBST\n"); #endif InitModule_SUBST(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SUMMARY\n"); #endif InitModule_SUMMARY(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SYSMSG\n"); #endif InitModule_SYSMSG(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing TASKS\n"); #endif InitModule_TASKS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing USEREDIT\n"); #endif InitModule_USEREDIT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing VCARD\n"); #endif InitModule_VCARD(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing WEBCIT\n"); #endif InitModule_WEBCIT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing WHO\n"); #endif InitModule_WHO(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing WIKI\n"); #endif InitModule_WIKI(); } void initialise2_modules (void) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MSGRENDERERS\n"); #endif InitModule2_MSGRENDERERS(); } void shutdown_modules (void) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down CONTEXT\n"); #endif ServerShutdownModule_CONTEXT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down DAV\n"); #endif ServerShutdownModule_DAV(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down GETTEXT\n"); #endif ServerShutdownModule_GETTEXT(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down ICAL\n"); #endif ServerShutdownModule_ICAL(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down ICONBAR\n"); #endif ServerShutdownModule_ICONBAR(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down ICONTHEME\n"); #endif ServerShutdownModule_ICONTHEME(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down MSGRENDERERS\n"); #endif ServerShutdownModule_MSGRENDERERS(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down PREFERENCES\n"); #endif ServerShutdownModule_PREFERENCES(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down SERV_FUNC\n"); #endif ServerShutdownModule_SERV_FUNC(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down SITECONFIG\n"); #endif ServerShutdownModule_SITECONFIG(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down SMTP_QUEUE\n"); #endif ServerShutdownModule_SMTP_QUEUE(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down STATIC\n"); #endif ServerShutdownModule_STATIC(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down SUBST\n"); #endif ServerShutdownModule_SUBST(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down VCARD\n"); #endif ServerShutdownModule_VCARD(); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down WEBCIT\n"); #endif ServerShutdownModule_WEBCIT(); } void session_new_modules (wcsession *sess) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing GETTEXT\n"); #endif SessionNewModule_GETTEXT(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PREFERENCES\n"); #endif SessionNewModule_PREFERENCES(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SUBST\n"); #endif SessionNewModule_SUBST(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing TCPSOCKETS\n"); #endif SessionNewModule_TCPSOCKETS(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing WEBCIT\n"); #endif SessionNewModule_WEBCIT(sess); } void session_attach_modules (wcsession *sess) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Attaching Session; GETTEXT\n"); #endif SessionAttachModule_GETTEXT(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Attaching Session; PARAMHANDLING\n"); #endif SessionAttachModule_PARAMHANDLING(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Attaching Session; SUBST\n"); #endif SessionAttachModule_SUBST(sess); } void session_detach_modules (wcsession *sess) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MSG\n"); #endif SessionDetachModule_MSG(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PARAMHANDLING\n"); #endif SessionDetachModule_PARAMHANDLING(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing _PREFERENCES\n"); #endif SessionDetachModule__PREFERENCES(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SIEVE\n"); #endif SessionDetachModule_SIEVE(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SUBST\n"); #endif SessionDetachModule_SUBST(sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing WEBCIT\n"); #endif SessionDetachModule_WEBCIT(sess); } void session_destroy_modules (wcsession **sess) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing AUTH\n"); #endif SessionDestroyModule_AUTH(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing GETTEXT\n"); #endif SessionDestroyModule_GETTEXT(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ICONBAR\n"); #endif SessionDestroyModule_ICONBAR(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ICONTHEME\n"); #endif SessionDestroyModule_ICONTHEME(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing MSGRENDERERS\n"); #endif SessionDestroyModule_MSGRENDERERS(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PAGING\n"); #endif SessionDestroyModule_PAGING(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing PREFERENCES\n"); #endif SessionDestroyModule_PREFERENCES(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMCHAT\n"); #endif SessionDestroyModule_ROOMCHAT(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing ROOMOPS\n"); #endif SessionDestroyModule_ROOMOPS(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SERVFUNC\n"); #endif SessionDestroyModule_SERVFUNC(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SITECONFIG\n"); #endif SessionDestroyModule_SITECONFIG(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing SUBST\n"); #endif SessionDestroyModule_SUBST(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing TCPSOCKETS\n"); #endif SessionDestroyModule_TCPSOCKETS(*sess); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing WEBCIT\n"); #endif SessionDestroyModule_WEBCIT(*sess); free((*sess)); (*sess) = NULL; } void http_new_modules (ParsedHttpHdrs *httpreq) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "NEW AUTH\n"); #endif HttpNewModule_AUTH(httpreq); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "NEW CONTEXT\n"); #endif HttpNewModule_CONTEXT(httpreq); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "NEW TCPSOCKETS\n"); #endif HttpNewModule_TCPSOCKETS(httpreq); } void http_detach_modules (ParsedHttpHdrs *httpreq) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Detaching AUTH\n"); #endif HttpDetachModule_AUTH(httpreq); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Detaching CONTEXT\n"); #endif HttpDetachModule_CONTEXT(httpreq); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Detaching TCPSOCKETS\n"); #endif HttpDetachModule_TCPSOCKETS(httpreq); } void http_destroy_modules (ParsedHttpHdrs *httpreq) { #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Destructing AUTH\n"); #endif HttpDestroyModule_AUTH(httpreq); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Destructing CONTEXT\n"); #endif HttpDestroyModule_CONTEXT(httpreq); #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Destructing TCPSOCKETS\n"); #endif HttpDestroyModule_TCPSOCKETS(httpreq); } webcit-dfsg.orig/useredit.c0000644000175000017500000006332013223341037015773 0ustar michaelmichael/* * Copyright (c) 1996-2017 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" CtxType CTX_USERLIST = CTX_NONE; /* * show a list of available users to edit them * message the header message??? * preselect = which user should be selected in the browser */ void select_user_to_edit(const char *preselect) { output_headers(1, 0, 0, 0, 1, 0); do_template("aide_edituser_select"); end_burst(); } typedef struct _UserListEntry { int UID; int AccessLevel; int nLogons; int nPosts; StrBuf *UserName; StrBuf *Passvoid; time_t LastLogonT; /* Just available for Single users to view: */ unsigned int Flags; int DaysTillPurge; int HasBio; StrBuf *PrimaryEmail; StrBuf *OtherEmails; } UserListEntry; UserListEntry* NewUserListOneEntry(StrBuf *SerializedUser, const char *Pos) { UserListEntry *ul; if (StrLength(SerializedUser) < 8) return NULL; ul = (UserListEntry*) malloc(sizeof(UserListEntry)); ul->UserName = NewStrBuf(); ul->Passvoid = NewStrBuf(); ul->PrimaryEmail = NewStrBuf(); ul->OtherEmails = NewStrBuf(); StrBufExtract_NextToken(ul->UserName, SerializedUser, &Pos, '|'); StrBufExtract_NextToken(ul->Passvoid, SerializedUser, &Pos, '|'); ul->Flags = StrBufExtractNext_unsigned_long(SerializedUser, &Pos, '|'); ul->nLogons = StrBufExtractNext_int( SerializedUser, &Pos, '|'); ul->nPosts = StrBufExtractNext_int( SerializedUser, &Pos, '|'); ul->AccessLevel = StrBufExtractNext_int( SerializedUser, &Pos, '|'); ul->UID = StrBufExtractNext_int( SerializedUser, &Pos, '|'); ul->LastLogonT = StrBufExtractNext_long( SerializedUser, &Pos, '|'); ul->DaysTillPurge = StrBufExtractNext_int( SerializedUser, &Pos, '|'); return ul; } void DeleteUserListEntry(void *vUserList) { UserListEntry *ul = (UserListEntry*) vUserList; if (!ul) return; FreeStrBuf(&ul->UserName); FreeStrBuf(&ul->Passvoid); FreeStrBuf(&ul->PrimaryEmail); FreeStrBuf(&ul->OtherEmails); free(ul); } UserListEntry* NewUserListEntry(StrBuf *SerializedUserList) { const char *Pos = NULL; UserListEntry *ul; if (StrLength(SerializedUserList) < 8) return NULL; ul = (UserListEntry*) malloc(sizeof(UserListEntry)); ul->UserName = NewStrBuf(); ul->Passvoid = NewStrBuf(); ul->PrimaryEmail = NewStrBuf(); ul->OtherEmails = NewStrBuf(); StrBufExtract_NextToken(ul->UserName, SerializedUserList, &Pos, '|'); ul->AccessLevel = StrBufExtractNext_int( SerializedUserList, &Pos, '|'); ul->UID = StrBufExtractNext_int( SerializedUserList, &Pos, '|'); ul->LastLogonT = StrBufExtractNext_long(SerializedUserList, &Pos, '|'); ul->nLogons = StrBufExtractNext_int( SerializedUserList, &Pos, '|'); ul->nPosts = StrBufExtractNext_int( SerializedUserList, &Pos, '|'); StrBufExtract_NextToken(ul->Passvoid, SerializedUserList, &Pos, '|'); ul->Flags = 0; ul->HasBio = 0; ul->DaysTillPurge = -1; return ul; } /* * Sort by Username */ int CompareUserListName(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return strcmp(ChrPtr(u1->UserName), ChrPtr(u2->UserName)); } int CompareUserListNameRev(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return strcmp(ChrPtr(u2->UserName), ChrPtr(u1->UserName)); } int GroupchangeUserListName(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) vUser1; UserListEntry *u2 = (UserListEntry*) vUser2; return ChrPtr(u2->UserName)[0] != ChrPtr(u1->UserName)[0]; } /* * Sort by access level */ int CompareAccessLevel(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u1->AccessLevel > u2->AccessLevel); } int CompareAccessLevelRev(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u2->AccessLevel > u1->AccessLevel); } int GroupchangeAccessLevel(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) vUser1; UserListEntry *u2 = (UserListEntry*) vUser2; return u2->AccessLevel != u1->AccessLevel; } /* * Sort by UID */ int CompareUID(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u1->UID > u2->UID); } int CompareUIDRev(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u2->UID > u1->UID); } int GroupchangeUID(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) vUser1; UserListEntry *u2 = (UserListEntry*) vUser2; return (u2->UID / 10) != (u1->UID / 10); } /* * Sort By Date /// TODO! */ int CompareLastLogon(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u1->LastLogonT > u2->LastLogonT); } int CompareLastLogonRev(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u2->LastLogonT > u1->LastLogonT); } int GroupchangeLastLogon(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) vUser1; UserListEntry *u2 = (UserListEntry*) vUser2; return (u2->LastLogonT != u1->LastLogonT); } /* * Sort By Number of Logons */ int ComparenLogons(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u1->nLogons > u2->nLogons); } int ComparenLogonsRev(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u2->nLogons > u1->nLogons); } int GroupchangenLogons(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) vUser1; UserListEntry *u2 = (UserListEntry*) vUser2; return (u2->nLogons / 100) != (u1->nLogons / 100); } /* * Sort By Number of Posts */ int ComparenPosts(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u1->nPosts > u2->nPosts); } int ComparenPostsRev(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) GetSearchPayload(vUser1); UserListEntry *u2 = (UserListEntry*) GetSearchPayload(vUser2); return (u2->nPosts > u1->nPosts); } int GroupchangenPosts(const void *vUser1, const void *vUser2) { UserListEntry *u1 = (UserListEntry*) vUser1; UserListEntry *u2 = (UserListEntry*) vUser2; return (u2->nPosts / 100) != (u1->nPosts / 100); } HashList *iterate_load_userlist(StrBuf *Target, WCTemplputParams *TP) { int Done = 0; CompareFunc SortIt; HashList *Hash = NULL; StrBuf *Buf; UserListEntry* ul; int len; int UID; void *vData; WCTemplputParams SubTP; memset(&SubTP, 0, sizeof(WCTemplputParams)); serv_puts("LIST"); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { Hash = NewHash(1, Flathash); while (!Done) { len = StrBuf_ServGetln(Buf); if ((len <0) || ((len == 3) && !strcmp(ChrPtr(Buf), "000"))) { Done = 1; break; } ul = NewUserListEntry(Buf); if (ul == NULL) continue; Put(Hash, IKEY(ul->UID), ul, DeleteUserListEntry); } serv_puts("LBIO 1"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) Done = 0; while (!Done) { len = StrBuf_ServGetln(Buf); if ((len <0) || ((len == 3) && !strcmp(ChrPtr(Buf), "000"))) { Done = 1; break; } UID = atoi(ChrPtr(Buf)); if (GetHash(Hash, IKEY(UID), &vData) && vData != 0) { ul = (UserListEntry*)vData; ul->HasBio = 1; } } SubTP.Filter.ContextType = CTX_USERLIST; SortIt = RetrieveSort(&SubTP, HKEY("USER"), HKEY("user:uid"), 0); if (SortIt != NULL) SortByPayload(Hash, SortIt); else SortByPayload(Hash, CompareUID); } FreeStrBuf(&Buf); return Hash; } void tmplput_USERLIST_UserName(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendTemplate(Target, TP, ul->UserName, 0); } void tmplput_USERLIST_Password(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendTemplate(Target, TP, ul->Passvoid, 0); } void tmplput_USERLIST_PrimaryEmail(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendTemplate(Target, TP, ul->PrimaryEmail, 0); } void tmplput_USERLIST_OtherEmails(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendTemplate(Target, TP, ul->OtherEmails, 0); } void tmplput_USERLIST_AccessLevelNo(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target, "%d", ul->AccessLevel, 0); } void tmplput_USERLIST_AccessLevelStr(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendBufPlain(Target, _(axdefs[ul->AccessLevel]), -1, 0); } void tmplput_USERLIST_UID(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target, "%d", ul->UID, 0); } void tmplput_USERLIST_LastLogonNo(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target,"%ld", ul->LastLogonT, 0); } void tmplput_USERLIST_LastLogonStr(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrEscAppend(Target, NULL, asctime(localtime(&ul->LastLogonT)), 0, 0); } void tmplput_USERLIST_nLogons(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target, "%d", ul->nLogons, 0); } void tmplput_USERLIST_nPosts(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target, "%d", ul->nPosts, 0); } void tmplput_USERLIST_Flags(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target, "%d", ul->Flags, 0); } void tmplput_USERLIST_DaysTillPurge(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); StrBufAppendPrintf(Target, "%d", ul->DaysTillPurge, 0); } int ConditionalUser(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); if (havebstr("usernum")) { return ibstr("usernum") == ul->UID; } else if (havebstr("username")) { return strcmp(bstr("username"), ChrPtr(ul->UserName)) == 0; } else return 0; } int ConditionalFlagINetEmail(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); return (ul->Flags & US_INTERNET) != 0; } int ConditionalUserAccess(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); if (ul == NULL) return 0; return GetTemplateTokenNumber(Target, TP, 3, AxNewU) == ul->AccessLevel; } int ConditionalHaveBIO(StrBuf *Target, WCTemplputParams *TP) { UserListEntry *ul = (UserListEntry*) CTX(CTX_USERLIST); if (ul == NULL) return 0; return ul->HasBio; } void tmplput_USER_BIO(StrBuf *Target, WCTemplputParams *TP) { int Done = 0; StrBuf *Buf; const char *who; long len; GetTemplateTokenString(Target, TP, 0, &who, &len); if (len == 0) { who = ChrPtr(WC->wc_fullname); } Buf = NewStrBuf(); serv_printf("RBIO %s", who); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { StrBuf *BioBuf = NewStrBufPlain(NULL, SIZ); while (!Done && StrBuf_ServGetln(Buf)>=0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) Done = 1; else { StrBufAppendBuf(BioBuf, Buf, 0); StrBufAppendBufPlain(BioBuf, HKEY("\n"), 0); } } StrBufAppendTemplate(Target, TP, BioBuf, 1); FreeStrBuf(&BioBuf); } FreeStrBuf(&Buf); } int Conditional_USER_HAS_PIC(StrBuf *Target, WCTemplputParams *TP) { // ajc 2016apr10 this needs to be re-evaluated with the new protocol return(0); } /* * Locate the message number of a user's vCard in the current room * Returns the message id of his vcard */ long locate_user_vcard_in_this_room(message_summary **VCMsg, wc_mime_attachment **VCAtt) { wcsession *WCC = WC; HashPos *at; HashPos *att; const char *HashKey; long HKLen; void *vMsg; message_summary *Msg; wc_mime_attachment *Att; StrBuf *Buf; long vcard_msgnum = (-1L); int already_tried_creating_one = 0; StrBuf *FoundCharset = NewStrBuf(); StrBuf *Error = NULL; SharedMessageStatus Stat; Buf = NewStrBuf(); TRYAGAIN: memset(&Stat, 0, sizeof(SharedMessageStatus)); Stat.maxload = 10000; Stat.lowest_found = (-1); Stat.highest_found = (-1); /* Search for the user's vCard */ if (load_msg_ptrs("MSGS ALL||||1", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0) > 0) { at = GetNewHashPos(WCC->summ, 0); while (GetNextHashPos(WCC->summ, at, &HKLen, &HashKey, &vMsg)) { Msg = (message_summary*) vMsg; Msg->MsgBody = (wc_mime_attachment*) malloc(sizeof(wc_mime_attachment)); memset(Msg->MsgBody, 0, sizeof(wc_mime_attachment)); Msg->MsgBody->msgnum = Msg->msgnum; load_message(Msg, FoundCharset, &Error); if (Msg->AllAttach != NULL) { att = GetNewHashPos(Msg->AllAttach, 0); while (GetNextHashPos(Msg->AllAttach, att, &HKLen, &HashKey, &vMsg) && (vcard_msgnum == -1)) { Att = (wc_mime_attachment*) vMsg; if ( (strcasecmp(ChrPtr(Att->ContentType), "text/x-vcard") == 0) || (strcasecmp(ChrPtr(Att->ContentType), "text/vcard") == 0) ) { *VCAtt = Att; *VCMsg = Msg; vcard_msgnum = Msg->msgnum; if (Att->Data == NULL) { MimeLoadData(Att); } } } DeleteHashPos(&att); } FreeStrBuf(&Error); /* don't care... */ } DeleteHashPos(&at); } /* If there's no vcard, create one */ if ((*VCMsg == NULL) && (already_tried_creating_one == 0)) { FlushStrBuf(Buf); already_tried_creating_one = 1; serv_puts("ENT0 1|||4"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 4) { serv_puts("Content-type: text/x-vcard"); serv_puts(""); serv_puts("begin:vcard"); serv_puts("end:vcard"); serv_puts("000"); } else syslog(LOG_WARNING, "Error while creating user vcard: %s\n", ChrPtr(Buf)); goto TRYAGAIN; } FreeStrBuf(&Buf); FreeStrBuf(&FoundCharset); return(vcard_msgnum); } /* * Display the form for editing a user's address book entry * username the name of the user * usernum the citadel-uid of the user */ void display_edit_address_book_entry(const char *username, long usernum) { message_summary *VCMsg = NULL; wc_mime_attachment *VCAtt = NULL; StrBuf *roomname; StrBuf *Buf; long vcard_msgnum = (-1L); /* Locate the user's config room, creating it if necessary */ Buf = NewStrBuf(); roomname = NewStrBuf(); StrBufPrintf(roomname, "%010ld.%s", usernum, USERCONFIGROOM); serv_printf("GOTO %s||1", ChrPtr(roomname)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { serv_printf("CRE8 1|%s|5|||1|", ChrPtr(roomname)); StrBuf_ServGetln(Buf); GetServerStatus(Buf, NULL); serv_printf("GOTO %s||1", ChrPtr(roomname)); StrBuf_ServGetln(Buf); if (GetServerStatusMsg(Buf, NULL, 1, 2) != 2) { select_user_to_edit(username); FreeStrBuf(&Buf); FreeStrBuf(&roomname); return; } } FreeStrBuf(&Buf); locate_user_vcard_in_this_room(&VCMsg, &VCAtt); if (VCMsg == NULL) { AppendImportantMessage(_("An error occurred while trying to create or edit this address book entry."), -1); select_user_to_edit(username); FreeStrBuf(&roomname); return; } do_edit_vcard(vcard_msgnum, "1", VCMsg, VCAtt, "select_user_to_edit", ChrPtr(roomname)); FreeStrBuf(&roomname); } /* * burge a user * username the name of the user to remove */ void delete_user(char *username) { StrBuf *Buf; Buf = NewStrBuf(); serv_printf("ASUP %s|0|0|0|0|0|", username); StrBuf_ServGetln(Buf); GetServerStatusMsg(Buf, NULL, 1, 2); select_user_to_edit( bstr("username")); FreeStrBuf(&Buf); } void display_edituser(const char *supplied_username, int is_new) { const char *Pos; UserListEntry* UL; StrBuf *Buf; char username[256]; int i = 0; if (supplied_username != NULL) { safestrncpy(username, supplied_username, sizeof username); } else { safestrncpy(username, bstr("username"), sizeof username); } Buf = NewStrBuf(); serv_printf("AGUP %s", username); StrBuf_ServGetln(Buf); if (GetServerStatusMsg(Buf, NULL, 1, 2) != 2) { select_user_to_edit(username); FreeStrBuf(&Buf); return; } else { Pos = ChrPtr(Buf) + 4; UL = NewUserListOneEntry(Buf, Pos); if ((UL != NULL) && havebstr("edit_abe_button")) { display_edit_address_book_entry(username, UL->UID); } else if ((UL != NULL) && havebstr("delete_button")) { delete_user(username); } else if (UL != NULL) { serv_printf("AGEA %s", username); StrBuf_ServGetln(Buf); if (GetServerStatusMsg(Buf, NULL, 1, 2) == 1) { while(StrBuf_ServGetln(Buf) , strcmp(ChrPtr(Buf), "000")) { if (i == 0) { StrBufAppendPrintf(UL->PrimaryEmail, "%s", ChrPtr(Buf)); } if (i > 1) { StrBufAppendPrintf(UL->OtherEmails, ","); } if (i > 0) { StrBufAppendPrintf(UL->OtherEmails, "%s", ChrPtr(Buf)); } ++i; } } WCTemplputParams SubTP; memset(&SubTP, 0, sizeof(WCTemplputParams)); SubTP.Filter.ContextType = CTX_USERLIST; SubTP.Context = UL; output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("aide_edituser_detailview"), NULL, &SubTP); end_burst(); } DeleteUserListEntry(UL); } FreeStrBuf(&Buf); } /* * do the backend operation of the user edit on the server */ void edituser(void) { int is_new = 0; unsigned int flags = 0; const char *username; is_new = ibstr("is_new"); username = bstr("username"); if (!havebstr("ok_button")) { AppendImportantMessage(_("Changes were not saved."), -1); } else { StrBuf *Buf = NewStrBuf(); flags = ibstr("flags"); if (yesbstr("inetmail")) { flags |= US_INTERNET; } else { flags &= ~US_INTERNET ; } if ((havebstr("newname")) && (strcasecmp(bstr("username"), bstr("newname")))) { serv_printf("RENU %s|%s", bstr("username"), bstr("newname")); StrBuf_ServGetln(Buf); if (GetServerStatusMsg(Buf, NULL, 1, 2) != 2) { username = bstr("newname"); } } /* Send the new account parameters */ serv_printf("ASUP %s|%s|%d|%s|%s|%s|%s|%s|%s|", username, bstr("password"), flags, bstr("timescalled"), bstr("msgsposted"), bstr("axlevel"), bstr("usernum"), bstr("lastcall"), bstr("purgedays") ); StrBuf_ServGetln(Buf); GetServerStatusMsg(Buf, NULL, 1, 2); /* Send the new email addresses. First make up a delimited list... */ char all_the_emails[512]; snprintf(all_the_emails, sizeof all_the_emails, "%s,%s", bstr("primaryemail"), bstr("otheremails")); /* Replace any commas, semicolons, or spaces with newlines */ char *pos; for (pos=all_the_emails; *pos!=0; ++pos) { if ((*pos == ',') || (*pos == ';') || (*pos == ' ')) *pos = '\n' ; } /* Remove any naughty inappropriate whitespace */ striplt(all_the_emails); while (pos = strstr(all_the_emails, "\n,"), (pos != NULL)) { strcpy(pos, pos+1); } while (pos = strstr(all_the_emails, ",\n"), (pos != NULL)) { strcpy(pos+1, pos+2); } while (pos = strstr(all_the_emails, "\n\n"), (pos != NULL)) { strcpy(pos+1, pos+2); } /* Now send it to the server. */ serv_printf("ASEA %s", username); StrBuf_ServGetln(Buf); if (GetServerStatusMsg(Buf, NULL, 1, 2) == 4) { serv_printf("%s\n000", all_the_emails); } FreeStrBuf(&Buf); } /* * If we are in the middle of creating a new user, move on to * the vCard edit screen. */ if (is_new) { display_edit_address_book_entry(username, lbstr("usernum") ); } else { select_user_to_edit(username); } } /* * create a new user * take the web environment username and create it on the citadel server */ void create_user(void) { long FullState; StrBuf *Buf; const char *username; Buf = NewStrBuf(); username = bstr("username"); serv_printf("CREU %s", username); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &FullState) == 2) { AppendImportantMessage(_("A new user has been created."), -1); display_edituser(username, 1); } else if (FullState == 570) { AppendImportantMessage(_("You are attempting to create a new user from within Citadel " "while running in host based authentication mode. In this mode, " "you must create new users on the host system, not within Citadel."), -1); select_user_to_edit(NULL); } else { AppendImportantMessage(ChrPtr(Buf) + 4, StrLength(Buf) - 4); select_user_to_edit(NULL); } FreeStrBuf(&Buf); } void display_userpic(void) { off_t bytes; StrBuf *Buf = NewStrBuf(); const char *username = bstr("user"); serv_printf("DLUI %s", username); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 6) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); StrBuf *content_type = NewStrBuf(); StrBufExtract_token(content_type, Buf, 3, '|'); WC->WBuf = NewStrBuf(); StrBuf_ServGetBLOBBuffered(WC->WBuf, bytes); http_transmit_thing(ChrPtr(content_type), 0); FreeStrBuf(&content_type); } else { output_error_pic("", ""); } FreeStrBuf(&Buf); } void _select_user_to_edit(void) { select_user_to_edit(NULL); } void _display_edituser(void) { display_edituser(NULL, 0); } void InitModule_USEREDIT (void) { RegisterCTX(CTX_USERLIST); WebcitAddUrlHandler(HKEY("select_user_to_edit"), "", 0, _select_user_to_edit, 0); WebcitAddUrlHandler(HKEY("display_edituser"), "", 0, _display_edituser, 0); WebcitAddUrlHandler(HKEY("edituser"), "", 0, edituser, 0); WebcitAddUrlHandler(HKEY("create_user"), "", 0, create_user, 0); WebcitAddUrlHandler(HKEY("userpic"), "", 0, display_userpic, 0); RegisterNamespace("USERLIST:USERNAME", 0, 1, tmplput_USERLIST_UserName, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:PASSWD", 0, 1, tmplput_USERLIST_Password, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:ACCLVLNO", 0, 0, tmplput_USERLIST_AccessLevelNo, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:ACCLVLSTR", 0, 0, tmplput_USERLIST_AccessLevelStr, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:UID", 0, 0, tmplput_USERLIST_UID, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:LASTLOGON:STR", 0, 0, tmplput_USERLIST_LastLogonStr, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:LASTLOGON:NO", 0, 0, tmplput_USERLIST_LastLogonNo, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:NLOGONS", 0, 0, tmplput_USERLIST_nLogons, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:NPOSTS", 0, 0, tmplput_USERLIST_nPosts, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:PRIMARYEMAIL", 0, 1, tmplput_USERLIST_PrimaryEmail, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:OTHEREMAILS", 0, 1, tmplput_USERLIST_OtherEmails, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:FLAGS", 0, 0, tmplput_USERLIST_Flags, NULL, CTX_USERLIST); RegisterNamespace("USERLIST:DAYSTILLPURGE", 0, 0, tmplput_USERLIST_DaysTillPurge, NULL, CTX_USERLIST); RegisterNamespace("USER:BIO", 1, 2, tmplput_USER_BIO, NULL, CTX_NONE); RegisterConditional("COND:USERNAME", 0, ConditionalUser, CTX_USERLIST); RegisterConditional("COND:USERACCESS", 0, ConditionalUserAccess, CTX_USERLIST); RegisterConditional("COND:USERLIST:FLAG:USE_INTERNET", 0, ConditionalFlagINetEmail, CTX_USERLIST); RegisterConditional("COND:USERLIST:HAVEBIO", 0, ConditionalHaveBIO, CTX_USERLIST); RegisterConditional("COND:USER:PIC", 1, Conditional_USER_HAS_PIC, CTX_NONE); RegisterIterator("USERLIST", 0, NULL, iterate_load_userlist, NULL, DeleteHash, CTX_USERLIST, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterSortFunc(HKEY("user:name"), HKEY("userlist"), CompareUserListName, CompareUserListNameRev, GroupchangeUserListName, CTX_USERLIST); RegisterSortFunc(HKEY("user:accslvl"), HKEY("userlist"), CompareAccessLevel, CompareAccessLevelRev, GroupchangeAccessLevel, CTX_USERLIST); RegisterSortFunc(HKEY("user:nlogons"), HKEY("userlist"), ComparenLogons, ComparenLogonsRev, GroupchangenLogons, CTX_USERLIST); RegisterSortFunc(HKEY("user:uid"), HKEY("userlist"), CompareUID, CompareUIDRev, GroupchangeUID, CTX_USERLIST); RegisterSortFunc(HKEY("user:lastlogon"), HKEY("userlist"), CompareLastLogon, CompareLastLogonRev, GroupchangeLastLogon, CTX_USERLIST); RegisterSortFunc(HKEY("user:nmsgposts"), HKEY("userlist"), ComparenPosts, ComparenPostsRev, GroupchangenPosts, CTX_USERLIST); REGISTERTokenParamDefine(AxDeleted); REGISTERTokenParamDefine(AxNewU); REGISTERTokenParamDefine(AxProbU); REGISTERTokenParamDefine(AxLocU); REGISTERTokenParamDefine(AxNetU); REGISTERTokenParamDefine(AxPrefU); REGISTERTokenParamDefine(AxAideU); } webcit-dfsg.orig/roomops.c0000644000175000017500000010475713223341037015657 0ustar michaelmichael/* * Lots of different room-related operations. * * Copyright (c) 1996-2016 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" ConstStr QRFlagList[] = { {HKEY(strof(QR_PERMANENT))}, {HKEY(strof(QR_INUSE))}, {HKEY(strof(QR_PRIVATE))}, {HKEY(strof(QR_PASSWORDED))}, {HKEY(strof(QR_GUESSNAME))}, {HKEY(strof(QR_DIRECTORY))}, {HKEY(strof(QR_UPLOAD))}, {HKEY(strof(QR_DOWNLOAD))}, {HKEY(strof(QR_VISDIR))}, {HKEY(strof(QR_ANONONLY))}, {HKEY(strof(QR_ANONOPT))}, {HKEY(strof(QR_NETWORK))}, {HKEY(strof(QR_PREFONLY))}, {HKEY(strof(QR_READONLY))}, {HKEY(strof(QR_MAILBOX))} }; ConstStr QR2FlagList[] = { {HKEY(strof(QR2_SYSTEM))}, {HKEY(strof(QR2_SELFLIST))}, {HKEY(strof(QR2_COLLABDEL))}, {HKEY(strof(QR2_SUBJECTREQ))}, {HKEY(strof(QR2_SMTP_PUBLIC))}, {HKEY(strof(QR2_MODERATED))}, {HKEY(strof(QR2_NOUPLMSG))}, {HKEY("")}, {HKEY("")}, {HKEY("")}, {HKEY("")}, {HKEY("")}, {HKEY("")}, {HKEY("")}, {HKEY("")} }; void _DBG_QR(long QR) { int i = 1; int j=0; StrBuf *QRVec; QRVec = NewStrBufPlain(NULL, 256); while (i != 0) { if ((QR & i) != 0) { if (StrLength(QRVec) > 0) StrBufAppendBufPlain(QRVec, HKEY(" | "), 0); StrBufAppendBufPlain(QRVec, CKEY(QRFlagList[j]), 0); } i = i << 1; j++; } syslog(LOG_DEBUG, "DBG: QR-Vec [%ld] [%s]\n", QR, ChrPtr(QRVec)); FreeStrBuf(&QRVec); } void _DBG_QR2(long QR2) { int i = 1; int j=0; StrBuf *QR2Vec; QR2Vec = NewStrBufPlain(NULL, 256); while (i != 0) { if ((QR2 & i) != 0) { if (StrLength(QR2Vec) > 0) StrBufAppendBufPlain(QR2Vec, HKEY(" | "), 0); StrBufAppendBufPlain(QR2Vec, CKEY(QR2FlagList[j]), 0); } i = i << 1; j++; } syslog(LOG_DEBUG, "DBG: QR2-Vec [%ld] [%s]\n", QR2, ChrPtr(QR2Vec)); FreeStrBuf(&QR2Vec); } /******************************************************************************* ***************************** Goto Commands *********************************** ******************************************************************************/ void dotskip(void) { smart_goto(sbstr("room")); } void dotgoto(void) { wcsession *WCC = WC; if (!havebstr("room")) { readloop(readnew, eUseDefault); return; } if ((WCC->CurRoom.view != VIEW_MAILBOX) && (WCC->CurRoom.view != WCC->CurRoom.view)) { /* dotgoto acts like dotskip when we're in a mailbox view */ slrp_highest(); } smart_goto(sbstr("room")); } /* * goto next room */ void smart_goto(const StrBuf *next_room) { if (gotoroom(next_room) / 100 == 2) readloop(readnew, eUseDefault); else do_404(); } /* * goto a private room */ void goto_private(void) { char hold_rm[SIZ]; StrBuf *Buf; const StrBuf *gr_name; long err; if (!havebstr("ok_button")) { display_main_menu(); return; } gr_name = sbstr("gr_name"); Buf = NewStrBuf(); strcpy(hold_rm, ChrPtr(WC->CurRoom.name)); serv_printf("GOTO %s|%s", ChrPtr(gr_name), bstr("gr_pass")); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &err) == 2) { FlushRoomlist(); smart_goto(gr_name); FreeStrBuf(&Buf); return; } if (err == 540) { DoTemplate(HKEY("room_display_private"), NULL, &NoCtx); FreeStrBuf(&Buf); return; } StrBufCutLeft(Buf, 4); AppendImportantMessage (SKEY(Buf)); Buf = NewStrBufPlain(HKEY("_BASEROOM_")); smart_goto(Buf); FreeStrBuf(&Buf); return; } /* * back end routine to take the session to a new room */ long gotoroom(const StrBuf *gname) { wcsession *WCC = WC; StrBuf *Buf; static long ls = (-1L); long err = 0; int room_name_supplied = 0; int is_baseroom = 0; int failvisibly; /* on fail, should we fallback to _BASEROOM_? */ failvisibly = ibstr("failvisibly"); /* store ungoto information */ if (StrLength(gname) > 0) { room_name_supplied = 1; } if (room_name_supplied) { strcpy(WCC->ugname, ChrPtr(WCC->CurRoom.name)); if (!strcasecmp(ChrPtr(gname), "_BASEROOM_")) { is_baseroom = 1; } } WCC->uglsn = ls; Buf = NewStrBuf(); /* move to the new room */ if (room_name_supplied) { serv_printf("GOTO %s", ChrPtr(gname)); } else { /* or just refresh the current state... */ serv_printf("GOTO 00000000000000000000"); } StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &err) != 2) { if (failvisibly) { FreeStrBuf(&Buf); return err; } serv_puts("GOTO _BASEROOM_"); StrBuf_ServGetln(Buf); /* * well, we know that this is the fallback case, * but we're interested that the first command * didn't work out in first place. */ if (GetServerStatus(Buf, NULL) != 2) { FreeStrBuf(&Buf); return err; } } FlushFolder(&WCC->CurRoom); ParseGoto(&WCC->CurRoom, Buf); if (room_name_supplied) { remove_march(WCC->CurRoom.name); if (is_baseroom) { remove_march(gname); } } FreeStrBuf(&Buf); return err; } void ParseGoto(folder *room, StrBuf *Line) { wcsession *WCC = WC; const char *Pos; int flag; void *vFloor = NULL; StrBuf *pBuf; if (StrLength(Line) < 4) { return; } /* ignore the commandstate... */ Pos = ChrPtr(Line) + 4; if (room->RoomNameParts != NULL) { int i; for (i=0; i < room->nRoomNameParts; i++) FreeStrBuf(&room->RoomNameParts[i]); free(room->RoomNameParts); room->RoomNameParts = NULL; } pBuf = room->name; if (pBuf == NULL) pBuf = NewStrBufPlain(NULL, StrLength(Line)); else FlushStrBuf(pBuf); memset(room, 0, sizeof(folder)); room->name = pBuf; StrBufExtract_NextToken(room->name, Line, &Pos, '|'); room->nNewMessages = StrBufExtractNext_long(Line, &Pos, '|'); if (room->nNewMessages > 0) room->RAFlags |= UA_HASNEWMSGS; room->nTotalMessages = StrBufExtractNext_long(Line, &Pos, '|'); room->ShowInfo = StrBufExtractNext_long(Line, &Pos, '|'); room->QRFlags = StrBufExtractNext_long(Line, &Pos, '|'); DBG_QR(room->QRFlags); room->HighestRead = StrBufExtractNext_long(Line, &Pos, '|'); room->LastMessageRead = StrBufExtractNext_long(Line, &Pos, '|'); room->is_inbox = StrBufExtractNext_long(Line, &Pos, '|'); flag = StrBufExtractNext_long(Line, &Pos, '|'); if (WCC->is_aide || flag) { room->RAFlags |= UA_ADMINALLOWED; } room->UsersNewMAilboxMessages = StrBufExtractNext_long(Line, &Pos, '|'); room->floorid = StrBufExtractNext_int(Line, &Pos, '|'); room->view = StrBufExtractNext_long(Line, &Pos, '|'); room->defview = StrBufExtractNext_long(Line, &Pos, '|'); flag = StrBufExtractNext_long(Line, &Pos, '|'); if (flag) room->RAFlags |= UA_ISTRASH; room->QRFlags2 = StrBufExtractNext_long(Line, &Pos, '|'); DBG_QR2(room->QRFlags2); /* find out, whether we are in a sub-room */ room->nRoomNameParts = StrBufNum_tokens(room->name, '\\'); if (room->nRoomNameParts > 1) { int i; Pos = NULL; room->RoomNameParts = malloc(sizeof(StrBuf*) * (room->nRoomNameParts + 1)); memset(room->RoomNameParts, 0, sizeof(StrBuf*) * (room->nRoomNameParts + 1)); for (i=0; i < room->nRoomNameParts; i++) { room->RoomNameParts[i] = NewStrBuf(); StrBufExtract_NextToken(room->RoomNameParts[i], room->name, &Pos, '\\'); } } /* Private mailboxes on the main floor get remapped to the personal folder */ if ((room->QRFlags & QR_MAILBOX) && (room->floorid == 0)) { room->floorid = VIRTUAL_MY_FLOOR; if ((room->nRoomNameParts == 1) && (StrLength(room->name) == 4) && (strcmp(ChrPtr(room->name), "Mail") == 0)) { room->is_inbox = 1; } } /* get a pointer to the floor we're on: */ if (WCC->Floors == NULL) GetFloorListHash(NULL, NULL); GetHash(WCC->Floors, IKEY(room->floorid), &vFloor); room->Floor = (const Floor*) vFloor; } /* * Delete the current room */ void delete_room(void) { StrBuf *Line = NewStrBuf(); const StrBuf *GoBstr; GoBstr = sbstr("go"); if (GoBstr != NULL) { if (gotoroom(GoBstr) == 200) { serv_puts("KILL 1"); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) == 2) { StrBuf *Buf; FlushRoomlist (); Buf = NewStrBufPlain(HKEY("_BASEROOM_")); smart_goto(Buf); FreeStrBuf(&Buf); FreeStrBuf(&Line); return; } } } display_main_menu(); FreeStrBuf(&Line); } /* * zap a room */ void zap(void) { char buf[SIZ]; StrBuf *final_destination; /** * If the forget-room routine fails for any reason, we fall back * to the current room; otherwise, we go to the Lobby */ final_destination = NewStrBufDup(WC->CurRoom.name); if (havebstr("ok_button")) { serv_printf("GOTO %s", ChrPtr(WC->CurRoom.name)); serv_getln(buf, sizeof buf); if (buf[0] == '2') { serv_puts("FORG"); serv_getln(buf, sizeof buf); if (buf[0] == '2') { FlushStrBuf(final_destination); StrBufAppendBufPlain(final_destination, HKEY("_BASEROOM_"), 0); } } FlushRoomlist (); } smart_goto(final_destination); FreeStrBuf(&final_destination); } /* * mark all messages in current room as having been read */ void slrp_highest(void) { char buf[256]; serv_puts("SLRP HIGHEST"); serv_getln(buf, sizeof buf); } /******************************************************************************* ***************************** Modify Rooms ************************************ ******************************************************************************/ void LoadRoomAide(void) { wcsession *WCC = WC; StrBuf *Buf; if (WCC->CurRoom.RoomAideLoaded) return; WCC->CurRoom.RoomAideLoaded = 1; Buf = NewStrBuf(); serv_puts("GETA"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { FlushStrBuf(WCC->CurRoom.RoomAide); AppendImportantMessage (ChrPtr(Buf) + 4, StrLength(Buf) - 4); } else { const char *Pos; Pos = ChrPtr(Buf) + 4; FreeStrBuf(&WCC->CurRoom.RoomAide); WCC->CurRoom.RoomAide = NewStrBufPlain (NULL, StrLength (Buf)); StrBufExtract_NextToken(WCC->CurRoom.RoomAide, Buf, &Pos, '|'); } FreeStrBuf (&Buf); } int SaveRoomAide(folder *Room) { StrBuf *Buf; Buf = NewStrBuf (); serv_printf("SETA %s", ChrPtr(Room->RoomAide)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { StrBufCutLeft(Buf, 4); AppendImportantMessage (SKEY(Buf)); FreeStrBuf(&Buf); return 0; } FreeStrBuf(&Buf); return 1; } int GetCurrentRoomFlags(folder *Room, int CareForStatusMessage) { StrBuf *Buf; Buf = NewStrBuf(); serv_puts("GETR"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { FlushStrBuf(Room->XAPass); FlushStrBuf(Room->Directory); StrBufCutLeft(Buf, 4); if (CareForStatusMessage) AppendImportantMessage (SKEY(Buf)); FreeStrBuf(&Buf); Room->XALoaded = 2; return 0; } else { const char *Pos; Pos = ChrPtr(Buf) + 4; FreeStrBuf(&Room->XAPass); FreeStrBuf(&Room->Directory); Room->XAPass = NewStrBufPlain (NULL, StrLength (Buf)); Room->Directory = NewStrBufPlain (NULL, StrLength (Buf)); FreeStrBuf(&Room->name); Room->name = NewStrBufPlain(NULL, StrLength(Buf)); StrBufExtract_NextToken(Room->name, Buf, &Pos, '|'); StrBufExtract_NextToken(Room->XAPass, Buf, &Pos, '|'); StrBufExtract_NextToken(Room->Directory, Buf, &Pos, '|'); Room->QRFlags = StrBufExtractNext_long(Buf, &Pos, '|'); Room->floorid = StrBufExtractNext_long(Buf, &Pos, '|'); Room->Order = StrBufExtractNext_long(Buf, &Pos, '|'); Room->defview = StrBufExtractNext_long(Buf, &Pos, '|'); Room->QRFlags2 = StrBufExtractNext_long(Buf, &Pos, '|'); FreeStrBuf (&Buf); Room->XALoaded = 1; return 1; } } int SetCurrentRoomFlags(folder *Room) { StrBuf *Buf; Buf = NewStrBuf(); DBG_QR(Room->QRFlags); DBG_QR2(Room->QRFlags2); serv_printf("SETR %s|%s|%s|%ld|%d|%d|%ld|%ld|%ld", ChrPtr(Room->name), ChrPtr(Room->XAPass), ChrPtr(Room->Directory), Room->QRFlags, Room->BumpUsers, Room->floorid, Room->Order, Room->defview, Room->QRFlags2); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { StrBufCutLeft(Buf, 4); AppendImportantMessage (SKEY(Buf)); FreeStrBuf(&Buf); return 0; } else { FreeStrBuf(&Buf); return 1; } } void LoadRoomXA (void) { wcsession *WCC = WC; if (WCC->CurRoom.XALoaded > 0) return; GetCurrentRoomFlags(&WCC->CurRoom, 0); } void LoadXRoomPic(void) { wcsession *WCC = WC; StrBuf *Buf; off_t bytes; if (WCC->CurRoom.XHaveRoomPicLoaded) { return; } WCC->CurRoom.XHaveRoomPicLoaded = 1; Buf = NewStrBuf(); serv_puts("DLRI"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 6) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); WCC->CurRoom.XHaveRoomPic = 1; StrBuf_ServGetBLOBBuffered(Buf, bytes); // discard the data } else { WCC->CurRoom.XHaveRoomPic = 0; } FreeStrBuf (&Buf); } void LoadXRoomInfoText(void) { wcsession *WCC = WC; StrBuf *Buf; int Done = 0; if (WCC->CurRoom.XHaveInfoTextLoaded) { return; } WCC->CurRoom.XHaveInfoTextLoaded = 1; Buf = NewStrBuf(); serv_puts("RINF"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { WCC->CurRoom.XInfoText = NewStrBuf (); while (!Done && StrBuf_ServGetln(Buf)>=0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) Done = 1; else StrBufAppendBuf(WCC->CurRoom.XInfoText, Buf, 0); } } FreeStrBuf(&Buf); } void LoadXRoomXCountFiles(void) { wcsession *WCC = WC; StrBuf *Buf; int Done = 0; if (WCC->CurRoom.XHaveDownloadCount) return; WCC->CurRoom.XHaveDownloadCount = 1; Buf = NewStrBuf(); serv_puts("RDIR"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { while (!Done && StrBuf_ServGetln(Buf)>=0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) Done = 1; else WCC->CurRoom.XDownloadCount++; } } FreeStrBuf (&Buf); } /* * Toggle self-service list subscription */ void toggle_self_service(void) { wcsession *WCC = WC; if (GetCurrentRoomFlags (&WCC->CurRoom, 1) == 0) return; if (yesbstr("QR2_SelfList")) WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 | QR2_SELFLIST; else WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 & ~QR2_SELFLIST; if (yesbstr("QR2_SMTP_PUBLIC")) WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 | QR2_SMTP_PUBLIC; else WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 & ~QR2_SMTP_PUBLIC; if (yesbstr("QR2_Moderated")) WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 | QR2_MODERATED; else WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 & ~QR2_MODERATED; if (yesbstr("QR2_SubsOnly")) WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 | QR2_SMTP_PUBLIC; else WCC->CurRoom.QRFlags2 = WCC->CurRoom.QRFlags2 & ~QR2_SMTP_PUBLIC; SetCurrentRoomFlags (&WCC->CurRoom); output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } /* * save new parameters for a room */ void editroom(void) { wcsession *WCC = WC; const StrBuf *Ptr; const StrBuf *er_name; const StrBuf *er_password; const StrBuf *er_dirname; const StrBuf *er_roomaide; const StrBuf *templ; int succ1, succ2; templ = sbstr("template"); if (!havebstr("ok_button")) { putlbstr("success", 0); AppendImportantMessage(_("Cancelled. Changes were not saved."), -1); if (templ != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(templ), NULL, &NoCtx); end_burst(); } else { output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } return; } if (GetCurrentRoomFlags (&WCC->CurRoom, 1) == 0) { putlbstr("success", 0); if (templ != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(templ), NULL, &NoCtx); end_burst(); } else { output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } return; } LoadRoomAide(); WCC->CurRoom.QRFlags &= !(QR_PRIVATE | QR_PASSWORDED | QR_GUESSNAME); Ptr = sbstr("type"); if (!strcmp(ChrPtr(Ptr), "invonly")) { WCC->CurRoom.QRFlags |= (QR_PRIVATE); } if (!strcmp(ChrPtr(Ptr), "hidden")) { WCC->CurRoom.QRFlags |= (QR_PRIVATE | QR_GUESSNAME); } if (!strcmp(ChrPtr(Ptr), "passworded")) { WCC->CurRoom.QRFlags |= (QR_PRIVATE | QR_PASSWORDED); } if (!strcmp(ChrPtr(Ptr), "personal")) { WCC->CurRoom.QRFlags |= QR_MAILBOX; } else { WCC->CurRoom.QRFlags &= ~QR_MAILBOX; } if (yesbstr("prefonly")) { WCC->CurRoom.QRFlags |= QR_PREFONLY; } else { WCC->CurRoom.QRFlags &= ~QR_PREFONLY; } if (yesbstr("readonly")) { WCC->CurRoom.QRFlags |= QR_READONLY; } else { WCC->CurRoom.QRFlags &= ~QR_READONLY; } if (yesbstr("collabdel")) { WCC->CurRoom.QRFlags2 |= QR2_COLLABDEL; } else { WCC->CurRoom.QRFlags2 &= ~QR2_COLLABDEL; } if (yesbstr("permanent")) { WCC->CurRoom.QRFlags |= QR_PERMANENT; } else { WCC->CurRoom.QRFlags &= ~QR_PERMANENT; } if (yesbstr("subjectreq")) { WCC->CurRoom.QRFlags2 |= QR2_SUBJECTREQ; } else { WCC->CurRoom.QRFlags2 &= ~QR2_SUBJECTREQ; } if (yesbstr("network")) { WCC->CurRoom.QRFlags |= QR_NETWORK; } else { WCC->CurRoom.QRFlags &= ~QR_NETWORK; } if (yesbstr("directory")) { WCC->CurRoom.QRFlags |= QR_DIRECTORY; } else { WCC->CurRoom.QRFlags &= ~QR_DIRECTORY; } if (yesbstr("ulallowed")) { WCC->CurRoom.QRFlags |= QR_UPLOAD; } else { WCC->CurRoom.QRFlags &= ~QR_UPLOAD; } if (yesbstr("dlallowed")) { WCC->CurRoom.QRFlags |= QR_DOWNLOAD; } else { WCC->CurRoom.QRFlags &= ~QR_DOWNLOAD; } if (yesbstr("ulmsg")) { WCC->CurRoom.QRFlags2 |= QR2_NOUPLMSG; } else { WCC->CurRoom.QRFlags2 &= ~QR2_NOUPLMSG; } if (yesbstr("visdir")) { WCC->CurRoom.QRFlags |= QR_VISDIR; } else { WCC->CurRoom.QRFlags &= ~QR_VISDIR; } Ptr = sbstr("anon"); WCC->CurRoom.QRFlags &= ~(QR_ANONONLY | QR_ANONOPT); if (!strcmp(ChrPtr(Ptr), "anononly")) WCC->CurRoom.QRFlags |= QR_ANONONLY; if (!strcmp(ChrPtr(Ptr), "anon2")) WCC->CurRoom.QRFlags |= QR_ANONOPT; er_name = sbstr("er_name"); er_dirname = sbstr("er_dirname"); er_roomaide = sbstr("er_roomaide"); er_password = sbstr("er_password"); FlushStrBuf(WCC->CurRoom.name); StrBufAppendBuf(WCC->CurRoom.name, er_name, 0); FlushStrBuf(WCC->CurRoom.Directory); StrBufAppendBuf(WCC->CurRoom.Directory, er_dirname, 0); FlushStrBuf(WCC->CurRoom.RoomAide); StrBufAppendBuf(WCC->CurRoom.RoomAide, er_roomaide, 0); FlushStrBuf(WCC->CurRoom.XAPass); StrBufAppendBuf(WCC->CurRoom.XAPass, er_password, 0); WCC->CurRoom.BumpUsers = yesbstr("bump"); WCC->CurRoom.floorid = ibstr("er_floor"); succ1 = SetCurrentRoomFlags(&WCC->CurRoom); succ2 = SaveRoomAide (&WCC->CurRoom); if (succ1 + succ2 == 0) { putlbstr("success", 1); AppendImportantMessage (_("Your changes have been saved."), -1); } else { putlbstr("success", 0); } if (templ != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(templ), NULL, &NoCtx); end_burst(); } else { output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } return; } /* * Display form for Invite, Kick, and show Who Knows a room */ void do_invt_kick(void) { StrBuf *Buf, *User; const StrBuf *UserNames; int Kick, Invite; wcsession *WCC = WC; if (GetCurrentRoomFlags(&WCC->CurRoom, 1) == 1) { const char *Pos; UserNames = sbstr("username"); Kick = havebstr("kick_button"); Invite = havebstr("invite_button"); User = NewStrBufPlain(NULL, StrLength(UserNames)); Buf = NewStrBuf(); Pos = ChrPtr(UserNames); while (Pos != StrBufNOTNULL) { StrBufExtract_NextToken(User, UserNames, &Pos, ','); StrBufTrim(User); if ((StrLength(User) > 0) && (Kick)) { serv_printf("KICK %s", ChrPtr(User)); if (StrBuf_ServGetln(Buf) < 0) break; if (GetServerStatus(Buf, NULL) != 2) { StrBufCutLeft(Buf, 4); AppendImportantMessage(SKEY(Buf)); } else { StrBufPrintf(Buf, _("User '%s' kicked out of room '%s'."), ChrPtr(User), ChrPtr(WCC->CurRoom.name) ); AppendImportantMessage(SKEY(Buf)); } } else if ((StrLength(User) > 0) && (Invite)) { serv_printf("INVT %s", ChrPtr(User)); if (StrBuf_ServGetln(Buf) < 0) break; if (GetServerStatus(Buf, NULL) != 2) { StrBufCutLeft(Buf, 4); AppendImportantMessage(SKEY(Buf)); } else { StrBufPrintf(Buf, _("User '%s' invited to room '%s'."), ChrPtr(User), ChrPtr(WCC->CurRoom.name) ); AppendImportantMessage(SKEY(Buf)); } } } } output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } /* * Create a new room */ void entroom(void) { StrBuf *Line; const StrBuf *er_name; const StrBuf *er_type; const StrBuf *er_password; const StrBuf *template; int er_floor; int er_num_type; int er_view; wcsession *WCC = WC; template = sbstr("template"); if ((WCC == NULL) || !havebstr("ok_button")) { putlbstr("success", 0); AppendImportantMessage(_("Cancelled. No new room was created."), -1); if (template != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(template), NULL, &NoCtx); end_burst(); } else { display_main_menu(); } return; } er_name = sbstr("er_name"); er_type = sbstr("type"); er_password = sbstr("er_password"); er_floor = ibstr("er_floor"); er_view = ibstr("er_view"); er_num_type = 0; if (!strcmp(ChrPtr(er_type), "hidden")) er_num_type = 1; else if (!strcmp(ChrPtr(er_type), "passworded")) er_num_type = 2; else if (!strcmp(ChrPtr(er_type), "invonly")) er_num_type = 3; else if (!strcmp(ChrPtr(er_type), "personal")) er_num_type = 4; serv_printf("CRE8 1|%s|%d|%s|%d|%d|%d", ChrPtr(er_name), er_num_type, ChrPtr(er_password), er_floor, 0, er_view); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) { putlbstr("success", 0); FreeStrBuf(&Line); if (template != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(template), NULL, &NoCtx); end_burst(); } else { display_main_menu(); } return; } /** TODO: Room created, now update the left hand icon bar for this user */ gotoroom(er_name); serv_printf("VIEW %d", er_view); StrBuf_ServGetln(Line); FreeStrBuf(&Line); /* TODO: should we care about errors? */ WCC->CurRoom.view = er_view; putlbstr("success", 1); if (template != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(template), NULL, &NoCtx); end_burst(); } else if ( (WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) { output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } else { smart_goto(WCC->CurRoom.name); } FreeStrBuf(&Line); } /* * Change the view for this room */ void change_view(void) { int newview; char buf[SIZ]; newview = lbstr("view"); serv_printf("VIEW %d", newview); serv_getln(buf, sizeof buf); WC->CurRoom.view = newview; smart_goto(WC->CurRoom.name); } /* * Set the message expire policy for this room and/or floor */ void set_room_policy(void) { StrBuf *Line; if (!havebstr("ok_button")) { AppendImportantMessage(_("Cancelled. Changes were not saved."), -1); output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); return; } Line = NewStrBuf(); serv_printf("SPEX room|%d|%d", ibstr("roompolicy"), ibstr("roomvalue")); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); if (WC->axlevel >= 6) { serv_printf("SPEX floor|%d|%d", ibstr("floorpolicy"), ibstr("floorvalue")); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); } FreeStrBuf(&Line); ReloadCurrentRoom(); output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } /* * Perform changes to a room's network configuration */ void netedit(void) { char buf[SIZ]; char line[SIZ]; char cmpa0[SIZ]; char cmpa1[SIZ]; char cmpb0[SIZ]; char cmpb1[SIZ]; int i, num_addrs; StrBuf *Line; StrBuf *TmpBuf; int malias = 0; int malias_set_default = 0; char sepchar = '|'; int Done; line[0] = '\0'; if (havebstr("force_room")) { gotoroom(sbstr("force_room")); } /*/ TODO: do line dynamic! */ if (havebstr("line_pop3host")) { strcpy(line, bstr("prefix")); strcat(line, bstr("line_pop3host")); strcat(line, "|"); strcat(line, bstr("line_pop3user")); strcat(line, "|"); strcat(line, bstr("line_pop3pass")); strcat(line, "|"); strcat(line, ibstr("line_pop3keep") ? "1" : "0" ); strcat(line, "|"); sprintf(&line[strlen(line)],"%ld", lbstr("line_pop3int")); strcat(line, bstr("suffix")); } else if (havebstr("line")) { strcpy(line, bstr("prefix")); strcat(line, bstr("line")); strcat(line, bstr("suffix")); } else if (havebstr("alias")) { const char *domain; domain = bstr("aliasdomain"); if ((domain == NULL) || IsEmptyStr(domain)) { malias_set_default = 1; strcpy(line, bstr("prefix")); strcat(line, bstr("default_aliasdomain")); } else { malias = 1; sepchar = ','; strcat(line, bstr("prefix")); if (!IsEmptyStr(domain)) { strcat(line, "@"); strcat(line, domain); } strcat(line, ","); strcat(line, "room_"); strcat(line, ChrPtr(WC->CurRoom.name)); } } else { output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); return; } Line = NewStrBuf(); TmpBuf = NewStrBuf(); if (malias) serv_puts("GNET "FILE_MAILALIAS); else serv_puts("GNET"); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) != 1) { AppendImportantMessage(SRV_STATUS_MSG(Line)); FreeStrBuf(&Line); output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); return; } /** This loop works for add *or* remove. Spiffy, eh? */ Done = 0; extract_token(cmpb0, line, 0, sepchar, sizeof cmpb0); extract_token(cmpb1, line, 1, sepchar, sizeof cmpb1); while (!Done && StrBuf_ServGetln(Line)>=0) { if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { if (StrLength(Line) == 0) continue; if (malias_set_default) { if (strncasecmp(ChrPtr(Line), HKEY("roommailalias|")) != 0) { StrBufAppendBufPlain(Line, HKEY("\n"), 0); StrBufAppendBuf(TmpBuf, Line, 0); } } else { extract_token(cmpa0, ChrPtr(Line), 0, sepchar, sizeof cmpa0); extract_token(cmpa1, ChrPtr(Line), 1, sepchar, sizeof cmpa1); if ( (strcasecmp(cmpa0, cmpb0)) || (strcasecmp(cmpa1, cmpb1)) ) { StrBufAppendBufPlain(Line, HKEY("\n"), 0); StrBufAppendBuf(TmpBuf, Line, 0); } } } } if (malias) serv_puts("SNET "FILE_MAILALIAS); else serv_puts("SNET"); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) != 4) { AppendImportantMessage(SRV_STATUS_MSG(Line)); output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); FreeStrBuf(&Line); FreeStrBuf(&TmpBuf); return; } serv_putbuf(TmpBuf); FreeStrBuf(&TmpBuf); if (havebstr("add_button")) { num_addrs = num_tokens(bstr("line"), ','); if (num_addrs < 2) { /* just adding one node or address */ serv_puts(line); } else { /* adding multiple addresses separated by commas */ for (i=0; iCurRoom); FreeStrBuf(&Line); output_headers(1, 1, 1, 0, 0, 0); do_template("room_edit"); wDumpContent(1); } /* * Known rooms list (box style) */ void knrooms(void) { DeleteHash(&WC->Rooms); output_headers(1, 1, 1, 0, 0, 0); do_template("knrooms"); wDumpContent(1); } /******************************************************************************* ********************** FLOOR Coomands ***************************************** ******************************************************************************/ /* * delete the actual floor */ void delete_floor(void) { int floornum; StrBuf *Buf; const char *Err; floornum = ibstr("floornum"); Buf = NewStrBuf(); serv_printf("KFLR %d|1", floornum); StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err); if (GetServerStatus(Buf, NULL) == 2) { StrBufPlain(Buf, _("Floor has been deleted."),-1); } else { StrBufCutLeft(Buf, 4); } AppendImportantMessage (SKEY(Buf)); FlushRoomlist(); http_transmit_thing(ChrPtr(do_template("floors")), 0); FreeStrBuf(&Buf); } /* * start creating a new floor */ void create_floor(void) { StrBuf *Buf; const char *Err; Buf = NewStrBuf(); serv_printf("CFLR %s|1", bstr("floorname")); StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err); if (GetServerStatus(Buf, NULL) == 2) { StrBufPlain(Buf, _("New floor has been created."),-1); } else { StrBufCutLeft(Buf, 4); } AppendImportantMessage (SKEY(Buf)); FlushRoomlist(); http_transmit_thing(ChrPtr(do_template("floors")), 0); FreeStrBuf(&Buf); } /* * rename this floor */ void rename_floor(void) { StrBuf *Buf; Buf = NewStrBuf(); FlushRoomlist(); serv_printf("EFLR %d|%s", ibstr("floornum"), bstr("floorname")); StrBuf_ServGetln(Buf); StrBufCutLeft(Buf, 4); AppendImportantMessage (SKEY(Buf)); http_transmit_thing(ChrPtr(do_template("floors")), 0); FreeStrBuf(&Buf); } void jsonRoomFlr(void) { /* Send as our own (application/json) content type */ hprintf("HTTP/1.1 200 OK\r\n"); hprintf("Content-type: application/json; charset=utf-8\r\n"); hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software)); hprintf("Connection: close\r\n"); hprintf("Pragma: no-cache\r\nCache-Control: no-store\r\nExpires:-1\r\n"); begin_burst(); DoTemplate(HKEY("json_roomflr"),NULL,&NoCtx); end_burst(); } void _FlushRoomList(wcsession *WCC) { free_march_list(WCC); DeleteHash(&WCC->Floors); DeleteHash(&WCC->Rooms); DeleteHash(&WCC->FloorsByName); FlushFolder(&WCC->CurRoom); } void ReloadCurrentRoom(void) { wcsession *WCC = WC; StrBuf *CurRoom; CurRoom = WCC->CurRoom.name; WCC->CurRoom.name = NULL; _FlushRoomList(WCC); gotoroom(CurRoom); FreeStrBuf(&CurRoom); } void FlushRoomlist(void) { wcsession *WCC = WC; _FlushRoomList(WCC); } void InitModule_ROOMOPS (void) { RegisterPreference("roomlistview", _("Room list view"), PRF_STRING, NULL); RegisterPreference("emptyfloors", _("Show empty floors"), PRF_YESNO, NULL); WebcitAddUrlHandler(HKEY("json_roomflr"), "", 0, jsonRoomFlr, 0); WebcitAddUrlHandler(HKEY("delete_floor"), "", 0, delete_floor, 0); WebcitAddUrlHandler(HKEY("rename_floor"), "", 0, rename_floor, 0); WebcitAddUrlHandler(HKEY("create_floor"), "", 0, create_floor, 0); WebcitAddUrlHandler(HKEY("knrooms"), "", 0, knrooms, ANONYMOUS); WebcitAddUrlHandler(HKEY("dotgoto"), "", 0, dotgoto, NEED_URL); WebcitAddUrlHandler(HKEY("dotskip"), "", 0, dotskip, NEED_URL); WebcitAddUrlHandler(HKEY("goto_private"), "", 0, goto_private, NEED_URL); WebcitAddUrlHandler(HKEY("zap"), "", 0, zap, 0); WebcitAddUrlHandler(HKEY("entroom"), "", 0, entroom, 0); WebcitAddUrlHandler(HKEY("do_invt_kick"), "", 0, do_invt_kick, 0); WebcitAddUrlHandler(HKEY("netedit"), "", 0, netedit, 0); WebcitAddUrlHandler(HKEY("editroom"), "", 0, editroom, 0); WebcitAddUrlHandler(HKEY("delete_room"), "", 0, delete_room, 0); WebcitAddUrlHandler(HKEY("set_room_policy"), "", 0, set_room_policy, 0); WebcitAddUrlHandler(HKEY("changeview"), "", 0, change_view, 0); WebcitAddUrlHandler(HKEY("toggle_self_service"), "", 0, toggle_self_service, 0); REGISTERTokenParamDefine(QR_PERMANENT); REGISTERTokenParamDefine(QR_INUSE); REGISTERTokenParamDefine(QR_PRIVATE); REGISTERTokenParamDefine(QR_PASSWORDED); REGISTERTokenParamDefine(QR_GUESSNAME); REGISTERTokenParamDefine(QR_DIRECTORY); REGISTERTokenParamDefine(QR_UPLOAD); REGISTERTokenParamDefine(QR_DOWNLOAD); REGISTERTokenParamDefine(QR_VISDIR); REGISTERTokenParamDefine(QR_ANONONLY); REGISTERTokenParamDefine(QR_ANONOPT); REGISTERTokenParamDefine(QR_NETWORK); REGISTERTokenParamDefine(QR_PREFONLY); REGISTERTokenParamDefine(QR_READONLY); REGISTERTokenParamDefine(QR_MAILBOX); REGISTERTokenParamDefine(QR2_SYSTEM); REGISTERTokenParamDefine(QR2_SELFLIST); REGISTERTokenParamDefine(QR2_COLLABDEL); REGISTERTokenParamDefine(QR2_SUBJECTREQ); REGISTERTokenParamDefine(QR2_SMTP_PUBLIC); REGISTERTokenParamDefine(QR2_MODERATED); REGISTERTokenParamDefine(QR2_NOUPLMSG); REGISTERTokenParamDefine(UA_KNOWN); REGISTERTokenParamDefine(UA_GOTOALLOWED); REGISTERTokenParamDefine(UA_HASNEWMSGS); REGISTERTokenParamDefine(UA_ZAPPED); REGISTERTokenParamDefine(UA_POSTALLOWED); REGISTERTokenParamDefine(UA_ADMINALLOWED); REGISTERTokenParamDefine(UA_DELETEALLOWED); REGISTERTokenParamDefine(UA_REPLYALLOWED); REGISTERTokenParamDefine(UA_ISTRASH); REGISTERTokenParamDefine(US_NEEDVALID); REGISTERTokenParamDefine(US_PERM); REGISTERTokenParamDefine(US_LASTOLD); REGISTERTokenParamDefine(US_EXPERT); REGISTERTokenParamDefine(US_UNLISTED); REGISTERTokenParamDefine(US_NOPROMPT); REGISTERTokenParamDefine(US_PROMPTCTL); REGISTERTokenParamDefine(US_DISAPPEAR); REGISTERTokenParamDefine(US_REGIS); REGISTERTokenParamDefine(US_PAGINATOR); REGISTERTokenParamDefine(US_INTERNET); REGISTERTokenParamDefine(US_FLOORS); REGISTERTokenParamDefine(US_COLOR); REGISTERTokenParamDefine(US_USER_SET); REGISTERTokenParamDefine(VIEW_BBS); REGISTERTokenParamDefine(VIEW_MAILBOX); REGISTERTokenParamDefine(VIEW_ADDRESSBOOK); REGISTERTokenParamDefine(VIEW_CALENDAR); REGISTERTokenParamDefine(VIEW_TASKS); REGISTERTokenParamDefine(VIEW_NOTES); REGISTERTokenParamDefine(VIEW_WIKI); REGISTERTokenParamDefine(VIEW_CALBRIEF); REGISTERTokenParamDefine(VIEW_JOURNAL); REGISTERTokenParamDefine(VIEW_BLOG); REGISTERTokenParamDefine(VIEW_QUEUE); REGISTERTokenParamDefine(VIEW_WIKIMD); /* GNET types: */ /* server internal, we need to know but ignore them. */ REGISTERTokenParamDefine(subpending); REGISTERTokenParamDefine(unsubpending); REGISTERTokenParamDefine(lastsent); REGISTERTokenParamDefine(ignet_push_share); { /* these are the parts of an IGNET push config */ REGISTERTokenParamDefine(GNET_IGNET_NODE); REGISTERTokenParamDefine(GNET_IGNET_ROOM); } REGISTERTokenParamDefine(listrecp); REGISTERTokenParamDefine(digestrecp); REGISTERTokenParamDefine(pop3client); { /* These are the parts of a pop3 client line... */ REGISTERTokenParamDefine(GNET_POP3_HOST); REGISTERTokenParamDefine(GNET_POP3_USER); REGISTERTokenParamDefine(GNET_POP3_DONT_DELETE_REMOTE); REGISTERTokenParamDefine(GNET_POP3_INTERVAL); } REGISTERTokenParamDefine(rssclient); REGISTERTokenParamDefine(participate); REGISTERTokenParamDefine(roommailalias); } void SessionDestroyModule_ROOMOPS (wcsession *sess) { _FlushRoomList (sess); } webcit-dfsg.orig/mailview_renderer.c0000644000175000017500000000572413223341037017656 0ustar michaelmichael#include "webcit.h" #include "webserver.h" #include "dav.h" static inline void CheckConvertBufs(struct wcsession *WCC) { if (WCC->ConvertBuf1 == NULL) WCC->ConvertBuf1 = NewStrBuf(); if (WCC->ConvertBuf2 == NULL) WCC->ConvertBuf2 = NewStrBuf(); } int ParseMessageListHeaders_Detail(StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer, void **ViewSpecific) { wcsession *WCC = WC; long len; long totallen; CheckConvertBufs(WCC); totallen = StrLength(Line); Msg->from = NewStrBufPlain(NULL, totallen); len = StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|'); if (len > 0) { /* Handle senders with RFC2047 encoding */ StrBuf_RFC822_2_Utf8(Msg->from, ConversionBuffer, WCC->DefaultCharset, NULL, WCC->ConvertBuf1, WCC->ConvertBuf2); } /* node name */ len = StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|'); if ((len > 0 ) && ( ((WCC->CurRoom.QRFlags & QR_NETWORK) || ((strcasecmp(ChrPtr(ConversionBuffer), ChrPtr(WCC->serv_info->serv_nodename)) && (strcasecmp(ChrPtr(ConversionBuffer), ChrPtr(WCC->serv_info->serv_fqdn)))))))) { StrBufAppendBufPlain(Msg->from, HKEY(" @ "), 0); StrBufAppendBuf(Msg->from, ConversionBuffer, 0); } /* Internet address (not used) * StrBufExtract_token(Msg->inetaddr, Line, 4, '|'); */ StrBufSkip_NTokenS(Line, pos, '|', 1); Msg->subj = NewStrBufPlain(NULL, totallen); FlushStrBuf(ConversionBuffer); /* we assume the subject is the last parameter inside of the list; * thus we don't use the tokenizer to fetch it, since it will hick up * on tokenizer chars inside of the subjects StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|'); */ len = 0; if (*pos != StrBufNOTNULL) { len = totallen - (*pos - ChrPtr(Line)); StrBufPlain(ConversionBuffer, *pos, len); *pos = StrBufNOTNULL; if ((len > 0) && (*(ChrPtr(ConversionBuffer) + len - 1) == '|')) StrBufCutRight(ConversionBuffer, 1); } if (len == 0) StrBufAppendBufPlain(Msg->subj, _("(no subject)"), -1,0); else { StrBuf_RFC822_2_Utf8(Msg->subj, ConversionBuffer, WCC->DefaultCharset, NULL, WCC->ConvertBuf1, WCC->ConvertBuf2); } return 1; } int mailview_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { DoTemplate(HKEY("msg_listview"),NULL,&NoCtx); return 200; } int mailview_Cleanup(void **ViewSpecific) { /* Note: wDumpContent() will output one additional
    tag. */ /* We ought to move this out into template */ wDumpContent(1); return 0; } void InitModule_MAILVIEW_RENDERERS (void) { RegisterCTX(CTX_MIME_ATACH); RegisterReadLoopHandlerset( VIEW_MAILBOX, mailview_GetParamsGetServerCall, NULL, /* TODO: is this right? */ NULL, ParseMessageListHeaders_Detail, NULL, NULL, mailview_Cleanup, NULL); } webcit-dfsg.orig/pushemail.c0000644000175000017500000000743113223341037016137 0ustar michaelmichael/* * Edits a users push email settings * Author: Mathew McBride */ #include "webcit.h" void display_pushemail(void) { folder Room; int Done = 0; StrBuf *Buf; long vector[8] = {8, 0, 0, 1, 2, 3, 4, 5}; WCTemplputParams SubTP; char mobnum[20]; StackContext(NULL, &SubTP, &vector, CTX_LONGVECTOR, 0, NULL); vector[0] = 16; /* Find any existing settings*/ Buf = NewStrBuf(); memset(&Room, 0, sizeof(folder)); if (goto_config_room(Buf, &Room) == 0) { int msgnum = 0; serv_puts("MSGS ALL|0|1"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 8) { serv_puts("subj|__ Push email settings __"); serv_puts("000"); while (!Done && StrBuf_ServGetln(Buf) >= 0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; break; } msgnum = StrTol(Buf); } } if (msgnum > 0L) { serv_printf("MSG0 %d", msgnum); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { int i =0; Done = 0; while (!Done && StrBuf_ServGetln(Buf) >= 0) { if (( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000"))|| ((StrLength(Buf)==4) && !strcmp(ChrPtr(Buf), "text"))) { Done = 1; break; } } if (!strcmp(ChrPtr(Buf), "text")) { Done = 0; while (!Done && StrBuf_ServGetln(Buf) >= 0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; break; } if (strncasecmp(ChrPtr(Buf), "none", 4) == 0) { vector[1] = 0; } else if (strncasecmp(ChrPtr(Buf), "textmessage", 11) == 0) { vector[1] = 1; i++; } else if (strncasecmp(ChrPtr(Buf), "funambol", 8) == 0) { vector[1] = 2; } else if (strncasecmp(ChrPtr(Buf), "httpmessage", 12) == 0) { vector[1] = 3; } else if (i == 1) { strncpy(mobnum, ChrPtr(Buf), 20); i++; } } } } } serv_printf("GOTO %s", ChrPtr(WC->CurRoom.name)); StrBuf_ServGetln(Buf); GetServerStatus(Buf, NULL); } FlushFolder(&Room); output_headers(1, 1, 1, 0, 0, 0); DoTemplate(HKEY("prefs_pushemail"), NULL, &SubTP); wDumpContent(1); UnStackContext(&SubTP); FreeStrBuf(&Buf); } void save_pushemail(void) { folder Room; int Done = 0; StrBuf *Buf; char buf[SIZ]; int msgnum = 0; char *pushsetting = bstr("pushsetting"); char *sms = NULL; if (strncasecmp(pushsetting, "textmessage", 11) == 0) { sms = bstr("user_sms_number"); } Buf = NewStrBuf(); memset(&Room, 0, sizeof(folder)); if (goto_config_room(Buf, &Room) != 0) { FreeStrBuf(&Buf); FlushFolder(&Room); return; /* oh well. */ } FlushFolder(&Room); serv_puts("MSGS ALL|0|1"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 8) { serv_puts("subj|__ Push email settings __"); serv_puts("000"); } else { printf("Junk in save_pushemail buffer!: %s\n", buf); FreeStrBuf(&Buf); return; } while (!Done && StrBuf_ServGetln(Buf) >= 0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; break; } msgnum = StrTol(Buf); } if (msgnum > 0L) { serv_printf("DELE %d", msgnum); StrBuf_ServGetln(Buf); GetServerStatus(Buf, NULL); } serv_printf("ENT0 1||0|1|__ Push email settings __|"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 4) { serv_puts(pushsetting); if (sms != NULL) { serv_puts(sms); } serv_puts(""); serv_puts("000"); } /** Go back to the room we're supposed to be in */ serv_printf("GOTO %s", ChrPtr(WC->CurRoom.name)); StrBuf_ServGetln(Buf); GetServerStatus(Buf, NULL); http_redirect("display_pushemail"); FreeStrBuf(&Buf); } void InitModule_PUSHMAIL (void) { WebcitAddUrlHandler(HKEY("display_pushemail"), "", 0, display_pushemail, 0); WebcitAddUrlHandler(HKEY("save_pushemail"), "", 0, save_pushemail, 0); } webcit-dfsg.orig/roomlist.c0000644000175000017500000005452613223341037016027 0ustar michaelmichael/* * room listings and filters. */ #include "webcit.h" #include "webserver.h" typedef enum __eRoomParamType { eNotSet, eDomain, eAlias }eRoomParamType; HashList *GetWhoKnowsHash(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Line; StrBuf *Token; long State; HashList *Whok = NULL; int Done = 0; int n = 0; serv_puts("WHOK"); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, &State) == 1) { Whok = NewHash(1, Flathash); while(!Done && (StrBuf_ServGetln(Line) >= 0) ) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { const char *Pos = NULL; Token = NewStrBufPlain (NULL, StrLength(Line)); StrBufExtract_NextToken(Token, Line, &Pos, '|'); Put(Whok, IKEY(n), Token, HFreeStrBuf); n++; } } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); FreeStrBuf(&Line); return Whok; } void DeleteFloor(void *vFloor) { Floor *pFloor; pFloor = (Floor*) vFloor; FreeStrBuf(&pFloor->Name); free(pFloor); } int SortFloorsByNameOrder(const void *vfloor1, const void *vfloor2) { Floor *f1 = (Floor*) GetSearchPayload(vfloor1); Floor *f2 = (Floor*) GetSearchPayload(vfloor2); /* prefer My floor over alpabetical sort */ if (f1->ID == VIRTUAL_MY_FLOOR) return 1; if (f2->ID == VIRTUAL_MY_FLOOR) return -1; return strcmp(ChrPtr(f1->Name), ChrPtr(f2->Name)); } HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP) { int Done = 0; const char *Err; StrBuf *Buf; HashList *floors; HashList *floorsbyname; HashPos *it; Floor *pFloor; void *vFloor; const char *Pos; int i; wcsession *WCC = WC; const char *HashKey; long HKLen; if (WCC->Floors != NULL) return WCC->Floors; WCC->Floors = floors = NewHash(1, Flathash); WCC->FloorsByName = floorsbyname = NewHash(1, NULL); Buf = NewStrBuf(); pFloor = (Floor*) malloc(sizeof(Floor)); pFloor->ID = VIRTUAL_MY_FLOOR; pFloor->Name = NewStrBufPlain(_("My Folders"), -1); pFloor->NRooms = 0; Put(floors, IKEY(pFloor->ID), pFloor, DeleteFloor); Put(floorsbyname, SKEY(pFloor->Name), pFloor, reference_free_handler); serv_puts("LFLR"); /* get floors */ StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err); /* '100', we hope */ if (GetServerStatus(Buf, NULL) == 1) { while(!Done && StrBuf_ServGetln(Buf) >= 0) if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; } else { Pos = NULL; pFloor = (Floor*) malloc(sizeof(Floor)); pFloor->ID = StrBufExtractNext_int(Buf, &Pos, '|'); pFloor->Name = NewStrBufPlain(NULL, StrLength(Buf)); StrBufExtract_NextToken(pFloor->Name, Buf, &Pos, '|'); pFloor->NRooms = StrBufExtractNext_long(Buf, &Pos, '|'); Put(floors, IKEY(pFloor->ID), pFloor, DeleteFloor); Put(floorsbyname, SKEY(pFloor->Name), pFloor, reference_free_handler); } } FreeStrBuf(&Buf); /* now lets pre-sort them alphabeticaly. */ i = 1; SortByPayload(floors, SortFloorsByNameOrder); it = GetNewHashPos(floors, 0); while ( GetNextHashPos(floors, it, &HKLen, &HashKey, &vFloor)) ((Floor*) vFloor)->AlphaN = i++; DeleteHashPos(&it); SortByHashKeyStr(floors); return floors; } HashList *GetZappedRoomListHash(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->Floors == NULL) GetFloorListHash(Target, TP); serv_puts("LZRM -1"); return GetRoomListHash(Target, TP); } HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->Floors == NULL) GetFloorListHash(Target, TP); if (WCC->Rooms == NULL) { serv_puts("LKRA"); WCC->Rooms = GetRoomListHash(Target, TP); } return WCC->Rooms; } HashList *GetRoomListHashLPRM(StrBuf *Target, WCTemplputParams *TP) { serv_puts("LPRM"); return GetRoomListHash(Target, TP); } void FlushIgnetCfgs(folder *room) { int i; if (room->IgnetCfgs[maxRoomNetCfg] == (HashList*) StrBufNOTNULL) { for (i = ignet_push_share; i < maxRoomNetCfg; i++) DeleteHash(&room->IgnetCfgs[i]); } memset(&room->IgnetCfgs, 0, sizeof(HashList *) * (maxRoomNetCfg + 1)); room->RoomAlias = NULL; } void FlushFolder(folder *room) { int i; FreeStrBuf(&room->XAPass); FreeStrBuf(&room->Directory); FreeStrBuf(&room->RoomAide); FreeStrBuf(&room->XInfoText); room->XHaveInfoTextLoaded = 0; FreeStrBuf(&room->name); FlushIgnetCfgs(room); if (room->RoomNameParts != NULL) { for (i=0; i < room->nRoomNameParts; i++) FreeStrBuf(&room->RoomNameParts[i]); free(room->RoomNameParts); } memset(room, 0, sizeof(folder)); } void vDeleteFolder(void *vFolder) { folder *room; room = (folder*) vFolder; FlushFolder(room); free(room); } HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP) { int Done = 0; HashList *rooms; folder *room; StrBuf *Buf; const char *Pos; void *vFloor; wcsession *WCC = WC; CompareFunc SortIt; WCTemplputParams SubTP; Buf = NewStrBuf(); rooms = NewHash(1, NULL); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { while(!Done && (StrBuf_ServGetln(Buf) >= 0)) if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; } else { Pos = NULL; room = (folder*) malloc (sizeof(folder)); memset(room, 0, sizeof(folder)); /* Load the base data from the server reply */ room->name = NewStrBufPlain(NULL, StrLength(Buf)); StrBufExtract_NextToken(room->name, Buf, &Pos, '|'); room->QRFlags = StrBufExtractNext_long(Buf, &Pos, '|'); room->floorid = StrBufExtractNext_int(Buf, &Pos, '|'); room->Order = StrBufExtractNext_long(Buf, &Pos, '|'); room->QRFlags2 = StrBufExtractNext_long(Buf, &Pos, '|'); room->RAFlags = StrBufExtractNext_long(Buf, &Pos, '|'); /* ACWHUT? room->ACL = NewStrBufPlain(NULL, StrLength(Buf)); StrBufExtract_NextToken(room->ACL, Buf, &Pos, '|'); */ room->view = StrBufExtractNext_long(Buf, &Pos, '|'); room->defview = StrBufExtractNext_long(Buf, &Pos, '|'); room->lastchange = StrBufExtractNext_long(Buf, &Pos, '|'); /* Evaluate the Server sent data for later use */ /* find out, whether we are in a sub-room */ room->nRoomNameParts = StrBufNum_tokens(room->name, '\\'); if (room->nRoomNameParts > 1) { int i; Pos = NULL; room->RoomNameParts = malloc(sizeof(StrBuf*) * (room->nRoomNameParts + 1)); memset(room->RoomNameParts, 0, sizeof(StrBuf*) * (room->nRoomNameParts + 1)); for (i=0; i < room->nRoomNameParts; i++) { room->RoomNameParts[i] = NewStrBuf(); StrBufExtract_NextToken(room->RoomNameParts[i], room->name, &Pos, '\\'); } } /* Private mailboxes on the main floor get remapped to the personal folder */ if ((room->QRFlags & QR_MAILBOX) && (room->floorid == 0)) { room->floorid = VIRTUAL_MY_FLOOR; if ((room->nRoomNameParts == 1) && (StrLength(room->name) == 4) && (strcmp(ChrPtr(room->name), "Mail") == 0)) { room->is_inbox = 1; } } /* get a pointer to the floor we're on: */ GetHash(WCC->Floors, IKEY(room->floorid), &vFloor); room->Floor = (const Floor*) vFloor; /* now we know everything, remember it... */ Put(rooms, SKEY(room->name), room, vDeleteFolder); } } SubTP.Filter.ContextType = CTX_ROOMS; SortIt = RetrieveSort(&SubTP, NULL, 0, HKEY("fileunsorted"), 0); if (SortIt != NULL) SortByPayload(rooms, SortIt); else SortByPayload(rooms, SortRoomsByListOrder); FreeStrBuf(&Buf); return rooms; } HashList *GetThisRoomMAlias(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBuf *Line; StrBuf *Token; HashList *Aliases = NULL; const char *pComma; long aliaslen; long locallen; long State; serv_puts("GNET "FILE_MAILALIAS); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, &State) == 1) { int Done = 0; int n = 0; Aliases = NewHash(1, NULL); while(!Done && (StrBuf_ServGetln(Line) >= 0)) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { pComma = strchr(ChrPtr(Line), ','); if (pComma == NULL) continue; aliaslen = pComma - ChrPtr(Line); locallen = StrLength(Line) - 1 - aliaslen; if (locallen - 5 != StrLength(WCC->CurRoom.name)) continue; if (strncmp(pComma + 1, "room_", 5) != 0) continue; if (strcasecmp(pComma + 6, ChrPtr(WCC->CurRoom.name)) != 0) continue; Token = NewStrBufPlain(ChrPtr(Line), aliaslen); Put(Aliases, IKEY(n), Token, HFreeStrBuf); n++; } } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); FreeStrBuf(&Line); return Aliases; } void AppendPossibleAliasWithDomain( HashList *PossibleAliases, long *nPossibleAliases, const HashList *Domains, const char *prefix, long len, const char* Alias, long AliasLen) { const StrBuf *OneDomain; StrBuf *Line; HashPos *It = NULL; const char *Key; long KLen; void *pV; int n; It = GetNewHashPos(Domains, 1); n = *nPossibleAliases; while (GetNextHashPos(Domains, It, &KLen, &Key, &pV)) { OneDomain = (const StrBuf*) pV; Line = NewStrBuf(); StrBufAppendBufPlain(Line, prefix, len, 0); StrBufAppendBufPlain(Line, Alias, AliasLen, 0); StrBufAppendBufPlain(Line, HKEY("@"), 0); StrBufAppendBuf(Line, OneDomain, 0); Put(PossibleAliases, IKEY(n), Line, HFreeStrBuf); n++; } DeleteHashPos(&It); *nPossibleAliases = n; } HashList *GetThisRoomPossibleMAlias(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; HashList *Domains; StrBuf *Line; StrBuf *Token; StrBuf *RoomName; HashList *PossibleAliases = NULL; const char *pComma; const char *pAt; long aliaslen; long locallen; long State; long n = 0; Domains = GetValidDomainNames(Target, TP); if (Domains == NULL) return NULL; if (GetCount(Domains) == 0) { DeleteHash(&Domains); return NULL; } PossibleAliases = NewHash(1, NULL); Line = NewStrBuf(); RoomName = NewStrBufDup(WCC->CurRoom.name); StrBufAsciify(RoomName, '_'); StrBufReplaceChars(RoomName, ' ', '_'); AppendPossibleAliasWithDomain(PossibleAliases, &n, Domains, HKEY("room_"), SKEY(RoomName)); serv_puts("GNET "FILE_MAILALIAS); StrBuf_ServGetln(Line); if (GetServerStatus(Line, &State) == 1) { int Done = 0; while(!Done && (StrBuf_ServGetln(Line) >= 0)) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { pComma = strchr(ChrPtr(Line), ','); if (pComma == NULL) continue; aliaslen = pComma - ChrPtr(Line); locallen = StrLength(Line) - 1 - aliaslen; if (locallen - 5 != StrLength(WCC->CurRoom.name)) continue; if (strncmp(pComma + 1, "room_", 5) != 0) continue; if (strcasecmp(pComma + 6, ChrPtr(WCC->CurRoom.name)) != 0) continue; pAt = strchr(ChrPtr(Line), '@'); if ((pAt == NULL) || (pAt > pComma)) { AppendPossibleAliasWithDomain(PossibleAliases, &n, Domains, HKEY(""), ChrPtr(Line), aliaslen); n++; } else { Token = NewStrBufPlain(ChrPtr(Line), aliaslen); Put(PossibleAliases, IKEY(n), Token, HFreeStrBuf); n++; } } } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); DeleteHash(&Domains); FreeStrBuf(&Line); FreeStrBuf(&RoomName); return PossibleAliases; } HashList *GetNetConfigHash(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBuf *Line; StrBuf *Token; StrBuf *Content; long WantThisOne; long PutTo; long State; WantThisOne = GetTemplateTokenNumber(Target, TP, 5, -1); if ((WantThisOne < 0) || (WantThisOne > maxRoomNetCfg)) return NULL; if (WCC->CurRoom.IgnetCfgs[maxRoomNetCfg] == (HashList*) StrBufNOTNULL) return WCC->CurRoom.IgnetCfgs[WantThisOne]; WCC->CurRoom.IgnetCfgs[maxRoomNetCfg] = (HashList*) StrBufNOTNULL; serv_puts("GNET"); Line = NewStrBuf(); Token = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, &State) == 1) { const char *Pos = NULL; int Done = 0; int HaveRoomMailAlias = 0; while(!Done && (StrBuf_ServGetln(Line) >= 0)) { if (StrLength(Line) == 0) continue; if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { StrBufExtract_NextToken(Token, Line, &Pos, '|'); PutTo = GetTokenDefine(SKEY(Token), -1); if (PutTo == roommailalias) { if (HaveRoomMailAlias > 0) continue; /* Only ONE alias possible! */ HaveRoomMailAlias++; } if ((PutTo >= 0) && (PutTo < maxRoomNetCfg) && (Pos != StrBufNOTNULL)) { int n; HashList *SubH; if (WCC->CurRoom.IgnetCfgs[PutTo] == NULL) { n = 0; WCC->CurRoom.IgnetCfgs[PutTo] = NewHash(1, NULL); } else { n = GetCount(WCC->CurRoom.IgnetCfgs[PutTo]); } SubH = NewHash(1, NULL); Put(WCC->CurRoom.IgnetCfgs[PutTo], IKEY(n), SubH, HDeleteHash); n = 1; /* #0 is the type... */ while (Pos != StrBufNOTNULL) { Content = NewStrBuf(); StrBufExtract_NextToken(Content, Line, &Pos, '|'); if ((PutTo == roommailalias) && n == 1) WCC->CurRoom.RoomAlias = Content; Put(SubH, IKEY(n), Content, HFreeStrBuf); n++; } } Pos = NULL; } } } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); FreeStrBuf(&Line); FreeStrBuf(&Token); return WCC->CurRoom.IgnetCfgs[WantThisOne]; } /** Unused function that orders rooms by the listorder flag */ int SortRoomsByListOrder(const void *room1, const void *room2) { folder *r1 = (folder*) GetSearchPayload(room1); folder *r2 = (folder*) GetSearchPayload(room2); if (r1->Order == r2->Order) return 0; if (r1->Order > r2->Order) return 1; return -1; } int CompareRoomListByFloorRoomPrivFirst(const void *room1, const void *room2) { folder *r1 = (folder*) GetSearchPayload(room1); folder *r2 = (folder*) GetSearchPayload(room2); if ((r1->Floor == NULL) || (r2->Floor == NULL)) return 0; /** * are we on the same floor? else sort by floor. */ if (r1->Floor != r2->Floor) { /** * the private rooms are first in any case. */ if (r1->Floor->ID == VIRTUAL_MY_FLOOR) return -1; if (r2->Floor->ID == VIRTUAL_MY_FLOOR) return 1; /** * else decide alpaheticaly by floorname */ return (r1->Floor->AlphaN > r2->Floor->AlphaN)? 1 : -1; } /** * if we have different levels of subdirectories, * we want the toplevel to be first, regardless of sort * sequence. */ if (((r1->nRoomNameParts > 1) || (r2->nRoomNameParts > 1) )&& (r1->nRoomNameParts != r2->nRoomNameParts)) { int i, ret; int nparts = (r1->nRoomNameParts > r2->nRoomNameParts)? r2->nRoomNameParts : r1->nRoomNameParts; for (i=0; i < nparts; i++) { ret = strcmp (ChrPtr(r1->name), ChrPtr(r2->name)); /** * Deltas in common parts? exit here. */ if (ret != 0) return ret; } /** * who's a subdirectory of whom? */ if (r1->nRoomNameParts > r2->nRoomNameParts) return 1; else return -1; } /** * else just sort alphabeticaly. */ return strcmp (ChrPtr(r1->name), ChrPtr(r2->name)); } int CompareRoomListByFloorRoomPrivFirstRev(const void *room1, const void *room2) { folder *r1 = (folder*) GetSearchPayload(room1); folder *r2 = (folder*) GetSearchPayload(room2); if ((r1->Floor == NULL) || (r2->Floor == NULL)) return 0; /** * are we on the same floor? else sort by floor. */ if (r2->Floor != r1->Floor) { /** * the private rooms are first in any case. */ if (r1->Floor->ID == VIRTUAL_MY_FLOOR) return -1; if (r2->Floor->ID == VIRTUAL_MY_FLOOR) return 1; /** * else decide alpaheticaly by floorname */ return (r1->Floor->AlphaN < r2->Floor->AlphaN)? 1 : -1; } /** * if we have different levels of subdirectories, * we want the toplevel to be first, regardless of sort * sequence. */ if (((r1->nRoomNameParts > 1) || (r2->nRoomNameParts > 1) )&& (r1->nRoomNameParts != r2->nRoomNameParts)) { int i, ret; int nparts = (r1->nRoomNameParts > r2->nRoomNameParts)? r2->nRoomNameParts : r1->nRoomNameParts; for (i=0; i < nparts; i++) { /** * special cases if one room is top-level... */ if (r2->nRoomNameParts == 1) ret = strcmp (ChrPtr(r2->name), ChrPtr(r1->RoomNameParts[i])); else if (r1->nRoomNameParts == 1) ret = strcmp (ChrPtr(r2->RoomNameParts[i]), ChrPtr(r1->name)); else ret = strcmp (ChrPtr(r2->RoomNameParts[i]), ChrPtr(r1->RoomNameParts[i])); /** * Deltas in common parts? exit here. */ if (ret != 0) return ret; } /** * who's a subdirectory of whom? */ if (r1->nRoomNameParts > r2->nRoomNameParts) return 1; else return -1; } return strcmp (ChrPtr(r2->name), ChrPtr(r1->name)); } int GroupchangeRoomListByFloorRoomPrivFirst(const void *room1, const void *room2) { folder *r1 = (folder*) room1; folder *r2 = (folder*) room2; if ((r1->Floor == NULL) || (r2->Floor == NULL)) return 0; if (r1->Floor == r2->Floor) return 0; else { wcsession *WCC = WC; static int columns = 3; int boxes_per_column = 0; int nf; nf = GetCount(WCC->Floors); while (nf % columns != 0) ++nf; boxes_per_column = (nf / columns); if (boxes_per_column < 1) boxes_per_column = 1; if (r1->Floor->AlphaN % boxes_per_column == 0) return 2; else return 1; } } int CompareRooms(const folder *room1, const folder *room2) { if ((room1 == NULL) || (room2 == NULL)) return -1; return CompareRoomListByFloorRoomPrivFirst(room1, room2); } int ConditionalThisRoomIsStrBufContextAlias(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; const char *pVal; long len; eRoomParamType ParamType; ParamType = GetTemplateTokenNumber(Target, TP, 2, eNotSet); GetTemplateTokenString(Target, TP, 3, &pVal, &len); if (ParamType == eNotSet) { return StrLength(WCC->CurRoom.RoomAlias) == 0; } else if (ParamType == eDomain) { const StrBuf *CtxStr = (const StrBuf*) CTX(CTX_STRBUF); const char *pAt; if (CtxStr == NULL) return 0; if (StrLength(WCC->CurRoom.RoomAlias) == 0) return 0; if (strncmp(ChrPtr(WCC->CurRoom.RoomAlias), "room_", 5) != 0) return 0; pAt = strchr(ChrPtr(WCC->CurRoom.RoomAlias), '@'); if (pAt == NULL) return 0; return strcmp(pAt + 1, ChrPtr(CtxStr)) == 0; } else if (ParamType == eAlias) { const StrBuf *CtxStr = (const StrBuf*) CTX(CTX_STRBUF); if (CtxStr == NULL) return 0; if (StrLength(WCC->CurRoom.RoomAlias) == 0) return 0; return strcmp(ChrPtr(WCC->CurRoom.RoomAlias), ChrPtr(CtxStr)) == 0; } else { LogTemplateError(Target, "TokenParameter", 2, TP, "Invalid paramtype; need one of [eNotSet|eDomain|eAlias]"); return 0; } } int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; folder *Folder = (folder *)CTX(CTX_ROOMS); HashPos *it; StrBuf * Dir; void *vDir; long len; const char *Key; int i, j, urlp; int delta; /* list only folders relative to the current floor... */ if (Folder->Floor != WCC->CurrentFloor) return 0; urlp = GetCount(WCC->Directory); delta = Folder->nRoomNameParts - urlp + 1; syslog(LOG_DEBUG, "\n->%s: %d - %ld ", ChrPtr(Folder->name), urlp, Folder->nRoomNameParts); /* list only the floors which are in relation to the dav_depth header */ if (WCC->Hdr->HR.dav_depth != delta) { syslog(LOG_DEBUG, "1\n"); return 0; } it = GetNewHashPos(WCC->Directory, 0); /* Fast forward the floorname we checked above... */ GetNextHashPos(WCC->Directory, it, &len, &Key, &vDir); if (Folder->nRoomNameParts > 1) { for (i = 0, j = 1; (i > Folder->nRoomNameParts) && (j > urlp); i++, j++) { if (!GetNextHashPos(WCC->Directory, it, &len, &Key, &vDir) || (vDir == NULL)) { DeleteHashPos(&it); syslog(LOG_DEBUG, "3\n"); return 0; } Dir = (StrBuf*) vDir; if (strcmp(ChrPtr(Folder->RoomNameParts[i]), ChrPtr(Dir)) != 0) { DeleteHashPos(&it); syslog(LOG_DEBUG, "4\n"); return 0; } } DeleteHashPos(&it); return 1; } else { if (!GetNextHashPos(WCC->Directory, it, &len, &Key, &vDir) || (vDir == NULL)) { DeleteHashPos(&it); syslog(LOG_DEBUG, "5\n"); return WCC->Hdr->HR.dav_depth == 1; } DeleteHashPos(&it); Dir = (StrBuf*) vDir; if (WCC->Hdr->HR.dav_depth == 0) { return (strcmp(ChrPtr(Folder->name), ChrPtr(Dir)) == 0); } return 0; } } void InitModule_ROOMLIST (void) { /* we duplicate this, just to be shure its already done. */ RegisterCTX(CTX_ROOMS); RegisterCTX(CTX_FLOORS); RegisterIterator("ITERATE:THISROOM:WHO_KNOWS", 0, NULL, GetWhoKnowsHash, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUFARR, CTX_NONE, IT_NOFLAG); RegisterIterator("ITERATE:THISROOM:MALIAS", 1, NULL, GetThisRoomMAlias, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("ITERATE:THISROOM:POSSIBLE:MALIAS", 1, NULL, GetThisRoomPossibleMAlias, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterIterator("LFLR", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterIterator("LKRA", 0, NULL, GetRoomListHashLKRA, NULL, NULL, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterIterator("LZRM", 0, NULL, GetZappedRoomListHash, NULL, DeleteHash, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); RegisterIterator("LPRM", 0, NULL, GetRoomListHashLPRM, NULL, DeleteHash, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE); REGISTERTokenParamDefine(eNotSet); REGISTERTokenParamDefine(eDomain); REGISTERTokenParamDefine(eAlias); RegisterConditional("COND:ROOM:REST:ISSUBROOM", 0, ConditionalRoomIsRESTSubRoom, CTX_ROOMS); RegisterConditional("COND:THISROOM:ISALIAS:CONTEXTSTR", 0, ConditionalThisRoomIsStrBufContextAlias, CTX_NONE); RegisterSortFunc(HKEY("byfloorroom"), NULL, 0, CompareRoomListByFloorRoomPrivFirst, CompareRoomListByFloorRoomPrivFirstRev, GroupchangeRoomListByFloorRoomPrivFirst, CTX_ROOMS); } webcit-dfsg.orig/autocompletion.c0000644000175000017500000000324113223341037017205 0ustar michaelmichael/* * ajax-powered autocompletion... * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /* * Recipient autocompletion results */ void recp_autocomplete(char *partial) { char buf[1024]; char name[128]; output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-type: text/html\r\n" "Server: %s\r\n" "Connection: close\r\n" "Pragma: no-cache\r\n" "Cache-Control: no-store\r\n" "Expires: -1\r\n" , PACKAGE_STRING); begin_burst(); wc_printf("
      "); serv_printf("AUTO %s", partial); serv_getln(buf, sizeof buf); if (buf[0] == '1') { while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) { extract_token(name, buf, 0, '|', sizeof name); wc_printf("
    • "); escputs(name); wc_printf("
    • "); } } wc_printf("
    "); wc_printf("\r\n\r\n"); wDumpContent(0); } void _recp_autocomplete(void) {recp_autocomplete(bstr("recp"));} void _cc_autocomplete(void) {recp_autocomplete(bstr("cc"));} void _bcc_autocomplete(void) {recp_autocomplete(bstr("bcc"));} void InitModule_AUTO_COMPLETE (void) { WebcitAddUrlHandler(HKEY("recp_autocomplete"), "", 0, _recp_autocomplete, 0); WebcitAddUrlHandler(HKEY("cc_autocomplete"), "", 0, _cc_autocomplete, 0); WebcitAddUrlHandler(HKEY("bcc_autocomplete"), "", 0, _bcc_autocomplete, 0); } webcit-dfsg.orig/sieve.c0000644000175000017500000006233113223341037015263 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * FIXME: add logic to exclude the webcit-generated script from the manual script selection */ #include "webcit.h" CtxType CTX_SIEVELIST = CTX_NONE; CtxType CTX_SIEVESCRIPT = CTX_NONE; #define MAX_SCRIPTS 100 #define MAX_RULES 50 #define RULES_SCRIPT "__WebCit_Generated_Script__" /* * Helper function for output_sieve_rule() to output strings with quotes escaped */ void osr_sanitize(char *str) { int i, len; if (str == NULL) return; len = strlen(str); for (i=0; i 0) { for (i=0; iIsActive; } int ConditionalSieveScriptIsRulesScript(StrBuf *Target, WCTemplputParams *TP) { SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); return SieveList->IsActive; } void tmplput_SieveScriptName(StrBuf *Target, WCTemplputParams *TP) { SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); StrBufAppendTemplate(Target, TP, SieveList->Name, 0); } void tmplput_SieveScriptContent(StrBuf *Target, WCTemplputParams *TP) { SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); StrBufAppendTemplate(Target, TP, SieveList->Content, 0); } void FreeSieveListing(void *vSieveListing) { SieveListing *List = (SieveListing*) vSieveListing; FreeStrBuf(&List->Name); free(List); } HashList *GetSieveScriptListing(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBuf *Line; int num_scripts = 0; int rules_script_active = 0; int have_rules_script = 0; const char *pch; HashPos *it; int Done = 0; SieveListing *Ruleset; if (WCC->KnownSieveScripts != NULL) { return WCC->KnownSieveScripts; } serv_puts("MSIV listscripts"); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { WCC->KnownSieveScripts = NewHash(1, Flathash); while(!Done && (StrBuf_ServGetln(Line) >= 0) ) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { pch = NULL; Ruleset = (SieveListing *) malloc(sizeof(SieveListing)); Ruleset->Name = NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_NextToken(Ruleset->Name, Line, &pch, '|'); Ruleset->IsActive = StrBufExtractNext_int(Line, &pch, '|'); Ruleset->Content = NULL; if (!strcasecmp(ChrPtr(Ruleset->Name), RULES_SCRIPT)) { Ruleset->IsRulesScript = 1; have_rules_script = 1; if (Ruleset->IsActive) { rules_script_active = 1; PutBstr(HKEY("__SIEVE:RULESSCRIPT"), NewStrBufPlain(HKEY("1"))); } } Put(WCC->KnownSieveScripts, IKEY(num_scripts), Ruleset, FreeSieveListing); ++num_scripts; } } if ((num_scripts > 0) && (rules_script_active == 0)) { PutBstr(HKEY("__SIEVE:EXTERNAL_SCRIPT"), NewStrBufPlain(HKEY("1"))); } if (num_scripts > have_rules_script) { long rc = 0; long len; const char *Key; void *vRuleset; /* * ok; we have custom scripts, expose that via bstr, and load the payload. */ PutBstr(HKEY("__SIEVE:HAVE_EXTERNAL_SCRIPT"), NewStrBufPlain(HKEY("1"))); it = GetNewHashPos(WCC->KnownSieveScripts, 0); while (GetNextHashPos(WCC->KnownSieveScripts, it, &len, &Key, &vRuleset) && (vRuleset != NULL)) { Ruleset = (SieveListing *) vRuleset; serv_printf("MSIV getscript|%s", ChrPtr(Ruleset->Name)); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { Ruleset->Content = NewStrBuf(); Done = 0; while(!Done && (rc = StrBuf_ServGetln(Line), rc >= 0) ) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { if (StrLength(Ruleset->Content)>0) StrBufAppendBufPlain(Ruleset->Content, HKEY("\n"), 0); StrBufAppendBuf(Ruleset->Content, Line, 0); } if (rc < 0) break; } } } FreeStrBuf(&Line); return WCC->KnownSieveScripts; } typedef enum __eSieveHfield { from, tocc, subject, replyto, sender, resentfrom, resentto, envfrom, envto, xmailer, xspamflag, xspamstatus, listid, size, all } eSieveHfield; typedef enum __eSieveCompare { contains, notcontains, is, isnot, matches, notmatches } eSieveCompare; typedef enum __eSieveAction { keep, discard, reject, fileinto, redirect, vacation } eSieveAction; typedef enum __eSieveSizeComp { larger, smaller } eSieveSizeComp; typedef enum __eSieveFinal { econtinue, estop } eSieveFinal; typedef struct __SieveRule { int active; int sizeval; eSieveHfield hfield; eSieveCompare compare; StrBuf *htext; eSieveSizeComp sizecomp; eSieveAction Action; StrBuf *fileinto; StrBuf *redirect; StrBuf *automsg; eSieveFinal final; }SieveRule; int ConditionalSieveRule_hfield(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, from) == Rule->hfield; } int ConditionalSieveRule_compare(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, contains) == Rule->compare; } int ConditionalSieveRule_action(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, keep) == Rule->Action; } int ConditionalSieveRule_sizecomp(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, larger) == Rule->sizecomp; } int ConditionalSieveRule_final(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, econtinue) == Rule->final; } int ConditionalSieveRule_ThisRoom(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, econtinue) == Rule->final; } int ConditionalSieveRule_Active(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return Rule->active; } void tmplput_SieveRule_htext(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->htext, 0); } void tmplput_SieveRule_fileinto(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->fileinto, 0); } void tmplput_SieveRule_redirect(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->redirect, 0); } void tmplput_SieveRule_automsg(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->automsg, 0); } void tmplput_SieveRule_sizeval(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendPrintf(Target, "%d", Rule->sizeval); } void tmplput_SieveRule_lookup_FileIntoRoom(StrBuf *Target, WCTemplputParams *TP) { void *vRoom; SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); wcsession *WCC = WC; HashList *Rooms = GetRoomListHashLKRA(Target, TP); GetHash(Rooms, SKEY(Rule->fileinto), &vRoom); WCC->ThisRoom = (folder*) vRoom; } void FreeSieveRule(void *vRule) { SieveRule *Rule = (SieveRule*) vRule; FreeStrBuf(&Rule->htext); FreeStrBuf(&Rule->fileinto); FreeStrBuf(&Rule->redirect); FreeStrBuf(&Rule->automsg); free(Rule); } #define WC_RULE_HEADER "# WEBCIT_RULE|" HashList *GetSieveRules(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Line = NULL; StrBuf *EncodedRule = NULL; int n = 0; const char *pch = NULL; HashList *SieveRules = NULL; int Done = 0; SieveRule *Rule = NULL; SieveRules = NewHash(1, Flathash); serv_printf("MSIV getscript|"RULES_SCRIPT); Line = NewStrBuf(); EncodedRule = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { while(!Done && (StrBuf_ServGetln(Line) >= 0) ) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { pch = NULL; /* We just care for our encoded header and skip everything else */ if ((StrLength(Line) > sizeof(WC_RULE_HEADER) - 1) && (!strncasecmp(ChrPtr(Line), HKEY(WC_RULE_HEADER)))) { StrBufSkip_NTokenS(Line, &pch, '|', 1); n = StrBufExtractNext_int(Line, &pch, '|'); StrBufExtract_NextToken(EncodedRule, Line, &pch, '|'); StrBufDecodeBase64(EncodedRule); Rule = (SieveRule*) malloc(sizeof(SieveRule)); Rule->htext = NewStrBufPlain (NULL, StrLength(EncodedRule)); Rule->fileinto = NewStrBufPlain (NULL, StrLength(EncodedRule)); Rule->redirect = NewStrBufPlain (NULL, StrLength(EncodedRule)); Rule->automsg = NewStrBufPlain (NULL, StrLength(EncodedRule)); /* Grab our existing values to populate */ pch = NULL; Rule->active = StrBufExtractNext_int(EncodedRule, &pch, '|'); StrBufExtract_NextToken(Line, EncodedRule, &pch, '|'); Rule->hfield = (eSieveHfield) GetTokenDefine(SKEY(Line), tocc); StrBufExtract_NextToken(Line, EncodedRule, &pch, '|'); Rule->compare = (eSieveCompare) GetTokenDefine(SKEY(Line), contains); StrBufExtract_NextToken(Rule->htext, EncodedRule, &pch, '|'); StrBufExtract_NextToken(Line, EncodedRule, &pch, '|'); Rule->sizecomp = (eSieveSizeComp) GetTokenDefine(SKEY(Line), larger); Rule->sizeval = StrBufExtractNext_int(EncodedRule, &pch, '|'); StrBufExtract_NextToken(Line, EncodedRule, &pch, '|'); Rule->Action = (eSieveAction) GetTokenDefine(SKEY(Line), keep); StrBufExtract_NextToken(Rule->fileinto, EncodedRule, &pch, '|'); StrBufExtract_NextToken(Rule->redirect, EncodedRule, &pch, '|'); StrBufExtract_NextToken(Rule->automsg, EncodedRule, &pch, '|'); StrBufExtract_NextToken(Line, EncodedRule, &pch, '|'); Rule->final = (eSieveFinal) GetTokenDefine(SKEY(Line), econtinue); Put(SieveRules, IKEY(n), Rule, FreeSieveRule); n++; } } } while (n < MAX_RULES) { Rule = (SieveRule*) malloc(sizeof(SieveRule)); memset(Rule, 0, sizeof(SieveRule)); Put(SieveRules, IKEY(n), Rule, FreeSieveRule); n++; } FreeStrBuf(&EncodedRule); FreeStrBuf(&Line); return SieveRules; } void SessionDetachModule_SIEVE (wcsession *sess) { DeleteHash(&sess->KnownSieveScripts); } void InitModule_SIEVE (void) { RegisterCTX(CTX_SIEVELIST); RegisterCTX(CTX_SIEVESCRIPT); REGISTERTokenParamDefine(from); REGISTERTokenParamDefine(tocc); REGISTERTokenParamDefine(subject); REGISTERTokenParamDefine(replyto); REGISTERTokenParamDefine(sender); REGISTERTokenParamDefine(resentfrom); REGISTERTokenParamDefine(resentto); REGISTERTokenParamDefine(envfrom); REGISTERTokenParamDefine(envto); REGISTERTokenParamDefine(xmailer); REGISTERTokenParamDefine(xspamflag); REGISTERTokenParamDefine(xspamstatus); REGISTERTokenParamDefine(listid); REGISTERTokenParamDefine(size); REGISTERTokenParamDefine(all); REGISTERTokenParamDefine(contains); REGISTERTokenParamDefine(notcontains); REGISTERTokenParamDefine(is); REGISTERTokenParamDefine(isnot); REGISTERTokenParamDefine(matches); REGISTERTokenParamDefine(notmatches); REGISTERTokenParamDefine(keep); REGISTERTokenParamDefine(discard); REGISTERTokenParamDefine(reject); REGISTERTokenParamDefine(fileinto); REGISTERTokenParamDefine(redirect); REGISTERTokenParamDefine(vacation); REGISTERTokenParamDefine(larger); REGISTERTokenParamDefine(smaller); /* these are c-keyworads, so do it by hand. */ RegisterTokenParamDefine(HKEY("continue"), econtinue); RegisterTokenParamDefine(HKEY("stop"), estop); RegisterIterator("SIEVE:SCRIPTS", 0, NULL, GetSieveScriptListing, NULL, NULL, CTX_SIEVELIST, CTX_NONE, IT_NOFLAG); RegisterConditional("COND:SIEVE:SCRIPT:ACTIVE", 0, ConditionalSieveScriptIsActive, CTX_SIEVELIST); RegisterConditional("COND:SIEVE:SCRIPT:ISRULES", 0, ConditionalSieveScriptIsRulesScript, CTX_SIEVELIST); RegisterNamespace("SIEVE:SCRIPT:NAME", 0, 1, tmplput_SieveScriptName, NULL, CTX_SIEVELIST); RegisterNamespace("SIEVE:SCRIPT:CONTENT", 0, 1, tmplput_SieveScriptContent, NULL, CTX_SIEVELIST); RegisterIterator("SIEVE:RULES", 0, NULL, GetSieveRules, NULL, DeleteHash, CTX_SIEVESCRIPT, CTX_NONE, IT_NOFLAG); RegisterConditional("COND:SIEVE:ACTIVE", 1, ConditionalSieveRule_Active, CTX_SIEVESCRIPT); RegisterConditional("COND:SIEVE:HFIELD", 1, ConditionalSieveRule_hfield, CTX_SIEVESCRIPT); RegisterConditional("COND:SIEVE:COMPARE", 1, ConditionalSieveRule_compare, CTX_SIEVESCRIPT); RegisterConditional("COND:SIEVE:ACTION", 1, ConditionalSieveRule_action, CTX_SIEVESCRIPT); RegisterConditional("COND:SIEVE:SIZECOMP", 1, ConditionalSieveRule_sizecomp, CTX_SIEVESCRIPT); RegisterConditional("COND:SIEVE:FINAL", 1, ConditionalSieveRule_final, CTX_SIEVESCRIPT); RegisterConditional("COND:SIEVE:THISROOM", 1, ConditionalSieveRule_ThisRoom, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:HTEXT", 0, 1, tmplput_SieveRule_htext, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:SIZE", 0, 1, tmplput_SieveRule_sizeval, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:FILEINTO", 0, 1, tmplput_SieveRule_fileinto, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:REDIRECT", 0, 1, tmplput_SieveRule_redirect, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:AUTOMSG", 0, 1, tmplput_SieveRule_automsg, NULL, CTX_SIEVESCRIPT); /* fetch our room into WCC->ThisRoom, to evaluate while iterating over rooms with COND:THIS:THAT:ROOM */ RegisterNamespace("SIEVE:SCRIPT:LOOKUP_FILEINTO", 0, 1, tmplput_SieveRule_lookup_FileIntoRoom, NULL, CTX_SIEVESCRIPT); WebcitAddUrlHandler(HKEY("save_sieve"), "", 0, save_sieve, 0); WebcitAddUrlHandler(HKEY("create_script"), "", 0, create_script, 0); WebcitAddUrlHandler(HKEY("delete_script"), "", 0, delete_script, 0); WebcitAddUrlHandler(HKEY("display_sieve_add_or_delete"), "", 0, display_sieve_add_or_delete, 0); } webcit-dfsg.orig/epic/0000755000175000017500000000000013223341037014717 5ustar michaelmichaelwebcit-dfsg.orig/epic/js/0000755000175000017500000000000013223341037015333 5ustar michaelmichaelwebcit-dfsg.orig/epic/js/epiceditor.js0000644000175000017500000024442613223341037020034 0ustar michaelmichael/** * EpicEditor - An Embeddable JavaScript Markdown Editor (https://github.com/OscarGodson/EpicEditor) * Copyright (c) 2011-2012, Oscar Godson. (MIT Licensed) */ (function (window, undefined) { /** * Applies attributes to a DOM object * @param {object} context The DOM obj you want to apply the attributes to * @param {object} attrs A key/value pair of attributes you want to apply * @returns {undefined} */ function _applyAttrs(context, attrs) { for (var attr in attrs) { if (attrs.hasOwnProperty(attr)) { context[attr] = attrs[attr]; } } } /** * Applies styles to a DOM object * @param {object} context The DOM obj you want to apply the attributes to * @param {object} attrs A key/value pair of attributes you want to apply * @returns {undefined} */ function _applyStyles(context, attrs) { for (var attr in attrs) { if (attrs.hasOwnProperty(attr)) { context.style[attr] = attrs[attr]; } } } /** * Returns a DOM objects computed style * @param {object} el The element you want to get the style from * @param {string} styleProp The property you want to get from the element * @returns {string} Returns a string of the value. If property is not set it will return a blank string */ function _getStyle(el, styleProp) { var x = el , y = null; if (window.getComputedStyle) { y = document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp); } else if (x.currentStyle) { y = x.currentStyle[styleProp]; } return y; } /** * Saves the current style state for the styles requested, then applies styles * to overwrite the existing one. The old styles are returned as an object so * you can pass it back in when you want to revert back to the old style * @param {object} el The element to get the styles of * @param {string} type Can be "save" or "apply". apply will just apply styles you give it. Save will write styles * @param {object} styles Key/value style/property pairs * @returns {object} */ function _saveStyleState(el, type, styles) { var returnState = {} , style; if (type === 'save') { for (style in styles) { if (styles.hasOwnProperty(style)) { returnState[style] = _getStyle(el, style); } } // After it's all done saving all the previous states, change the styles _applyStyles(el, styles); } else if (type === 'apply') { _applyStyles(el, styles); } return returnState; } /** * Gets an elements total width including it's borders and padding * @param {object} el The element to get the total width of * @returns {int} */ function _outerWidth(el) { var b = parseInt(_getStyle(el, 'border-left-width'), 10) + parseInt(_getStyle(el, 'border-right-width'), 10) , p = parseInt(_getStyle(el, 'padding-left'), 10) + parseInt(_getStyle(el, 'padding-right'), 10) , w = el.offsetWidth , t; // For IE in case no border is set and it defaults to "medium" if (isNaN(b)) { b = 0; } t = b + p + w; return t; } /** * Gets an elements total height including it's borders and padding * @param {object} el The element to get the total width of * @returns {int} */ function _outerHeight(el) { var b = parseInt(_getStyle(el, 'border-top-width'), 10) + parseInt(_getStyle(el, 'border-bottom-width'), 10) , p = parseInt(_getStyle(el, 'padding-top'), 10) + parseInt(_getStyle(el, 'padding-bottom'), 10) , w = parseInt(_getStyle(el, 'height'), 10) , t; // For IE in case no border is set and it defaults to "medium" if (isNaN(b)) { b = 0; } t = b + p + w; return t; } /** * Inserts a tag specifically for CSS * @param {string} path The path to the CSS file * @param {object} context In what context you want to apply this to (document, iframe, etc) * @param {string} id An id for you to reference later for changing properties of the * @returns {undefined} */ function _insertCSSLink(path, context, id) { id = id || ''; var headID = context.getElementsByTagName("head")[0] , cssNode = context.createElement('link'); _applyAttrs(cssNode, { type: 'text/css' , id: id , rel: 'stylesheet' , href: path , name: path , media: 'screen' }); headID.appendChild(cssNode); } // Simply replaces a class (o), to a new class (n) on an element provided (e) function _replaceClass(e, o, n) { e.className = e.className.replace(o, n); } // Feature detects an iframe to get the inner document for writing to function _getIframeInnards(el) { return el.contentDocument || el.contentWindow.document; } // Grabs the text from an element and preserves whitespace function _getText(el) { var theText; // Make sure to check for type of string because if the body of the page // doesn't have any text it'll be "" which is falsey and will go into // the else which is meant for Firefox and shit will break if (typeof document.body.innerText == 'string') { theText = el.innerText; } else { // First replace
    s before replacing the rest of the HTML theText = el.innerHTML.replace(/
    /gi, "\n"); // Now we can clean the HTML theText = theText.replace(/<(?:.|\n)*?>/gm, ''); // Now fix HTML entities theText = theText.replace(/</gi, '<'); theText = theText.replace(/>/gi, '>'); } return theText; } function _setText(el, content) { // Don't convert lt/gt characters as HTML when viewing the editor window // TODO: Write a test to catch regressions for this content = content.replace(//g, '>'); content = content.replace(/\n/g, '
    '); // Make sure to there aren't two spaces in a row (replace one with  ) // If you find and replace every space with a   text will not wrap. // Hence the name (Non-Breaking-SPace). // TODO: Probably need to test this somehow... content = content.replace(/
    \s/g, '
     ') content = content.replace(/\s\s\s/g, '   ') content = content.replace(/\s\s/g, '  ') content = content.replace(/^ /, ' ') el.innerHTML = content; return true; } /** * Converts the 'raw' format of a file's contents into plaintext * @param {string} content Contents of the file * @returns {string} the sanitized content */ function _sanitizeRawContent(content) { // Get this, 2 spaces in a content editable actually converts to: // 0020 00a0, meaning, "space no-break space". So, manually convert // no-break spaces to spaces again before handing to marked. // Also, WebKit converts no-break to unicode equivalent and FF HTML. return content.replace(/\u00a0/g, ' ').replace(/ /g, ' '); } /** * Will return the version number if the browser is IE. If not will return -1 * TRY NEVER TO USE THIS AND USE FEATURE DETECTION IF POSSIBLE * @returns {Number} -1 if false or the version number if true */ function _isIE() { var rv = -1 // Return value assumes failure. , ua = navigator.userAgent , re; if (navigator.appName == 'Microsoft Internet Explorer') { re = /MSIE ([0-9]{1,}[\.0-9]{0,})/; if (re.exec(ua) != null) { rv = parseFloat(RegExp.$1, 10); } } return rv; } /** * Same as the isIE(), but simply returns a boolean * THIS IS TERRIBLE AND IS ONLY USED BECAUSE FULLSCREEN IN SAFARI IS BORKED * If some other engine uses WebKit and has support for fullscreen they * probably wont get native fullscreen until Safari's fullscreen is fixed * @returns {Boolean} true if Safari */ function _isSafari() { var n = window.navigator; return n.userAgent.indexOf('Safari') > -1 && n.userAgent.indexOf('Chrome') == -1; } /** * Same as the isIE(), but simply returns a boolean * THIS IS TERRIBLE ONLY USE IF ABSOLUTELY NEEDED * @returns {Boolean} true if Safari */ function _isFirefox() { var n = window.navigator; return n.userAgent.indexOf('Firefox') > -1 && n.userAgent.indexOf('Seamonkey') == -1; } /** * Determines if supplied value is a function * @param {object} object to determine type */ function _isFunction(functionToCheck) { var getType = {}; return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; } /** * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1 * @param {boolean} [deepMerge=false] If true, will deep merge meaning it will merge sub-objects like {obj:obj2{foo:'bar'}} * @param {object} first object * @param {object} second object * @returnss {object} a new object based on obj1 and obj2 */ function _mergeObjs() { // copy reference to target object var target = arguments[0] || {} , i = 1 , length = arguments.length , deep = false , options , name , src , copy // Handle a deep copy situation if (typeof target === "boolean") { deep = target; target = arguments[1] || {}; // skip the boolean and the target i = 2; } // Handle case when target is a string or something (possible in deep copy) if (typeof target !== "object" && !_isFunction(target)) { target = {}; } // extend jQuery itself if only one argument is passed if (length === i) { target = this; --i; } for (; i < length; i++) { // Only deal with non-null/undefined values if ((options = arguments[i]) != null) { // Extend the base object for (name in options) { // @NOTE: added hasOwnProperty check if (options.hasOwnProperty(name)) { src = target[name]; copy = options[name]; // Prevent never-ending loop if (target === copy) { continue; } // Recurse if we're merging object values if (deep && copy && typeof copy === "object" && !copy.nodeType) { target[name] = _mergeObjs(deep, // Never move original objects, clone them src || (copy.length != null ? [] : {}) , copy); } else if (copy !== undefined) { // Don't bring in undefined values target[name] = copy; } } } } } // Return the modified object return target; } /** * Initiates the EpicEditor object and sets up offline storage as well * @class Represents an EpicEditor instance * @param {object} options An optional customization object * @returns {object} EpicEditor will be returned */ function EpicEditor(options) { // Default settings will be overwritten/extended by options arg var self = this , opts = options || {} , _defaultFileSchema , _defaultFile , defaults = { container: 'epiceditor' , basePath: 'epiceditor' , textarea: undefined , clientSideStorage: true , localStorageName: 'epiceditor' , useNativeFullscreen: true , file: { name: null , defaultContent: '' , autoSave: 100 // Set to false for no auto saving } , theme: { base: '/themes/base/epiceditor.css' , preview: '/themes/preview/github.css' , editor: '/themes/editor/epic-dark.css' } , focusOnLoad: false , shortcut: { modifier: 18 // alt keycode , fullscreen: 70 // f keycode , preview: 80 // p keycode } , string: { togglePreview: 'Toggle Preview Mode' , toggleEdit: 'Toggle Edit Mode' , toggleFullscreen: 'Enter Fullscreen' } , parser: typeof marked == 'function' ? marked : null , autogrow: false , button: { fullscreen: true , preview: true , bar: "auto" } } , defaultStorage , autogrowDefaults = { minHeight: 80 , maxHeight: false , scroll: true }; self.settings = _mergeObjs(true, defaults, opts); var buttons = self.settings.button; self._fullscreenEnabled = typeof(buttons) === 'object' ? typeof buttons.fullscreen === 'undefined' || buttons.fullscreen : buttons === true; self._editEnabled = typeof(buttons) === 'object' ? typeof buttons.edit === 'undefined' || buttons.edit : buttons === true; self._previewEnabled = typeof(buttons) === 'object' ? typeof buttons.preview === 'undefined' || buttons.preview : buttons === true; if (!(typeof self.settings.parser == 'function' && typeof self.settings.parser('TEST') == 'string')) { self.settings.parser = function (str) { return str; } } if (self.settings.autogrow) { if (self.settings.autogrow === true) { self.settings.autogrow = autogrowDefaults; } else { self.settings.autogrow = _mergeObjs(true, autogrowDefaults, self.settings.autogrow); } self._oldHeight = -1; } // If you put an absolute link as the path of any of the themes ignore the basePath // preview theme if (!self.settings.theme.preview.match(/^https?:\/\//)) { self.settings.theme.preview = self.settings.basePath + self.settings.theme.preview; } // editor theme if (!self.settings.theme.editor.match(/^https?:\/\//)) { self.settings.theme.editor = self.settings.basePath + self.settings.theme.editor; } // base theme if (!self.settings.theme.base.match(/^https?:\/\//)) { self.settings.theme.base = self.settings.basePath + self.settings.theme.base; } // Grab the container element and save it to self.element // if it's a string assume it's an ID and if it's an object // assume it's a DOM element if (typeof self.settings.container == 'string') { self.element = document.getElementById(self.settings.container); } else if (typeof self.settings.container == 'object') { self.element = self.settings.container; } // Figure out the file name. If no file name is given we'll use the ID. // If there's no ID either we'll use a namespaced file name that's incremented // based on the calling order. As long as it doesn't change, drafts will be saved. if (!self.settings.file.name) { if (typeof self.settings.container == 'string') { self.settings.file.name = self.settings.container; } else if (typeof self.settings.container == 'object') { if (self.element.id) { self.settings.file.name = self.element.id; } else { if (!EpicEditor._data.unnamedEditors) { EpicEditor._data.unnamedEditors = []; } EpicEditor._data.unnamedEditors.push(self); self.settings.file.name = '__epiceditor-untitled-' + EpicEditor._data.unnamedEditors.length; } } } if (self.settings.button.bar === "show") { self.settings.button.bar = true; } if (self.settings.button.bar === "hide") { self.settings.button.bar = false; } // Protect the id and overwrite if passed in as an option // TODO: Put underscrore to denote that this is private self._instanceId = 'epiceditor-' + Math.round(Math.random() * 100000); self._storage = {}; self._canSave = true; // Setup local storage of files self._defaultFileSchema = function () { return { content: self.settings.file.defaultContent , created: new Date() , modified: new Date() } } if (localStorage && self.settings.clientSideStorage) { this._storage = localStorage; if (this._storage[self.settings.localStorageName] && self.getFiles(self.settings.file.name) === undefined) { _defaultFile = self._defaultFileSchema(); _defaultFile.content = self.settings.file.defaultContent; } } if (!this._storage[self.settings.localStorageName]) { defaultStorage = {}; defaultStorage[self.settings.file.name] = self._defaultFileSchema(); defaultStorage = JSON.stringify(defaultStorage); this._storage[self.settings.localStorageName] = defaultStorage; } // A string to prepend files with to save draft versions of files // and reset all preview drafts on each load! self._previewDraftLocation = '__draft-'; self._storage[self._previewDraftLocation + self.settings.localStorageName] = self._storage[self.settings.localStorageName]; // This needs to replace the use of classes to check the state of EE self._eeState = { fullscreen: false , preview: false , edit: false , loaded: false , unloaded: false } // Now that it exists, allow binding of events if it doesn't exist yet if (!self.events) { self.events = {}; } return this; } /** * Inserts the EpicEditor into the DOM via an iframe and gets it ready for editing and previewing * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.load = function (callback) { // Get out early if it's already loaded if (this.is('loaded')) { return this; } // TODO: Gotta get the privates with underscores! // TODO: Gotta document what these are for... var self = this , _HtmlTemplates , iframeElement , baseTag , utilBtns , utilBar , utilBarTimer , keypressTimer , mousePos = { y: -1, x: -1 } , _elementStates , _isInEdit , nativeFs = false , nativeFsWebkit = false , nativeFsMoz = false , nativeFsW3C = false , fsElement , isMod = false , isCtrl = false , eventableIframes , i // i is reused for loops , boundAutogrow; // Startup is a way to check if this EpicEditor is starting up. Useful for // checking and doing certain things before EpicEditor emits a load event. self._eeState.startup = true; if (self.settings.useNativeFullscreen) { nativeFsWebkit = document.body.webkitRequestFullScreen ? true : false; nativeFsMoz = document.body.mozRequestFullScreen ? true : false; nativeFsW3C = document.body.requestFullscreen ? true : false; nativeFs = nativeFsWebkit || nativeFsMoz || nativeFsW3C; } // Fucking Safari's native fullscreen works terribly // REMOVE THIS IF SAFARI 7 WORKS BETTER if (_isSafari()) { nativeFs = false; nativeFsWebkit = false; } // It opens edit mode by default (for now); if (!self.is('edit') && !self.is('preview')) { self._eeState.edit = true; } callback = callback || function () {}; // The editor HTML // TODO: edit-mode class should be dynamically added _HtmlTemplates = { // This is wrapping iframe element. It contains the other two iframes and the utilbar chrome: '
    ' + '' + '' + '
    ' + (self._previewEnabled ? ' ' : '') + (self._editEnabled ? ' ' : '') + (self._fullscreenEnabled ? '' : '') + '
    ' + '
    ' // The previewer is just an empty box for the generated HTML to go into , previewer: '
    ' , editor: '' }; // Write an iframe and then select it for the editor self.element.innerHTML = ''; // Because browsers add things like invisible padding and margins and stuff // to iframes, we need to set manually set the height so that the height // doesn't keep increasing (by 2px?) every time reflow() is called. // FIXME: Figure out how to fix this without setting this self.element.style.height = self.element.offsetHeight + 'px'; iframeElement = document.getElementById(self._instanceId); // Store a reference to the iframeElement itself self.iframeElement = iframeElement; // Grab the innards of the iframe (returns the document.body) // TODO: Change self.iframe to self.iframeDocument self.iframe = _getIframeInnards(iframeElement); self.iframe.open(); self.iframe.write(_HtmlTemplates.chrome); // Now that we got the innards of the iframe, we can grab the other iframes self.editorIframe = self.iframe.getElementById('epiceditor-editor-frame') self.previewerIframe = self.iframe.getElementById('epiceditor-previewer-frame'); // Setup the editor iframe self.editorIframeDocument = _getIframeInnards(self.editorIframe); self.editorIframeDocument.open(); // Need something for... you guessed it, Firefox self.editorIframeDocument.write(_HtmlTemplates.editor); self.editorIframeDocument.close(); // Setup the previewer iframe self.previewerIframeDocument = _getIframeInnards(self.previewerIframe); self.previewerIframeDocument.open(); self.previewerIframeDocument.write(_HtmlTemplates.previewer); // Base tag is added so that links will open a new tab and not inside of the iframes baseTag = self.previewerIframeDocument.createElement('base'); baseTag.target = '_blank'; self.previewerIframeDocument.getElementsByTagName('head')[0].appendChild(baseTag); self.previewerIframeDocument.close(); self.reflow(); // Insert Base Stylesheet _insertCSSLink(self.settings.theme.base, self.iframe, 'theme'); // Insert Editor Stylesheet _insertCSSLink(self.settings.theme.editor, self.editorIframeDocument, 'theme'); // Insert Previewer Stylesheet _insertCSSLink(self.settings.theme.preview, self.previewerIframeDocument, 'theme'); // Add a relative style to the overall wrapper to keep CSS relative to the editor self.iframe.getElementById('epiceditor-wrapper').style.position = 'relative'; // Set the position to relative so we hide them with left: -999999px self.editorIframe.style.position = 'absolute'; self.previewerIframe.style.position = 'absolute'; // Now grab the editor and previewer for later use self.editor = self.editorIframeDocument.body; self.previewer = self.previewerIframeDocument.getElementById('epiceditor-preview'); self.editor.contentEditable = true; // Firefox's gets all fucked up so, to be sure, we need to hardcode it self.iframe.body.style.height = this.element.offsetHeight + 'px'; // Should actually check what mode it's in! self.previewerIframe.style.left = '-999999px'; // Keep long lines from being longer than the editor this.editorIframeDocument.body.style.wordWrap = 'break-word'; // FIXME figure out why it needs +2 px if (_isIE() > -1) { this.previewer.style.height = parseInt(_getStyle(this.previewer, 'height'), 10) + 2; } // If there is a file to be opened with that filename and it has content... this.open(self.settings.file.name); if (self.settings.focusOnLoad) { // We need to wait until all three iframes are done loading by waiting until the parent // iframe's ready state == complete, then we can focus on the contenteditable self.iframe.addEventListener('readystatechange', function () { if (self.iframe.readyState == 'complete') { self.focus(); } }); } // Because IE scrolls the whole window to hash links, we need our own // method of scrolling the iframe to an ID from clicking a hash self.previewerIframeDocument.addEventListener('click', function (e) { var el = e.target , body = self.previewerIframeDocument.body; if (el.nodeName == 'A') { // Make sure the link is a hash and the link is local to the iframe if (el.hash && el.hostname == window.location.hostname) { // Prevent the whole window from scrolling e.preventDefault(); // Prevent opening a new window el.target = '_self'; // Scroll to the matching element, if an element exists if (body.querySelector(el.hash)) { body.scrollTop = body.querySelector(el.hash).offsetTop; } } } }); utilBtns = self.iframe.getElementById('epiceditor-utilbar'); // TODO: Move into fullscreen setup function (_setupFullscreen) _elementStates = {} self._goFullscreen = function (el) { this._fixScrollbars('auto'); if (self.is('fullscreen')) { self._exitFullscreen(el); return; } if (nativeFs) { if (nativeFsWebkit) { el.webkitRequestFullScreen(); } else if (nativeFsMoz) { el.mozRequestFullScreen(); } else if (nativeFsW3C) { el.requestFullscreen(); } } _isInEdit = self.is('edit'); // Set the state of EE in fullscreen // We set edit and preview to true also because they're visible // we might want to allow fullscreen edit mode without preview (like a "zen" mode) self._eeState.fullscreen = true; self._eeState.edit = true; self._eeState.preview = true; // Cache calculations var windowInnerWidth = window.innerWidth , windowInnerHeight = window.innerHeight , windowOuterWidth = window.outerWidth , windowOuterHeight = window.outerHeight; // Without this the scrollbars will get hidden when scrolled to the bottom in faux fullscreen (see #66) if (!nativeFs) { windowOuterHeight = window.innerHeight; } // This MUST come first because the editor is 100% width so if we change the width of the iframe or wrapper // the editor's width wont be the same as before _elementStates.editorIframe = _saveStyleState(self.editorIframe, 'save', { 'width': windowOuterWidth / 2 + 'px' , 'height': windowOuterHeight + 'px' , 'float': 'left' // Most browsers , 'cssFloat': 'left' // FF , 'styleFloat': 'left' // Older IEs , 'display': 'block' , 'position': 'static' , 'left': '' }); // the previewer _elementStates.previewerIframe = _saveStyleState(self.previewerIframe, 'save', { 'width': windowOuterWidth / 2 + 'px' , 'height': windowOuterHeight + 'px' , 'float': 'right' // Most browsers , 'cssFloat': 'right' // FF , 'styleFloat': 'right' // Older IEs , 'display': 'block' , 'position': 'static' , 'left': '' }); // Setup the containing element CSS for fullscreen _elementStates.element = _saveStyleState(self.element, 'save', { 'position': 'fixed' , 'top': '0' , 'left': '0' , 'width': '100%' , 'z-index': '9999' // Most browsers , 'zIndex': '9999' // Firefox , 'border': 'none' , 'margin': '0' // Should use the base styles background! , 'background': _getStyle(self.editor, 'background-color') // Try to hide the site below , 'height': windowInnerHeight + 'px' }); // The iframe element _elementStates.iframeElement = _saveStyleState(self.iframeElement, 'save', { 'width': windowOuterWidth + 'px' , 'height': windowInnerHeight + 'px' }); // ...Oh, and hide the buttons and prevent scrolling utilBtns.style.visibility = 'hidden'; if (!nativeFs) { document.body.style.overflow = 'hidden'; } self.preview(); self.focus(); self.emit('fullscreenenter'); }; self._exitFullscreen = function (el) { this._fixScrollbars(); _saveStyleState(self.element, 'apply', _elementStates.element); _saveStyleState(self.iframeElement, 'apply', _elementStates.iframeElement); _saveStyleState(self.editorIframe, 'apply', _elementStates.editorIframe); _saveStyleState(self.previewerIframe, 'apply', _elementStates.previewerIframe); // We want to always revert back to the original styles in the CSS so, // if it's a fluid width container it will expand on resize and not get // stuck at a specific width after closing fullscreen. self.element.style.width = self._eeState.reflowWidth ? self._eeState.reflowWidth : ''; self.element.style.height = self._eeState.reflowHeight ? self._eeState.reflowHeight : ''; utilBtns.style.visibility = 'visible'; // Put the editor back in the right state // TODO: This is ugly... how do we make this nicer? // setting fullscreen to false here prevents the // native fs callback from calling this function again self._eeState.fullscreen = false; if (!nativeFs) { document.body.style.overflow = 'auto'; } else { if (nativeFsWebkit) { document.webkitCancelFullScreen(); } else if (nativeFsMoz) { document.mozCancelFullScreen(); } else if (nativeFsW3C) { document.exitFullscreen(); } } if (_isInEdit) { self.edit(); } else { self.preview(); } self.reflow(); self.emit('fullscreenexit'); }; // This setups up live previews by triggering preview() IF in fullscreen on keyup self.editor.addEventListener('keyup', function () { if (keypressTimer) { window.clearTimeout(keypressTimer); } keypressTimer = window.setTimeout(function () { if (self.is('fullscreen')) { self.preview(); } }, 250); }); fsElement = self.iframeElement; // Sets up the onclick event on utility buttons utilBtns.addEventListener('click', function (e) { var targetClass = e.target.className; if (targetClass.indexOf('epiceditor-toggle-preview-btn') > -1) { self.preview(); } else if (targetClass.indexOf('epiceditor-toggle-edit-btn') > -1) { self.edit(); } else if (targetClass.indexOf('epiceditor-fullscreen-btn') > -1) { self._goFullscreen(fsElement); } }); // Sets up the NATIVE fullscreen editor/previewer for WebKit if (nativeFsWebkit) { document.addEventListener('webkitfullscreenchange', function () { if (!document.webkitIsFullScreen && self._eeState.fullscreen) { self._exitFullscreen(fsElement); } }, false); } else if (nativeFsMoz) { document.addEventListener('mozfullscreenchange', function () { if (!document.mozFullScreen && self._eeState.fullscreen) { self._exitFullscreen(fsElement); } }, false); } else if (nativeFsW3C) { document.addEventListener('fullscreenchange', function () { if (document.fullscreenElement == null && self._eeState.fullscreen) { self._exitFullscreen(fsElement); } }, false); } // TODO: Move utilBar stuff into a utilBar setup function (_setupUtilBar) utilBar = self.iframe.getElementById('epiceditor-utilbar'); // Hide it at first until they move their mouse if (self.settings.button.bar !== true) { utilBar.style.display = 'none'; } utilBar.addEventListener('mouseover', function () { if (utilBarTimer) { clearTimeout(utilBarTimer); } }); function utilBarHandler(e) { if (self.settings.button.bar !== "auto") { return; } // Here we check if the mouse has moves more than 5px in any direction before triggering the mousemove code // we do this for 2 reasons: // 1. On Mac OS X lion when you scroll and it does the iOS like "jump" when it hits the top/bottom of the page itll fire off // a mousemove of a few pixels depending on how hard you scroll // 2. We give a slight buffer to the user in case he barely touches his touchpad or mouse and not trigger the UI if (Math.abs(mousePos.y - e.pageY) >= 5 || Math.abs(mousePos.x - e.pageX) >= 5) { utilBar.style.display = 'block'; // if we have a timer already running, kill it out if (utilBarTimer) { clearTimeout(utilBarTimer); } // begin a new timer that hides our object after 1000 ms utilBarTimer = window.setTimeout(function () { utilBar.style.display = 'none'; }, 1000); } mousePos = { y: e.pageY, x: e.pageX }; } // Add keyboard shortcuts for convenience. function shortcutHandler(e) { if (e.keyCode == self.settings.shortcut.modifier) { isMod = true } // check for modifier press(default is alt key), save to var if (e.keyCode == 17) { isCtrl = true } // check for ctrl/cmnd press, in order to catch ctrl/cmnd + s // Check for alt+p and make sure were not in fullscreen - default shortcut to switch to preview if (isMod === true && e.keyCode == self.settings.shortcut.preview && !self.is('fullscreen')) { e.preventDefault(); if (self.is('edit') && self._previewEnabled) { self.preview(); } else if (self._editEnabled) { self.edit(); } } // Check for alt+f - default shortcut to make editor fullscreen if (isMod === true && e.keyCode == self.settings.shortcut.fullscreen && self._fullscreenEnabled) { e.preventDefault(); self._goFullscreen(fsElement); } // Set the modifier key to false once *any* key combo is completed // or else, on Windows, hitting the alt key will lock the isMod state to true (ticket #133) if (isMod === true && e.keyCode !== self.settings.shortcut.modifier) { isMod = false; } // When a user presses "esc", revert everything! if (e.keyCode == 27 && self.is('fullscreen')) { self._exitFullscreen(fsElement); } // Check for ctrl + s (since a lot of people do it out of habit) and make it do nothing if (isCtrl === true && e.keyCode == 83) { self.save(); e.preventDefault(); isCtrl = false; } // Do the same for Mac now (metaKey == cmd). if (e.metaKey && e.keyCode == 83) { self.save(); e.preventDefault(); } } function shortcutUpHandler(e) { if (e.keyCode == self.settings.shortcut.modifier) { isMod = false } if (e.keyCode == 17) { isCtrl = false } } function pasteHandler(e) { var content; if (e.clipboardData) { //FF 22, Webkit, "standards" e.preventDefault(); content = e.clipboardData.getData("text/plain"); self.editorIframeDocument.execCommand("insertText", false, content); } else if (window.clipboardData) { //IE, "nasty" e.preventDefault(); content = window.clipboardData.getData("Text"); content = content.replace(//g, '>'); content = content.replace(/\n/g, '
    '); content = content.replace(/\r/g, ''); //fuck you, ie! content = content.replace(/
    \s/g, '
     ') content = content.replace(/\s\s\s/g, '   ') content = content.replace(/\s\s/g, '  ') self.editorIframeDocument.selection.createRange().pasteHTML(content); } } // Hide and show the util bar based on mouse movements eventableIframes = [self.previewerIframeDocument, self.editorIframeDocument]; for (i = 0; i < eventableIframes.length; i++) { eventableIframes[i].addEventListener('mousemove', function (e) { utilBarHandler(e); }); eventableIframes[i].addEventListener('scroll', function (e) { utilBarHandler(e); }); eventableIframes[i].addEventListener('keyup', function (e) { shortcutUpHandler(e); }); eventableIframes[i].addEventListener('keydown', function (e) { shortcutHandler(e); }); eventableIframes[i].addEventListener('paste', function (e) { pasteHandler(e); }); } // Save the document every 100ms by default // TODO: Move into autosave setup function (_setupAutoSave) if (self.settings.file.autoSave) { self._saveIntervalTimer = window.setInterval(function () { if (!self._canSave) { return; } self.save(false, true); }, self.settings.file.autoSave); } // Update a textarea automatically if a textarea is given so you don't need // AJAX to submit a form and instead fall back to normal form behavior if (self.settings.textarea) { self._setupTextareaSync(); } window.addEventListener('resize', function () { // If NOT webkit, and in fullscreen, we need to account for browser resizing // we don't care about webkit because you can't resize in webkit's fullscreen if (self.is('fullscreen')) { _applyStyles(self.iframeElement, { 'width': window.outerWidth + 'px' , 'height': window.innerHeight + 'px' }); _applyStyles(self.element, { 'height': window.innerHeight + 'px' }); _applyStyles(self.previewerIframe, { 'width': window.outerWidth / 2 + 'px' , 'height': window.innerHeight + 'px' }); _applyStyles(self.editorIframe, { 'width': window.outerWidth / 2 + 'px' , 'height': window.innerHeight + 'px' }); } // Makes the editor support fluid width when not in fullscreen mode else if (!self.is('fullscreen')) { self.reflow(); } }); // Set states before flipping edit and preview modes self._eeState.loaded = true; self._eeState.unloaded = false; if (self.is('preview')) { self.preview(); } else { self.edit(); } self.iframe.close(); self._eeState.startup = false; if (self.settings.autogrow) { self._fixScrollbars(); boundAutogrow = function () { setTimeout(function () { self._autogrow(); }, 1); }; //for if autosave is disabled or very slow ['keydown', 'keyup', 'paste', 'cut'].forEach(function (ev) { self.getElement('editor').addEventListener(ev, boundAutogrow); }); self.on('__update', boundAutogrow); self.on('edit', function () { setTimeout(boundAutogrow, 50) }); self.on('preview', function () { setTimeout(boundAutogrow, 50) }); //for browsers that have rendering delays setTimeout(boundAutogrow, 50); boundAutogrow(); } // The callback and call are the same thing, but different ways to access them callback.call(this); this.emit('load'); return this; } EpicEditor.prototype._setupTextareaSync = function () { var self = this , textareaFileName = self.settings.file.name , _syncTextarea; // Even if autoSave is false, we want to make sure to keep the textarea synced // with the editor's content. One bad thing about this tho is that we're // creating two timers now in some configurations. We keep the textarea synced // by saving and opening the textarea content from the draft file storage. self._textareaSaveTimer = window.setInterval(function () { if (!self._canSave) { return; } self.save(true); }, 100); _syncTextarea = function () { // TODO: Figure out root cause for having to do this ||. // This only happens for draft files. Probably has something to do with // the fact draft files haven't been saved by the time this is called. // TODO: Add test for this case. self._textareaElement.value = self.exportFile(textareaFileName, 'text', true) || self.settings.file.defaultContent; } if (typeof self.settings.textarea == 'string') { self._textareaElement = document.getElementById(self.settings.textarea); } else if (typeof self.settings.textarea == 'object') { self._textareaElement = self.settings.textarea; } // On page load, if there's content in the textarea that means one of two // different things: // // 1. The editor didn't load and the user was writing in the textarea and // now he refreshed the page or the JS loaded and the textarea now has // content. If this is the case the user probably expects his content is // moved into the editor and not lose what he typed. // // 2. The developer put content in the textarea from some server side // code. In this case, the textarea will take precedence. // // If the developer wants drafts to be recoverable they should check if // the local file in localStorage's modified date is newer than the server. if (self._textareaElement.value !== '') { self.importFile(textareaFileName, self._textareaElement.value); // manually save draft after import so there is no delay between the // import and exporting in _syncTextarea. Without this, _syncTextarea // will pull the saved data from localStorage which will be <=100ms old. self.save(true); } // Update the textarea on load and pull from drafts _syncTextarea(); // Make sure to keep it updated self.on('__update', _syncTextarea); } /** * Will NOT focus the editor if the editor is still starting up AND * focusOnLoad is set to false. This allows you to place this in code that * gets fired during .load() without worrying about it overriding the user's * option. For example use cases see preview() and edit(). * @returns {undefined} */ // Prevent focus when the user sets focusOnLoad to false by checking if the // editor is starting up AND if focusOnLoad is true EpicEditor.prototype._focusExceptOnLoad = function () { var self = this; if ((self._eeState.startup && self.settings.focusOnLoad) || !self._eeState.startup) { self.focus(); } } /** * Will remove the editor, but not offline files * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.unload = function (callback) { // Make sure the editor isn't already unloaded. if (this.is('unloaded')) { throw new Error('Editor isn\'t loaded'); } var self = this , editor = window.parent.document.getElementById(self._instanceId); editor.parentNode.removeChild(editor); self._eeState.loaded = false; self._eeState.unloaded = true; callback = callback || function () {}; if (self.settings.textarea) { self._textareaElement.value = ""; self.removeListener('__update'); } if (self._saveIntervalTimer) { window.clearInterval(self._saveIntervalTimer); } if (self._textareaSaveTimer) { window.clearInterval(self._textareaSaveTimer); } callback.call(this); self.emit('unload'); return self; } /** * reflow allows you to dynamically re-fit the editor in the parent without * having to unload and then reload the editor again. * * reflow will also emit a `reflow` event and will return the new dimensions. * If it's called without params it'll return the new width and height and if * it's called with just width or just height it'll just return the width or * height. It's returned as an object like: { width: '100px', height: '1px' } * * @param {string|null} kind Can either be 'width' or 'height' or null * if null, both the height and width will be resized * @param {function} callback A function to fire after the reflow is finished. * Will return the width / height in an obj as the first param of the callback. * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.reflow = function (kind, callback) { var self = this , widthDiff = _outerWidth(self.element) - self.element.offsetWidth , heightDiff = _outerHeight(self.element) - self.element.offsetHeight , elements = [self.iframeElement, self.editorIframe, self.previewerIframe] , eventData = {} , newWidth , newHeight; if (typeof kind == 'function') { callback = kind; kind = null; } if (!callback) { callback = function () {}; } for (var x = 0; x < elements.length; x++) { if (!kind || kind == 'width') { newWidth = self.element.offsetWidth - widthDiff + 'px'; elements[x].style.width = newWidth; self._eeState.reflowWidth = newWidth; eventData.width = newWidth; } if (!kind || kind == 'height') { newHeight = self.element.offsetHeight - heightDiff + 'px'; elements[x].style.height = newHeight; self._eeState.reflowHeight = newHeight eventData.height = newHeight; } } self.emit('reflow', eventData); callback.call(this, eventData); return self; } /** * Will take the markdown and generate a preview view based on the theme * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.preview = function () { var self = this , x , theme = self.settings.theme.preview , anchors; _replaceClass(self.getElement('wrapper'), 'epiceditor-edit-mode', 'epiceditor-preview-mode'); // Check if no CSS theme link exists if (!self.previewerIframeDocument.getElementById('theme')) { _insertCSSLink(theme, self.previewerIframeDocument, 'theme'); } else if (self.previewerIframeDocument.getElementById('theme').name !== theme) { self.previewerIframeDocument.getElementById('theme').href = theme; } // Save a preview draft since it might not be saved to the real file yet self.save(true); // Add the generated draft HTML into the previewer self.previewer.innerHTML = self.exportFile(null, 'html', true); // Hide the editor and display the previewer if (!self.is('fullscreen')) { self.editorIframe.style.left = '-999999px'; self.previewerIframe.style.left = ''; self._eeState.preview = true; self._eeState.edit = false; self._focusExceptOnLoad(); } self.emit('preview'); return self; } /** * Helper to focus on the editor iframe. Will figure out which iframe to * focus on based on which one is active and will handle the cross browser * issues with focusing on the iframe vs the document body. * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.focus = function (pageload) { var self = this , isPreview = self.is('preview') , focusElement = isPreview ? self.previewerIframeDocument.body : self.editorIframeDocument.body; if (_isFirefox() && isPreview) { focusElement = self.previewerIframe; } focusElement.focus(); return this; } /** * Puts the editor into fullscreen mode * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.enterFullscreen = function () { if (this.is('fullscreen')) { return this; } this._goFullscreen(this.iframeElement); return this; } /** * Closes fullscreen mode if opened * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.exitFullscreen = function () { if (!this.is('fullscreen')) { return this; } this._exitFullscreen(this.iframeElement); return this; } /** * Hides the preview and shows the editor again * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.edit = function () { var self = this; _replaceClass(self.getElement('wrapper'), 'epiceditor-preview-mode', 'epiceditor-edit-mode'); self._eeState.preview = false; self._eeState.edit = true; self.editorIframe.style.left = ''; self.previewerIframe.style.left = '-999999px'; self._focusExceptOnLoad(); self.emit('edit'); return this; } /** * Grabs a specificed HTML node. Use it as a shortcut to getting the iframe contents * @param {String} name The name of the node (can be document, body, editor, previewer, or wrapper) * @returns {Object|Null} */ EpicEditor.prototype.getElement = function (name) { var available = { "container": this.element , "wrapper": this.iframe.getElementById('epiceditor-wrapper') , "wrapperIframe": this.iframeElement , "editor": this.editorIframeDocument , "editorIframe": this.editorIframe , "previewer": this.previewerIframeDocument , "previewerIframe": this.previewerIframe } // Check that the given string is a possible option and verify the editor isn't unloaded // without this, you'd be given a reference to an object that no longer exists in the DOM if (!available[name] || this.is('unloaded')) { return null; } else { return available[name]; } } /** * Returns a boolean of each "state" of the editor. For example "editor.is('loaded')" // returns true/false * @param {String} what the state you want to check for * @returns {Boolean} */ EpicEditor.prototype.is = function (what) { var self = this; switch (what) { case 'loaded': return self._eeState.loaded; case 'unloaded': return self._eeState.unloaded case 'preview': return self._eeState.preview case 'edit': return self._eeState.edit; case 'fullscreen': return self._eeState.fullscreen; // TODO: This "works", but the tests are saying otherwise. Come back to this // and figure out how to fix it. // case 'focused': // return document.activeElement == self.iframeElement; default: return false; } } /** * Opens a file * @param {string} name The name of the file you want to open * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.open = function (name) { var self = this , defaultContent = self.settings.file.defaultContent , fileObj; name = name || self.settings.file.name; self.settings.file.name = name; if (this._storage[self.settings.localStorageName]) { fileObj = self.exportFile(name); if (fileObj !== undefined) { _setText(self.editor, fileObj); self.emit('read'); } else { _setText(self.editor, defaultContent); self.save(); // ensure a save self.emit('create'); } self.previewer.innerHTML = self.exportFile(null, 'html'); self.emit('open'); } return this; } /** * Saves content for offline use * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.save = function (_isPreviewDraft, _isAuto) { var self = this , storage , isUpdate = false , file = self.settings.file.name , previewDraftName = '' , data = this._storage[previewDraftName + self.settings.localStorageName] , content = _getText(this.editor); if (_isPreviewDraft) { previewDraftName = self._previewDraftLocation; } // This could have been false but since we're manually saving // we know it's save to start autoSaving again this._canSave = true; // Guard against storage being wiped out without EpicEditor knowing // TODO: Emit saving error - storage seems to have been wiped if (data) { storage = JSON.parse(this._storage[previewDraftName + self.settings.localStorageName]); // If the file doesn't exist we need to create it if (storage[file] === undefined) { storage[file] = self._defaultFileSchema(); } // If it does, we need to check if the content is different and // if it is, send the update event and update the timestamp else if (content !== storage[file].content) { storage[file].modified = new Date(); isUpdate = true; } //don't bother autosaving if the content hasn't actually changed else if (_isAuto) { return; } storage[file].content = content; this._storage[previewDraftName + self.settings.localStorageName] = JSON.stringify(storage); // After the content is actually changed, emit update so it emits the updated content if (isUpdate) { self.emit('update'); // Emit a private update event so it can't get accidentally removed self.emit('__update'); } if (_isAuto) { this.emit('autosave'); } else if (!_isPreviewDraft) { this.emit('save'); } } return this; } /** * Removes a page * @param {string} name The name of the file you want to remove from localStorage * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.remove = function (name) { var self = this , s; name = name || self.settings.file.name; // If you're trying to delete a page you have open, block saving if (name == self.settings.file.name) { self._canSave = false; } s = JSON.parse(this._storage[self.settings.localStorageName]); delete s[name]; this._storage[self.settings.localStorageName] = JSON.stringify(s); this.emit('remove'); return this; }; /** * Renames a file * @param {string} oldName The old file name * @param {string} newName The new file name * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.rename = function (oldName, newName) { var self = this , s = JSON.parse(this._storage[self.settings.localStorageName]); s[newName] = s[oldName]; delete s[oldName]; this._storage[self.settings.localStorageName] = JSON.stringify(s); self.open(newName); return this; }; /** * Imports a file and it's contents and opens it * @param {string} name The name of the file you want to import (will overwrite existing files!) * @param {string} content Content of the file you want to import * @param {string} kind The kind of file you want to import (TBI) * @param {object} meta Meta data you want to save with your file. * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.importFile = function (name, content, kind, meta) { var self = this , isNew = false; name = name || self.settings.file.name; content = content || ''; kind = kind || 'md'; meta = meta || {}; if (JSON.parse(this._storage[self.settings.localStorageName])[name] === undefined) { isNew = true; } // Set our current file to the new file and update the content self.settings.file.name = name; _setText(self.editor, content); if (isNew) { self.emit('create'); } self.save(); if (self.is('fullscreen')) { self.preview(); } //firefox has trouble with importing and working out the size right away if (self.settings.autogrow) { setTimeout(function () { self._autogrow(); }, 50); } return this; }; /** * Gets the local filestore * @param {string} name Name of the file in the store * @returns {object|undefined} the local filestore, or a specific file in the store, if a name is given */ EpicEditor.prototype._getFileStore = function (name, _isPreviewDraft) { var previewDraftName = '' , store; if (_isPreviewDraft) { previewDraftName = this._previewDraftLocation; } store = JSON.parse(this._storage[previewDraftName + this.settings.localStorageName]); if (name) { return store[name]; } else { return store; } } /** * Exports a file as a string in a supported format * @param {string} name Name of the file you want to export (case sensitive) * @param {string} kind Kind of file you want the content in (currently supports html and text, default is the format the browser "wants") * @returns {string|undefined} The content of the file in the content given or undefined if it doesn't exist */ EpicEditor.prototype.exportFile = function (name, kind, _isPreviewDraft) { var self = this , file , content; name = name || self.settings.file.name; kind = kind || 'text'; file = self._getFileStore(name, _isPreviewDraft); // If the file doesn't exist just return early with undefined if (file === undefined) { return; } content = file.content; switch (kind) { case 'html': content = _sanitizeRawContent(content); return self.settings.parser(content); case 'text': return _sanitizeRawContent(content); case 'json': file.content = _sanitizeRawContent(file.content); return JSON.stringify(file); case 'raw': return content; default: return content; } } /** * Gets the contents and metadata for files * @param {string} name Name of the file whose data you want (case sensitive) * @param {boolean} excludeContent whether the contents of files should be excluded * @returns {object} An object with the names and data of every file, or just the data of one file if a name was given */ EpicEditor.prototype.getFiles = function (name, excludeContent) { var file , data = this._getFileStore(name); if (name) { if (data !== undefined) { if (excludeContent) { delete data.content; } else { data.content = _sanitizeRawContent(data.content); } } return data; } else { for (file in data) { if (data.hasOwnProperty(file)) { if (excludeContent) { delete data[file].content; } else { data[file].content = _sanitizeRawContent(data[file].content); } } } return data; } } // EVENTS // TODO: Support for namespacing events like "preview.foo" /** * Sets up an event handler for a specified event * @param {string} ev The event name * @param {function} handler The callback to run when the event fires * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.on = function (ev, handler) { var self = this; if (!this.events[ev]) { this.events[ev] = []; } this.events[ev].push(handler); return self; }; /** * This will emit or "trigger" an event specified * @param {string} ev The event name * @param {any} data Any data you want to pass into the callback * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.emit = function (ev, data) { var self = this , x; data = data || self.getFiles(self.settings.file.name); if (!this.events[ev]) { return; } function invokeHandler(handler) { handler.call(self, data); } for (x = 0; x < self.events[ev].length; x++) { invokeHandler(self.events[ev][x]); } return self; }; /** * Will remove any listeners added from EpicEditor.on() * @param {string} ev The event name * @param {function} handler Handler to remove * @returns {object} EpicEditor will be returned */ EpicEditor.prototype.removeListener = function (ev, handler) { var self = this; if (!handler) { this.events[ev] = []; return self; } if (!this.events[ev]) { return self; } // Otherwise a handler and event exist, so take care of it this.events[ev].splice(this.events[ev].indexOf(handler), 1); return self; } /** * Handles autogrowing the editor */ EpicEditor.prototype._autogrow = function () { var editorHeight , newHeight , minHeight , maxHeight , el , style , maxedOut = false; //autogrow in fullscreen is nonsensical if (!this.is('fullscreen')) { if (this.is('edit')) { el = this.getElement('editor').documentElement; } else { el = this.getElement('previewer').documentElement; } editorHeight = _outerHeight(el); newHeight = editorHeight; //handle minimum minHeight = this.settings.autogrow.minHeight; if (typeof minHeight === 'function') { minHeight = minHeight(this); } if (minHeight && newHeight < minHeight) { newHeight = minHeight; } //handle maximum maxHeight = this.settings.autogrow.maxHeight; if (typeof maxHeight === 'function') { maxHeight = maxHeight(this); } if (maxHeight && newHeight > maxHeight) { newHeight = maxHeight; maxedOut = true; } if (maxedOut) { this._fixScrollbars('auto'); } else { this._fixScrollbars('hidden'); } //actual resize if (newHeight != this.oldHeight) { this.getElement('container').style.height = newHeight + 'px'; this.reflow(); if (this.settings.autogrow.scroll) { window.scrollBy(0, newHeight - this.oldHeight); } this.oldHeight = newHeight; } } } /** * Shows or hides scrollbars based on the autogrow setting * @param {string} forceSetting a value to force the overflow to */ EpicEditor.prototype._fixScrollbars = function (forceSetting) { var setting; if (this.settings.autogrow) { setting = 'hidden'; } else { setting = 'auto'; } setting = forceSetting || setting; this.getElement('editor').documentElement.style.overflow = setting; this.getElement('previewer').documentElement.style.overflow = setting; } EpicEditor.version = '0.2.2'; // Used to store information to be shared across editors EpicEditor._data = {}; window.EpicEditor = EpicEditor; })(window); /** * marked - a markdown parser * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed) * https://github.com/chjj/marked */ ;(function() { /** * Block-Level Grammar */ var block = { newline: /^\n+/, code: /^( {4}[^\n]+\n*)+/, fences: noop, hr: /^( *[-*_]){3,} *(?:\n+|$)/, heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, nptable: noop, lheading: /^([^\n]+)\n *(=|-){3,} *\n*/, blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/, list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/, def: /^ *\[([^\]]+)\]: *([^\s]+)(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, table: noop, paragraph: /^([^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+\n*/, text: /^[^\n]+/ }; block.bullet = /(?:[*+-]|\d+\.)/; block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; block.item = replace(block.item, 'gm') (/bull/g, block.bullet) (); block.list = replace(block.list) (/bull/g, block.bullet) ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/) (); block._tag = '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b'; block.html = replace(block.html) ('comment', //) ('closed', /<(tag)[\s\S]+?<\/\1>/) ('closing', /])*?>/) (/tag/g, block._tag) (); block.paragraph = replace(block.paragraph) ('hr', block.hr) ('heading', block.heading) ('lheading', block.lheading) ('blockquote', block.blockquote) ('tag', '<' + block._tag) ('def', block.def) (); /** * Normal Block Grammar */ block.normal = merge({}, block); /** * GFM Block Grammar */ block.gfm = merge({}, block.normal, { fences: /^ *(`{3,}|~{3,}) *(\w+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/, paragraph: /^/ }); block.gfm.paragraph = replace(block.paragraph) ('(?!', '(?!' + block.gfm.fences.source.replace('\\1', '\\2') + '|') (); /** * GFM + Tables Block Grammar */ block.tables = merge({}, block.gfm, { nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ }); /** * Block Lexer */ function Lexer(options) { this.tokens = []; this.tokens.links = {}; this.options = options || marked.defaults; this.rules = block.normal; if (this.options.gfm) { if (this.options.tables) { this.rules = block.tables; } else { this.rules = block.gfm; } } } /** * Expose Block Rules */ Lexer.rules = block; /** * Static Lex Method */ Lexer.lex = function(src, options) { var lexer = new Lexer(options); return lexer.lex(src); }; /** * Preprocessing */ Lexer.prototype.lex = function(src) { src = src .replace(/\r\n|\r/g, '\n') .replace(/\t/g, ' ') .replace(/\u00a0/g, ' ') .replace(/\u2424/g, '\n'); return this.token(src, true); }; /** * Lexing */ Lexer.prototype.token = function(src, top) { var src = src.replace(/^ +$/gm, '') , next , loose , cap , item , space , i , l; while (src) { // newline if (cap = this.rules.newline.exec(src)) { src = src.substring(cap[0].length); if (cap[0].length > 1) { this.tokens.push({ type: 'space' }); } } // code if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); cap = cap[0].replace(/^ {4}/gm, ''); this.tokens.push({ type: 'code', text: !this.options.pedantic ? cap.replace(/\n+$/, '') : cap }); continue; } // fences (gfm) if (cap = this.rules.fences.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'code', lang: cap[2], text: cap[3] }); continue; } // heading if (cap = this.rules.heading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'heading', depth: cap[1].length, text: cap[2] }); continue; } // table no leading pipe (gfm) if (top && (cap = this.rules.nptable.exec(src))) { src = src.substring(cap[0].length); item = { type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/\n$/, '').split('\n') }; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right'; } else if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center'; } else if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left'; } else { item.align[i] = null; } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].split(/ *\| */); } this.tokens.push(item); continue; } // lheading if (cap = this.rules.lheading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'heading', depth: cap[2] === '=' ? 1 : 2, text: cap[1] }); continue; } // hr if (cap = this.rules.hr.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'hr' }); continue; } // blockquote if (cap = this.rules.blockquote.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'blockquote_start' }); cap = cap[0].replace(/^ *> ?/gm, ''); // Pass `top` to keep the current // "toplevel" state. This is exactly // how markdown.pl works. this.token(cap, top); this.tokens.push({ type: 'blockquote_end' }); continue; } // list if (cap = this.rules.list.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'list_start', ordered: isFinite(cap[2]) }); // Get each top-level item. cap = cap[0].match(this.rules.item); next = false; l = cap.length; i = 0; for (; i < l; i++) { item = cap[i]; // Remove the list item's bullet // so it is seen as the next token. space = item.length; item = item.replace(/^ *([*+-]|\d+\.) +/, ''); // Outdent whatever the // list item contains. Hacky. if (~item.indexOf('\n ')) { space -= item.length; item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, ''); } // Determine whether item is loose or not. // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ // for discount behavior. loose = next || /\n\n(?!\s*$)/.test(item); if (i !== l - 1) { next = item[item.length-1] === '\n'; if (!loose) loose = next; } this.tokens.push({ type: loose ? 'loose_item_start' : 'list_item_start' }); // Recurse. this.token(item, false); this.tokens.push({ type: 'list_item_end' }); } this.tokens.push({ type: 'list_end' }); continue; } // html if (cap = this.rules.html.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: this.options.sanitize ? 'paragraph' : 'html', pre: cap[1] === 'pre', text: cap[0] }); continue; } // def if (top && (cap = this.rules.def.exec(src))) { src = src.substring(cap[0].length); this.tokens.links[cap[1].toLowerCase()] = { href: cap[2], title: cap[3] }; continue; } // table (gfm) if (top && (cap = this.rules.table.exec(src))) { src = src.substring(cap[0].length); item = { type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') }; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right'; } else if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center'; } else if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left'; } else { item.align[i] = null; } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i] .replace(/^ *\| *| *\| *$/g, '') .split(/ *\| */); } this.tokens.push(item); continue; } // top-level paragraph if (top && (cap = this.rules.paragraph.exec(src))) { src = src.substring(cap[0].length); this.tokens.push({ type: 'paragraph', text: cap[0] }); continue; } // text if (cap = this.rules.text.exec(src)) { // Top-level should never reach here. src = src.substring(cap[0].length); this.tokens.push({ type: 'text', text: cap[0] }); continue; } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } } return this.tokens; }; /** * Inline-Level Grammar */ var inline = { escape: /^\\([\\`*{}\[\]()#+\-.!_>|])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, url: noop, tag: /^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, link: /^!?\[(inside)\]\(href\)/, reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, code: /^(`+)([\s\S]*?[^`])\1(?!`)/, br: /^ {2,}\n(?!\s*$)/, del: noop, text: /^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/; inline.link = replace(inline.link) ('inside', inline._inside) ('href', inline._href) (); inline.reflink = replace(inline.reflink) ('inside', inline._inside) (); /** * Normal Inline Grammar */ inline.normal = merge({}, inline); /** * Pedantic Inline Grammar */ inline.pedantic = merge({}, inline.normal, { strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ }); /** * GFM Inline Grammar */ inline.gfm = merge({}, inline.normal, { escape: replace(inline.escape)('])', '~])')(), url: /^(https?:\/\/[^\s]+[^.,:;"')\]\s])/, del: /^~{2,}([\s\S]+?)~{2,}/, text: replace(inline.text) (']|', '~]|') ('|', '|https?://|') () }); /** * GFM + Line Breaks Inline Grammar */ inline.breaks = merge({}, inline.gfm, { br: replace(inline.br)('{2,}', '*')(), text: replace(inline.gfm.text)('{2,}', '*')() }); /** * Inline Lexer & Compiler */ function InlineLexer(links, options) { this.options = options || marked.defaults; this.links = links; this.rules = inline.normal; if (!this.links) { throw new Error('Tokens array requires a `links` property.'); } if (this.options.gfm) { if (this.options.breaks) { this.rules = inline.breaks; } else { this.rules = inline.gfm; } } else if (this.options.pedantic) { this.rules = inline.pedantic; } } /** * Expose Inline Rules */ InlineLexer.rules = inline; /** * Static Lexing/Compiling Method */ InlineLexer.output = function(src, links, opt) { var inline = new InlineLexer(links, opt); return inline.output(src); }; /** * Lexing/Compiling */ InlineLexer.prototype.output = function(src) { var out = '' , link , text , href , cap; while (src) { // escape if (cap = this.rules.escape.exec(src)) { src = src.substring(cap[0].length); out += cap[1]; continue; } // autolink if (cap = this.rules.autolink.exec(src)) { src = src.substring(cap[0].length); if (cap[2] === '@') { text = cap[1][6] === ':' ? this.mangle(cap[1].substring(7)) : this.mangle(cap[1]); href = this.mangle('mailto:') + text; } else { text = escape(cap[1]); href = text; } out += '' + text + ''; continue; } // url (gfm) if (cap = this.rules.url.exec(src)) { src = src.substring(cap[0].length); text = escape(cap[1]); href = text; out += '' + text + ''; continue; } // tag if (cap = this.rules.tag.exec(src)) { src = src.substring(cap[0].length); out += this.options.sanitize ? escape(cap[0]) : cap[0]; continue; } // link if (cap = this.rules.link.exec(src)) { src = src.substring(cap[0].length); out += this.outputLink(cap, { href: cap[2], title: cap[3] }); continue; } // reflink, nolink if ((cap = this.rules.reflink.exec(src)) || (cap = this.rules.nolink.exec(src))) { src = src.substring(cap[0].length); link = (cap[2] || cap[1]).replace(/\s+/g, ' '); link = this.links[link.toLowerCase()]; if (!link || !link.href) { out += cap[0][0]; src = cap[0].substring(1) + src; continue; } out += this.outputLink(cap, link); continue; } // strong if (cap = this.rules.strong.exec(src)) { src = src.substring(cap[0].length); out += '' + this.output(cap[2] || cap[1]) + ''; continue; } // em if (cap = this.rules.em.exec(src)) { src = src.substring(cap[0].length); out += '' + this.output(cap[2] || cap[1]) + ''; continue; } // code if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); out += '' + escape(cap[2], true) + ''; continue; } // br if (cap = this.rules.br.exec(src)) { src = src.substring(cap[0].length); out += '
    '; continue; } // del (gfm) if (cap = this.rules.del.exec(src)) { src = src.substring(cap[0].length); out += '' + this.output(cap[1]) + ''; continue; } // text if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); out += escape(cap[0]); continue; } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } } return out; }; /** * Compile Link */ InlineLexer.prototype.outputLink = function(cap, link) { if (cap[0][0] !== '!') { return '' + this.output(cap[1]) + ''; } else { return ''
      + escape(cap[1])
      + ''; } }; /** * Mangle Links */ InlineLexer.prototype.mangle = function(text) { var out = '' , l = text.length , i = 0 , ch; for (; i < l; i++) { ch = text.charCodeAt(i); if (Math.random() > 0.5) { ch = 'x' + ch.toString(16); } out += '&#' + ch + ';'; } return out; }; /** * Parsing & Compiling */ function Parser(options) { this.tokens = []; this.token = null; this.options = options || marked.defaults; } /** * Static Parse Method */ Parser.parse = function(src, options) { var parser = new Parser(options); return parser.parse(src); }; /** * Parse Loop */ Parser.prototype.parse = function(src) { this.inline = new InlineLexer(src.links, this.options); this.tokens = src.reverse(); var out = ''; while (this.next()) { out += this.tok(); } return out; }; /** * Next Token */ Parser.prototype.next = function() { return this.token = this.tokens.pop(); }; /** * Preview Next Token */ Parser.prototype.peek = function() { return this.tokens[this.tokens.length-1] || 0; }; /** * Parse Text Tokens */ Parser.prototype.parseText = function() { var body = this.token.text; while (this.peek().type === 'text') { body += '\n' + this.next().text; } return this.inline.output(body); }; /** * Parse Current Token */ Parser.prototype.tok = function() { switch (this.token.type) { case 'space': { return ''; } case 'hr': { return '
    \n'; } case 'heading': { return '' + this.inline.output(this.token.text) + '\n'; } case 'code': { if (this.options.highlight) { var code = this.options.highlight(this.token.text, this.token.lang); if (code != null && code !== this.token.text) { this.token.escaped = true; this.token.text = code; } } if (!this.token.escaped) { this.token.text = escape(this.token.text, true); } return '
    '
            + this.token.text
            + '
    \n'; } case 'table': { var body = '' , heading , i , row , cell , j; // header body += '\n\n'; for (i = 0; i < this.token.header.length; i++) { heading = this.inline.output(this.token.header[i]); body += this.token.align[i] ? '' + heading + '\n' : '' + heading + '\n'; } body += '\n\n'; // body body += '\n' for (i = 0; i < this.token.cells.length; i++) { row = this.token.cells[i]; body += '\n'; for (j = 0; j < row.length; j++) { cell = this.inline.output(row[j]); body += this.token.align[j] ? '' + cell + '\n' : '' + cell + '\n'; } body += '\n'; } body += '\n'; return '\n' + body + '
    \n'; } case 'blockquote_start': { var body = ''; while (this.next().type !== 'blockquote_end') { body += this.tok(); } return '
    \n' + body + '
    \n'; } case 'list_start': { var type = this.token.ordered ? 'ol' : 'ul' , body = ''; while (this.next().type !== 'list_end') { body += this.tok(); } return '<' + type + '>\n' + body + '\n'; } case 'list_item_start': { var body = ''; while (this.next().type !== 'list_item_end') { body += this.token.type === 'text' ? this.parseText() : this.tok(); } return '
  • ' + body + '
  • \n'; } case 'loose_item_start': { var body = ''; while (this.next().type !== 'list_item_end') { body += this.tok(); } return '
  • ' + body + '
  • \n'; } case 'html': { return !this.token.pre && !this.options.pedantic ? this.inline.output(this.token.text) : this.token.text; } case 'paragraph': { return '

    ' + this.inline.output(this.token.text) + '

    \n'; } case 'text': { return '

    ' + this.parseText() + '

    \n'; } } }; /** * Helpers */ function escape(html, encode) { return html .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function replace(regex, opt) { regex = regex.source; opt = opt || ''; return function self(name, val) { if (!name) return new RegExp(regex, opt); val = val.source || val; val = val.replace(/(^|[^\[])\^/g, '$1'); regex = regex.replace(name, val); return self; }; } function noop() {} noop.exec = noop; function merge(obj) { var i = 1 , target , key; for (; i < arguments.length; i++) { target = arguments[i]; for (key in target) { if (Object.prototype.hasOwnProperty.call(target, key)) { obj[key] = target[key]; } } } return obj; } /** * Marked */ function marked(src, opt) { try { return Parser.parse(Lexer.lex(src, opt), opt); } catch (e) { e.message += '\nPlease report this to https://github.com/chjj/marked.'; if ((opt || marked.defaults).silent) { return 'An error occured:\n' + e.message; } throw e; } } /** * Options */ marked.options = marked.setOptions = function(opt) { marked.defaults = opt; return marked; }; marked.defaults = { gfm: true, tables: true, breaks: false, pedantic: false, sanitize: false, silent: false, highlight: null }; /** * Expose */ marked.Parser = Parser; marked.parser = Parser.parse; marked.Lexer = Lexer; marked.lexer = Lexer.lex; marked.InlineLexer = InlineLexer; marked.inlineLexer = InlineLexer.output; marked.parse = marked; if (typeof module !== 'undefined') { module.exports = marked; } else if (typeof define === 'function' && define.amd) { define(function() { return marked; }); } else { this.marked = marked; } }).call(function() { return this || (typeof window !== 'undefined' ? window : global); }()); webcit-dfsg.orig/epic/js/epiceditor.min.js0000644000175000017500000010222513223341037020604 0ustar michaelmichael/** * EpicEditor - An Embeddable JavaScript Markdown Editor (https://github.com/OscarGodson/EpicEditor) * Copyright (c) 2011-2012, Oscar Godson. (MIT Licensed) */(function(e,t){function n(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}function r(e,t){for(var n in t)t.hasOwnProperty(n)&&(e.style[n]=t[n])}function i(t,n){var r=t,i=null;return e.getComputedStyle?i=document.defaultView.getComputedStyle(r,null).getPropertyValue(n):r.currentStyle&&(i=r.currentStyle[n]),i}function s(e,t,n){var s={},o;if(t==="save"){for(o in n)n.hasOwnProperty(o)&&(s[o]=i(e,o));r(e,n)}else t==="apply"&&r(e,n);return s}function o(e){var t=parseInt(i(e,"border-left-width"),10)+parseInt(i(e,"border-right-width"),10),n=parseInt(i(e,"padding-left"),10)+parseInt(i(e,"padding-right"),10),r=e.offsetWidth,s;return isNaN(t)&&(t=0),s=t+n+r,s}function u(e){var t=parseInt(i(e,"border-top-width"),10)+parseInt(i(e,"border-bottom-width"),10),n=parseInt(i(e,"padding-top"),10)+parseInt(i(e,"padding-bottom"),10),r=parseInt(i(e,"height"),10),s;return isNaN(t)&&(t=0),s=t+n+r,s}function a(e,t,r){r=r||"";var i=t.getElementsByTagName("head")[0],s=t.createElement("link");n(s,{type:"text/css",id:r,rel:"stylesheet",href:e,name:e,media:"screen"}),i.appendChild(s)}function f(e,t,n){e.className=e.className.replace(t,n)}function l(e){return e.contentDocument||e.contentWindow.document}function c(e){var t;return typeof document.body.innerText=="string"?t=e.innerText:(t=e.innerHTML.replace(/
    /gi,"\n"),t=t.replace(/<(?:.|\n)*?>/gm,""),t=t.replace(/</gi,"<"),t=t.replace(/>/gi,">")),t}function h(e,t){return t=t.replace(//g,">"),t=t.replace(/\n/g,"
    "),t=t.replace(/
    \s/g,"
     "),t=t.replace(/\s\s\s/g,"   "),t=t.replace(/\s\s/g,"  "),t=t.replace(/^ /," "),e.innerHTML=t,!0}function p(e){return e.replace(/\u00a0/g," ").replace(/ /g," ")}function d(){var e=-1,t=navigator.userAgent,n;return navigator.appName=="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]{1,}[\.0-9]{0,})/,n.exec(t)!=null&&(e=parseFloat(RegExp.$1,10))),e}function v(){var t=e.navigator;return t.userAgent.indexOf("Safari")>-1&&t.userAgent.indexOf("Chrome")==-1}function m(){var t=e.navigator;return t.userAgent.indexOf("Firefox")>-1&&t.userAgent.indexOf("Seamonkey")==-1}function g(e){var t={};return e&&t.toString.call(e)==="[object Function]"}function y(){var e=arguments[0]||{},n=1,r=arguments.length,i=!1,s,o,u,a;typeof e=="boolean"&&(i=e,e=arguments[1]||{},n=2),typeof e!="object"&&!g(e)&&(e={}),r===n&&(e=this,--n);for(;n=5||Math.abs(g.x-t.pageX)>=5)h.style.display="block",p&&clearTimeout(p),p=e.setTimeout(function(){h.style.display="none"},1e3);g={y:t.pageY,x:t.pageX}}function M(e){e.keyCode==n.settings.shortcut.modifier&&(N=!0),e.keyCode==17&&(C=!0),N===!0&&e.keyCode==n.settings.shortcut.preview&&!n.is("fullscreen")&&(e.preventDefault(),n.is("edit")&&n._previewEnabled?n.preview():n._editEnabled&&n.edit()),N===!0&&e.keyCode==n.settings.shortcut.fullscreen&&n._fullscreenEnabled&&(e.preventDefault(),n._goFullscreen(T)),N===!0&&e.keyCode!==n.settings.shortcut.modifier&&(N=!1),e.keyCode==27&&n.is("fullscreen")&&n._exitFullscreen(T),C===!0&&e.keyCode==83&&(n.save(),e.preventDefault(),C=!1),e.metaKey&&e.keyCode==83&&(n.save(),e.preventDefault())}function _(e){e.keyCode==n.settings.shortcut.modifier&&(N=!1),e.keyCode==17&&(C=!1)}function D(t){var r;t.clipboardData?(t.preventDefault(),r=t.clipboardData.getData("text/plain"),n.editorIframeDocument.execCommand("insertText",!1,r)):e.clipboardData&&(t.preventDefault(),r=e.clipboardData.getData("Text"),r=r.replace(//g,">"),r=r.replace(/\n/g,"
    "),r=r.replace(/\r/g,""),r=r.replace(/
    \s/g,"
     "),r=r.replace(/\s\s\s/g,"   "),r=r.replace(/\s\s/g,"  "),n.editorIframeDocument.selection.createRange().pasteHTML(r))}if(this.is("loaded"))return this;var n=this,o,u,f,c,h,p,m,g={y:-1,x:-1},y,b,w=!1,E=!1,S=!1,x=!1,T,N=!1,C=!1,k,L,A;n._eeState.startup=!0,n.settings.useNativeFullscreen&&(E=document.body.webkitRequestFullScreen?!0:!1,S=document.body.mozRequestFullScreen?!0:!1,x=document.body.requestFullscreen?!0:!1,w=E||S||x),v()&&(w=!1,E=!1),!n.is("edit")&&!n.is("preview")&&(n._eeState.edit=!0),t=t||function(){},o={chrome:'
    '+(n._previewEnabled?' ':"")+(n._editEnabled?' ':"")+(n._fullscreenEnabled?'':"")+"
    "+"
    ",previewer:'
    ',editor:""},n.element.innerHTML='',n.element.style.height=n.element.offsetHeight+"px",u=document.getElementById(n._instanceId),n.iframeElement=u,n.iframe=l(u),n.iframe.open(),n.iframe.write(o.chrome),n.editorIframe=n.iframe.getElementById("epiceditor-editor-frame"),n.previewerIframe=n.iframe.getElementById("epiceditor-previewer-frame"),n.editorIframeDocument=l(n.editorIframe),n.editorIframeDocument.open(),n.editorIframeDocument.write(o.editor),n.editorIframeDocument.close(),n.previewerIframeDocument=l(n.previewerIframe),n.previewerIframeDocument.open(),n.previewerIframeDocument.write(o.previewer),f=n.previewerIframeDocument.createElement("base"),f.target="_blank",n.previewerIframeDocument.getElementsByTagName("head")[0].appendChild(f),n.previewerIframeDocument.close(),n.reflow(),a(n.settings.theme.base,n.iframe,"theme"),a(n.settings.theme.editor,n.editorIframeDocument,"theme"),a(n.settings.theme.preview,n.previewerIframeDocument,"theme"),n.iframe.getElementById("epiceditor-wrapper").style.position="relative",n.editorIframe.style.position="absolute",n.previewerIframe.style.position="absolute",n.editor=n.editorIframeDocument.body,n.previewer=n.previewerIframeDocument.getElementById("epiceditor-preview"),n.editor.contentEditable=!0,n.iframe.body.style.height=this.element.offsetHeight+"px",n.previewerIframe.style.left="-999999px",this.editorIframeDocument.body.style.wordWrap="break-word",d()>-1&&(this.previewer.style.height=parseInt(i(this.previewer,"height"),10)+2),this.open(n.settings.file.name),n.settings.focusOnLoad&&n.iframe.addEventListener("readystatechange",function(){n.iframe.readyState=="complete"&&n.focus()}),n.previewerIframeDocument.addEventListener("click",function(t){var r=t.target,i=n.previewerIframeDocument.body;r.nodeName=="A"&&r.hash&&r.hostname==e.location.hostname&&(t.preventDefault(),r.target="_self",i.querySelector(r.hash)&&(i.scrollTop=i.querySelector(r.hash).offsetTop))}),c=n.iframe.getElementById("epiceditor-utilbar"),y={},n._goFullscreen=function(t){this._fixScrollbars("auto");if(n.is("fullscreen")){n._exitFullscreen(t);return}w&&(E?t.webkitRequestFullScreen():S?t.mozRequestFullScreen():x&&t.requestFullscreen()),b=n.is("edit"),n._eeState.fullscreen=!0,n._eeState.edit=!0,n._eeState.preview=!0;var r=e.innerWidth,o=e.innerHeight,u=e.outerWidth,a=e.outerHeight;w||(a=e.innerHeight),y.editorIframe=s(n.editorIframe,"save",{width:u/2+"px",height:a+"px","float":"left",cssFloat:"left",styleFloat:"left",display:"block",position:"static",left:""}),y.previewerIframe=s(n.previewerIframe,"save",{width:u/2+"px",height:a+"px","float":"right",cssFloat:"right",styleFloat:"right",display:"block",position:"static",left:""}),y.element=s(n.element,"save",{position:"fixed",top:"0",left:"0",width:"100%","z-index":"9999",zIndex:"9999",border:"none",margin:"0",background:i(n.editor,"background-color"),height:o+"px"}),y.iframeElement=s(n.iframeElement,"save",{width:u+"px",height:o+"px"}),c.style.visibility="hidden",w||(document.body.style.overflow="hidden"),n.preview(),n.focus(),n.emit("fullscreenenter")},n._exitFullscreen=function(e){this._fixScrollbars(),s(n.element,"apply",y.element),s(n.iframeElement,"apply",y.iframeElement),s(n.editorIframe,"apply",y.editorIframe),s(n.previewerIframe,"apply",y.previewerIframe),n.element.style.width=n._eeState.reflowWidth?n._eeState.reflowWidth:"",n.element.style.height=n._eeState.reflowHeight?n._eeState.reflowHeight:"",c.style.visibility="visible",n._eeState.fullscreen=!1,w?E?document.webkitCancelFullScreen():S?document.mozCancelFullScreen():x&&document.exitFullscreen():document.body.style.overflow="auto",b?n.edit():n.preview(),n.reflow(),n.emit("fullscreenexit")},n.editor.addEventListener("keyup",function(){m&&e.clearTimeout(m),m=e.setTimeout(function(){n.is("fullscreen")&&n.preview()},250)}),T=n.iframeElement,c.addEventListener("click",function(e){var t=e.target.className;t.indexOf("epiceditor-toggle-preview-btn")>-1?n.preview():t.indexOf("epiceditor-toggle-edit-btn")>-1?n.edit():t.indexOf("epiceditor-fullscreen-btn")>-1&&n._goFullscreen(T)}),E?document.addEventListener("webkitfullscreenchange",function(){!document.webkitIsFullScreen&&n._eeState.fullscreen&&n._exitFullscreen(T)},!1):S?document.addEventListener("mozfullscreenchange",function(){!document.mozFullScreen&&n._eeState.fullscreen&&n._exitFullscreen(T)},!1):x&&document.addEventListener("fullscreenchange",function(){document.fullscreenElement==null&&n._eeState.fullscreen&&n._exitFullscreen(T)},!1),h=n.iframe.getElementById("epiceditor-utilbar"),n.settings.button.bar!==!0&&(h.style.display="none"),h.addEventListener("mouseover",function(){p&&clearTimeout(p)}),k=[n.previewerIframeDocument,n.editorIframeDocument];for(L=0;Li&&(n=i,a=!0),a?this._fixScrollbars("auto"):this._fixScrollbars("hidden"),n!=this.oldHeight&&(this.getElement("container").style.height=n+"px",this.reflow(),this.settings.autogrow.scroll&&e.scrollBy(0,n-this.oldHeight),this.oldHeight=n))},b.prototype._fixScrollbars=function(e){var t;this.settings.autogrow?t="hidden":t="auto",t=e||t,this.getElement("editor").documentElement.style.overflow=t,this.getElement("previewer").documentElement.style.overflow=t},b.version="0.2.2",b._data={},e.EpicEditor=b})(window),function(){function t(t){this.tokens=[],this.tokens.links={},this.options=t||f.defaults,this.rules=e.normal,this.options.gfm&&(this.options.tables?this.rules=e.tables:this.rules=e.gfm)}function r(e,t){this.options=t||f.defaults,this.links=e,this.rules=n.normal;if(!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=n.breaks:this.rules=n.gfm:this.options.pedantic&&(this.rules=n.pedantic)}function i(e){this.tokens=[],this.token=null,this.options=e||f.defaults}function s(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function o(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=i.source||i,i=i.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,i),n):new RegExp(e,t)}}function u(){}function a(e){var t=1,n,r;for(;t[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *([^\s]+)(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:u,paragraph:/^([^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+\n*/,text:/^[^\n]+/};e.bullet=/(?:[*+-]|\d+\.)/,e.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,e.item=o(e.item,"gm")(/bull/g,e.bullet)(),e.list=o(e.list)(/bull/g,e.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)(),e._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b",e.html=o(e.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,e._tag)(),e.paragraph=o(e.paragraph)("hr",e.hr)("heading",e.heading)("lheading",e.lheading)("blockquote",e.blockquote)("tag","<"+e._tag)("def",e.def)(),e.normal=a({},e),e.gfm=a({},e.normal,{fences:/^ *(`{3,}|~{3,}) *(\w+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),e.gfm.paragraph=o(e.paragraph)("(?!","(?!"+e.gfm.fences.source.replace("\\1","\\2")+"|")(),e.tables=a({},e.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),t.rules=e,t.lex=function(e,n){var r=new t(n);return r.lex(e)},t.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},t.prototype.token=function(e,t){var e=e.replace(/^ +$/gm,""),n,r,i,s,o,u,a;while(e){if(i=this.rules.newline.exec(e))e=e.substring(i[0].length),i[0].length>1&&this.tokens.push({type:"space"});if(i=this.rules.code.exec(e)){e=e.substring(i[0].length),i=i[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?i:i.replace(/\n+$/,"")});continue}if(i=this.rules.fences.exec(e)){e=e.substring(i[0].length),this.tokens.push({type:"code",lang:i[2],text:i[3]});continue}if(i=this.rules.heading.exec(e)){e=e.substring(i[0].length),this.tokens.push({type:"heading",depth:i[1].length,text:i[2]});continue}if(t&&(i=this.rules.nptable.exec(e))){e=e.substring(i[0].length),s={type:"table",header:i[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3].replace(/\n$/,"").split("\n")};for(u=0;u ?/gm,""),this.token(i,t),this.tokens.push({type:"blockquote_end"});continue}if(i=this.rules.list.exec(e)){e=e.substring(i[0].length),this.tokens.push({type:"list_start",ordered:isFinite(i[2])}),i=i[0].match(this.rules.item),n=!1,a=i.length,u=0;for(;u|])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:u,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)([\s\S]*?[^`])\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:u,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,n.link=o(n.link)("inside",n._inside)("href",n._href)(),n.reflink=o(n.reflink)("inside",n._inside)(),n.normal=a({},n),n.pedantic=a({},n.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),n.gfm=a({},n.normal,{escape:o(n.escape)("])","~])")(),url:/^(https?:\/\/[^\s]+[^.,:;"')\]\s])/,del:/^~{2,}([\s\S]+?)~{2,}/,text:o(n.text)("]|","~]|")("|","|https?://|")()}),n.breaks=a({},n.gfm,{br:o(n.br)("{2,}","*")(),text:o(n.gfm.text)("{2,}","*")()}),r.rules=n,r.output=function(e,t,n){var i=new r(t,n);return i.output(e)},r.prototype.output=function(e){var t="",n,r,i,o;while(e){if(o=this.rules.escape.exec(e)){e=e.substring(o[0].length),t+=o[1];continue}if(o=this.rules.autolink.exec(e)){e=e.substring(o[0].length),o[2]==="@"?(r=o[1][6]===":"?this.mangle(o[1].substring(7)):this.mangle(o[1]),i=this.mangle("mailto:")+r):(r=s(o[1]),i=r),t+=''+r+"";continue}if(o=this.rules.url.exec(e)){e=e.substring(o[0].length),r=s(o[1]),i=r,t+=''+r+"";continue}if(o=this.rules.tag.exec(e)){e=e.substring(o[0].length),t+=this.options.sanitize?s(o[0]):o[0];continue}if(o=this.rules.link.exec(e)){e=e.substring(o[0].length),t+=this.outputLink(o,{href:o[2],title:o[3]});continue}if((o=this.rules.reflink.exec(e))||(o=this.rules.nolink.exec(e))){e=e.substring(o[0].length),n=(o[2]||o[1]).replace(/\s+/g," "),n=this.links[n.toLowerCase()];if(!n||!n.href){t+=o[0][0],e=o[0].substring(1)+e;continue}t+=this.outputLink(o,n);continue}if(o=this.rules.strong.exec(e)){e=e.substring(o[0].length),t+=""+this.output(o[2]||o[1])+"";continue}if(o=this.rules.em.exec(e)){e=e.substring(o[0].length),t+=""+this.output(o[2]||o[1])+"";continue}if(o=this.rules.code.exec(e)){e=e.substring(o[0].length),t+=""+s(o[2],!0)+"";continue}if(o=this.rules.br.exec(e)){e=e.substring(o[0].length),t+="
    ";continue}if(o=this.rules.del.exec(e)){e=e.substring(o[0].length),t+=""+this.output(o[1])+"";continue}if(o=this.rules.text.exec(e)){e=e.substring(o[0].length),t+=s(o[0]);continue}if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}return t},r.prototype.outputLink=function(e,t){return e[0][0]!=="!"?'"+this.output(e[1])+"":''+s(e[1])+'"},r.prototype.mangle=function(e){var t="",n=e.length,r=0,i;for(;r.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t},i.parse=function(e,t){var n=new i(t);return n.parse(e)},i.prototype.parse=function(e){this.inline=new r(e.links,this.options),this.tokens=e.reverse();var t="";while(this.next())t+=this.tok();return t},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){var e=this.token.text;while(this.peek().type==="text")e+="\n"+this.next().text;return this.inline.output(e)},i.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return"
    \n";case"heading":return""+this.inline.output(this.token.text)+"\n";case"code":if(this.options.highlight){var e=this.options.highlight(this.token.text,this.token.lang);e!=null&&e!==this.token.text&&(this.token.escaped=!0,this.token.text=e)}return this.token.escaped||(this.token.text=s(this.token.text,!0)),"
    "+this.token.text+"
    \n";case"table":var t="",n,r,i,o,u;t+="\n\n";for(r=0;r'+n+"\n":""+n+"\n";t+="\n\n",t+="\n";for(r=0;r\n";for(u=0;u'+o+"\n":""+o+"\n";t+="\n"}return t+="\n","\n"+t+"
    \n";case"blockquote_start":var t="";while(this.next().type!=="blockquote_end" )t+=this.tok();return"
    \n"+t+"
    \n";case"list_start":var a=this.token.ordered?"ol":"ul",t="";while(this.next().type!=="list_end")t+=this.tok();return"<"+a+">\n"+t+"\n";case"list_item_start":var t="";while(this.next().type!=="list_item_end")t+=this.token.type==="text"?this.parseText():this.tok();return"
  • "+t+"
  • \n";case"loose_item_start":var t="";while(this.next().type!=="list_item_end")t+=this.tok();return"
  • "+t+"
  • \n";case"html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case"paragraph":return"

    "+this.inline.output(this.token.text)+"

    \n";case"text":return"

    "+this.parseText()+"

    \n"}},u.exec=u,f.options=f.setOptions=function(e){return f.defaults=e,f},f.defaults={gfm:!0,tables:!0,breaks:!1,pedantic:!1,sanitize:!1,silent:!1,highlight:null},f.Parser=i,f.parser=i.parse,f.Lexer=t,f.lexer=t.lex,f.InlineLexer=r,f.inlineLexer=r.output,f.parse=f,typeof module!="undefined"?module.exports=f:typeof define=="function"&&define.amd?define(function(){return f}):this.marked=f}.call(function(){return this||(typeof window!="undefined"?window:global)}());webcit-dfsg.orig/epic/themes/0000755000175000017500000000000013223341037016204 5ustar michaelmichaelwebcit-dfsg.orig/epic/themes/base/0000755000175000017500000000000013223341037017116 5ustar michaelmichaelwebcit-dfsg.orig/epic/themes/base/epiceditor.css0000644000175000017500000002127313223341037021764 0ustar michaelmichaelhtml, body, iframe, div { margin:0; padding:0; } #epiceditor-utilbar { position:fixed; bottom:10px; right:10px; } #epiceditor-utilbar button { display:block; float:left; width:30px; height:30px; border:none; background:none; } #epiceditor-utilbar button.epiceditor-toggle-preview-btn { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAf9JREFUeNrsVu1twjAQLZmAEcIGYYKGDWACkgkSkPiQ+CifAoEgyQTQDegEpROQDZoRMgH0HToj1yIglKr90Vg62T6f/e4d9gu50+n09BctlwFnwP8TOAgCA10VRr2ZELaHhbBXx3HCVMC+71voXmD6g4Qi2NB13e1DwAAkZhtmmKYRcxsJhHeBPc8bMMufbDU0PxF4vV4TSyth8477csI6lTV/a71er9tioonBarXaIAmLErliNWyqoM8nrJPpHFNLWLcI4xvj5XKpMo2ZgcvzIvs+75S0wKwPPB/CnpWXsG00Gra2WCwshekOVoC9Sb6IGN1ge2HNsWK+B0iJqxAL5oSpYeDJJW02mxVYLAWSGfDtebylA68Bc4wh+ahK5PcxLh6PR5GUpym/iTOfz89PqNVqhRI4iQf1/o174HNMVYDSGeTDmXQ3znogCGrtdpsYVBhER1aH2Wzm8iE7UR74DMTWGNxUQWmNYqTEzq8APoo9sJ8wKoR5eU7T6VQVjZAvx4YvDJWt1Ol0QsTqkppF8EW8/12OhTnSpT2LCe2/KiCTyUQVkJgPuwgb6XG32w05Xui4q0imLLNDxA/uSuZ4PNaZqZlSsejDYfd6veihj8RoNDK5XOUHAen3Dfr9/j7VZxEJ6AwuxCCvhMTM7oNAARhl/0Ay4Az419qXAAMAfBdK7281j6YAAAAASUVORK5CYII=); } #epiceditor-utilbar button.epiceditor-toggle-edit-btn { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAnVJREFUeNrsV+lt4lAQNtEWAB2QCtZ0ABWsqYB1BU5AgDgkQOISl9cV4FQQtgLYCuKtIN4K4gogM9H3pMmLTTh24c+O9An7+XnOb8aP1G63M64hN8aV5GqGvxyyyfO8Y3S6hDtc2wTfcZyLRPwdvxEbPSviIwjIRtO49s9ONSRLMIGvwkBI+EPYEEqyQmcZdl2Xo3BgcJ90xPUGDh1veLFYWCBK9oQ6P4BgiXVO6fUjg5zCJcE6kVxsLEN4QTlWzO5yuRwlGp7P55zOxz1RRqK2SfKD8BvOG4IHxUqlEnxop9lsZpITa0KWndGwIeQIXswzHbynpK2xzjXbeBfxdDrlhbUWjYyuiJS9fBJxgL3PItKsprNQrVaD1GQyYUVP2oYelDziPoPnT5+k2QajleEC3usI/exM7oYiXor0hpxS8qhLv5FIVVrcBwkp5ueclbS27qNMvkj7kg3nZX1qtVqAaSUN5OGUwn2M4RUb3263plh700E6I7wTKn1suCAW3PF4zL1r1Ov1SBhXZLEJFqGTQCq5N1BZIp3s+DOi5fXcG7lGo1Ea5DIFSWzcq7a4R6uYqJmlkSqHoeGKeq+w905MtGKj0Yje9TE5ID9pqictQQwmXTfh82cIJ0NML0d0QY8MdhMn13A4zENB0hAJEYn6EnGL3MZ0hsyG3Ww2g70jU8lgMOhqHicJz+KfovVkz3J5/FardfhBgDZzS90SeoJ8cXjQJlUAEmZUCx30kYiTfr9vgFRc72+ChCHSzNH+Qgk+fA7b7fZZJ5AAiIRhT4zUv3/Y07LiaPW9yPE2L5jrI/p/d7wVEZe0U8bJkvr/F+ZS8irAAIorRozUvI0gAAAAAElFTkSuQmCC); } #epiceditor-utilbar button.epiceditor-fullscreen-btn { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAY5JREFUeNrsV8tthDAQhYgCtoV04BKghK2En5AQBw4IITjwq2RLgBJcwpawHZAxMpGDYGwTFPaQkUbG1sybj58NmNM0GVfIh3GRXBbYEid932N9d1zXHWWAGAb4m+9VsUA0H5SubKkKIGA4qyUC2qKBxSCe541HKln7dV2nVbHRtq0Nw7CXGNtz/jzwqjZ5odtqTOagQRC82KRpGkcS/L2Ok7lXZV3Xp7Q6DMNR2mqNthMhKXLqzcUCc6Wgn3wU1wlX1PboHs8tjaLoyVtLT7JFK2ZZM6CZvWyE+X1Voaj3la3DMA63epGqqm4wfyCBH8xmz1+Z1WVZ2vyqU2HvHtv9OI4PsRpjL91YV2a7pcB8onmOifYFUhSFLQCTnQtkDpokyYv73JBtcAQsA3zGTXJBEgNXgrF3CcrBZGwnC+4uqxHnH+zN8/ybvexZwvZNhlsHbrt5CyCgDtu1XosUe58K4kuOF9EKnKYp20eVrxDUJssyreM0bDg4kIw0EfCbftvqQ6KKYf7/wvyVfAkwAMjqoFSaWbrBAAAAAElFTkSuQmCC); } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and ( min--moz-device-pixel-ratio: 2), only screen and ( -o-min-device-pixel-ratio: 2/1), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 192dpi), only screen and ( min-resolution: 2dppx) { #epiceditor-utilbar button.epiceditor-toggle-preview-btn { background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABrVBMVEWIiIiHh4eIiIiJiYmEhISEhISEhISMjIyNjY2MjIyNjY2MjIyFhYWDg4OFhYWKioqKioqBgYGJiYmJiYmJiYmKioqKioqFhYWIiIiJiYmIiIiJiYmIiIiGhoaIiIiGhoaIiIiHh4eHh4eGhoaFhYWKioqFhYWEhISFhYWEhISDg4ONjY2NjY2MjIyHh4eMjIyLi4uCgoKCgoKCgoKBgYGBgYGOjo6Ojo6BgYGPj4+Ojo6Hh4eNjY2Pj4+BgYGNjY2BgYGHh4eQkJCNjY2FhYWHh4eDg4OQkJCQkJCAgICCgoKAgICAgICQkJCQkJCQkJCAgICQkJCAgICQkJCFhYWHh4eHh4eGhoaKioqGhoaMjIyDg4OEhISDg4OEhISDg4OEhISKioqBgYGJiYmKioqKioqJiYmMjIyEhISCgoKGhoaLi4uPj4+Pj4+BgYGKioqDg4OGhoaGhoaMjIyHh4eEhISEhISDg4OIiIiJiYmGhoaHh4eJiYkAAACAgICFhYWQkJCIiIiEhISLi4uDg4OHh4eGhoaCgoKBgYGJiYmMjIyOjo6KioqNjY2Pj4+o6Lr0AAAAfnRSTlPfvxDPEL8gv5/Pr3AQ3++vn8+/cCCA34/vj8/vMJ+vgJ+vYN/fMIBAv4/v38/v39+PgBBg74DPgGAwMHDvrzBQj1AggJ8wIHC/IM9gjxBQgO+vv89Qz0C/70Bgz89ggIDvYN/fII8wIHDvMJ+/QBBAMBDPnxBgML9AEI/vQACT8cYwAAACXElEQVR42u2WV1caURRGJ73H9J7YW+y99957ARREURAFQRFEOFGMkybxN+eec2cWUwBnrTwli/1yvvnm7PvEuoMAf0FGzsj/nDwxOTUzdyoxNzM1OWFU7h0aPtUxPNRrQPZ0XKagw3OF7Nm9TMOuJ43cQmpavSWV3HRhgKakcmvjhSEaW/VyV/tvg7R3aeU+9ULZ/fLEQ/ndMvXbPrV88EvBvQdOMCsLMzjNd5TFgSTr3SpWOCuUTYWTVVV6m+Sdr0qqqVGxw6pqXUPyZlziFaU9Vi3HVSyzag+D/YlcbXLZLm+85AsOgMK4hkIABz/YkSVVdpS3fnKevQCIYgCcGqKslGd0g3dbIIR5fP8cZCkMdOANWeSLEJZklt5StxEWcmLIuw+AHGE+YiEWE67jGxnlO8xv8OGTEBGRRSACmNtYyBUjgcCCKJPLqjYMAeD04ENEGIjQ7AGikuUFNhdF8Vogj0T5bDyqEjh55AwI4N7/hmRTe4zRxEM+ZuKYFSYeEP9HzPtuEFjm9pKf9W5KQLbKhSVMbkymfHL90i+s/wR5PM9iCaYiLOcLTogCrKEIYwkLD19T25/4bR+unSG3bkOQwiG1QZfV6gryBaqL5c01XCCZ9lbOCOvNUpouUOGishSK+dpKUHMZ2M6Jz7ZHNEO+hOoLUWVZZROx6a8hn+VcRWh1EOtBUuhcPiy+pBdg3fZ3DaOj2ma7LtXVW1uj0XVqTW2aS9/bUP8jJfUN3is+N97mp8nV9Wavka9kZ/e6zuzuNP59Hhkbn53+QkzPjo+NZP6TZOSM/L/LfwAJ69Ba3fXmtwAAAABJRU5ErkJggg==); background-size: 30px 30px; } #epiceditor-utilbar button.epiceditor-toggle-edit-btn { background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAACNFBMVEWIiIiHh4eIiIiGhoaEhISDg4OCgoKDg4OMjIyNjY2MjIyMjIyLi4uMjIyKioqCgoKNjY2Ojo6Dg4ONjY2FhYWFhYWCgoKKioqKioqLi4uLi4uMjIyLi4uFhYWKioqKioqEhISJiYmJiYmEhISEhISFhYWEhISGhoaHh4eJiYmNjY2Hh4eKioqDg4ODg4OCgoKOjo6Ojo6Dg4OOjo6BgYGOjo6AgICCgoKNjY2Dg4OPj4+BgYGBgYGAgICOjo6BgYGOjo6AgICOjo6BgYGBgYGAgICPj4+QkJCQkJCQkJCQkJCPj4+NjY2IiIiIiIiFhYWFhYWEhISEhISGhoaDg4OGhoaDg4OHh4eDg4OCgoKMjIyLi4uLi4uKioqNjY2KioqNjY2NjY2NjY2Dg4OKioqGhoaJiYmIiIiGhoaFhYWEhISFhYWFhYWOjo6Pj4+FhYWGhoaPj4+Hh4eMjIyMjIyMjIyJiYmIiIiIiIiOjo6Ojo6CgoKBgYGPj4+QkJCHh4eHh4eEhISIiIiDg4OEhISDg4ODg4OLi4uHh4eEhISMjIyFhYWGhoaHh4eOjo6IiIiKioqKioqMjIyGhoaIiIiJiYmIiIiFhYWGhoaGhoaHh4eKioqJiYmLi4uIiIiGhoaJiYmHh4eGhoaGhoaJiYmFhYWKioqPj4+IiIiGhoYAAACAgICCgoKQkJCPj4+BgYGDg4OFhYWHh4eOjo6JiYmGhoaLi4uEhISIiIiNjY2MjIyKioqRGRgVAAAAq3RSTlNQz7+Pz4AQr4/vIK+Av99QICBQzyCv37/PcM+f378QgHAwgIBgnxBQMK+PgFCf34Bwn0BQv2Ag7zBwEFDvj4CAv1DvYK/f398gUICA39+fYHAwQHAQn78gz0DfYO8wgO+/YECPIK9gz89Av8/f31AwgK9A72AwIGCAMM+PICCvrxCfr+/fYCAgYO9QgGBQjyCPYM8QcM8wEEAgn58Qn+8w7+/fv0DvQEBA7wCxres+AAAC50lEQVR42u2XVUMbQRSFU3d3d3d3d8EpUKRoKbS40+LuDsEtQOFQKA2FEvhz3XsnS5IlJLB9a/s95J49M99sXpJsNPgD/st/oZwxJJGhTn4+RLxQJ78k9xnUyU+HJV6pk6OGiXR1ciy5sZizfPMrwzl9mIiak5x6/sLnUZmH9+9eqqAQCftyakXkqFUq7MpX6JbW2WBHDnxtmJUAIMiGfD3AYINArDdsCppNfmewxQqx4aRVObFm0ibLAW+aNYkz5ZL4SdusRIkI8SVKOcFyp/cu5ftYA6ySc4Kl3DZuxs4dhfAZV+CDQtNFm0lWuLsBFPoqXF9g9bjSZrlqypwqAC1TClqAtYprIVfLjT+f0gfAXyn7oY9GNZ/KiWVumX17OYYAIUp3O+AnDu7bZqxOk5zU+ZOpPwD0UABNBaEAaPYACBVCZ5Ik14vlg5ClVjFpC0NZ6lplGa0nxN2gSZkg2vtB9FOmKDUNCyemcTStMXXcpmh4yGUl5ToAORMOaGiflhtkoRKCfq41yTw+GFsHKeeIRUfwwbwKOo/eIATi3GQNivREVxyIZsqeADL1+swuvZEiAJ4UmsEUsVEODRAnNp2iulzekrVAbyJLPrYctJTJ7nGQjI7uMULXBIBjIyQWUWLeAGik0E39sQGKYU0QMmp1vGnADSjj0EFtk5uOjuKzOtgok8r34rxasMzEjDFhjdDJNsE7u2VXh9oYDgNllp/n8IgfzJbwXhq9zlRu5soZWtFFl/Zy8SkaljK0R6inJTEinLQo5aSFE889kkqUWvsCdM37ZcnHYnrNBhably5QyoJDtFuJK1xMF3mHgVlkHM2e4eYB02Xxfts/NwXBuSMWLIG7sTmbb/+Hzj3fy1wuQD6N3DMX5/g0VHDDQ3aXAR4jXsEb5/co9fbLN2KdlJbO/zmM5a0qH+KukXxOnfzoO5GmTr5M7mOoktP4xrfUyffIvQ118pNBiTvq5AeDxNV//W+CFX4Doxg1lHC8FNUAAAAASUVORK5CYII=); background-size: 30px 30px; } #epiceditor-utilbar button.epiceditor-fullscreen-btn { background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAA5FBMVEWPj4+JiYmJiYmCgoKGhoaPj4+Li4uEhISAgICNjY2Li4uNjY2QkJCFhYWEhISLi4uHh4eHh4eIiIiHh4eGhoaHh4eEhISOjo6EhISJiYmFhYWJiYmFhYWNjY2NjY2Hh4eOjo6CgoKGhoaKioqKioqJiYmKioqDg4ODg4OBgYGGhoaKioqKioqLi4uMjIyMjIyIiIiIiIiMjIyOjo6GhoaDg4ONjY2EhISPj4+CgoIAAACJiYmHh4eIiIiFhYWCgoKPj4+Li4uAgICKioqEhISGhoaBgYGOjo6MjIyQkJCNjY2Dg4O2Jy/OAAAAO3RSTlMQz0DPEHDPz0DvMDBAQBBAQBAQz88wMM/v7zAw788Q7xAQQM9AEBDPEEAwMO/v7zDvMEBA70BAQEBAAAENmbYAAAG1SURBVHja7dftM0JREMdxD5GkEEqKpBJRSc8rQq7Q////2Dnm3t85jtkTmmGG75t7Z3c/t9fN0Tf6x1/Dz0ZrZGZf/BJ8a9QjM/vCwks9Px5aBcslC+P3nPVmi8dcczrcHHM2flug1CHRYcoYNd0YFlrAL1yHqPOC9g9IdbAfjHAjYFjoT+FI1MfRiAM/cZdEl0+oVidVvRaMcAOMgJWGBUYSVhrWjdfvjKqrq1Vzsu7Cy1Vo7XXZhYuj0ahwfHY+sjo/Oy7woyhitkTQsESsZawstG6VlvDCfIlUmfSVVjpDqtL8goBLbKFhsRcwalxcB100CDkxLLQbJxKwpvb3At7Y2iRuJzd4V26HuM2tDQkPWMOamu1Awkeetx2qtDy/lvZaCW173pGIWetA/xBbF+ZgiVgjGcdutLJ7xO1l9VnMiWGhJdzl4vx4CNpN+ifJXUy7RPEuZ2C1AIY1NG5kHI4Dx8MynnBtovYkqHzi25OyP8ONiKFh3djQsCIecn2i/lBvMU+UXxwi3HyE832jvD0RsLuP8CN3Oh0+feRmixE+g7CdLb43WiEz++Jb+M//x/gB/ArCl0G4nsFuEQAAAABJRU5ErkJggg==); background-size: 30px 30px; } } #epiceditor-utilbar button:last-child { margin-left:15px; } #epiceditor-utilbar button:hover { cursor:pointer; } .epiceditor-edit-mode #epiceditor-utilbar button.epiceditor-toggle-edit-btn { display:none; } .epiceditor-preview-mode #epiceditor-utilbar button.epiceditor-toggle-preview-btn { display:none; } webcit-dfsg.orig/epic/themes/preview/0000755000175000017500000000000013223341037017665 5ustar michaelmichaelwebcit-dfsg.orig/epic/themes/preview/preview-dark.css0000644000175000017500000000462613223341037023007 0ustar michaelmichaelhtml { padding:0 10px; } body { margin:0; padding:10px 0; background:#000; } #epiceditor-preview h1, #epiceditor-preview h2, #epiceditor-preview h3, #epiceditor-preview h4, #epiceditor-preview h5, #epiceditor-preview h6, #epiceditor-preview p, #epiceditor-preview blockquote { margin: 0; padding: 0; } #epiceditor-preview { background:#000; font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", Arial, sans-serif; font-size: 13px; line-height: 18px; color: #ccc; } #epiceditor-preview a { color: #fff; } #epiceditor-preview a:hover { color: #00ff00; text-decoration: none; } #epiceditor-preview a img { border: none; } #epiceditor-preview p { margin-bottom: 9px; } #epiceditor-preview h1, #epiceditor-preview h2, #epiceditor-preview h3, #epiceditor-preview h4, #epiceditor-preview h5, #epiceditor-preview h6 { color: #cdcdcd; line-height: 36px; } #epiceditor-preview h1 { margin-bottom: 18px; font-size: 30px; } #epiceditor-preview h2 { font-size: 24px; } #epiceditor-preview h3 { font-size: 18px; } #epiceditor-preview h4 { font-size: 16px; } #epiceditor-preview h5 { font-size: 14px; } #epiceditor-preview h6 { font-size: 13px; } #epiceditor-preview hr { margin: 0 0 19px; border: 0; border-bottom: 1px solid #ccc; } #epiceditor-preview blockquote { padding: 13px 13px 21px 15px; margin-bottom: 18px; font-family:georgia,serif; font-style: italic; } #epiceditor-preview blockquote:before { content:"\201C"; font-size:40px; margin-left:-10px; font-family:georgia,serif; color:#eee; } #epiceditor-preview blockquote p { font-size: 14px; font-weight: 300; line-height: 18px; margin-bottom: 0; font-style: italic; } #epiceditor-preview code, #epiceditor-preview pre { font-family: Monaco, Andale Mono, Courier New, monospace; } #epiceditor-preview code { background-color: #000; color: #f92672; padding: 1px 3px; font-size: 12px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } #epiceditor-preview pre { display: block; padding: 14px; color:#66d9ef; margin: 0 0 18px; line-height: 16px; font-size: 11px; border: 1px solid #d9d9d9; white-space: pre-wrap; word-wrap: break-word; } #epiceditor-preview pre code { background-color: #000; color:#ccc; font-size: 11px; padding: 0; } webcit-dfsg.orig/epic/themes/preview/bartik.css0000644000175000017500000000421213223341037021652 0ustar michaelmichaelbody { font-family: Georgia, "Times New Roman", Times, serif; line-height: 1.5; font-size: 87.5%; word-wrap: break-word; margin: 2em; padding: 0; border: 0; outline: 0; background: #fff; } h1, h2, h3, h4, h5, h6 { margin: 1.0em 0 0.5em; font-weight: inherit; } h1 { font-size: 1.357em; color: #000; } h2 { font-size: 1.143em; } p { margin: 0 0 1.2em; } del { text-decoration: line-through; } tr:nth-child(odd) { background-color: #dddddd; } img { outline: 0; } code { background-color: #f2f2f2; background-color: rgba(40, 40, 0, 0.06); } pre { background-color: #f2f2f2; background-color: rgba(40, 40, 0, 0.06); margin: 10px 0; overflow: hidden; padding: 15px; white-space: pre-wrap; } pre code { font-size: 100%; background-color: transparent; } blockquote { background: #f7f7f7; border-left: 1px solid #bbb; font-style: italic; margin: 1.5em 10px; padding: 0.5em 10px; } blockquote:before { color: #bbb; content: "\201C"; font-size: 3em; line-height: 0.1em; margin-right: 0.2em; vertical-align: -.4em; } blockquote:after { color: #bbb; content: "\201D"; font-size: 3em; line-height: 0.1em; vertical-align: -.45em; } blockquote > p:first-child { display: inline; } table { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; border: 0; border-spacing: 0; font-size: 0.857em; margin: 10px 0; width: 100%; } table table { font-size: 1em; } table tr th { background: #757575; background: rgba(0, 0, 0, 0.51); border-bottom-style: none; } table tr th, table tr th a, table tr th a:hover { color: #FFF; font-weight: bold; } table tbody tr th { vertical-align: top; } tr td, tr th { padding: 4px 9px; border: 1px solid #fff; text-align: left; /* LTR */ } tr:nth-child(odd) { background: #e4e4e4; background: rgba(0, 0, 0, 0.105); } tr, tr:nth-child(even) { background: #efefef; background: rgba(0, 0, 0, 0.063); } a { color: #0071B3; } a:hover, a:focus { color: #018fe2; } a:active { color: #23aeff; } a:link, a:visited { text-decoration: none; } a:hover, a:active, a:focus { text-decoration: underline; } webcit-dfsg.orig/epic/themes/preview/github.css0000644000175000017500000001376313223341037021673 0ustar michaelmichaelhtml { padding:0 10px; } body { margin:0; padding:0; background:#fff; } #epiceditor-wrapper{ background:white; } #epiceditor-preview{ padding-top:10px; padding-bottom:10px; font-family: Helvetica,arial,freesans,clean,sans-serif; font-size:13px; line-height:1.6; } #epiceditor-preview>*:first-child{ margin-top:0!important; } #epiceditor-preview>*:last-child{ margin-bottom:0!important; } #epiceditor-preview a{ color:#4183C4; text-decoration:none; } #epiceditor-preview a:hover{ text-decoration:underline; } #epiceditor-preview h1, #epiceditor-preview h2, #epiceditor-preview h3, #epiceditor-preview h4, #epiceditor-preview h5, #epiceditor-preview h6{ margin:20px 0 10px; padding:0; font-weight:bold; -webkit-font-smoothing:antialiased; } #epiceditor-preview h1 tt, #epiceditor-preview h1 code, #epiceditor-preview h2 tt, #epiceditor-preview h2 code, #epiceditor-preview h3 tt, #epiceditor-preview h3 code, #epiceditor-preview h4 tt, #epiceditor-preview h4 code, #epiceditor-preview h5 tt, #epiceditor-preview h5 code, #epiceditor-preview h6 tt, #epiceditor-preview h6 code{ font-size:inherit; } #epiceditor-preview h1{ font-size:28px; color:#000; } #epiceditor-preview h2{ font-size:24px; border-bottom:1px solid #ccc; color:#000; } #epiceditor-preview h3{ font-size:18px; } #epiceditor-preview h4{ font-size:16px; } #epiceditor-preview h5{ font-size:14px; } #epiceditor-preview h6{ color:#777; font-size:14px; } #epiceditor-preview p, #epiceditor-preview blockquote, #epiceditor-preview ul, #epiceditor-preview ol, #epiceditor-preview dl, #epiceditor-preview li, #epiceditor-preview table, #epiceditor-preview pre{ margin:15px 0; } #epiceditor-preview hr{ background:transparent url('../../images/modules/pulls/dirty-shade.png') repeat-x 0 0; border:0 none; color:#ccc; height:4px; padding:0; } #epiceditor-preview>h2:first-child, #epiceditor-preview>h1:first-child, #epiceditor-preview>h1:first-child+h2, #epiceditor-preview>h3:first-child, #epiceditor-preview>h4:first-child, #epiceditor-preview>h5:first-child, #epiceditor-preview>h6:first-child{ margin-top:0; padding-top:0; } #epiceditor-preview h1+p, #epiceditor-preview h2+p, #epiceditor-preview h3+p, #epiceditor-preview h4+p, #epiceditor-preview h5+p, #epiceditor-preview h6+p{ margin-top:0; } #epiceditor-preview li p.first{ display:inline-block; } #epiceditor-preview ul, #epiceditor-preview ol{ padding-left:30px; } #epiceditor-preview ul li>:first-child, #epiceditor-preview ol li>:first-child{ margin-top:0; } #epiceditor-preview ul li>:last-child, #epiceditor-preview ol li>:last-child{ margin-bottom:0; } #epiceditor-preview dl{ padding:0; } #epiceditor-preview dl dt{ font-size:14px; font-weight:bold; font-style:italic; padding:0; margin:15px 0 5px; } #epiceditor-preview dl dt:first-child{ padding:0; } #epiceditor-preview dl dt>:first-child{ margin-top:0; } #epiceditor-preview dl dt>:last-child{ margin-bottom:0; } #epiceditor-preview dl dd{ margin:0 0 15px; padding:0 15px; } #epiceditor-preview dl dd>:first-child{ margin-top:0; } #epiceditor-preview dl dd>:last-child{ margin-bottom:0; } #epiceditor-preview blockquote{ border-left:4px solid #DDD; padding:0 15px; color:#777; } #epiceditor-preview blockquote>:first-child{ margin-top:0; } #epiceditor-preview blockquote>:last-child{ margin-bottom:0; } #epiceditor-preview table{ padding:0; border-collapse: collapse; border-spacing: 0; font-size: 100%; font: inherit; } #epiceditor-preview table tr{ border-top:1px solid #ccc; background-color:#fff; margin:0; padding:0; } #epiceditor-preview table tr:nth-child(2n){ background-color:#f8f8f8; } #epiceditor-preview table tr th{ font-weight:bold; } #epiceditor-preview table tr th, #epiceditor-preview table tr td{ border:1px solid #ccc; text-align:left; margin:0; padding:6px 13px; } #epiceditor-preview table tr th>:first-child, #epiceditor-preview table tr td>:first-child{ margin-top:0; } #epiceditor-preview table tr th>:last-child, #epiceditor-preview table tr td>:last-child{ margin-bottom:0; } #epiceditor-preview img{ max-width:100%; } #epiceditor-preview span.frame{ display:block; overflow:hidden; } #epiceditor-preview span.frame>span{ border:1px solid #ddd; display:block; float:left; overflow:hidden; margin:13px 0 0; padding:7px; width:auto; } #epiceditor-preview span.frame span img{ display:block; float:left; } #epiceditor-preview span.frame span span{ clear:both; color:#333; display:block; padding:5px 0 0; } #epiceditor-preview span.align-center{ display:block; overflow:hidden; clear:both; } #epiceditor-preview span.align-center>span{ display:block; overflow:hidden; margin:13px auto 0; text-align:center; } #epiceditor-preview span.align-center span img{ margin:0 auto; text-align:center; } #epiceditor-preview span.align-right{ display:block; overflow:hidden; clear:both; } #epiceditor-preview span.align-right>span{ display:block; overflow:hidden; margin:13px 0 0; text-align:right; } #epiceditor-preview span.align-right span img{ margin:0; text-align:right; } #epiceditor-preview span.float-left{ display:block; margin-right:13px; overflow:hidden; float:left; } #epiceditor-preview span.float-left span{ margin:13px 0 0; } #epiceditor-preview span.float-right{ display:block; margin-left:13px; overflow:hidden; float:right; } #epiceditor-preview span.float-right>span{ display:block; overflow:hidden; margin:13px auto 0; text-align:right; } #epiceditor-preview code, #epiceditor-preview tt{ margin:0 2px; padding:0 5px; white-space:nowrap; border:1px solid #eaeaea; background-color:#f8f8f8; border-radius:3px; } #epiceditor-preview pre>code{ margin:0; padding:0; white-space:pre; border:none; background:transparent; } #epiceditor-preview .highlight pre, #epiceditor-preview pre{ background-color:#f8f8f8; border:1px solid #ccc; font-size:13px; line-height:19px; overflow:auto; padding:6px 10px; border-radius:3px; } #epiceditor-preview pre code, #epiceditor-preview pre tt{ background-color:transparent; border:none; } webcit-dfsg.orig/epic/themes/editor/0000755000175000017500000000000013223341037017472 5ustar michaelmichaelwebcit-dfsg.orig/epic/themes/editor/epic-light.css0000644000175000017500000000025513223341037022233 0ustar michaelmichaelhtml { padding:10px; } body { border:0; background:#fcfcfc; font-family:monospace; font-size:14px; padding:10px; line-height:1.35em; margin:0; padding:0; } webcit-dfsg.orig/epic/themes/editor/epic-dark.css0000644000175000017500000000030113223341037022035 0ustar michaelmichaelhtml { padding:10px; } body { border:0; background:rgb(41,41,41); font-family:monospace; font-size:14px; padding:10px; color:#ddd; line-height:1.35em; margin:0; padding:0; } webcit-dfsg.orig/context_loop.c0000644000175000017500000005761313223341037016674 0ustar michaelmichael/* * This is the other half of the webserver. It handles the task of hooking * up HTTP requests with the sessions they belong to, using HTTP cookies to * keep track of things. If the HTTP request doesn't belong to any currently * active session, a new session is started. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "modules_init.h" /* Only one thread may manipulate SessionList at a time... */ pthread_mutex_t SessionListMutex; wcsession *SessionList = NULL; /* Linked list of all webcit sessions */ pthread_key_t MyConKey; /* TSD key for MySession() */ HashList *HttpReqTypes = NULL; HashList *HttpHeaderHandler = NULL; extern HashList *HandlerHash; /* the following two values start at 1 because the initial parent thread counts as one. */ int num_threads_existing = 1; /* Number of worker threads which exist. */ int num_threads_executing = 1; /* Number of worker threads currently executing. */ int verbose=0; extern void session_loop(void); void spawn_another_worker_thread(void); void DestroyHttpHeaderHandler(void *V) { OneHttpHeader *pHdr; pHdr = (OneHttpHeader*) V; FreeStrBuf(&pHdr->Val); free(pHdr); } void shutdown_sessions(void) { wcsession *sptr; for (sptr = SessionList; sptr != NULL; sptr = sptr->next) { sptr->killthis = 1; } } void do_housekeeping(void) { wcsession *sptr, *ss; wcsession *sessions_to_kill = NULL; time_t the_time; /* * Lock the session list, moving any candidates for euthanasia into * a separate list. */ the_time = 0; CtdlLogResult(pthread_mutex_lock(&SessionListMutex)); for (sptr = SessionList; sptr != NULL; sptr = sptr->next) { if (the_time == 0) the_time = time(NULL); /* Kill idle sessions */ if ((sptr->inuse == 0) && ((the_time - (sptr->lastreq)) > (time_t) WEBCIT_TIMEOUT)) { syslog(LOG_DEBUG, "Timeout session %d", sptr->wc_session); sptr->killthis = 1; } /* Remove sessions flagged for kill */ if (sptr->killthis) { /* remove session from linked list */ if (sptr == SessionList) { SessionList = SessionList->next; } else for (ss=SessionList;ss!=NULL;ss=ss->next) { if (ss->next == sptr) { ss->next = ss->next->next; } } sptr->next = sessions_to_kill; sessions_to_kill = sptr; } } CtdlLogResult(pthread_mutex_unlock(&SessionListMutex)); /* * Now free up and destroy the culled sessions. */ while (sessions_to_kill != NULL) { syslog(LOG_DEBUG, "Destroying session %d", sessions_to_kill->wc_session); sptr = sessions_to_kill->next; session_destroy_modules(&sessions_to_kill); sessions_to_kill = sptr; } } /* * Check the size of our thread pool. If all threads are executing, spawn another. */ void check_thread_pool_size(void) { if (time_to_die) return; /* don't expand the thread pool during shutdown */ begin_critical_section(S_SPAWNER); /* only one of these should run at a time */ if ( (num_threads_executing >= num_threads_existing) && (num_threads_existing < MAX_WORKER_THREADS) ) { syslog(LOG_DEBUG, "%d of %d threads are executing. Adding another worker thread.", num_threads_executing, num_threads_existing ); spawn_another_worker_thread(); } end_critical_section(S_SPAWNER); } /* * Wake up occasionally and clean house */ void housekeeping_loop(void) { while (1) { sleeeeeeeeeep(HOUSEKEEPING); do_housekeeping(); } } /* * Create a Session id * Generate a unique WebCit session ID (which is not the same thing as the * Citadel session ID). */ int GenerateSessionID(void) { static int seq = (-1); if (seq < 0) { seq = (int) time(NULL); } return ++seq; } wcsession *FindSession(wcsession **wclist, ParsedHttpHdrs *Hdr, pthread_mutex_t *ListMutex) { wcsession *sptr = NULL; wcsession *TheSession = NULL; if (Hdr->HR.got_auth == AUTH_BASIC) { GetAuthBasic(Hdr); } CtdlLogResult(pthread_mutex_lock(ListMutex)); for (sptr = *wclist; ((sptr != NULL) && (TheSession == NULL)); sptr = sptr->next) { /* If HTTP-AUTH, look for a session with matching credentials */ switch (Hdr->HR.got_auth) { case AUTH_BASIC: if ( (!strcasecmp(ChrPtr(Hdr->c_username), ChrPtr(sptr->wc_username))) && (!strcasecmp(ChrPtr(Hdr->c_password), ChrPtr(sptr->wc_password))) && (sptr->killthis == 0) ) { if (verbose) syslog(LOG_DEBUG, "Matched a session with the same http-auth"); TheSession = sptr; } break; case AUTH_COOKIE: /* If cookie-session, look for a session with matching session ID */ if ( (Hdr->HR.desired_session != 0) && (sptr->wc_session == Hdr->HR.desired_session) ) { if (verbose) syslog(LOG_DEBUG, "Matched a session with the same cookie"); TheSession = sptr; } break; case NO_AUTH: /* Any unbound session is a candidate */ if ( (sptr->wc_session == 0) && (sptr->inuse == 0) ) { if (verbose) syslog(LOG_DEBUG, "Reusing an unbound session"); TheSession = sptr; } break; } } CtdlLogResult(pthread_mutex_unlock(ListMutex)); if (TheSession == NULL) { syslog(LOG_DEBUG, "No existing session was matched"); } return TheSession; } wcsession *CreateSession(int Lockable, int Static, wcsession **wclist, ParsedHttpHdrs *Hdr, pthread_mutex_t *ListMutex) { wcsession *TheSession; TheSession = (wcsession *) malloc(sizeof(wcsession)); memset(TheSession, 0, sizeof(wcsession)); TheSession->Hdr = Hdr; TheSession->serv_sock = (-1); TheSession->lastreq = time(NULL);; pthread_setspecific(MyConKey, (void *)TheSession); /* If we're recreating a session that expired, it's best to give it the same * session number that it had before. The client browser ought to pick up * the new session number and start using it, but in some rare situations it * doesn't, and that's a Bad Thing because it causes lots of spurious sessions * to get created. */ if (Hdr->HR.desired_session == 0) { TheSession->wc_session = GenerateSessionID(); syslog(LOG_DEBUG, "Created new session %d", TheSession->wc_session); } else { TheSession->wc_session = Hdr->HR.desired_session; syslog(LOG_DEBUG, "Re-created session %d", TheSession->wc_session); } Hdr->HR.Static = Static; session_new_modules(TheSession); if (Lockable) { pthread_mutex_init(&TheSession->SessionMutex, NULL); if (ListMutex != NULL) CtdlLogResult(pthread_mutex_lock(ListMutex)); if (wclist != NULL) { TheSession->nonce = rand(); TheSession->next = *wclist; *wclist = TheSession; } if (ListMutex != NULL) CtdlLogResult(pthread_mutex_unlock(ListMutex)); } return TheSession; } /* If it's a "force 404" situation then display the error and bail. */ void do_404(void) { hprintf("HTTP/1.1 404 Not found\r\n"); hprintf("Content-Type: text/plain\r\n"); wc_printf("Not found\r\n"); end_burst(); } int ReadHttpSubject(ParsedHttpHdrs *Hdr, StrBuf *Line, StrBuf *Buf) { const char *Args; void *vLine, *vHandler; const char *Pos = NULL; Hdr->HR.ReqLine = Line; /* The requesttype... GET, POST... */ StrBufExtract_token(Buf, Hdr->HR.ReqLine, 0, ' '); if (GetHash(HttpReqTypes, SKEY(Buf), &vLine) && (vLine != NULL)) { Hdr->HR.eReqType = *(long*)vLine; } else { Hdr->HR.eReqType = eGET; return 1; } StrBufCutLeft(Hdr->HR.ReqLine, StrLength(Buf) + 1); /* the HTTP Version... */ StrBufExtract_token(Buf, Hdr->HR.ReqLine, 1, ' '); StrBufCutRight(Hdr->HR.ReqLine, StrLength(Buf) + 1); if (StrLength(Buf) == 0) { Hdr->HR.eReqType = eGET; return 1; } StrBufAppendBuf(Hdr->this_page, Hdr->HR.ReqLine, 0); /* chop Filename / query arguments */ Args = strchr(ChrPtr(Hdr->HR.ReqLine), '?'); if (Args == NULL) /* whe're not that picky about params... TODO: this will spoil '&' in filenames.*/ Args = strchr(ChrPtr(Hdr->HR.ReqLine), '&'); if (Args != NULL) { Args ++; /* skip the ? */ StrBufPlain(Hdr->PlainArgs, Args, StrLength(Hdr->HR.ReqLine) - (Args - ChrPtr(Hdr->HR.ReqLine))); StrBufCutAt(Hdr->HR.ReqLine, 0, Args - 1); } /* don't parse them yet, maybe we don't even care... */ /* now lookup what we are going to do with this... */ /* skip first slash */ StrBufExtract_NextToken(Buf, Hdr->HR.ReqLine, &Pos, '/'); do { StrBufExtract_NextToken(Buf, Hdr->HR.ReqLine, &Pos, '/'); GetHash(HandlerHash, SKEY(Buf), &vHandler), Hdr->HR.Handler = (WebcitHandler*) vHandler; if (Hdr->HR.Handler == NULL) break; /* * If the request is prefixed by "/webcit" then chop that off. This * allows a front end web server to forward all /webcit requests to us * while still using the same web server port for other things. */ if ((Hdr->HR.Handler->Flags & URLNAMESPACE) != 0) continue; break; } while (1); /* remove the handlername from the URL */ if ((Pos != NULL) && (Pos != StrBufNOTNULL)){ StrBufCutLeft(Hdr->HR.ReqLine, Pos - ChrPtr(Hdr->HR.ReqLine)); } if (Hdr->HR.Handler != NULL) { if ((Hdr->HR.Handler->Flags & BOGUS) != 0) { return 1; } Hdr->HR.DontNeedAuth = ( ((Hdr->HR.Handler->Flags & ISSTATIC) != 0) || ((Hdr->HR.Handler->Flags & ANONYMOUS) != 0) ); } else { /* If this is a "flat" request for the root, display the configured landing page. */ int return_value; StrBuf *NewLine = NewStrBuf(); Hdr->HR.DontNeedAuth = 1; StrBufAppendPrintf(NewLine, "GET /landing?go=%s?failvisibly=1 HTTP/1.0", ChrPtr(Buf)); if (verbose) syslog(LOG_DEBUG, "Replacing with: %s", ChrPtr(NewLine)); return_value = ReadHttpSubject(Hdr, NewLine, Buf); FreeStrBuf(&NewLine); return return_value; } return 0; } int AnalyseHeaders(ParsedHttpHdrs *Hdr) { OneHttpHeader *pHdr; void *vHdr; long HKLen; const char *HashKey; HashPos *at = GetNewHashPos(Hdr->HTTPHeaders, 0); while (GetNextHashPos(Hdr->HTTPHeaders, at, &HKLen, &HashKey, &vHdr) && (vHdr != NULL)) { pHdr = (OneHttpHeader *)vHdr; if (pHdr->HaveEvaluator) pHdr->H(pHdr->Val, Hdr); } DeleteHashPos(&at); return 0; } /*const char *nix(void *vptr) {return ChrPtr( (StrBuf*)vptr);}*/ /* * Read in the request */ int ReadHTTPRequest (ParsedHttpHdrs *Hdr) { const char *pch, *pchs, *pche; OneHttpHeader *pHdr; StrBuf *Line, *LastLine, *HeaderName; int nLine = 0; void *vF; int isbogus = 0; HeaderName = NewStrBuf(); LastLine = NULL; do { nLine ++; Line = NewStrBufPlain(NULL, SIZ / 4); if (ClientGetLine(Hdr, Line) < 0) { FreeStrBuf(&Line); isbogus = 1; break; } if (StrLength(Line) == 0) { FreeStrBuf(&Line); continue; } if (nLine == 1) { Hdr->HTTPHeaders = NewHash(1, NULL); pHdr = (OneHttpHeader*) malloc(sizeof(OneHttpHeader)); memset(pHdr, 0, sizeof(OneHttpHeader)); pHdr->Val = Line; Put(Hdr->HTTPHeaders, HKEY("GET /"), pHdr, DestroyHttpHeaderHandler); if (verbose || strstr(ChrPtr(Line), "sslg") == NULL) syslog(LOG_DEBUG, "%s", ChrPtr(Line)); isbogus = ReadHttpSubject(Hdr, Line, HeaderName); if (isbogus) break; continue; } /* Do we need to Unfold? */ if ((LastLine != NULL) && (isspace(*ChrPtr(Line)))) { pch = pchs = ChrPtr(Line); pche = pchs + StrLength(Line); while (isspace(*pch) && (pch < pche)) pch ++; StrBufCutLeft(Line, pch - pchs); StrBufAppendBuf(LastLine, Line, 0); FreeStrBuf(&Line); continue; } StrBufSanitizeAscii(Line, (char)0xa7); StrBufExtract_token(HeaderName, Line, 0, ':'); pchs = ChrPtr(Line); pche = pchs + StrLength(Line); pch = pchs + StrLength(HeaderName) + 1; pche = pchs + StrLength(Line); while ((pch < pche) && isspace(*pch)) pch ++; StrBufCutLeft(Line, pch - pchs); StrBufUpCase(HeaderName); pHdr = (OneHttpHeader*) malloc(sizeof(OneHttpHeader)); memset(pHdr, 0, sizeof(OneHttpHeader)); pHdr->Val = Line; if (GetHash(HttpHeaderHandler, SKEY(HeaderName), &vF) && (vF != NULL)) { OneHttpHeader *FHdr = (OneHttpHeader*) vF; pHdr->H = FHdr->H; pHdr->HaveEvaluator = 1; } Put(Hdr->HTTPHeaders, SKEY(HeaderName), pHdr, DestroyHttpHeaderHandler); LastLine = Line; } while (Line != NULL); FreeStrBuf(&HeaderName); return isbogus; } void OverrideRequest(ParsedHttpHdrs *Hdr, const char *Line, long len) { StrBuf *Buf = NewStrBuf(); if (Hdr->HR.ReqLine != NULL) { FlushStrBuf(Hdr->HR.ReqLine); StrBufPlain(Hdr->HR.ReqLine, Line, len); } else { Hdr->HR.ReqLine = NewStrBufPlain(Line, len); } ReadHttpSubject(Hdr, Hdr->HR.ReqLine, Buf); FreeStrBuf(&Buf); } /* * handle one request * * This loop gets called once for every HTTP connection made to WebCit. At * this entry point we have an HTTP socket with a browser allegedly on the * other end, but we have not yet bound to a WebCit session. * * The job of this function is to locate the correct session and bind to it, * or create a session if necessary and bind to it, then run the WebCit * transaction loop. Afterwards, we unbind from the session. When this * function returns, the worker thread is then free to handle another * transaction. */ void context_loop(ParsedHttpHdrs *Hdr) { int isbogus = 0; wcsession *TheSession; struct timeval tx_start; struct timeval tx_finish; int session_may_be_reused = 1; time_t now; gettimeofday(&tx_start, NULL); /* start a stopwatch for performance timing */ /* * Find out what it is that the web browser is asking for */ isbogus = ReadHTTPRequest(Hdr); Hdr->HR.dav_depth = 32767; /* TODO: find a general way to have non-0 defaults */ if (!isbogus) { isbogus = AnalyseHeaders(Hdr); } if ( (isbogus) || ((Hdr->HR.Handler != NULL) && ((Hdr->HR.Handler->Flags & BOGUS) != 0)) ) { wcsession *Bogus; Bogus = CreateSession(0, 1, NULL, Hdr, NULL); do_404(); syslog(LOG_WARNING, "HTTP: 404 [%ld.%06ld] %s %s", ((tx_finish.tv_sec*1000000 + tx_finish.tv_usec) - (tx_start.tv_sec*1000000 + tx_start.tv_usec)) / 1000000, ((tx_finish.tv_sec*1000000 + tx_finish.tv_usec) - (tx_start.tv_sec*1000000 + tx_start.tv_usec)) % 1000000, ReqStrs[Hdr->HR.eReqType], ChrPtr(Hdr->this_page) ); session_detach_modules(Bogus); session_destroy_modules(&Bogus); return; } if ((Hdr->HR.Handler != NULL) && ((Hdr->HR.Handler->Flags & ISSTATIC) != 0)) { wcsession *Static; Static = CreateSession(0, 1, NULL, Hdr, NULL); Hdr->HR.Handler->F(); /* How long did this transaction take? */ gettimeofday(&tx_finish, NULL); if (verbose) syslog(LOG_DEBUG, "HTTP: 200 [%ld.%06ld] %s %s", ((tx_finish.tv_sec*1000000 + tx_finish.tv_usec) - (tx_start.tv_sec*1000000 + tx_start.tv_usec)) / 1000000, ((tx_finish.tv_sec*1000000 + tx_finish.tv_usec) - (tx_start.tv_sec*1000000 + tx_start.tv_usec)) % 1000000, ReqStrs[Hdr->HR.eReqType], ChrPtr(Hdr->this_page) ); session_detach_modules(Static); session_destroy_modules(&Static); return; } if (Hdr->HR.got_auth == AUTH_BASIC) { CheckAuthBasic(Hdr); } if (Hdr->HR.got_auth) { session_may_be_reused = 0; } /* * See if there's an existing session open with any of: * - The desired Session ID * - A matching http-auth username and password * - An unbound session flagged as reusable */ TheSession = FindSession(&SessionList, Hdr, &SessionListMutex); /* * If there were no qualifying sessions, then create a new one. */ if ((TheSession == NULL) || (TheSession->killthis != 0)) { TheSession = CreateSession(1, 0, &SessionList, Hdr, &SessionListMutex); } /* * Reject transactions which require http-auth, if http-auth was not provided */ if ( (StrLength(Hdr->c_username) == 0) && (!Hdr->HR.DontNeedAuth) && (Hdr->HR.Handler != NULL) && ((XHTTP_COMMANDS & Hdr->HR.Handler->Flags) == XHTTP_COMMANDS) ) { syslog(LOG_DEBUG, "http-auth required but not provided"); OverrideRequest(Hdr, HKEY("GET /401 HTTP/1.0")); Hdr->HR.prohibit_caching = 1; } /* * A future improvement might be to check the session integrity * at this point before continuing. */ /* * Bind to the session and perform the transaction */ now = time(NULL);; CtdlLogResult(pthread_mutex_lock(&TheSession->SessionMutex)); pthread_setspecific(MyConKey, (void *)TheSession); TheSession->inuse = 1; /* mark the session as bound */ TheSession->isFailure = 0; /* reset evntually existing error flags */ TheSession->lastreq = now; /* log */ TheSession->Hdr = Hdr; /* * If a language was requested via a cookie, select that language now. */ if (StrLength(Hdr->c_language) > 0) { if (verbose) syslog(LOG_DEBUG, "Session cookie requests language '%s'", ChrPtr(Hdr->c_language)); set_selected_language(ChrPtr(Hdr->c_language)); go_selected_language(); } /* * do the transaction */ session_attach_modules(TheSession); session_loop(); /* How long did this transaction take? */ gettimeofday(&tx_finish, NULL); if (verbose || strstr(ChrPtr(Hdr->this_page), "sslg") == NULL) { syslog(LOG_INFO, "HTTP: 200 [%ld.%06ld] %s %s", ((tx_finish.tv_sec*1000000 + tx_finish.tv_usec) - (tx_start.tv_sec*1000000 + tx_start.tv_usec)) / 1000000, ((tx_finish.tv_sec*1000000 + tx_finish.tv_usec) - (tx_start.tv_sec*1000000 + tx_start.tv_usec)) % 1000000, ReqStrs[Hdr->HR.eReqType], ChrPtr(Hdr->this_page) ); } session_detach_modules(TheSession); /* If *this* very transaction did not explicitly specify a session cookie, * and it did not log in, we want to flag the session as a candidate for * re-use by the next unbound client that comes along. This keeps our session * table from getting bombarded with new sessions when, for example, a web * spider crawls the site without using cookies. */ if ((session_may_be_reused) && (!TheSession->logged_in)) { TheSession->wc_session = 0; /* flag as available for re-use */ TheSession->selected_language = -1; /* clear any non-default language setting */ } TheSession->Hdr = NULL; TheSession->inuse = 0; /* mark the session as unbound */ CtdlLogResult(pthread_mutex_unlock(&TheSession->SessionMutex)); } void tmplput_nonce(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBufAppendPrintf(Target, "%ld", (WCC != NULL)? WCC->nonce:0); } void tmplput_current_user(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendTemplate(Target, TP, WC->wc_fullname, 0); } void Header_HandleContentLength(StrBuf *Line, ParsedHttpHdrs *hdr) { hdr->HR.ContentLength = StrToi(Line); } void Header_HandleContentType(StrBuf *Line, ParsedHttpHdrs *hdr) { hdr->HR.ContentType = Line; } void Header_HandleHost(StrBuf *Line, ParsedHttpHdrs *hdr) { if (hdr->HostHeader != NULL) { FreeStrBuf(&hdr->HostHeader); } hdr->HostHeader = NewStrBuf(); StrBufAppendPrintf(hdr->HostHeader, "%s://", (is_https ? "https" : "http") ); StrBufAppendBuf(hdr->HostHeader, Line, 0); } void Header_HandleXFFHost(StrBuf *Line, ParsedHttpHdrs *hdr) { if (!follow_xff) return; if (hdr->HostHeader != NULL) { FreeStrBuf(&hdr->HostHeader); } hdr->HostHeader = NewStrBuf(); StrBufAppendPrintf(hdr->HostHeader, "http://"); /* this is naive; do something about it */ StrBufAppendBuf(hdr->HostHeader, Line, 0); } void Header_HandleXFF(StrBuf *Line, ParsedHttpHdrs *hdr) { hdr->HR.browser_host = Line; while (StrBufNum_tokens(hdr->HR.browser_host, ',') > 1) { StrBufRemove_token(hdr->HR.browser_host, 0, ','); } StrBufTrim(hdr->HR.browser_host); } void Header_HandleIfModSince(StrBuf *Line, ParsedHttpHdrs *hdr) { hdr->HR.if_modified_since = httpdate_to_timestamp(Line); } void Header_HandleAcceptEncoding(StrBuf *Line, ParsedHttpHdrs *hdr) { /* * Can we compress? */ if (strstr(&ChrPtr(Line)[16], "gzip")) { hdr->HR.gzip_ok = 1; } } void Header_HandleContentRange(StrBuf *Line, ParsedHttpHdrs *hdr) { const char *PRange = ChrPtr(Line); while ((*PRange != '=') && (*PRange != '\0')) PRange ++; if (*PRange == '=') PRange ++; if ((*PRange == '\0')) return; hdr->HaveRange = 1; hdr->RangeStart = atol(PRange); while (isdigit(*PRange)) PRange++; if (*PRange == '-') PRange ++; if ((*PRange == '\0')) hdr->RangeTil = -1; else hdr->RangeTil = atol(PRange); } const char *ReqStrs[eNONE] = { "GET", "POST", "OPTIONS", "PROPFIND", "PUT", "DELETE", "HEAD", "MOVE", "COPY", "REPORT" }; void ServerStartModule_CONTEXT (void) { long *v; HttpReqTypes = NewHash(1, NULL); HttpHeaderHandler = NewHash(1, NULL); v = malloc(sizeof(long)); *v = eGET; Put(HttpReqTypes, HKEY("GET"), v, NULL); v = malloc(sizeof(long)); *v = ePOST; Put(HttpReqTypes, HKEY("POST"), v, NULL); v = malloc(sizeof(long)); *v = eOPTIONS; Put(HttpReqTypes, HKEY("OPTIONS"), v, NULL); v = malloc(sizeof(long)); *v = ePROPFIND; Put(HttpReqTypes, HKEY("PROPFIND"), v, NULL); v = malloc(sizeof(long)); *v = ePUT; Put(HttpReqTypes, HKEY("PUT"), v, NULL); v = malloc(sizeof(long)); *v = eDELETE; Put(HttpReqTypes, HKEY("DELETE"), v, NULL); v = malloc(sizeof(long)); *v = eHEAD; Put(HttpReqTypes, HKEY("HEAD"), v, NULL); v = malloc(sizeof(long)); *v = eMOVE; Put(HttpReqTypes, HKEY("MOVE"), v, NULL); v = malloc(sizeof(long)); *v = eCOPY; Put(HttpReqTypes, HKEY("COPY"), v, NULL); v = malloc(sizeof(long)); *v = eREPORT; Put(HttpReqTypes, HKEY("REPORT"), v, NULL); } void ServerShutdownModule_CONTEXT (void) { DeleteHash(&HttpReqTypes); DeleteHash(&HttpHeaderHandler); } void RegisterHeaderHandler(const char *Name, long Len, Header_Evaluator F) { OneHttpHeader *pHdr; pHdr = (OneHttpHeader*) malloc(sizeof(OneHttpHeader)); memset(pHdr, 0, sizeof(OneHttpHeader)); pHdr->H = F; Put(HttpHeaderHandler, Name, Len, pHdr, DestroyHttpHeaderHandler); } void InitModule_CONTEXT (void) { RegisterHeaderHandler(HKEY("RANGE"), Header_HandleContentRange); RegisterHeaderHandler(HKEY("CONTENT-LENGTH"), Header_HandleContentLength); RegisterHeaderHandler(HKEY("CONTENT-TYPE"), Header_HandleContentType); RegisterHeaderHandler(HKEY("X-FORWARDED-HOST"), Header_HandleXFFHost); /* Apache way... */ RegisterHeaderHandler(HKEY("X-REAL-IP"), Header_HandleXFFHost); /* NGinX way... */ RegisterHeaderHandler(HKEY("HOST"), Header_HandleHost); RegisterHeaderHandler(HKEY("X-FORWARDED-FOR"), Header_HandleXFF); RegisterHeaderHandler(HKEY("ACCEPT-ENCODING"), Header_HandleAcceptEncoding); RegisterHeaderHandler(HKEY("IF-MODIFIED-SINCE"), Header_HandleIfModSince); RegisterNamespace("CURRENT_USER", 0, 1, tmplput_current_user, NULL, CTX_NONE); RegisterNamespace("NONCE", 0, 0, tmplput_nonce, NULL, 0); WebcitAddUrlHandler(HKEY("404"), "", 0, do_404, ANONYMOUS|COOKIEUNNEEDED); /* * Look for commonly-found probes of malware such as worms, viruses, trojans, and Microsoft Office. * Short-circuit these requests so we don't have to send them through the full processing loop. */ WebcitAddUrlHandler(HKEY("scripts"), "", 0, do_404, ANONYMOUS|BOGUS); /* /root.exe - Worms and trojans and viruses, oh my! */ WebcitAddUrlHandler(HKEY("c"), "", 0, do_404, ANONYMOUS|BOGUS); /* /winnt */ WebcitAddUrlHandler(HKEY("MSADC"), "", 0, do_404, ANONYMOUS|BOGUS); WebcitAddUrlHandler(HKEY("_vti"), "", 0, do_404, ANONYMOUS|BOGUS); /* Broken Microsoft DAV implementation */ WebcitAddUrlHandler(HKEY("MSOffice"), "", 0, do_404, ANONYMOUS|BOGUS); /* Stoopid MSOffice thinks everyone is IIS */ WebcitAddUrlHandler(HKEY("nonexistenshit"), "", 0, do_404, ANONYMOUS|BOGUS); /* Exploit found in the wild January 2009 */ } void HttpNewModule_CONTEXT (ParsedHttpHdrs *httpreq) { httpreq->PlainArgs = NewStrBufPlain(NULL, SIZ); httpreq->this_page = NewStrBufPlain(NULL, SIZ); } void HttpDetachModule_CONTEXT (ParsedHttpHdrs *httpreq) { FlushStrBuf(httpreq->PlainArgs); FlushStrBuf(httpreq->HostHeader); FlushStrBuf(httpreq->this_page); FlushStrBuf(httpreq->PlainArgs); DeleteHash(&httpreq->HTTPHeaders); memset(&httpreq->HR, 0, sizeof(HdrRefs)); } void HttpDestroyModule_CONTEXT (ParsedHttpHdrs *httpreq) { FreeStrBuf(&httpreq->this_page); FreeStrBuf(&httpreq->PlainArgs); FreeStrBuf(&httpreq->this_page); FreeStrBuf(&httpreq->PlainArgs); FreeStrBuf(&httpreq->HostHeader); DeleteHash(&httpreq->HTTPHeaders); } webcit-dfsg.orig/decode.c0000644000175000017500000001772513223341037015402 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #ifdef HAVE_ICONV /* * Wrapper around iconv_open() * Our version adds aliases for non-standard Microsoft charsets * such as 'MS950', aliasing them to names like 'CP950' * * tocode Target encoding * fromcode Source encoding * / iconv_t ctdl_iconv_open(const char *tocode, const char *fromcode) { iconv_t ic = (iconv_t)(-1) ; ic = iconv_open(tocode, fromcode); if (ic == (iconv_t)(-1) ) { char alias_fromcode[64]; if ( (strlen(fromcode) == 5) && (!strncasecmp(fromcode, "MS", 2)) ) { safestrncpy(alias_fromcode, fromcode, sizeof alias_fromcode); alias_fromcode[0] = 'C'; alias_fromcode[1] = 'P'; ic = iconv_open(tocode, alias_fromcode); } } return(ic); } */ static inline char *FindNextEnd (char *bptr) { char * end; /* Find the next ?Q? */ end = strchr(bptr + 2, '?'); if (end == NULL) return NULL; if (((*(end + 1) == 'B') || (*(end + 1) == 'Q')) && (*(end + 2) == '?')) { /* skip on to the end of the cluster, the next ?= */ end = strstr(end + 3, "?="); } else /* sort of half valid encoding, try to find an end. */ end = strstr(bptr, "?="); return end; } /* * Handle subjects with RFC2047 encoding such as: * =?koi8-r?B?78bP0s3Mxc7JxSDXz9rE1dvO2c3JINvB0sHNySDP?= */ void utf8ify_rfc822_string(char **buf) { char *start, *end, *next, *nextend, *ptr; char newbuf[1024]; char charset[128]; char encoding[16]; char istr[1024]; iconv_t ic = (iconv_t)(-1) ; char *ibuf; /* Buffer of characters to be converted */ char *obuf; /* Buffer for converted characters */ size_t ibuflen; /* Length of input buffer */ size_t obuflen; /* Length of output buffer */ char *isav; /* Saved pointer to input buffer */ char *osav; /* Saved pointer to output buffer */ int passes = 0; int i, len, delta; int illegal_non_rfc2047_encoding = 0; /* Sometimes, badly formed messages contain strings which were simply * written out directly in some foreign character set instead of * using RFC2047 encoding. This is illegal but we will attempt to * handle it anyway by converting from a user-specified default * charset to UTF-8 if we see any nonprintable characters. */ len = strlen(*buf); for (i=0; i 126)) { illegal_non_rfc2047_encoding = 1; i = len; /*< take a shortcut, it won't be more than one. */ } } if (illegal_non_rfc2047_encoding) { StrBuf *default_header_charset; get_preference("default_header_charset", &default_header_charset); if ( (strcasecmp(ChrPtr(default_header_charset), "UTF-8")) && (strcasecmp(ChrPtr(default_header_charset), "us-ascii")) ) { ctdl_iconv_open("UTF-8", ChrPtr(default_header_charset), &ic); if (ic != (iconv_t)(-1) ) { ibuf = malloc(1024); isav = ibuf; safestrncpy(ibuf, *buf, 1023); ibuflen = strlen(ibuf); obuflen = 1024; obuf = (char *) malloc(obuflen); osav = obuf; iconv(ic, &ibuf, &ibuflen, &obuf, &obuflen); osav[1023-obuflen] = 0; free(*buf); *buf = osav; iconv_close(ic); free(isav); } } } /* pre evaluate the first pair */ nextend = end = NULL; len = strlen(*buf); start = strstr(*buf, "=?"); if (start != NULL) end = FindNextEnd (start); while ((start != NULL) && (end != NULL)) { next = strstr(end, "=?"); if (next != NULL) nextend = FindNextEnd(next); if (nextend == NULL) next = NULL; /* did we find two partitions */ if ((next != NULL) && ((next - end) > 2)) { ptr = end + 2; while ((ptr < next) && (isspace(*ptr) || (*ptr == '\r') || (*ptr == '\n') || (*ptr == '\t'))) ptr ++; /* did we find a gab just filled with blanks? */ if (ptr == next) { memmove (end + 2, next, len - (next - start)); /* now terminate the gab at the end */ delta = (next - end) - 2; len -= delta; (*buf)[len] = '\0'; /* move next to its new location. */ next -= delta; nextend -= delta; } } /* our next-pair is our new first pair now. */ start = next; end = nextend; } /* Now we handle foreign character sets properly encoded * in RFC2047 format. */ while (start=strstr((*buf), "=?"), end=FindNextEnd((start != NULL)? start : (*buf)), ((start != NULL) && (end != NULL) && (end > start)) ) { extract_token(charset, start, 1, '?', sizeof charset); extract_token(encoding, start, 2, '?', sizeof encoding); extract_token(istr, start, 3, '?', sizeof istr); ibuf = malloc(1024); isav = ibuf; if (!strcasecmp(encoding, "B")) { /* base64 */ ibuflen = CtdlDecodeBase64(ibuf, istr, strlen(istr)); } else if (!strcasecmp(encoding, "Q")) { /* quoted-printable */ size_t len; long pos; len = strlen(istr); pos = 0; while (pos < len) { if (istr[pos] == '_') istr[pos] = ' '; pos++; } ibuflen = CtdlDecodeQuotedPrintable(ibuf, istr, len); } else { strcpy(ibuf, istr); /* unknown encoding */ ibuflen = strlen(istr); } ctdl_iconv_open("UTF-8", charset, &ic); if (ic != (iconv_t)(-1) ) { obuflen = 1024; obuf = (char *) malloc(obuflen); osav = obuf; iconv(ic, &ibuf, &ibuflen, &obuf, &obuflen); osav[1024-obuflen] = 0; end = start; end++; strcpy(start, ""); remove_token(end, 0, '?'); remove_token(end, 0, '?'); remove_token(end, 0, '?'); remove_token(end, 0, '?'); strcpy(end, &end[1]); snprintf(newbuf, sizeof newbuf, "%s%s%s", *buf, osav, end); strcpy(*buf, newbuf); free(osav); iconv_close(ic); } else { end = start; end++; strcpy(start, ""); remove_token(end, 0, '?'); remove_token(end, 0, '?'); remove_token(end, 0, '?'); remove_token(end, 0, '?'); strcpy(end, &end[1]); snprintf(newbuf, sizeof newbuf, "%s(unreadable)%s", *buf, end); strcpy(*buf, newbuf); } free(isav); /* * Since spammers will go to all sorts of absurd lengths to get their * messages through, there are LOTS of corrupt headers out there. * So, prevent a really badly formed RFC2047 header from throwing * this function into an infinite loop. */ ++passes; if (passes > 20) return; } } #else inline void utf8ify_rfc822_string(char **a){}; #endif /* * RFC2047-encode a header field if necessary. * If no non-ASCII characters are found, the string will be copied verbatim without encoding. * Returns encoded length; -1 if non success. * * target Target buffer. * maxlen Maximum size of target buffer. * source Source string to be encoded. * SourceLen Length of the source string */ int webcit_rfc2047encode(char *target, int maxlen, char *source, long SourceLen) { const char headerStr[] = "=?UTF-8?Q?"; int need_to_encode = 0; int i = 0; int len; unsigned char ch; if ((source == NULL) || (target == NULL) || (SourceLen > maxlen)) return -1; while ((!IsEmptyStr (&source[i])) && (need_to_encode == 0) && (i < SourceLen) ) { if (((unsigned char) source[i] < 32) || ((unsigned char) source[i] > 126)) { need_to_encode = 1; } i++; } if (!need_to_encode) { memcpy (target, source, SourceLen); target[SourceLen] = '\0'; return SourceLen; } if (sizeof (headerStr + SourceLen + 2) > maxlen) return -1; memcpy (target, headerStr, sizeof (headerStr)); len = sizeof (headerStr) - 1; for (i=0; (i < SourceLen) && (len + 3< maxlen) ; ++i) { ch = (unsigned char) source[i]; if ((ch < 32) || (ch > 126) || (ch == 61)) { sprintf(&target[len], "=%02X", ch); len += 3; } else { sprintf(&target[len], "%c", ch); len ++; } } if (len + 2 < maxlen) { strcat(&target[len], "?="); len +=2; return len; } else return -1; } webcit-dfsg.orig/utils.h0000644000175000017500000000135113223341037015310 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ void StrEscPuts(const StrBuf *strbuf); void StrEscputs1(const StrBuf *strbuf, int nbsp, int nolinebreaks); void urlescputs(const char *); void hurlescputs(const char *); long stresc(char *target, long tSize, char *strbuf, int nbsp, int nolinebreaks); void escputs(const char *strbuf); webcit-dfsg.orig/sysmsgs.c0000644000175000017500000000373313223341037015661 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /** * save a screen which was displayed with display_edit() * description the window title??? * enter_cmd which command to enter at the citadel server??? * regoto should we go to that room again after executing that command? */ void save_edit(char *description, char *enter_cmd, int regoto) { StrBuf *Line; const StrBuf *templ; if (!havebstr("save_button")) { AppendImportantMessage(_("Cancelled. %s was not saved."), -1); display_main_menu(); return; } templ = sbstr("template"); Line = NewStrBuf(); serv_puts(enter_cmd); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 0) != 4) { putlbstr("success", 0); FreeStrBuf(&Line); if (templ != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(templ), NULL, &NoCtx); end_burst(); } else { display_main_menu(); } return; } FreeStrBuf(&Line); text_to_server(bstr("msgtext")); serv_puts("000"); AppendImportantMessage(description, -1); AppendImportantMessage(_(" has been saved."), -1); putlbstr("success", 1); if (templ != NULL) { output_headers(1, 0, 0, 0, 0, 0); DoTemplate(SKEY(templ), NULL, &NoCtx); end_burst(); } else if (regoto) { smart_goto(WC->CurRoom.name); } else { display_main_menu(); return; } } void editinfo(void) {save_edit(_("Room info"), "EINF 1", 1);} void editbio(void) { save_edit(_("Your bio"), "EBIO", 0); } void InitModule_SYSMSG (void) { WebcitAddUrlHandler(HKEY("editinfo"), "", 0, editinfo, 0); WebcitAddUrlHandler(HKEY("editbio"), "", 0, editbio, 0); } webcit-dfsg.orig/paramhandling.h0000644000175000017500000000546013223341037016762 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* URL / Mime Post parsing -> paramhandling.c */ void upload_handler(char *name, char *filename, char *partnum, char *disp, void *content, char *cbtype, char *cbcharset, size_t length, char *encoding, char *cbid, void *userdata); void ParseURLParams(StrBuf *url); /* These may return NULL if not foud */ #define sbstr(a) SBstr(a, sizeof(a) - 1) const StrBuf *SBstr(const char *key, size_t keylen); #define xbstr(a, b) (char*) XBstr(a, sizeof(a) - 1, b) const char *XBstr(const char *key, size_t keylen, size_t *len); const char *XBSTR(const char *key, size_t *len); #define lbstr(a) LBstr(a, sizeof(a) - 1) long LBstr(const char *key, size_t keylen); #define ibstr(a) IBstr(a, sizeof(a) - 1) #define ibcstr(a) IBstr(a.Key, a.len) int IBstr(const char *key, size_t keylen); int IBSTR(const char *key); #define havebstr(a) HaveBstr(a, sizeof(a) - 1) int HaveBstr(const char *key, size_t keylen); #define yesbstr(a) YesBstr(a, sizeof(a) - 1) int YesBstr(const char *key, size_t keylen); int YESBSTR(const char *key); HashList* getSubStruct(const char *key, size_t keylen); /* These may return NULL if not foud */ #define ssubbstr(s, a) SSubBstr(s, a, sizeof(a) - 1) const StrBuf *SSubBstr(HashList *sub, const char *key, size_t keylen); #define xsubbstr(s, a, b) (char*) XSubBstr(s, a, sizeof(a) - 1, b) const char *XSubBstr(HashList *sub, const char *key, size_t keylen, size_t *len); #define lsubbstr(s, a) LSubBstr(s, a, sizeof(a) - 1) long LSubBstr(HashList *sub, const char *key, size_t keylen); #define isubbstr(s, a) ISubBstr(s, a, sizeof(a) - 1) #define isubbcstr(s, a) ISubBstr(s, a.Key, a.len) int ISubBstr(HashList *sub, const char *key, size_t keylen); #define havesubbstr(s, a) HaveSubBstr(s, a, sizeof(a) - 1) int HaveSubBstr(HashList *sub, const char *key, size_t keylen); #define yessubbstr(s, a) YesSubBstr(s, a, sizeof(a) - 1) int YesSubBstr(HashList *sub, const char *key, size_t keylen); /* TODO: get rid of the non-const-typecast */ #define bstr(a) (char*) Bstr(a, sizeof(a) - 1) const char *BSTR(const char *key); const char *Bstr(const char *key, size_t keylen); /* if you want to ease some parts by just parametring yourself... */ #define putbstr(a, b) PutBstr(a, sizeof(a) - 1, b) void PutBstr(const char *key, long keylen, StrBuf *Value); #define putlbstr(a, b) PutlBstr(a, sizeof(a) - 1, b) void PutlBstr(const char *key, long keylen, long Value); webcit-dfsg.orig/install-sh0000755000175000017500000001272013223341037016005 0ustar michaelmichael#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 webcit-dfsg.orig/preferences.c0000644000175000017500000007132313223341037016452 0ustar michaelmichael/* * Manage user preferences with a little help from the Citadel server. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" HashList *PreferenceHooks; extern HashList *HandlerHash; typedef struct _PrefDef { ePrefType eType; StrBuf *Setting; const char *PrefStr; PrefEvalFunc OnLoad; StrBuf *OnLoadName; } PrefDef; typedef struct _Preference { PrefDef *Type; ePrefType eFlatPrefType; StrBuf *Key; StrBuf *Val; long lval; long decoded; StrBuf *DeQPed; } Preference; void DestroyPrefDef(void *vPrefDef) { PrefDef *Prefdef = (PrefDef*) vPrefDef; FreeStrBuf(&Prefdef->Setting); FreeStrBuf(&Prefdef->OnLoadName); free(Prefdef); } void DestroyPreference(void *vPref) { Preference *Pref = (Preference*) vPref; FreeStrBuf(&Pref->Key); FreeStrBuf(&Pref->Val); FreeStrBuf(&Pref->DeQPed); free(Pref); } void _RegisterPreference(const char *Setting, long SettingLen, const char *PrefStr, ePrefType Type, PrefEvalFunc OnLoad, const char *OnLoadName) { PrefDef *Newpref = (PrefDef*) malloc(sizeof(PrefDef)); Newpref->Setting = NewStrBufPlain(Setting, SettingLen); Newpref->PrefStr = PrefStr; Newpref->eType = Type; Newpref->OnLoad = OnLoad; if (Newpref->OnLoad != NULL) { Newpref->OnLoadName = NewStrBufPlain(OnLoadName, -1); } else Newpref->OnLoadName = NULL; Put(PreferenceHooks, Setting, SettingLen, Newpref, DestroyPrefDef); } const char *PrefGetLocalStr(const char *Setting, long len) { void *hash_value; if (GetHash(PreferenceHooks, Setting, len, &hash_value) != 0) { PrefDef *Newpref = (PrefDef*) hash_value; return _(Newpref->PrefStr); } return ""; } #ifdef DBG_PREFS_HASH inline const char *PrintPref(void *vPref) { Preference *Pref = (Preference*) vPref; if (Pref->DeQPed != NULL) return ChrPtr(Pref->DeQPed); else return ChrPtr(Pref->Val); } #endif void GetPrefTypes(HashList *List) { HashPos *It; long len; const char *Key; void *vSetting; void *vPrefDef; Preference *Pref; PrefDef *PrefType; It = GetNewHashPos(List, 0); while (GetNextHashPos(List, It, &len, &Key, &vSetting)) { Pref = (Preference*) vSetting; if (GetHash(PreferenceHooks, SKEY(Pref->Key), &vPrefDef) && (vPrefDef != NULL)) { PrefType = (PrefDef*) vPrefDef; Pref->Type = PrefType; Pref->eFlatPrefType = Pref->Type->eType; syslog(LOG_DEBUG, "Loading [%s]with type [%d] [\"%s\"]\n", ChrPtr(Pref->Key), Pref->Type->eType, ChrPtr(Pref->Val)); switch (Pref->Type->eType) { case PRF_UNSET: /* WHUT? */ break; case PRF_STRING: break; case PRF_INT: Pref->lval = StrTol(Pref->Val); Pref->decoded = 1; break; case PRF_QP_STRING: Pref->DeQPed = NewStrBufPlain(NULL, StrLength(Pref->Val)); StrBufEUid_unescapize(Pref->DeQPed, Pref->Val); Pref->decoded = 1; break; case PRF_YESNO: Pref->lval = strcmp(ChrPtr(Pref->Val), "yes") == 0; Pref->decoded = 1; break; } if (PrefType->OnLoad != NULL){ syslog(LOG_DEBUG, "Loading with: -> %s(\"%s\", %ld)\n", ChrPtr(PrefType->OnLoadName), ChrPtr(Pref->Val), Pref->lval); PrefType->OnLoad(Pref->Val, Pref->lval); } } } DeleteHashPos(&It); } void ParsePref(HashList **List, StrBuf *ReadBuf) { int Done = 0; Preference *Data = NULL; Preference *LastData = NULL; while (!Done) { if (StrBuf_ServGetln(ReadBuf) < 0) break; if ( (StrLength(ReadBuf)==3) && !strcmp(ChrPtr(ReadBuf), "000")) { Done = 1; break; } if ((ChrPtr(ReadBuf)[0] == ' ') && (LastData != NULL)) { StrBufAppendBuf(LastData->Val, ReadBuf, 1); } else { LastData = Data = malloc(sizeof(Preference)); memset(Data, 0, sizeof(Preference)); Data->Key = NewStrBuf(); Data->Val = NewStrBuf(); StrBufExtract_token(Data->Key, ReadBuf, 0, '|'); StrBufExtract_token(Data->Val, ReadBuf, 1, '|'); /***************** BEGIN VILE SLEAZY HACK ************************/ /* some users might still have this start page configured, which now breaks */ if ( (!strcasecmp(ChrPtr(Data->Key), "startpage")) && (!strcasecmp(ChrPtr(Data->Val), "/do_template?template=summary_page")) ) { FreeStrBuf(&Data->Val); Data->Val = NewStrBufPlain(HKEY("/summary")); } /******************* END VILE SLEAZY HACK ************************/ if (!IsEmptyStr(ChrPtr(Data->Key))) { Put(*List, SKEY(Data->Key), Data, DestroyPreference); } else { StrBufTrim(ReadBuf); syslog(LOG_INFO, "ignoring spurious preference line: [%s]\n", ChrPtr(ReadBuf)); DestroyPreference(Data); LastData = NULL; } Data = NULL; } } GetPrefTypes(*List); } /* * display preferences dialog */ void load_preferences(void) { folder Room; wcsession *WCC = WC; int Done = 0; StrBuf *ReadBuf; long msgnum = 0L; memset(&Room, 0, sizeof(folder)); ReadBuf = NewStrBufPlain(NULL, SIZ * 4); if (goto_config_room(ReadBuf, &Room) != 0) { FreeStrBuf(&ReadBuf); FlushFolder(&Room); return; /* oh well. */ } serv_puts("MSGS ALL|0|1"); StrBuf_ServGetln(ReadBuf); if (GetServerStatus(ReadBuf, NULL) == 8) { serv_puts("subj|__ WebCit Preferences __"); serv_puts("000"); } while (!Done && (StrBuf_ServGetln(ReadBuf) >= 0)) { if ( (StrLength(ReadBuf)==3) && !strcmp(ChrPtr(ReadBuf), "000")) { Done = 1; break; } msgnum = StrTol(ReadBuf); } if (msgnum > 0L) { serv_printf("MSG0 %ld", msgnum); StrBuf_ServGetln(ReadBuf); if (GetServerStatus(ReadBuf, NULL) == 1) { while ( (StrBuf_ServGetln(ReadBuf) >= 0) && (strcmp(ChrPtr(ReadBuf), "text") && strcmp(ChrPtr(ReadBuf), "000")) ) { /* flush */ } if (!strcmp(ChrPtr(ReadBuf), "text")) { ParsePref(&WCC->hash_prefs, ReadBuf); } } } /* Go back to the room we're supposed to be in */ if (StrLength(WCC->CurRoom.name) > 0) { serv_printf("GOTO %s", ChrPtr(WCC->CurRoom.name)); StrBuf_ServGetln(ReadBuf); GetServerStatus(ReadBuf, NULL); } FreeStrBuf(&ReadBuf); FlushFolder(&Room); } /* * Go to the user's configuration room, creating it if necessary. * returns 0 on success or nonzero upon failure. */ int goto_config_room(StrBuf *Buf, folder *Room) { serv_printf("GOTO %s", USERCONFIGROOM); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { /* try to create the config room if not there */ serv_printf("CRE8 1|%s|4|0", USERCONFIGROOM); StrBuf_ServGetln(Buf); GetServerStatus(Buf, NULL); serv_printf("GOTO %s", USERCONFIGROOM); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { return(1); } } ParseGoto(Room, Buf); return(0); } void WritePrefsToServer(HashList *Hash) { wcsession *WCC = WC; long len; HashPos *HashPos; void *vPref; const char *Key; Preference *Pref; StrBuf *SubBuf = NULL; Hash = WCC->hash_prefs; #ifdef DBG_PREFS_HASH dbg_PrintHash(Hash, PrintPref, NULL); #endif HashPos = GetNewHashPos(Hash, 0); while (GetNextHashPos(Hash, HashPos, &len, &Key, &vPref)!=0) { size_t nchars; if (vPref == NULL) continue; Pref = (Preference*) vPref; nchars = StrLength(Pref->Val); if (nchars > 80){ int n = 0; size_t offset, nchars; if (SubBuf == NULL) SubBuf = NewStrBufPlain(NULL, SIZ); nchars = 1; offset = 0; while (nchars > 0) { if (n == 0) nchars = 70; else nchars = 80; nchars = StrBufSub(SubBuf, Pref->Val, offset, nchars); if (n == 0) { serv_printf("%s|%s", ChrPtr(Pref->Key), ChrPtr(SubBuf)); } else { serv_printf(" %s", ChrPtr(SubBuf)); } offset += nchars; nchars = StrLength(Pref->Val) - offset; n++; } } else { serv_printf("%s|%s", ChrPtr(Pref->Key), ChrPtr(Pref->Val)); } } FreeStrBuf(&SubBuf); DeleteHashPos(&HashPos); } /* * save the modifications */ void save_preferences(void) { folder Room; wcsession *WCC = WC; int Done = 0; StrBuf *ReadBuf; long msgnum = 0L; ReadBuf = NewStrBuf(); memset(&Room, 0, sizeof(folder)); if (goto_config_room(ReadBuf, &Room) != 0) { FreeStrBuf(&ReadBuf); FlushFolder(&Room); return; /* oh well. */ } /* make shure the config room has the right type, else it might reject our config */ if (Room.view != VIEW_BBS) { serv_printf("VIEW %d", VIEW_BBS); StrBuf_ServGetln(ReadBuf); if (GetServerStatus(ReadBuf, NULL) != 2) { /* UPS? */ } else if (goto_config_room(ReadBuf, &Room) != 0) { FreeStrBuf(&ReadBuf); FlushFolder(&Room); return; /* oh well. */ } } serv_puts("MSGS ALL|0|1"); StrBuf_ServGetln(ReadBuf); if (GetServerStatus(ReadBuf, NULL) == 8) { serv_puts("subj|__ WebCit Preferences __"); serv_puts("000"); } while (!Done && (StrBuf_ServGetln(ReadBuf) >= 0)) { if ( (StrLength(ReadBuf)==3) && !strcmp(ChrPtr(ReadBuf), "000")) { Done = 1; break; } msgnum = StrTol(ReadBuf); } if (msgnum > 0L) { serv_printf("DELE %ld", msgnum); StrBuf_ServGetln(ReadBuf); GetServerStatus(ReadBuf, NULL); } serv_printf("ENT0 1||0|1|__ WebCit Preferences __|"); StrBuf_ServGetln(ReadBuf); if (GetServerStatus(ReadBuf, NULL) == 4) { WritePrefsToServer(WCC->hash_prefs); serv_puts(""); serv_puts("000"); } /** Go back to the room we're supposed to be in */ if (StrLength(WCC->CurRoom.name) > 0) { serv_printf("GOTO %s", ChrPtr(WCC->CurRoom.name)); StrBuf_ServGetln(ReadBuf); GetServerStatus(ReadBuf, NULL); } FreeStrBuf(&ReadBuf); FlushFolder(&Room); } /* * query the actual setting of key in the citadel database * * key config key to query * keylen length of the key string * value StrBuf-value to the key to get * returns: found? */ int get_pref_backend(const char *key, size_t keylen, Preference **Pref) { void *hash_value = NULL; #ifdef DBG_PREFS_HASH dbg_PrintHash(WC->hash_prefs, PrintPref, NULL); #endif if (GetHash(WC->hash_prefs, key, keylen, &hash_value) == 0) { *Pref = NULL; return 0; } else { *Pref = (Preference*) hash_value; return 1; } } int get_PREFERENCE(const char *key, size_t keylen, StrBuf **value) { Preference *Pref; int Ret; Ret = get_pref_backend(key, keylen, &Pref); if (Ret != 0) *value = Pref->Val; else *value = NULL; return Ret; } /* * Write a key into the webcit preferences database for this user * * key key whichs value is to be modified * keylen length of the key string * value value to set * save_to_server 1 = flush all data to the server, 0 = cache it for now */ long compare_preference(const Preference *PrefA, const Preference *PrefB) { ePrefType TypeA, TypeB; if (PrefA->Type != NULL) { TypeA = PrefA->Type->eType; } else { TypeA = PrefA->eFlatPrefType; } if (PrefB->Type != NULL) { TypeB = PrefB->Type->eType; } else { TypeB = PrefB->eFlatPrefType; } if ( (TypeA != PRF_UNSET) && (TypeB != PRF_UNSET) && (TypeA != TypeB) ) { if (TypeA > TypeB) { return 1; } else { /* (PrefA->Type < PrefB->Type) */ return -1; } } if (TypeB == PRF_UNSET) { TypeA = PRF_UNSET; } switch (TypeA) { default: case PRF_UNSET: case PRF_STRING: return strcmp(ChrPtr(PrefA->Val), ChrPtr(PrefB->Val)); case PRF_YESNO: case PRF_INT: if (PrefA->lval == PrefB->lval) return 0; else if (PrefA->lval > PrefB->lval) return 1; else return -1; case PRF_QP_STRING: return strcmp(ChrPtr(PrefA->DeQPed), ChrPtr(PrefB->DeQPed)); } } /* * Write a key into the webcit preferences database for this user * * key key which value is to be modified * keylen length of the key string * value value to set * save_to_server 1 = flush all data to the server, 0 = cache it for now */ void set_preference_backend(const char *key, size_t keylen, long lvalue, StrBuf *value, long lPrefType, int save_to_server, PrefDef *PrefType) { wcsession *WCC = WC; void *vPrefDef; void *vPrefB; Preference *Pref; Pref = (Preference*) malloc(sizeof(Preference)); memset(Pref, 0, sizeof(Preference)); Pref->Key = NewStrBufPlain(key, keylen); if ((PrefType == NULL) && GetHash(PreferenceHooks, SKEY(Pref->Key), &vPrefDef) && (vPrefDef != NULL)) PrefType = (PrefDef*) vPrefDef; if (PrefType != NULL) { Pref->Type = PrefType; Pref->eFlatPrefType = PrefType->eType; if (Pref->Type->eType != lPrefType) syslog(LOG_WARNING, "warning: saving preference with wrong type [%s] %d != %ld \n", key, Pref->Type->eType, lPrefType); switch (Pref->Type->eType) { case PRF_UNSET: /* default to string... */ case PRF_STRING: Pref->Val = value; Pref->decoded = 1; break; case PRF_INT: Pref->lval = lvalue; Pref->Val = value; if (Pref->Val == NULL) Pref->Val = NewStrBufPlain(NULL, 64); StrBufPrintf(Pref->Val, "%ld", lvalue); Pref->decoded = 1; break; case PRF_QP_STRING: Pref->DeQPed = value; Pref->Val = NewStrBufPlain(NULL, StrLength(Pref->DeQPed) * 3); StrBufEUid_escapize(Pref->Val, Pref->DeQPed); Pref->decoded = 1; break; case PRF_YESNO: Pref->lval = lvalue; if (lvalue) Pref->Val = NewStrBufPlain(HKEY("yes")); else Pref->Val = NewStrBufPlain(HKEY("no")); Pref->decoded = 1; break; } if (Pref->Type->OnLoad != NULL) Pref->Type->OnLoad(Pref->Val, Pref->lval); } else { Pref->eFlatPrefType = lPrefType; switch (lPrefType) { case PRF_STRING: Pref->Val = value; Pref->decoded = 1; break; case PRF_INT: Pref->lval = lvalue; Pref->Val = value; if (Pref->Val == NULL) Pref->Val = NewStrBufPlain(NULL, 64); StrBufPrintf(Pref->Val, "%ld", lvalue); Pref->decoded = 1; break; case PRF_QP_STRING: Pref->DeQPed = value; Pref->Val = NewStrBufPlain(NULL, StrLength(Pref->DeQPed) * 3); StrBufEUid_escapize(Pref->Val, Pref->DeQPed); Pref->decoded = 1; break; case PRF_YESNO: Pref->lval = lvalue; if (lvalue) Pref->Val = NewStrBufPlain(HKEY("yes")); else Pref->Val = NewStrBufPlain(HKEY("no")); Pref->decoded = 1; break; } } if ((save_to_server != 0) && GetHash(WCC->hash_prefs, key, keylen, &vPrefB) && (vPrefB != NULL) && (compare_preference (Pref, vPrefB) == 0)) save_to_server = 0; Put(WCC->hash_prefs, key, keylen, Pref, DestroyPreference); if (save_to_server) WCC->SavePrefsToServer = 1; } void set_PREFERENCE(const char *key, size_t keylen, StrBuf *value, int save_to_server) { set_preference_backend(key, keylen, 0, value, PRF_STRING, save_to_server, NULL); } int get_PREF_LONG(const char *key, size_t keylen, long *value, long Default) { Preference *Pref; int Ret; Ret = get_pref_backend(key, keylen, &Pref); if (Ret == 0) { *value = Default; return 0; } if (Pref->decoded) *value = Pref->lval; else { *value = Pref->lval = atol(ChrPtr(Pref->Val)); Pref->decoded = 1; } return Ret; } void set_PREF_LONG(const char *key, size_t keylen, long value, int save_to_server) { set_preference_backend(key, keylen, value, NULL, PRF_INT, save_to_server, NULL); } int get_PREF_YESNO(const char *key, size_t keylen, int *value, int Default) { Preference *Pref; int Ret; Ret = get_pref_backend(key, keylen, &Pref); if (Ret == 0) { *value = Default; return 0; } if (Pref->decoded) *value = Pref->lval; else { *value = Pref->lval = strcmp(ChrPtr(Pref->Val), "yes") == 0; Pref->decoded = 1; } return Ret; } void set_PREF_YESNO(const char *key, size_t keylen, long value, int save_to_server) { set_preference_backend(key, keylen, value, NULL, PRF_YESNO, save_to_server, NULL); } int get_room_prefs_backend(const char *key, size_t keylen, Preference **Pref) { StrBuf *pref_name; int Ret; pref_name = NewStrBufPlain (HKEY("ROOM:")); StrBufAppendBuf(pref_name, WC->CurRoom.name, 0); StrBufAppendBufPlain(pref_name, HKEY(":"), 0); StrBufAppendBufPlain(pref_name, key, keylen, 0); Ret = get_pref_backend(SKEY(pref_name), Pref); FreeStrBuf(&pref_name); return Ret; } const StrBuf *get_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen) { int ret; StrBuf *pref_name; Preference *Prf; pref_name = NewStrBufPlain (HKEY("XPREF:")); StrBufAppendBufPlain(pref_name, xkey, xkeylen, 0); StrBufAppendBufPlain(pref_name, HKEY(":"), 0); StrBufAppendBufPlain(pref_name, key, keylen, 0); ret = get_pref_backend(SKEY(pref_name), &Prf); FreeStrBuf(&pref_name); if (ret) return Prf->Val; else return NULL; } void set_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen, StrBuf *value, int save_to_server) { StrBuf *pref_name; pref_name = NewStrBufPlain (HKEY("XPREF:")); StrBufAppendBufPlain(pref_name, xkey, xkeylen, 0); StrBufAppendBufPlain(pref_name, HKEY(":"), 0); StrBufAppendBufPlain(pref_name, key, keylen, 0); set_preference_backend(SKEY(pref_name), 0, value, PRF_STRING, save_to_server, NULL); FreeStrBuf(&pref_name); } long get_ROOM_PREFS_LONG(const char *key, size_t keylen, long *value, long Default) { Preference *Pref; int Ret; Ret = get_room_prefs_backend(key, keylen, &Pref); if (Ret == 0) { *value = Default; return 0; } if (Pref->decoded) *value = Pref->lval; else { *value = Pref->lval = atol(ChrPtr(Pref->Val)); Pref->decoded = 1; } return Ret; } StrBuf *get_ROOM_PREFS(const char *key, size_t keylen) { Preference *Pref; int Ret; Ret = get_room_prefs_backend(key, keylen, &Pref); if (Ret == 0) { return NULL; } else return Pref->Val; } void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_server) { StrBuf *pref_name; pref_name = NewStrBufPlain (HKEY("ROOM:")); StrBufAppendBuf(pref_name, WC->CurRoom.name, 0); StrBufAppendBufPlain(pref_name, HKEY(":"), 0); StrBufAppendBufPlain(pref_name, key, keylen, 0); set_preference_backend(SKEY(pref_name), 0, value, PRF_STRING, save_to_server, NULL); FreeStrBuf(&pref_name); } void GetPreferences(HashList *Setting) { wcsession *WCC = WC; HashPos *It; long len; const char *Key; void *vSetting; PrefDef *PrefType; StrBuf *Buf; long lval; HashList *Tmp; Tmp = WCC->hash_prefs; WCC->hash_prefs = Setting; It = GetNewHashPos(PreferenceHooks, 0); while (GetNextHashPos(PreferenceHooks, It, &len, &Key, &vSetting)) { PrefType = (PrefDef*) vSetting; if (!HaveBstr(SKEY(PrefType->Setting))) continue; switch (PrefType->eType) { case PRF_UNSET: case PRF_STRING: Buf = NewStrBufDup(SBstr(SKEY(PrefType->Setting))); set_preference_backend(SKEY(PrefType->Setting), 0, Buf, PRF_STRING, 1, PrefType); break; case PRF_INT: lval = LBstr(SKEY(PrefType->Setting)); set_preference_backend(SKEY(PrefType->Setting), lval, NULL, PRF_INT, 1, PrefType); break; case PRF_QP_STRING: Buf = NewStrBufDup(SBstr(SKEY(PrefType->Setting))); set_preference_backend(SKEY(PrefType->Setting), 0, Buf, PRF_QP_STRING, 1, PrefType); break; case PRF_YESNO: lval = YesBstr(SKEY(PrefType->Setting)); set_preference_backend(SKEY(PrefType->Setting), lval, NULL, PRF_YESNO, 1, PrefType); break; } } WCC->hash_prefs = Tmp; DeleteHashPos(&It); } /* * Commit new preferences and settings */ void set_preferences(void) { if (!havebstr("change_button")) { AppendImportantMessage(_("Cancelled. No settings were changed."), -1); display_main_menu(); return; } GetPreferences(WC->hash_prefs); display_main_menu(); } void tmplput_CFG_Value(StrBuf *Target, WCTemplputParams *TP) { Preference *Pref; if (get_pref_backend(TKEY(0), &Pref)) { if (Pref->Type == NULL) { StrBufAppendTemplate(Target, TP, Pref->Val, 1); } switch (Pref->Type->eType) { case PRF_UNSET: /* default to string... */ case PRF_STRING: StrBufAppendTemplate(Target, TP, Pref->Val, 1); break; case PRF_INT: if (Pref->decoded != 1) { if (Pref->Val == NULL) Pref->Val = NewStrBufPlain(NULL, 64); StrBufPrintf(Pref->Val, "%ld", Pref->lval); Pref->decoded = 1; } StrBufAppendTemplate(Target, TP, Pref->Val, 1); break; case PRF_QP_STRING: if (Pref->decoded != 1) { if (Pref->DeQPed == NULL) Pref->DeQPed = NewStrBufPlain(NULL, StrLength(Pref->Val)); StrBufEUid_unescapize(Pref->DeQPed, Pref->Val); Pref->decoded = 1; } StrBufAppendTemplate(Target, TP, Pref->DeQPed, 1); break; case PRF_YESNO: if (Pref->decoded != 1) { Pref->lval = strcmp(ChrPtr(Pref->Val), "yes") == 0; Pref->decoded = 1; } StrBufAppendTemplate(Target, TP, Pref->Val, 1); break; } } } void tmplput_CFG_Descr(StrBuf *Target, WCTemplputParams *TP) { const char *SettingStr; SettingStr = PrefGetLocalStr(TKEY(0)); if (SettingStr != NULL) StrBufAppendBufPlain(Target, SettingStr, -1, 0); } void tmplput_CFG_RoomValueLong(StrBuf *Target, WCTemplputParams *TP) { long lvalue; long defval = 0; if (HAVE_PARAM(1)) defval = GetTemplateTokenNumber(Target, TP, 1, 0); get_ROOM_PREFS_LONG(TKEY(0), &lvalue, defval); StrBufAppendPrintf(Target, "%ld", lvalue); } void tmplput_CFG_RoomValue(StrBuf *Target, WCTemplputParams *TP) { StrBuf *pref = get_ROOM_PREFS(TKEY(0)); if (pref != NULL) StrBufAppendBuf(Target, pref, 0); } int ConditionalHasRoomPreference(StrBuf *Target, WCTemplputParams *TP) { if (get_ROOM_PREFS(TP->Tokens->Params[0]->Start, TP->Tokens->Params[0]->len) != NULL) return 1; return 0; } int ConditionalPreference(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Pref; if (!get_PREFERENCE(TKEY(2), &Pref)) return 0; if (!HAVE_PARAM(3)) { return 1; } else if (IS_NUMBER(TP->Tokens->Params[3]->Type)) { return StrTol(Pref) == GetTemplateTokenNumber (Target, TP, 3, 0); } else { const char *pch; long len; GetTemplateTokenString(Target, TP, 3, &pch, &len); return ((len == StrLength(Pref)) && (strcmp(pch, ChrPtr(Pref)) == 0)); } } int ConditionalHasPreference(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Pref; if (!get_PREFERENCE(TKEY(2), &Pref) || (Pref == NULL)) return 0; else return 1; } /******************************************************************************** * preferences stored discrete in citserver ********************************************************************************/ CtxType CTX_VEA = CTX_NONE; typedef struct __ValidEmailAddress { StrBuf *Address; int IsDefault; }ValidEmailAddress; void DeleteValidEmailAddress(void *v) { ValidEmailAddress *VEA = (ValidEmailAddress*)v; FreeStrBuf(&VEA->Address); free(VEA); } void tmplput_VEA(StrBuf *Target, WCTemplputParams *TP) { ValidEmailAddress* VEA = (ValidEmailAddress*) CTX((CTX_VEA)); StrBufAppendTemplate(Target, TP, VEA->Address, 0); } int ConditionalPreferenceIsDefaulVEA(StrBuf *Target, WCTemplputParams *TP) { ValidEmailAddress* VEA = (ValidEmailAddress*) CTX((CTX_VEA)); return VEA->IsDefault; } HashList *GetGVEAHash(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Rcp; HashList *List = NULL; int Done = 0; int i, n = 1; char N[64]; StrBuf *DefaultFrom = NULL; const StrBuf *EnvelopeTo; ValidEmailAddress *VEA; get_preference("defaultfrom", &DefaultFrom); EnvelopeTo = sbstr("nvto"); Rcp = NewStrBuf(); serv_puts("GVEA"); StrBuf_ServGetln(Rcp); if (GetServerStatus(Rcp, NULL) == 1) { FlushStrBuf(Rcp); List = NewHash(1, NULL); while (!Done && (StrBuf_ServGetln(Rcp)>=0)) { if ( (StrLength(Rcp)==3) && !strcmp(ChrPtr(Rcp), "000")) { Done = 1; } else { VEA = (ValidEmailAddress*) malloc(sizeof(ValidEmailAddress)); i = snprintf(N, sizeof(N), "%d", n); StrBufTrim(Rcp); VEA->Address = Rcp; if (StrLength(EnvelopeTo) > 0) VEA->IsDefault = strstr(ChrPtr(EnvelopeTo), ChrPtr(Rcp)) != NULL; else if (StrLength(DefaultFrom) > 0) VEA->IsDefault = !strcmp(ChrPtr(Rcp), ChrPtr(DefaultFrom)); else VEA->IsDefault = 0; Put(List, N, i, VEA, DeleteValidEmailAddress); Rcp = NewStrBuf(); } n++; } } FreeStrBuf(&Rcp); return List; } void DeleteGVEAHash(HashList **KillMe) { DeleteHash(KillMe); } HashList *GetGVSNHash(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Rcp; HashList *List = NULL; int Done = 0; int i, n = 1; char N[64]; Rcp = NewStrBuf(); serv_puts("GVSN"); StrBuf_ServGetln(Rcp); if (GetServerStatus(Rcp, NULL) == 1) { FlushStrBuf(Rcp); List = NewHash(1, NULL); while (!Done && (StrBuf_ServGetln(Rcp)>=0)) { if ( (StrLength(Rcp)==3) && !strcmp(ChrPtr(Rcp), "000")) { Done = 1; } else { i = snprintf(N, sizeof(N), "%d", n); StrBufTrim(Rcp); Put(List, N, i, Rcp, HFreeStrBuf); Rcp = NewStrBuf(); } n++; } } FreeStrBuf(&Rcp); return List; } void DeleteGVSNHash(HashList **KillMe) { DeleteHash(KillMe); } /* * Offer to make any page the user's "start page" (only if logged in) */ void offer_start_page(StrBuf *Target, WCTemplputParams *TP) { if (WC->logged_in) { wc_printf("Hdr->this_page)); wc_printf("\">"); wc_printf(_("Make this my start page")); wc_printf(""); }; } /* * Change the user's start page */ void change_start_page(void) { const char *pch; void *vHandler; int ProhibitSave = 0; const StrBuf *pStartPage = sbstr("startpage"); if (pStartPage != NULL) { pch = strchr(ChrPtr(pStartPage), '?'); if ((pch != NULL) && ( GetHash(HandlerHash, ChrPtr(pStartPage), pch - ChrPtr(pStartPage), &vHandler), (vHandler != NULL) && ((((WebcitHandler*)vHandler)->Flags & PROHIBIT_STARTPAGE) != 0))) { /* OK, This handler doesn't want to be set as start page, prune it. */ ProhibitSave = 1; } } if ((pStartPage == NULL) || (ProhibitSave == 1)) { set_preference_backend(HKEY("startpage"), 0, NewStrBufPlain(HKEY("")), PRF_STRING, 1, NULL); if (ProhibitSave == 1) AppendImportantMessage(_("This isn't allowed to become the start page."), -1); else AppendImportantMessage(_("You no longer have a start page selected."), -1); display_main_menu(); return; } set_preference_backend(HKEY("startpage"), 0, NewStrBufDup(pStartPage), PRF_STRING, 1, NULL); output_headers(1, 1, 0, 0, 0, 0); do_template("newstartpage"); wDumpContent(1); } void LoadStartpage(StrBuf *URL, long lvalue) { const char *pch; void *vHandler; pch = strchr(ChrPtr(URL), '?'); if (pch == NULL) { /* purge the sins of the past... */ pch = strchr(ChrPtr(URL), '&'); if (pch != NULL) { StrBufPeek(URL, pch, -1, '?'); WC->SavePrefsToServer = 1; } } else if (GetHash(HandlerHash, ChrPtr(URL), pch - ChrPtr(URL), &vHandler), (vHandler != NULL) && ((((WebcitHandler*)vHandler)->Flags & PROHIBIT_STARTPAGE) != 0)) { /* OK, This handler doesn't want to be set as start page, prune it. */ FlushStrBuf(URL); WC->SavePrefsToServer = 1; } } void InitModule_PREFERENCES (void) { RegisterCTX(CTX_VEA); WebcitAddUrlHandler(HKEY("set_preferences"), "", 0, set_preferences, 0); WebcitAddUrlHandler(HKEY("change_start_page"), "", 0, change_start_page, 0); RegisterPreference("startpage", _("Prefered startpage"), PRF_STRING, LoadStartpage); RegisterNamespace("OFFERSTARTPAGE", 0, 0, offer_start_page, NULL, CTX_NONE); RegisterNamespace("PREF:ROOM:VALUE", 1, 2, tmplput_CFG_RoomValue, NULL, CTX_NONE); RegisterNamespace("PREF:ROOM:VALUE:INT", 1, 2, tmplput_CFG_RoomValueLong, NULL, CTX_NONE); RegisterNamespace("PREF:VALUE", 1, 2, tmplput_CFG_Value, NULL, CTX_NONE); RegisterNamespace("PREF:DESCR", 1, 1, tmplput_CFG_Descr, NULL, CTX_NONE); RegisterConditional("COND:PREF", 4, ConditionalPreference, CTX_NONE); RegisterConditional("COND:PREF:SET", 4, ConditionalHasPreference, CTX_NONE); RegisterConditional("COND:ROOM:SET", 4, ConditionalHasRoomPreference, CTX_NONE); RegisterIterator("PREF:VALID:EMAIL:ADDR", 0, NULL, GetGVEAHash, NULL, DeleteGVEAHash, CTX_VEA, CTX_NONE, IT_NOFLAG); RegisterNamespace("PREF:VALID:EMAIL:ADDR:STR", 1, 1, tmplput_VEA, NULL, CTX_VEA); RegisterConditional("COND:PREF:VALID:EMAIL:ADDR:STR", 4, ConditionalPreferenceIsDefaulVEA, CTX_VEA); RegisterIterator("PREF:VALID:EMAIL:NAME", 0, NULL, GetGVSNHash, NULL, DeleteGVSNHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); } void ServerStartModule_PREFERENCES (void) { PreferenceHooks = NewHash(1, NULL); } void ServerShutdownModule_PREFERENCES (void) { DeleteHash(&PreferenceHooks); } void SessionDetachModule__PREFERENCES (wcsession *sess) { if (sess->SavePrefsToServer) { save_preferences(); sess->SavePrefsToServer = 0; } } void SessionNewModule_PREFERENCES (wcsession *sess) { sess->hash_prefs = NewHash(1,NULL); } void SessionDestroyModule_PREFERENCES (wcsession *sess) { DeleteHash(&sess->hash_prefs); } webcit-dfsg.orig/mkinstalldirs0000755000175000017500000000370413223341037016611 0ustar michaelmichael#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here webcit-dfsg.orig/dav_delete.c0000644000175000017500000000550513223341037016244 0ustar michaelmichael/* * Handles GroupDAV DELETE requests. * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" /* * The pathname is always going to be /groupdav/room_name/euid */ void dav_delete(void) { wcsession *WCC = WC; char dav_uid[SIZ]; long dav_msgnum = (-1); char buf[SIZ]; int n = 0; StrBuf *dav_roomname = NewStrBuf(); /* Now extract the message euid */ n = StrBufNum_tokens(WCC->Hdr->HR.ReqLine, '/'); extract_token(dav_uid, ChrPtr(WCC->Hdr->HR.ReqLine), n-1, '/', sizeof dav_uid); StrBufExtract_token(dav_roomname, WCC->Hdr->HR.ReqLine, 0, '/'); ///* What's left is the room name. Remove trailing slashes. */ //len = StrLength(WCC->Hdr->HR.ReqLine); //if ((len > 0) && (ChrPtr(WCC->Hdr->HR.ReqLinee)[len-1] == '/')) { // StrBufCutRight(WCC->Hdr->HR.ReqLine, 1); //} //StrBufCutLeft(WCC->Hdr->HR.ReqLine, 1); /* Go to the correct room. */ if (strcasecmp(ChrPtr(WC->CurRoom.name), ChrPtr(dav_roomname))) { gotoroom(dav_roomname); } if (strcasecmp(ChrPtr(WC->CurRoom.name), ChrPtr(dav_roomname))) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Length: 0\r\n\r\n"); begin_burst(); end_burst(); FreeStrBuf(&dav_roomname); return; } dav_msgnum = locate_message_by_uid(dav_uid); /* * If no item exists with the requested uid ... simple error. */ if (dav_msgnum < 0L) { hprintf("HTTP/1.1 404 Not Found\r\n"); dav_common_headers(); hprintf("Content-Length: 0\r\n\r\n"); begin_burst(); end_burst(); FreeStrBuf(&dav_roomname); return; } /* * It's there ... check the ETag and make sure it matches * the message number. */ if (StrLength(WCC->Hdr->HR.dav_ifmatch) > 0) { if (StrTol(WCC->Hdr->HR.dav_ifmatch) != dav_msgnum) { hprintf("HTTP/1.1 412 Precondition Failed\r\n"); dav_common_headers(); hprintf("Content-Length: 0\r\n\r\n"); begin_burst(); end_burst(); FreeStrBuf(&dav_roomname); return; } } /* * Ok, attempt to delete the item. */ serv_printf("DELE %ld", dav_msgnum); serv_getln(buf, sizeof buf); if (buf[0] == '2') { hprintf("HTTP/1.1 204 No Content\r\n"); /* success */ dav_common_headers(); hprintf("Content-Length: 0\r\n\r\n"); begin_burst(); end_burst(); } else { hprintf("HTTP/1.1 403 Forbidden\r\n"); /* access denied */ dav_common_headers(); hprintf("Content-Length: 0\r\n\r\n"); begin_burst(); end_burst(); } FreeStrBuf(&dav_roomname); return; } webcit-dfsg.orig/dav.h0000644000175000017500000000243513223341037014726 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* * Data passed back and forth between dav_get() and its callback functions called by the MIME parser */ struct epdata { char desired_content_type_1[128]; char desired_content_type_2[128]; char found_section[128]; char charset[128]; }; void dav_common_headers(void); void dav_main(void); void dav_get(void); void dav_put(void); void dav_delete(void); void dav_propfind(void); void dav_options(void); void dav_report(void); long locate_message_by_uid(const char *); void dav_folder_list(void); void euid_escapize(char *, const char *); void euid_unescapize(char *, const char *); void dav_identify_host(void); void dav_identify_hosthdr(void); void RegisterDAVNamespace(const char * UrlString, long UrlSLen, const char *DisplayName, long dslen, WebcitHandlerFunc F, WebcitRESTDispatchID RID, long Flags); webcit-dfsg.orig/config.guess0000755000175000017500000012355013223341037016325 0ustar michaelmichael#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-03-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: webcit-dfsg.orig/dav_put.c0000644000175000017500000001435413223341037015614 0ustar michaelmichael/* * Handles GroupDAV PUT requests. * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" /* * This function is for uploading an ENTIRE calendar, not just one * component. This would be for webcal:// 'publish' operations, not * for GroupDAV. */ void dav_put_bigics(void) { wcsession *WCC = WC; char buf[1024]; /* * Tell the server that when we save a calendar event, we * do *not* want the server to generate invitations. */ serv_puts("ICAL sgi|0"); serv_getln(buf, sizeof buf); serv_puts("ICAL putics"); serv_getln(buf, sizeof buf); if (buf[0] != '4') { hprintf("HTTP/1.1 502 Bad Gateway\r\n"); dav_common_headers(); hprintf("Content-type: text/plain\r\n"); begin_burst(); wc_printf("%s\r\n", &buf[4]); end_burst(); return; } serv_putbuf(WCC->upload); serv_printf("\n000"); /* Report success and not much else. */ hprintf("HTTP/1.1 204 No Content\r\n"); syslog(LOG_DEBUG, "HTTP/1.1 204 No Content\r\n"); dav_common_headers(); begin_burst(); end_burst(); } /* * The pathname is always going to take one of two formats: * [/groupdav/]room_name/euid (GroupDAV) * [/groupdav/]room_name (webcal) */ void dav_put(void) { wcsession *WCC = WC; StrBuf *dav_roomname; StrBuf *dav_uid; long new_msgnum = (-2L); long old_msgnum = (-1L); char buf[SIZ]; int n = 0; if (StrBufNum_tokens(WCC->Hdr->HR.ReqLine, '/') < 2) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("The object you requested was not found.\r\n"); end_burst(); return; } dav_roomname = NewStrBuf();; dav_uid = NewStrBuf();; StrBufExtract_token(dav_roomname, WCC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(dav_uid, WCC->Hdr->HR.ReqLine, 1, '/'); if ((!strcasecmp(ChrPtr(dav_uid), "ics")) || (!strcasecmp(ChrPtr(dav_uid), "calendar.ics"))) { FlushStrBuf(dav_uid); } /* Go to the correct room. */ if (strcasecmp(ChrPtr(WC->CurRoom.name), ChrPtr(dav_roomname))) { gotoroom(dav_roomname); } if (strcasecmp(ChrPtr(WC->CurRoom.name), ChrPtr(dav_roomname))) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("There is no folder called \"%s\" on this server.\r\n", ChrPtr(dav_roomname)); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* * If an HTTP If-Match: header is present, the client is attempting * to replace an existing item. We have to check to see if the * message number associated with the supplied uid matches what the * client is expecting. If not, the server probably contains a newer * version, so we fail... */ if (StrLength(WCC->Hdr->HR.dav_ifmatch) > 0) { syslog(LOG_DEBUG, "dav_ifmatch: %s\n", ChrPtr(WCC->Hdr->HR.dav_ifmatch)); old_msgnum = locate_message_by_uid(ChrPtr(dav_uid)); syslog(LOG_DEBUG, "old_msgnum: %ld\n", old_msgnum); if (StrTol(WCC->Hdr->HR.dav_ifmatch) != old_msgnum) { hprintf("HTTP/1.1 412 Precondition Failed\r\n"); syslog(LOG_INFO, "HTTP/1.1 412 Precondition Failed (ifmatch=%ld, old_msgnum=%ld)\r\n", StrTol(WCC->Hdr->HR.dav_ifmatch), old_msgnum); dav_common_headers(); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } } /** PUT on the collection itself uploads an ICS of the entire collection. */ if (StrLength(dav_uid) == 0) { dav_put_bigics(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* * We are cleared for upload! We use the new calling syntax for ENT0 * which allows a confirmation to be sent back to us. That's how we * extract the message ID. */ serv_puts("ENT0 1|||4|||1|"); serv_getln(buf, sizeof buf); if (buf[0] != '8') { hprintf("HTTP/1.1 502 Bad Gateway\r\n"); dav_common_headers(); hprintf("Content-type: text/plain\r\n"); begin_burst(); wc_printf("%s\r\n", &buf[4]); end_burst(); return; } /* Send the content to the Citadel server */ //serv_printf("Content-type: %s\n\n", WCC->upload_content_type); serv_putbuf(WCC->upload); serv_puts("\n000"); /* Fetch the reply from the Citadel server */ n = 0; FlushStrBuf(dav_uid); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { switch(n++) { case 0: new_msgnum = atol(buf); break; case 1: syslog(LOG_DEBUG, "new_msgnum=%ld (%s)\n", new_msgnum, buf); break; case 2: StrBufAppendBufPlain(dav_uid, buf, -1, 0); break; default: break; } } /* Tell the client what happened. */ /* Citadel failed in some way? */ if (new_msgnum < 0L) { hprintf("HTTP/1.1 502 Bad Gateway\r\n"); dav_common_headers(); hprintf("Content-type: text/plain\r\n"); begin_burst(); wc_printf("new_msgnum is %ld\r\n" "\r\n", new_msgnum); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* We created this item for the first time. */ if (old_msgnum < 0L) { char escaped_uid[1024]; hprintf("HTTP/1.1 201 Created\r\n"); syslog(LOG_DEBUG, "HTTP/1.1 201 Created\r\n"); dav_common_headers(); hprintf("etag: \"%ld\"\r\n", new_msgnum); hprintf("Location: "); dav_identify_hosthdr(); hprintf("/groupdav/");/* TODO */ hurlescputs(ChrPtr(dav_roomname)); euid_escapize(escaped_uid, ChrPtr(dav_uid)); hprintf("/%s\r\n", escaped_uid); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* We modified an existing item. */ hprintf("HTTP/1.1 204 No Content\r\n"); syslog(LOG_DEBUG, "HTTP/1.1 204 No Content\r\n"); dav_common_headers(); hprintf("Etag: \"%ld\"\r\n", new_msgnum); /* The item we replaced has probably already been deleted by * the Citadel server, but we'll do this anyway, just in case. */ serv_printf("DELE %ld", old_msgnum); serv_getln(buf, sizeof buf); begin_burst(); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } webcit-dfsg.orig/marchlist.c0000644000175000017500000001316313223341037016135 0ustar michaelmichael#include "webcit.h" #include "webserver.h" /* * Free a session's march list */ void free_march_list(wcsession *wcf) { struct march *mptr; while (wcf->march != NULL) { mptr = wcf->march->next; free(wcf->march); wcf->march = mptr; } } /* * remove a room from the march list */ void remove_march(const StrBuf *aaa) { struct march *mptr, *mptr2; if (WC->march == NULL) return; if (!strcasecmp(WC->march->march_name, ChrPtr(aaa))) { mptr = WC->march->next; free(WC->march); WC->march = mptr; return; } mptr2 = WC->march; for (mptr = WC->march; mptr != NULL; mptr = mptr->next) { if (!strcasecmp(mptr->march_name, ChrPtr(aaa))) { mptr2->next = mptr->next; free(mptr); mptr = mptr2; } else { mptr2 = mptr; } } } /** * \brief Locate the room on the march list which we most want to go to. * Each room * is measured given a "weight" of preference based on various factors. * \param desired_floor the room number on the citadel server * \return the roomname */ char *pop_march(int desired_floor) { static char TheRoom[128]; int TheWeight = 0; int weight; struct march *mptr = NULL; strcpy(TheRoom, "_BASEROOM_"); if (WC->march == NULL) return (TheRoom); for (mptr = WC->march; mptr != NULL; mptr = mptr->next) { weight = 0; if ((strcasecmp(mptr->march_name, "_BASEROOM_"))) weight = weight + 10000; if (mptr->march_floor == desired_floor) weight = weight + 5000; weight = weight + ((128 - (mptr->march_floor)) * 128); weight = weight + (128 - (mptr->march_order)); if (weight > TheWeight) { TheWeight = weight; strcpy(TheRoom, mptr->march_name); /* TODOO: and now???? TheFloor = mptr->march_floor; TheOrder = mptr->march_order; */ } } return (TheRoom); } /* * Goto next room having unread messages. * * We want to skip over rooms that the user has already been to, and take the * user back to the lobby when done. The room we end up in is placed in * newroom - which is set to 0 (the lobby) initially. * We start the search in the current room rather than the beginning to prevent * two or more concurrent users from dragging each other back to the same room. */ void gotonext(void) { char buf[256]; struct march *mptr = NULL; struct march *mptr2 = NULL; char room_name[128]; StrBuf *next_room; int ELoop = 0; /* * First check to see if the march-mode list is already allocated. * If it is, pop the first room off the list and go there. */ if (havebstr("startmsg")) { readloop(readnew, eUseDefault); return; } if (WC->march == NULL) { serv_puts("LKRN"); serv_getln(buf, sizeof buf); if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { if (IsEmptyStr(buf)) { if (ELoop > 10000) return; if (ELoop % 100 == 0) sleeeeeeeeeep(1); ELoop ++; continue; } extract_token(room_name, buf, 0, '|', sizeof room_name); if (strcasecmp(room_name, ChrPtr(WC->CurRoom.name))) { mptr = (struct march *) malloc(sizeof(struct march)); mptr->next = NULL; safestrncpy(mptr->march_name, room_name, sizeof mptr->march_name); mptr->march_floor = extract_int(buf, 2); mptr->march_order = extract_int(buf, 3); if (WC->march == NULL) WC->march = mptr; else mptr2->next = mptr; mptr2 = mptr; } buf[0] = '\0'; } /* * add _BASEROOM_ to the end of the march list, so the user will end up * in the system base room (usually the Lobby>) at the end of the loop */ mptr = (struct march *) malloc(sizeof(struct march)); mptr->next = NULL; mptr->march_order = 0; mptr->march_floor = 0; strcpy(mptr->march_name, "_BASEROOM_"); if (WC->march == NULL) { WC->march = mptr; } else { mptr2 = WC->march; while (mptr2->next != NULL) mptr2 = mptr2->next; mptr2->next = mptr; } /* * ...and remove the room we're currently in, so a oto doesn't make us * walk around in circles */ remove_march(WC->CurRoom.name); } if (WC->march != NULL) { next_room = NewStrBufPlain(pop_march(-1), -1);/*TODO: migrate march to strbuf */ putlbstr("gotonext", 1); } else { next_room = NewStrBufPlain(HKEY("_BASEROOM_")); } smart_goto(next_room); FreeStrBuf(&next_room); } /* * un-goto the previous room */ void ungoto(void) { StrBuf *Buf; if (havebstr("startmsg")) { readloop(readnew, eUseDefault); return; } if (!strcmp(WC->ugname, "")) { smart_goto(WC->CurRoom.name); return; } serv_printf("GOTO %s", WC->ugname); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 2) { smart_goto(WC->CurRoom.name); FreeStrBuf(&Buf); return; } if (WC->uglsn >= 0L) { serv_printf("SLRP %ld", WC->uglsn); StrBuf_ServGetln(Buf); } FlushStrBuf(Buf); StrBufAppendBufPlain(Buf, WC->ugname, -1, 0); strcpy(WC->ugname, ""); smart_goto(Buf); FreeStrBuf(&Buf); } void tmplput_ungoto(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if ((WCC!=NULL) && (!IsEmptyStr(WCC->ugname))) StrBufAppendBufPlain(Target, WCC->ugname, -1, 0); } void _gotonext(void) { slrp_highest(); gotonext(); } int ConditionalHaveUngoto(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; return ((WCC!=NULL) && (!IsEmptyStr(WCC->ugname)) && (strcasecmp(WCC->ugname, ChrPtr(WCC->CurRoom.name)) == 0)); } void InitModule_MARCHLIST (void) { RegisterConditional("COND:UNGOTO", 0, ConditionalHaveUngoto, CTX_NONE); RegisterNamespace("ROOM:UNGOTO", 0, 0, tmplput_ungoto, NULL, CTX_NONE); WebcitAddUrlHandler(HKEY("gotonext"), "", 0, _gotonext, NEED_URL); WebcitAddUrlHandler(HKEY("skip"), "", 0, gotonext, NEED_URL); WebcitAddUrlHandler(HKEY("ungoto"), "", 0, ungoto, NEED_URL); } webcit-dfsg.orig/jsonview_renderer.c0000644000175000017500000000347513223341037017706 0ustar michaelmichael#include "webcit.h" #include "webserver.h" #include "dav.h" int json_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { Stat->defaultsortorder = 2; Stat->sortit = 1; Stat->load_seen = 1; /* Generally using maxmsgs|startmsg is not required in mailbox view, but we have a 'safemode' for clients (*cough* Exploder) that simply can't handle too many */ if (havebstr("maxmsgs")) Stat->maxmsgs = ibstr("maxmsgs"); else Stat->maxmsgs = 9999999; if (havebstr("startmsg")) Stat->startmsg = lbstr("startmsg"); snprintf(cmd, len, "MSGS %s|%s||1", (oper == do_search) ? "SEARCH" : "ALL", (oper == do_search) ? bstr("query") : "" ); return 200; } int json_MessageListHdr(SharedMessageStatus *Stat, void **ViewSpecific) { /* TODO: make a generic function */ hprintf("HTTP/1.1 200 OK\r\n"); hprintf("Content-type: application/json; charset=utf-8\r\n"); hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software)); hprintf("Connection: close\r\n"); hprintf("Pragma: no-cache\r\nCache-Control: no-store\r\nExpires:-1\r\n"); begin_burst(); return 0; } int json_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { DoTemplate(HKEY("mailsummary_json"),NULL, NULL); return 0; } int json_Cleanup(void **ViewSpecific) { /* Note: wDumpContent() will output one additional
    tag. */ /* We ought to move this out into template */ end_burst(); return 0; } void InitModule_JSONRENDERER (void) { RegisterReadLoopHandlerset( VIEW_JSON_LIST, json_GetParamsGetServerCall, json_MessageListHdr, NULL, /* TODO: is this right? */ ParseMessageListHeaders_Detail, NULL, json_RenderView_or_Tail, json_Cleanup, NULL); } webcit-dfsg.orig/dav_main.c0000644000175000017500000001721413223341037015726 0ustar michaelmichael/* * Entry point for GroupDAV functions * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" CtxType CTX_DAVNS = CTX_NONE; extern HashList *HandlerHash; HashList *DavNamespaces = NULL; /* * Output HTTP headers which are common to all requests. * * Please observe that we don't use the usual output_headers() * and wDumpContent() functions in the GroupDAV subsystem, so we * do our own header stuff here. * */ void dav_common_headers(void) { hprintf( "Server: %s / %s\r\n" "Connection: close\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software) ); } /* * string conversion function */ void euid_escapize(char *target, const char *source) { int i, len; int target_length = 0; strcpy(target, ""); len = strlen(source); for (i=0; iHdr->HR.dav_ifmatch); if (len > 0) { StrBufTrim(WCC->Hdr->HR.dav_ifmatch); if (ChrPtr(WCC->Hdr->HR.dav_ifmatch)[0] == '\"') { StrBufCutLeft(WCC->Hdr->HR.dav_ifmatch, 1); len --; for (i=0; iHdr->HR.dav_ifmatch)[i] == '\"') { StrBufCutAt(WCC->Hdr->HR.dav_ifmatch, i, NULL); len = StrLength(WCC->Hdr->HR.dav_ifmatch); } } } if (!strcmp(ChrPtr(WCC->Hdr->HR.dav_ifmatch), "*")) { FlushStrBuf(WCC->Hdr->HR.dav_ifmatch); } } switch (WCC->Hdr->HR.eReqType) { /* * The OPTIONS method is not required by GroupDAV but it will be * needed for future implementations of other DAV-based protocols. */ case eOPTIONS: dav_options(); break; /* * The PROPFIND method is basically used to list all objects in a * room, or to list all relevant rooms on the server. */ case ePROPFIND: dav_propfind(); break; /* * The GET method is used for fetching individual items. */ case eGET: dav_get(); break; /* * The PUT method is used to add or modify items. */ case ePUT: dav_put(); break; /* * The DELETE method kills, maims, and destroys. */ case eDELETE: dav_delete(); break; /* * The REPORT method tells us that Mike Shaver is a self-righteous asshole. */ case eREPORT: dav_report(); break; default: /* * Couldn't find what we were looking for. Die in a car fire. */ hprintf("HTTP/1.1 501 Method not implemented\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); wc_printf("GroupDAV method \"%s\" is not implemented.\r\n", ReqStrs[WCC->Hdr->HR.eReqType]); end_burst(); } } /* * Output our host prefix for globally absolute URL's. */ void dav_identify_host(void) { wc_printf("%s", ChrPtr(site_prefix)); } void tmplput_dav_HOSTNAME(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendPrintf(Target, "%s", ChrPtr(site_prefix)); } /* * Output our host prefix for globally absolute URL's. */ void dav_identify_hosthdr(void) { hprintf("%s", ChrPtr(site_prefix)); } void Header_HandleIfMatch(StrBuf *Line, ParsedHttpHdrs *hdr) { hdr->HR.dav_ifmatch = Line; } void Header_HandleDepth(StrBuf *Line, ParsedHttpHdrs *hdr) { if (!strcasecmp(ChrPtr(Line), "infinity")) { hdr->HR.dav_depth = 32767; } else if (strcmp(ChrPtr(Line), "0") == 0) { hdr->HR.dav_depth = 0; } else if (strcmp(ChrPtr(Line), "1") == 0) { hdr->HR.dav_depth = 1; } } int Conditional_DAV_DEPTH(StrBuf *Target, WCTemplputParams *TP) { return WC->Hdr->HR.dav_depth == GetTemplateTokenNumber(Target, TP, 2, 0); } void RegisterDAVNamespace(const char * UrlString, long UrlSLen, const char *DisplayName, long dslen, WebcitHandlerFunc F, WebcitRESTDispatchID RID, long Flags) { void *vHandler; /* first put it in... */ WebcitAddUrlHandler(UrlString, UrlSLen, DisplayName, dslen, F, Flags|PARSE_REST_URL); /* get it out again... */ GetHash(HandlerHash, UrlString, UrlSLen, &vHandler); ((WebcitHandler*)vHandler)->RID = RID; /* and keep a copy of it, so we can compare it later */ Put(DavNamespaces, UrlString, UrlSLen, vHandler, reference_free_handler); } int Conditional_DAV_NS(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; void *vHandler; const char *NS; long NSLen; GetTemplateTokenString(NULL, TP, 2, &NS, &NSLen); GetHash(HandlerHash, NS, NSLen, &vHandler); return WCC->Hdr->HR.Handler == vHandler; } int Conditional_DAV_NSCURRENT(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; void *vHandler; vHandler = CTX(CTX_NONE); return WCC->Hdr->HR.Handler == vHandler; } void tmplput_DAV_NAMESPACE(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (TP->Filter.ContextType == CTX_DAVNS) { WebcitHandler *H; H = (WebcitHandler*) CTX(CTX_DAVNS); if (H != NULL) StrBufAppendTemplate(Target, TP, H->Name, 0); } else if (WCC->Hdr->HR.Handler != NULL) { StrBufAppendTemplate(Target, TP, WCC->Hdr->HR.Handler->Name, 0); } } int GroupdavDispatchREST(RESTDispatchID WhichAction, int IgnoreFloor) { wcsession *WCC = WC; void *vDir; switch(WhichAction){ case ExistsID: GetHash(WCC->Directory, IKEY(WCC->ThisRoom->nRoomNameParts + 1), &vDir); return locate_message_by_uid(ChrPtr((StrBuf*)vDir)) != -1; /* TODO: remember euid */ case PutID: case DeleteID: break; } return 0; } void ServerStartModule_DAV (void) { DavNamespaces = NewHash(1, NULL); } void ServerShutdownModule_DAV (void) { DeleteHash(&DavNamespaces); } void InitModule_GROUPDAV (void) { RegisterCTX(CTX_DAVNS); RegisterDAVNamespace(HKEY("groupdav"), HKEY("GroupDAV"), dav_main, GroupdavDispatchREST, XHTTP_COMMANDS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE ); RegisterNamespace("DAV:HOSTNAME", 0, 0, tmplput_dav_HOSTNAME, NULL, CTX_NONE); RegisterConditional("COND:DAV:NS", 0, Conditional_DAV_NS, CTX_NONE); RegisterIterator("DAV:NS", 0, DavNamespaces, NULL, NULL, NULL, CTX_DAVNS, CTX_NONE, IT_NOFLAG ); RegisterConditional("COND:DAV:NSCURRENT", 0, Conditional_DAV_NSCURRENT, CTX_DAVNS); RegisterNamespace("DAV:NAMESPACE", 0, 1, tmplput_DAV_NAMESPACE, NULL, CTX_NONE); RegisterHeaderHandler(HKEY("IF-MATCH"), Header_HandleIfMatch); RegisterHeaderHandler(HKEY("DEPTH"), Header_HandleDepth); RegisterConditional("COND:DAV:DEPTH", 1, Conditional_DAV_DEPTH, CTX_NONE); } webcit-dfsg.orig/sysdep.c0000644000175000017500000003444113223341037015460 0ustar michaelmichael/* * WebCit "system dependent" code. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "sysdep.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_PTHREAD_H #include #endif #include "webcit.h" #include "sysdep.h" #ifdef HAVE_SYS_SELECT_H #include #endif #include "webserver.h" #include "modules_init.h" #if HAVE_BACKTRACE #include #endif pthread_mutex_t Critters[MAX_SEMAPHORES]; /* Things needing locking */ pthread_key_t MyConKey; /* TSD key for MyContext() */ pthread_key_t MyReq; /* TSD key for MyReq() */ int msock; /* master listening socket */ int time_to_die = 0; /* Nonzero if server is shutting down */ extern void *context_loop(ParsedHttpHdrs *Hdr); extern void *housekeeping_loop(void); extern void do_housekeeping(void); char ctdl_key_dir[PATH_MAX]=SSL_DIR; char file_crpt_file_key[PATH_MAX]=""; char file_crpt_file_csr[PATH_MAX]=""; char file_crpt_file_cer[PATH_MAX]=""; char file_etc_mimelist[PATH_MAX]=""; const char editor_absolut_dir[PATH_MAX]=EDITORDIR; /* nailed to what configure gives us. */ const char markdown_editor_absolutedir[]=MARKDOWNEDITORDIR; char etc_dir[PATH_MAX]; char static_dir[PATH_MAX]; /* calculated on startup */ char static_local_dir[PATH_MAX]; /* calculated on startup */ char static_icon_dir[PATH_MAX]; /* where should we find our mime icons? */ char *static_dirs[]={ /* needs same sort order as the web mapping */ (char*)static_dir, /* our templates on disk */ (char*)static_local_dir, /* user provided templates disk */ (char*)editor_absolut_dir, /* the editor on disk */ (char*)static_icon_dir, /* our icons... */ (char*)markdown_editor_absolutedir }; int ExitPipe[2]; HashList *GZMimeBlackList = NULL; /* mimetypes which shouldn't be gzip compressed */ void LoadMimeBlacklist(void) { StrBuf *MimeBlackLine; IOBuffer IOB; eReadState state; memset(&IOB, 0, sizeof(IOBuffer)); IOB.fd = open(file_etc_mimelist, O_RDONLY); IOB.Buf = NewStrBuf(); MimeBlackLine = NewStrBuf(); GZMimeBlackList = NewHash(1, NULL); do { state = StrBufChunkSipLine(MimeBlackLine, &IOB); switch (state) { case eMustReadMore: if (StrBuf_read_one_chunk_callback(IOB.fd, 0, &IOB) <= 0) state = eReadFail; break; case eReadSuccess: if ((StrLength(MimeBlackLine) > 1) && (*ChrPtr(MimeBlackLine) != '#')) { Put(GZMimeBlackList, SKEY(MimeBlackLine), (void*) 1, reference_free_handler); } FlushStrBuf(MimeBlackLine); break; case eReadFail: break; case eBufferNotEmpty: break; } } while (state != eReadFail); close(IOB.fd); FreeStrBuf(&IOB.Buf); FreeStrBuf(&MimeBlackLine); } void CheckGZipCompressionAllowed(const char *MimeType, long MLen) { void *v; wcsession *WCC = WC; if (WCC->Hdr->HR.gzip_ok) WCC->Hdr->HR.gzip_ok = GetHash(GZMimeBlackList, MimeType, MLen, &v) == 0; } void InitialiseSemaphores(void) { int i; /* Set up a bunch of semaphores to be used for critical sections */ for (i=0; i 0) && (ssock < 0) && (time_to_die == 0)); if ((msock == -1)||(time_to_die)) {/* ok, we're going down. */ int shutdown = 0; /* The first thread to get here will have to do the cleanup. * Make sure it's really just one. */ begin_critical_section(S_SHUTDOWN); if (msock == -1) { msock = -2; shutdown = 1; } end_critical_section(S_SHUTDOWN); if (shutdown == 1) {/* we're the one to cleanup the mess. */ http_destroy_modules(&Hdr); syslog(LOG_DEBUG, "I'm master shutdown: tagging sessions to be killed.\n"); shutdown_sessions(); syslog(LOG_DEBUG, "master shutdown: waiting for others\n"); sleeeeeeeeeep(1); /* wait so some others might finish... */ syslog(LOG_DEBUG, "master shutdown: cleaning up sessions\n"); do_housekeeping(); syslog(LOG_DEBUG, "master shutdown: cleaning up libical\n"); ShutDownWebcit(); syslog(LOG_DEBUG, "master shutdown exiting.\n"); exit(0); } break; } if (ssock < 0 ) continue; check_thread_pool_size(); /* Now do something. */ if (msock < 0) { if (ssock > 0) close (ssock); syslog(LOG_DEBUG, "in between."); pthread_exit(NULL); } else { /* Got it? do some real work! */ /* Set the SO_REUSEADDR socket option */ i = 1; setsockopt(ssock, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i)); /* If we are an HTTPS server, go crypto now. */ #ifdef HAVE_OPENSSL if (is_https) { if (starttls(ssock) != 0) { fail_this_transaction = 1; close(ssock); } } else #endif { int fdflags; fdflags = fcntl(ssock, F_GETFL); if (fdflags < 0) syslog(LOG_WARNING, "unable to get server socket flags! %s \n", strerror(errno)); fdflags = fdflags | O_NONBLOCK; if (fcntl(ssock, F_SETFL, fdflags) < 0) syslog(LOG_WARNING, "unable to set server socket nonblocking flags! %s \n", strerror(errno)); } if (fail_this_transaction == 0) { Hdr.http_sock = ssock; /* Perform an HTTP transaction... */ context_loop(&Hdr); /* Shut down SSL/TLS if required... */ #ifdef HAVE_OPENSSL if (is_https) { endtls(); } #endif /* ...and close the socket. */ if (Hdr.http_sock > 0) { lingering_close(ssock); } http_detach_modules(&Hdr); } } } while (!time_to_die); http_destroy_modules(&Hdr); syslog(LOG_DEBUG, "Thread exiting.\n"); pthread_exit(NULL); } /* * Shut us down the regular way. * signum is the signal we want to forward */ pid_t current_child; void graceful_shutdown_watcher(int signum) { syslog(LOG_INFO, "Watcher thread exiting.\n"); write(ExitPipe[0], HKEY(" ")); kill(current_child, signum); if (signum != SIGHUP) exit(0); } /* * Shut us down the regular way. * signum is the signal we want to forward */ pid_t current_child; void graceful_shutdown(int signum) { FILE *FD; int fd; syslog(LOG_INFO, "WebCit is being shut down on signal %d.\n", signum); fd = msock; msock = -1; time_to_die = 1; FD=fdopen(fd, "a+"); fflush (FD); fclose (FD); close(fd); write(ExitPipe[0], HKEY(" ")); } /* * Start running as a daemon. */ void start_daemon(char *pid_file) { int status = 0; pid_t child = 0; FILE *fp; int do_restart = 0; current_child = 0; /* Close stdin/stdout/stderr and replace them with /dev/null. * We don't just call close() because we don't want these fd's * to be reused for other files. */ chdir("/"); signal(SIGHUP, SIG_IGN); signal(SIGINT, SIG_IGN); signal(SIGQUIT, SIG_IGN); child = fork(); if (child != 0) { exit(0); } setsid(); umask(0); freopen("/dev/null", "r", stdin); freopen("/dev/null", "w", stdout); freopen("/dev/null", "w", stderr); signal(SIGTERM, graceful_shutdown_watcher); signal(SIGHUP, graceful_shutdown_watcher); do { current_child = fork(); if (current_child < 0) { perror("fork"); ShutDownLibCitadel (); exit(errno); } else if (current_child == 0) { /* child process */ signal(SIGHUP, graceful_shutdown); return; /* continue starting webcit. */ } else { /* watcher process */ if (pid_file) { fp = fopen(pid_file, "w"); if (fp != NULL) { fprintf(fp, "%d\n", getpid()); fclose(fp); } } waitpid(current_child, &status, 0); } do_restart = 0; /* Did the main process exit with an actual exit code? */ if (WIFEXITED(status)) { /* Exit code 0 means the watcher should exit */ if (WEXITSTATUS(status) == 0) { do_restart = 0; } /* Exit code 101-109 means the watcher should exit */ else if ( (WEXITSTATUS(status) >= 101) && (WEXITSTATUS(status) <= 109) ) { do_restart = 0; } /* Any other exit code means we should restart. */ else { do_restart = 1; } } /* Any other type of termination (signals, etc.) should also restart. */ else { do_restart = 1; } } while (do_restart); if (pid_file) { unlink(pid_file); } ShutDownLibCitadel (); exit(WEXITSTATUS(status)); } /* * Spawn an additional worker thread into the pool. */ void spawn_another_worker_thread() { pthread_t SessThread; /* Thread descriptor */ pthread_attr_t attr; /* Thread attributes */ int ret; ++num_threads_existing; ++num_threads_executing; /* set attributes for the new thread */ pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); /* * Our per-thread stacks need to be bigger than the default size, * otherwise the MIME parser crashes on FreeBSD. */ if ((ret = pthread_attr_setstacksize(&attr, 1024 * 1024))) { syslog(LOG_WARNING, "pthread_attr_setstacksize: %s\n", strerror(ret)); pthread_attr_destroy(&attr); } /* now create the thread */ if (pthread_create(&SessThread, &attr, (void *(*)(void *)) worker_entry, NULL) != 0) { syslog(LOG_WARNING, "Can't create thread: %s\n", strerror(errno)); } /* free up the attributes */ pthread_attr_destroy(&attr); } void webcit_calc_dirs_n_files(int relh, const char *basedir, int home, char *webcitdir, char *relhome) { char dirbuffer[PATH_MAX]=""; /* calculate all our path on a central place */ /* where to keep our config */ #define COMPUTE_DIRECTORY(SUBDIR) memcpy(dirbuffer,SUBDIR, sizeof dirbuffer);\ snprintf(SUBDIR,sizeof SUBDIR, "%s%s%s%s%s%s%s", \ (home&!relh)?webcitdir:basedir, \ ((basedir!=webcitdir)&(home&!relh))?basedir:"/", \ ((basedir!=webcitdir)&(home&!relh))?"/":"", \ relhome, \ (relhome[0]!='\0')?"/":"",\ dirbuffer,\ (dirbuffer[0]!='\0')?"/":""); basedir=RUNDIR; COMPUTE_DIRECTORY(socket_dir); basedir=WWWDIR "/static"; COMPUTE_DIRECTORY(static_dir); basedir=WWWDIR "/static/icons"; COMPUTE_DIRECTORY(static_icon_dir); basedir=WWWDIR "/static.local"; COMPUTE_DIRECTORY(static_local_dir); StripSlashes(static_dir, 1); StripSlashes(static_icon_dir, 1); StripSlashes(static_local_dir, 1); snprintf(file_crpt_file_key, sizeof file_crpt_file_key, "%s/citadel.key", ctdl_key_dir); snprintf(file_crpt_file_csr, sizeof file_crpt_file_csr, "%s/citadel.csr", ctdl_key_dir); snprintf(file_crpt_file_cer, sizeof file_crpt_file_cer, "%s/citadel.cer", ctdl_key_dir); basedir=ETCDIR; COMPUTE_DIRECTORY(etc_dir); StripSlashes(etc_dir, 1); snprintf(file_etc_mimelist, sizeof file_etc_mimelist, "%s/nogz-mimetypes.txt", etc_dir); /* we should go somewhere we can leave our coredump, if enabled... */ syslog(LOG_INFO, "Changing directory to %s\n", socket_dir); if (chdir(webcitdir) != 0) { perror("chdir"); } } void drop_root(uid_t UID) { struct passwd pw, *pwp = NULL; #ifdef HAVE_GETPWUID_R char pwbuf[SIZ]; #endif /* * Now that we've bound the sockets, change to the Citadel user id and its * corresponding group ids */ if (UID != -1) { #ifdef HAVE_GETPWUID_R #ifdef SOLARIS_GETPWUID pwp = getpwuid_r(UID, &pw, pwbuf, sizeof(pwbuf)); #else /* SOLARIS_GETPWUID */ getpwuid_r(UID, &pw, pwbuf, sizeof(pwbuf), &pwp); #endif /* SOLARIS_GETPWUID */ #else /* HAVE_GETPWUID_R */ pwp = NULL; #endif /* HAVE_GETPWUID_R */ if (pwp == NULL) syslog(LOG_CRIT, "WARNING: getpwuid(%d): %s\n" "Group IDs will be incorrect.\n", UID, strerror(errno)); else { initgroups(pw.pw_name, pw.pw_gid); if (setgid(pw.pw_gid)) syslog(LOG_CRIT, "setgid(%ld): %s\n", (long)pw.pw_gid, strerror(errno)); } syslog(LOG_INFO, "Changing uid to %ld\n", (long)UID); if (setuid(UID) != 0) { syslog(LOG_CRIT, "setuid() failed: %s\n", strerror(errno)); } #if defined (HAVE_SYS_PRCTL_H) && defined (PR_SET_DUMPABLE) prctl(PR_SET_DUMPABLE, 1); #endif } } /* * print the actual stack frame. */ void wc_backtrace(long LogLevel) { #ifdef HAVE_BACKTRACE void *stack_frames[50]; size_t size, i; char **strings; size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*)); strings = backtrace_symbols(stack_frames, size); for (i = 0; i < size; i++) { if (strings != NULL) syslog(LogLevel, "%s\n", strings[i]); else syslog(LogLevel, "%p\n", stack_frames[i]); } free(strings); #endif } webcit-dfsg.orig/dav_get.c0000644000175000017500000001621313223341037015557 0ustar michaelmichael/* * Handles GroupDAV GET requests. * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" /* * Fetch the entire contents of the room as one big ics file. * This is for "webcal://" type access. */ void dav_get_big_ics(void) { char buf[1024]; serv_puts("ICAL getics"); serv_getln(buf, sizeof buf); if (buf[0] != '1') { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("%s\r\n", &buf[4] ); end_burst(); return; } hprintf("HTTP/1.1 200 OK\r\n"); dav_common_headers(); hprintf("Content-type: text/calendar; charset=UTF-8\r\n"); begin_burst(); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { wc_printf("%s\r\n", buf); } end_burst(); } /* * MIME parser callback function for dav_get() * Helps identify the relevant section of a multipart message */ void extract_preferred(char *name, char *filename, char *partnum, char *disp, void *content, char *cbtype, char *cbcharset, size_t length, char *encoding, char *cbid, void *userdata) { struct epdata *epdata = (struct epdata *)userdata; int hit = 0; /* We only want the first one that we found */ if (!IsEmptyStr(epdata->found_section)) return; /* Check for a content type match */ if (strlen(epdata->desired_content_type_1) > 0) { if (!strcasecmp(epdata->desired_content_type_1, cbtype)) { hit = 1; } } if (!IsEmptyStr(epdata->desired_content_type_2)) { if (!strcasecmp(epdata->desired_content_type_2, cbtype)) { hit = 1; } } /* Is this the one? If so, output it. */ if (hit) { safestrncpy(epdata->found_section, partnum, sizeof epdata->found_section); if (!IsEmptyStr(cbcharset)) { safestrncpy(epdata->charset, cbcharset, sizeof epdata->charset); } hprintf("Content-type: %s; charset=%s\r\n", cbtype, epdata->charset); begin_burst(); StrBufAppendBufPlain(WC->WBuf, content, length, 0); end_burst(); } } /* * The pathname is always going to take one of two formats: * /groupdav/room_name/euid (GroupDAV) * /groupdav/room_name (webcal) */ void dav_get(void) { wcsession *WCC = WC; StrBuf *dav_roomname; StrBuf *dav_uid; long dav_msgnum = (-1); char buf[1024]; int in_body = 0; char *ptr; char *endptr; char *msgtext = NULL; size_t msglen = 0; size_t msgalloc = 0; int linelen; char content_type[128]; char charset[128]; char date[128]; struct epdata epdata; if (StrBufNum_tokens(WCC->Hdr->HR.ReqLine, '/') < 2) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); wc_printf("The object you requested was not found.\r\n"); end_burst(); return; } dav_roomname = NewStrBuf();; dav_uid = NewStrBuf();; StrBufExtract_token(dav_roomname, WCC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(dav_uid, WCC->Hdr->HR.ReqLine, 1, '/'); if ((!strcasecmp(ChrPtr(dav_uid), "ics")) || (!strcasecmp(ChrPtr(dav_uid), "calendar.ics"))) { FlushStrBuf(dav_uid); } /* Go to the correct room. */ if (strcasecmp(ChrPtr(WCC->CurRoom.name), ChrPtr(dav_roomname))) { gotoroom(dav_roomname); } if (strcasecmp(ChrPtr(WCC->CurRoom.name), ChrPtr(dav_roomname))) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); wc_printf("There is no folder called \"%s\" on this server.\r\n", ChrPtr(dav_roomname)); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /** GET on the collection itself returns an ICS of the entire collection. */ if (StrLength(dav_uid) == 0) { dav_get_big_ics(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } dav_msgnum = locate_message_by_uid(ChrPtr(dav_uid)); serv_printf("MSG2 %ld", dav_msgnum); serv_getln(buf, sizeof buf); if (buf[0] != '1') { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); wc_printf("Object \"%s\" was not found in the \"%s\" folder.\r\n", ChrPtr(dav_uid), ChrPtr(dav_roomname)); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); /* We got it; a message is now arriving from the server. Read it in. */ in_body = 0; strcpy(charset, "UTF-8"); strcpy(content_type, "text/plain"); strcpy(date, ""); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { linelen = strlen(buf); /* Append it to the buffer */ if ((msglen + linelen + 3) > msgalloc) { msgalloc = ( (msgalloc > 0) ? (msgalloc * 2) : 1024 ); msgtext = realloc(msgtext, msgalloc); } strcpy(&msgtext[msglen], buf); msglen += linelen; strcpy(&msgtext[msglen], "\n"); msglen += 1; /* Also learn some things about the message */ if (linelen == 0) { in_body = 1; } if (!in_body) { if (!strncasecmp(buf, "Date:", 5)) { safestrncpy(date, &buf[5], sizeof date); striplt(date); } if (!strncasecmp(buf, "Content-type:", 13)) { safestrncpy(content_type, &buf[13], sizeof content_type); striplt(content_type); ptr = bmstrcasestr(&buf[13], "charset="); if (ptr) { safestrncpy(charset, ptr+8, sizeof charset); striplt(charset); endptr = strchr(charset, ';'); if (endptr != NULL) strcpy(endptr, ""); } endptr = strchr(content_type, ';'); if (endptr != NULL) strcpy(endptr, ""); } } } msgtext[msglen] = 0; /* Output headers common to single or multi part messages */ hprintf("HTTP/1.1 200 OK\r\n"); dav_common_headers(); hprintf("etag: \"%ld\"\r\n", dav_msgnum); hprintf("Date: %s\r\n", date); memset(&epdata, 0, sizeof(struct epdata)); safestrncpy(epdata.charset, charset, sizeof epdata.charset); /* If we have a multipart message on our hands, and we are in a groupware room, * strip it down to only the relevant part. */ if (!strncasecmp(content_type, "multipart/", 10)) { if ( (WCC->CurRoom.defview == VIEW_CALENDAR) || (WCC->CurRoom.defview == VIEW_TASKS) ) { strcpy(epdata.desired_content_type_1, "text/calendar"); } else if (WCC->CurRoom.defview == VIEW_ADDRESSBOOK) { strcpy(epdata.desired_content_type_1, "text/vcard"); strcpy(epdata.desired_content_type_2, "text/x-vcard"); } mime_parser(msgtext, &msgtext[msglen], extract_preferred, NULL, NULL, (void *)&epdata, 0); } /* If epdata.found_section is empty, we haven't output anything yet, so output the whole thing */ if (IsEmptyStr(epdata.found_section)) { ptr = msgtext; endptr = &msgtext[msglen]; hprintf("Content-type: %s; charset=%s\r\n", content_type, charset); in_body = 0; do { ptr = memreadline(ptr, buf, sizeof buf); if (in_body) { wc_printf("%s\r\n", buf); } else if ((buf[0] == 0) && (in_body == 0)) { in_body = 1; begin_burst(); } } while (ptr < endptr); end_burst(); } free(msgtext); } webcit-dfsg.orig/js/0000755000175000017500000000000013223341037014413 5ustar michaelmichaelwebcit-dfsg.orig/js/.jshintrc0000644000175000017500000000045713223341037016246 0ustar michaelmichael{ "bitwise": true, "curly": true, "eqeqeq": true, "forin": true, "freeze": true, "immed": true, "laxbreak": true, "newcap": true, "noarg": true, "noempty": true, "nonbsp": true, "nonew": true, "strict": true, "undef": true, "unused": true, "indent": 2, "maxlen": 120 } webcit-dfsg.orig/scripts/0000755000175000017500000000000013223341037015466 5ustar michaelmichaelwebcit-dfsg.orig/scripts/get_ical_data__template.sed0000644000175000017500000000016613223341037022760 0ustar michaelmichael#! /bin/sed -nf H $ { x s/\n//g p } $ { s/.*typedef *enum *__ICALTYPE__ *{\(.*\)} *__ICALTYPE__ *;.*/\1/ } webcit-dfsg.orig/scripts/get_ical_data.sh0000755000175000017500000000451413223341037020571 0ustar michaelmichael#!/bin/sh ICAL=/usr/local/ctdlsupport/include/libical/ical.h if test -f /usr/include/libical/ical.h; then ICAL=/usr/include/libical/ical.h fi if test ! -f ${ICAL}; then echo "failed to locate libical headers - please install the libical development packages or heardes" exit 500 fi ICALTYPES="icalproperty_kind"\ " icalcomponent_kind"\ " icalrequeststatus"\ " ical_unknown_token_handling"\ " icalrecurrencetype_frequency"\ " icalrecurrencetype_weekday"\ " icalvalue_kind"\ " icalproperty_action"\ " icalproperty_carlevel"\ " icalproperty_class"\ " icalproperty_cmd"\ " icalproperty_method"\ " icalproperty_querylevel"\ " icalproperty_status"\ " icalproperty_transp"\ " icalproperty_xlicclass"\ " icalparameter_kind"\ " icalparameter_action"\ " icalparameter_cutype"\ " icalparameter_enable"\ " icalparameter_encoding"\ " icalparameter_fbtype"\ " icalparameter_local"\ " icalparameter_partstat"\ " icalparameter_range"\ " icalparameter_related"\ " icalparameter_reltype"\ " icalparameter_role"\ " icalparameter_rsvp"\ " icalparameter_value"\ " icalparameter_xliccomparetype"\ " icalparameter_xlicerrortype"\ " icalparser_state"\ " icalerrorenum"\ " icalerrorstate"\ " icalrestriction_kind" ( printf '#include "webcit.h"\n\n\n' for icaltype in $ICALTYPES; do printf "typedef struct _Ical_${icaltype} {\n"\ " const char *Name;\n"\ " long NameLen;\n"\ " ${icaltype} map;\n"\ "} Ical_${icaltype};\n\n\n" done for icaltype in $ICALTYPES; do cat ./scripts/get_ical_data__template.sed | \ sed -e "s;__ICALTYPE__;$icaltype;g" > \ /tmp/get_ical_data.sed printf "Ical_${icaltype} ${icaltype}_map[] = {\n" cat ${ICAL} |\ sed -e 's;/\*.*\*/;;' -e 's;\t;;g' |\ sed -nf /tmp/get_ical_data.sed |\ sed -e "s;.*typedef *enum *${icaltype} *{\(.*\)} ${icaltype} *\;.*;\1,;" \ -e 's;/\*.*\*/;;' \ -e 's;/;\n/\n;g' \ -e 's;,;,\n;g' \ -e 's; *;;g' \ -e 's;^t*;;g' \ -e 's;\=[0-9]*;;g'|\ sed -e 's;\(.*\),;{HKEY("\1"), \1},;' printf '{"", 0, 0}\n};\n\n\n' done printf "void \nInitModule_ICAL_MAPS\n(void)\n{\n\tint i;\n" for icaltype in $ICALTYPES; do printf "\tfor (i=0; ${icaltype}_map[i].NameLen > 0; i++)\n"\ " RegisterTokenParamDefine (\n"\ " ${icaltype}_map[i].Name,\n"\ " ${icaltype}_map[i].NameLen,\n"\ " ${icaltype}_map[i].map);\n"\ done printf "\n}\n\n" ) > ical_maps.c webcit-dfsg.orig/scripts/mk_module_init.sh0000755000175000017500000002507413223341037021034 0ustar michaelmichael#!/bin/sh # # Script to generate $C_FILE # ECHO=/usr/bin/printf #MINUS_e=X`$ECHO -n -e` #if [ $MINUS_e != "X" ] ; then # MINUS_e="" #else # MINUS_e="-e" #fi #MINUS_E=X`$ECHO -n -E` #if [ $MINUS_E != "X" ] ; then # MINUS_E="" #else # MINUS_E="-E" #fi CUR_DIR=`pwd` C_FILE="$CUR_DIR/modules_init.c" H_FILE="$CUR_DIR/modules_init.h" MOD_FILE="$CUR_DIR/Make_modules" SRC_FILE="$CUR_DIR/Make_sources" U_FILE="$CUR_DIR/modules_upgrade.c" /usr/bin/printf "Scanning extension modules for entry points.\n" rm -f $C_FILE $H_FILE # server lifetime: START_FUNCS=`grep -a ServerStartModule_ *.c |sed "s;.*:;;" |sort -u` INIT_FUNCS=`grep -a InitModule_ *.c |sed "s;.*:;;" |sort -u` INIT2_FUNCS=`grep -a InitModule2_ *.c |sed "s;.*:;;" |sort -u` FINALIZE_FUNCS=`grep -a FinalizeModule_ *.c |sed "s;.*:;;" |sort -u` SHUTDOWN_FUNCS=`grep -a ServerShutdownModule_ *.c |sed "s;.*:;;" |sort -u` # session hooks: SESS_NEW_FUNCS=`grep -a SessionNewModule_ *.c |sed "s;.*:;;" |sort -u` SESS_ATTACH_FUNCS=`grep -a SessionAttachModule_ *.c |sed "s;.*:;;" |sort -u` SESS_DETACH_FUNCS=`grep -a SessionDetachModule_ *.c |sed "s;.*:;;" |sort -u` SESS_DESTROY_FUNCS=`grep -a SessionDestroyModule_ *.c |sed "s;.*:;;" |sort -u` HTTP_NEW_FUNCS=`grep -a HttpNewModule_ *.c |sed "s;.*:;;" |sort -u` HTTP_DETACH_FUNCS=`grep -a HttpDetachModule_ *.c |sed "s;.*:;;" |sort -u` HTTP_DESTROY_FUNCS=`grep -a HttpDestroyModule_ *.c |sed "s;.*:;;" |sort -u` #SESS_NEW_FUNCS=`grep -a SessionNewModule_ *.c |sed "s;.*:;;" |sort -u` #start the header file cat < $H_FILE /* * $H_FILE * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE */ #ifndef MODULES_INIT_H #define MODULES_INIT_H extern size_t nSizErrmsg; /* * server lifetime: */ void initialise_modules (void); void initialise2_modules (void); void start_modules (void); void shutdown_modules (void); /* * Session lifetime: */ void session_new_modules (wcsession *sess); void session_attach_modules (wcsession *sess); void session_detach_modules (wcsession *sess); void session_destroy_modules (wcsession **sess); void http_new_modules (ParsedHttpHdrs *httpreq); void http_detach_modules (ParsedHttpHdrs *httpreq); void http_destroy_modules (ParsedHttpHdrs *httpreq); /* * forwards... */ EOF #start of the files which inturn removes any existing file # # start the Makefile included file for $SERV_MODULES cat <$MOD_FILE # # Make_modules # This file is to be included by Makefile to dynamically add modules to the build process # THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE # EOF # start the Makefile included file for $SOURCES cat <$SRC_FILE # # Make_sources # This file is to be included by Makefile to dynamically add modules to the build process # THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE # EOF # start the c file cat <$C_FILE /* * $C_FILE * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE */ #include "sysdep.h" #include #include #include #include #include #include #include #include "webcit.h" #include "modules_init.h" #include "webserver.h" void LogPrintMessages(long err); extern long DetailErrorFlags; void start_modules (void) { EOF #******************************************************************************** # server ******** start ******** module logic. #******************************************************************************** cat <> $H_FILE /* Server Start Hooks: */ EOF for HOOK in $START_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;ServerStartModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Starting $HOOKNAME\n"); #endif $HOOK(); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(void); EOF done #******************************************************************************** # server module ******** initialisation ******** logic. #******************************************************************************** cat <> $H_FILE /* Server Init Hooks: */ EOF cat <>$C_FILE } void initialise_modules (void) { EOF for HOOK in $INIT_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;InitModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing $HOOKNAME\n"); #endif $HOOK(); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(void); EOF done #******************************************************************************** # server module ******** initialisation ******** second stage. #******************************************************************************** cat <> $H_FILE /* Server Init Hooks: */ EOF cat <>$C_FILE } void initialise2_modules (void) { EOF for HOOK in $INIT2_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;InitModule2_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing $HOOKNAME\n"); #endif $HOOK(); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(void); EOF done #******************************************************************************** # server module ***** shutdown ***** logic. #******************************************************************************** cat <> $H_FILE /* Server shutdown Hooks: */ EOF cat <>$C_FILE } void shutdown_modules (void) { EOF for HOOK in $SHUTDOWN_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;ServerShutdownModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Shutting down $HOOKNAME\n"); #endif $HOOK(); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(void); EOF done #******************************************************************************** # NEW-session module logic. #******************************************************************************** cat <> $H_FILE /* Session New Hooks: */ EOF cat <>$C_FILE } void session_new_modules (wcsession *sess) { EOF for HOOK in $SESS_NEW_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;SessionNewModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing $HOOKNAME\n"); #endif $HOOK(sess); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(wcsession *sess); EOF done #******************************************************************************** # ATTACH-Session module logic. #******************************************************************************** cat <> $H_FILE /* Session Attach Hooks: */ EOF cat <>$C_FILE } void session_attach_modules (wcsession *sess) { EOF for HOOK in $SESS_ATTACH_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;SessionAttachModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Attaching Session; $HOOKNAME\n"); #endif $HOOK(sess); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(wcsession *sess); EOF done #******************************************************************************** # DETACH-Session module logic. #******************************************************************************** cat <> $H_FILE /* Session detach Hooks: */ EOF cat <>$C_FILE } void session_detach_modules (wcsession *sess) { EOF for HOOK in $SESS_DETACH_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;SessionDetachModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing $HOOKNAME\n"); #endif $HOOK(sess); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(wcsession *sess); EOF done #******************************************************************************** # DESTROY-Session module logic. #******************************************************************************** cat <> $H_FILE /* Session destroy Hooks: */ EOF cat <>$C_FILE } void session_destroy_modules (wcsession **sess) { EOF for HOOK in $SESS_DESTROY_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;SessionDestroyModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Initializing $HOOKNAME\n"); #endif $HOOK(*sess); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(wcsession *sess); EOF done cat <>$C_FILE free((*sess)); (*sess) = NULL; } EOF #******************************************************************************** # NEW-Httprequest module logic. #******************************************************************************** cat <> $C_FILE void http_new_modules (ParsedHttpHdrs *httpreq) { EOF for HOOK in $HTTP_NEW_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;HttpNewModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "NEW $HOOKNAME\n"); #endif $HOOK(httpreq); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(ParsedHttpHdrs *httpreq); EOF done cat <>$C_FILE } EOF #******************************************************************************** # DETACH-Httprequest module logic. #******************************************************************************** cat <> $C_FILE void http_detach_modules (ParsedHttpHdrs *httpreq) { EOF for HOOK in $HTTP_DETACH_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;HttpDetachModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Detaching $HOOKNAME\n"); #endif $HOOK(httpreq); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(ParsedHttpHdrs *httpreq); EOF done cat <>$C_FILE } EOF #******************************************************************************** # DESTROY-Httprequest module logic. #******************************************************************************** cat <> $C_FILE void http_destroy_modules (ParsedHttpHdrs *httpreq) { EOF for HOOK in $HTTP_DESTROY_FUNCS; do HOOKNAME=`echo $HOOK |sed "s;HttpDestroyModule_;;"` # Add this entry point to the .c file cat <> $C_FILE #ifdef DBG_PRINNT_HOOKS_AT_START syslog(LOG_DEBUG, "Destructing $HOOKNAME\n"); #endif $HOOK(httpreq); EOF # Add this entry point to the .h file cat <> $H_FILE extern void $HOOK(ParsedHttpHdrs *httpreq); EOF done cat <>$C_FILE } EOF cat <> $H_FILE #endif /* MODULES_INIT_H */ EOF webcit-dfsg.orig/packageversion0000644000175000017500000000000213223341037016713 0ustar michaelmichael2 webcit-dfsg.orig/bbsview_renderer.c0000644000175000017500000002424713223341037017503 0ustar michaelmichael/* * BBS View renderer module for WebCit * * Note: we briefly had a dynamic UI for this. I thought it was cool, but * it was not received well by the user community. If you want to play * with it, go get commit dcf99fe61379b78436c387ea3f89ebfd4ffaf635 of * bbsview_renderer.c and have fun. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #define RANGE 5 #include "webcit.h" #include "webserver.h" #include "dav.h" /* * Data which gets passed around between the various functions in this module * */ struct bbsview { long *msgs; /* Array of msgnums for messages we are displaying */ int num_msgs; /* Number of msgnums stored in 'msgs' */ long lastseen; /* The number of the last seen message in this room */ int alloc_msgs; /* Currently allocated size of array */ int requested_page; /* Which page number did the user request? */ int num_pages; /* Total number of pages in this room */ long start_reading_at; /* Start reading at the page containing this message */ }; /* * Attempt to determine the closest thing to the "last seen message number" using the * results of the GTSN command */ long bbsview_get_last_seen(void) { char buf[SIZ] = "0"; serv_puts("GTSN"); serv_getln(buf, sizeof buf); if (buf[0] == '2') { char *colon_pos; char *comma_pos; comma_pos = strchr(buf, ','); /* kill first comma and everything to its right */ if (comma_pos) { *comma_pos = 0; } colon_pos = strchr(buf, ':'); /* kill first colon and everything to its left */ if (colon_pos) { strcpy(buf, ++colon_pos); } } return(atol(buf)); } /* * Entry point for message read operations. */ int bbsview_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { struct bbsview *BBS = malloc(sizeof(struct bbsview)); memset(BBS, 0, sizeof(struct bbsview)); *ViewSpecific = BBS; Stat->startmsg = (-1); /* not used here */ Stat->sortit = 1; /* not used here */ Stat->num_displayed = DEFAULT_MAXMSGS; /* not used here */ BBS->requested_page = 0; BBS->lastseen = bbsview_get_last_seen(); BBS->start_reading_at = 0; /* By default, the requested page is the first one. */ if (havebstr("start_reading_at")) { BBS->start_reading_at = lbstr("start_reading_at"); BBS->requested_page = (-4); } /* However, if we are asked to start with a specific message number, make sure * we start on the page containing that message */ /* Or, if a specific page was requested, make sure we go there */ else if (havebstr("page")) { BBS->requested_page = ibstr("page"); } /* Otherwise, if this is a "read new" operation, make sure we start on the page * containing the first new message */ else if (oper == 3) { BBS->requested_page = (-3); } if (havebstr("maxmsgs")) { Stat->maxmsgs = ibstr("maxmsgs"); } if (Stat->maxmsgs == 0) Stat->maxmsgs = DEFAULT_MAXMSGS; /* perform a "read all" call to fetch the message list -- we'll cut it down later */ rlid[2].cmd(cmd, len); return 200; } /* * This function is called for every message in the list. */ int bbsview_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i) { struct bbsview *BBS = (struct bbsview *) *ViewSpecific; if (BBS->alloc_msgs == 0) { BBS->alloc_msgs = 1000; BBS->msgs = malloc(BBS->alloc_msgs * sizeof(long)); memset(BBS->msgs, 0, (BBS->alloc_msgs * sizeof(long)) ); } /* Check our buffer size */ if (BBS->num_msgs >= BBS->alloc_msgs) { BBS->alloc_msgs *= 2; BBS->msgs = realloc(BBS->msgs, (BBS->alloc_msgs * sizeof(long))); memset(&BBS->msgs[BBS->num_msgs], 0, ((BBS->alloc_msgs - BBS->num_msgs) * sizeof(long)) ); } BBS->msgs[BBS->num_msgs++] = Msg->msgnum; return 200; } int bbsview_sortfunc(const void *s1, const void *s2) { long l1; long l2; l1 = *(long *)(s1); l2 = *(long *)(s2); if (l1 > l2) return(+1); if (l1 < l2) return(-1); return(0); } int bbsview_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { struct bbsview *BBS = (struct bbsview *) *ViewSpecific; int i; int seq; const StrBuf *Mime; int start_index = 0; int end_index = 0; int go_to_the_very_end = 0; if (Stat->nummsgs > 0) { syslog(LOG_DEBUG, "sorting %d messages\n", BBS->num_msgs); qsort(BBS->msgs, (size_t)(BBS->num_msgs), sizeof(long), bbsview_sortfunc); } if ((BBS->num_msgs % Stat->maxmsgs) == 0) { BBS->num_pages = BBS->num_msgs / Stat->maxmsgs; } else { BBS->num_pages = (BBS->num_msgs / Stat->maxmsgs) + 1; } /* If the requested page number is -4, * it means "whichever page on which msg#xxxxx starts" * Change to the page number which contains that message. */ if (BBS->requested_page == (-4)) { if (BBS->num_msgs == 0) { BBS->requested_page = 0; } else { for (i=0; inum_msgs; ++i) { if ( (BBS->msgs[i] >= BBS->start_reading_at) && (BBS->requested_page == (-4)) ) { BBS->requested_page = (i / Stat->maxmsgs) ; } } } } /* If the requested page number is -3, * it means "whichever page on which new messages start" * Change that to an actual page number now. */ if (BBS->requested_page == (-3)) { if (BBS->num_msgs == 0) { /* * The room is empty; just start at the top and leave it there. */ BBS->requested_page = 0; } else if ( (BBS->num_msgs > 0) && (BBS->lastseen <= BBS->msgs[0]) ) { /* * All messages are new; this is probably the user's first visit to the room, * so start at the last page instead of showing ancient history. */ BBS->requested_page = BBS->num_pages - 1; go_to_the_very_end = 1; } else { /* * Some messages are old and some are new. Go to the start of new messages. */ for (i=0; inum_msgs; ++i) { if ( (BBS->msgs[i] > BBS->lastseen) && ( (i == 0) || (BBS->msgs[i-1] <= BBS->lastseen) ) ) { BBS->requested_page = (i / Stat->maxmsgs) ; } } } } /* Still set to -3 ? If so, that probably means that there are no new messages, * so we'll go to the *end* of the final page. */ if (BBS->requested_page == (-3)) { if (BBS->num_msgs == 0) { BBS->requested_page = 0; } else { BBS->requested_page = BBS->num_pages - 1; } } /* keep the requested page within bounds */ if (BBS->requested_page < 0) BBS->requested_page = 0; if (BBS->requested_page >= BBS->num_pages) BBS->requested_page = BBS->num_pages - 1; start_index = BBS->requested_page * Stat->maxmsgs; if (start_index < 0) start_index = 0; end_index = start_index + Stat->maxmsgs - 1; for (seq = 0; seq < 3; ++seq) { /* cheap & sleazy way of rendering the page numbers twice */ if ( (seq == 1) && (Stat->nummsgs > 0)) { /* display the selected range of messages */ for (i=start_index; (i<=end_index && inum_msgs); ++i) { if ( (BBS->msgs[i] > BBS->lastseen) && ( (i == 0) || (BBS->msgs[i-1] <= BBS->lastseen) ) ) { /* new messages start here */ do_template("start_of_new_msgs"); if (!go_to_the_very_end) { StrBufAppendPrintf(WC->trailing_javascript, "location.href=\"#newmsgs\";\n"); } } if (BBS->msgs[i] > 0L) { read_message(WC->WBuf, HKEY("view_message"), BBS->msgs[i], NULL, &Mime, NULL); } if ( (i == (BBS->num_msgs - 1)) && (BBS->msgs[i] <= BBS->lastseen) ) { /* no new messages */ do_template("no_new_msgs"); if (!go_to_the_very_end) { StrBufAppendPrintf(WC->trailing_javascript, "location.href=\"#nonewmsgs\";\n"); } } } } else if ( (seq == 0) || (seq == 2) ) { int first; int last; /* Display the selecto-bar with the page numbers */ wc_printf("
    "); if (seq == 2) { wc_printf(""); } wc_printf(_("Go to page: ")); if (seq == 2) { wc_printf(""); } first = 0; last = BBS->num_pages - 1; for (i=0; i<=last; ++i) { if ( (i == first) || (i == last) || (i == BBS->requested_page) || ( ((BBS->requested_page - i) < RANGE) && ((BBS->requested_page - i) > (0 - RANGE)) ) ) { if ( (i == last) && (last - BBS->requested_page > RANGE) ) { wc_printf("... "); } if (i == BBS->requested_page) { wc_printf("["); } else { wc_printf("CurRoom.name)); wc_printf("?start_reading_at=%ld\">", BBS->msgs[i*Stat->maxmsgs] ); /* wc_printf("?page=%d\">", i); */ wc_printf(""); } if ( (i == first) && (BBS->requested_page > (RANGE + 1)) ) { wc_printf(_("First")); } else if ( (i == last) && (last - BBS->requested_page > RANGE) ) { wc_printf(_("Last")); } else { wc_printf("%d", i + 1); /* change to one-based for display */ } if (i == BBS->requested_page) { wc_printf("]"); } else { wc_printf(""); wc_printf(""); } if ( (i == first) && (BBS->requested_page > (RANGE + 1)) ) { wc_printf(" ..."); } if (i != last) { wc_printf(" "); } } } wc_printf("
    \n"); } } if (go_to_the_very_end) { StrBufAppendPrintf(WC->trailing_javascript, "location.href=\"#end_of_msgs\";\n"); } return(0); } int bbsview_Cleanup(void **ViewSpecific) { struct bbsview *BBS = (struct bbsview *) *ViewSpecific; if (BBS->alloc_msgs != 0) { free(BBS->msgs); } free(BBS); wDumpContent(1); return 0; } void InitModule_BBSVIEWRENDERERS (void) { RegisterReadLoopHandlerset( VIEW_BBS, bbsview_GetParamsGetServerCall, NULL, NULL, NULL, bbsview_LoadMsgFromServer, bbsview_RenderView_or_Tail, bbsview_Cleanup, NULL ); } webcit-dfsg.orig/dav_options.c0000644000175000017500000000766213223341037016503 0ustar michaelmichael/* * Handles DAV OPTIONS requests (experimental -- not required by GroupDAV) * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" /* * The pathname is always going to be /groupdav/room_name/msg_num */ void dav_options(void) { wcsession *WCC = WC; StrBuf *dav_roomname; StrBuf *dav_uid; long dav_msgnum = (-1); char datestring[256]; time_t now; now = time(NULL); http_datestring(datestring, sizeof datestring, now); dav_roomname = NewStrBuf(); dav_uid = NewStrBuf(); StrBufExtract_token(dav_roomname, WCC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(dav_uid, WCC->Hdr->HR.ReqLine, 1, '/'); syslog(LOG_DEBUG, "\033[35m%s (logged_in=%d)\033[0m", ChrPtr(WCC->Hdr->HR.ReqLine), WC->logged_in); /* * If the room name is blank, the client is doing an OPTIONS on the root. */ if (StrLength(dav_roomname) == 0) { syslog(LOG_DEBUG, "\033[36mOPTIONS requested for root\033[0m"); hprintf("HTTP/1.1 200 OK\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("DAV: 1\r\n"); hprintf("Allow: OPTIONS, PROPFIND\r\n"); hprintf("\r\n"); begin_burst(); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* Go to the correct room. */ if (strcasecmp(ChrPtr(WC->CurRoom.name), ChrPtr(dav_roomname))) { gotoroom(dav_roomname); } if (strcasecmp(ChrPtr(WC->CurRoom.name), ChrPtr(dav_roomname))) { syslog(LOG_DEBUG, "\033[36mOPTIONS requested for invalid item\033[0m"); hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf( "Content-Type: text/plain\r\n"); begin_burst(); wc_printf( "There is no folder called \"%s\" on this server.\r\n", ChrPtr(dav_roomname) ); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* If dav_uid is non-empty, client is requesting an OPTIONS on * a specific item in the room. */ if (StrLength(dav_uid) != 0) { syslog(LOG_DEBUG, "\033[36mOPTIONS requested for specific item\033[0m"); dav_msgnum = locate_message_by_uid(ChrPtr(dav_uid)); if (dav_msgnum < 0) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf( "Object \"%s\" was not found in the \"%s\" folder.\r\n", ChrPtr(dav_uid), ChrPtr(dav_roomname) ); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); end_burst();return; } hprintf("HTTP/1.1 200 OK\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("DAV: 1\r\n"); hprintf("Allow: OPTIONS, PROPFIND, GET, PUT, DELETE\r\n"); begin_burst(); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); /* * We got to this point, which means that the client is requesting * an OPTIONS on the room itself. */ syslog(LOG_DEBUG, "\033[36mOPTIONS requested for room '%s' (%slogged in)\033[0m", ChrPtr(WC->CurRoom.name), ((WC->logged_in) ? "" : "not ") ); hprintf("HTTP/1.1 200 OK\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); /* * Offer CalDAV (RFC 4791) if this is a calendar room */ if ( (WC->CurRoom.view == VIEW_CALENDAR) || (WC->CurRoom.view == VIEW_CALBRIEF) ) { hprintf("DAV: 1, calendar-access\r\n"); syslog(LOG_DEBUG, "\033[36mDAV: 1, calendar-access\033[0m"); } else { hprintf("DAV: 1\r\n"); syslog(LOG_DEBUG, "\033[36mDAV: 1\033[0m"); } hprintf("Allow: OPTIONS, PROPFIND, GET, PUT, REPORT\r\n"); begin_burst(); end_burst(); } webcit-dfsg.orig/Make_modules0000644000175000017500000000027113223341055016327 0ustar michaelmichael# # Make_modules # This file is to be included by Makefile to dynamically add modules to the build process # THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE # webcit-dfsg.orig/notes.c0000644000175000017500000003146013223341037015277 0ustar michaelmichael #include "webcit.h" #include "dav.h" #include "webserver.h" CtxType CTX_VNOTE = CTX_NONE; int pastel_palette[9][3] = { { 0x80, 0x80, 0x80 }, { 0xff, 0x80, 0x80 }, { 0x80, 0x80, 0xff }, { 0xff, 0xff, 0x80 }, { 0x80, 0xff, 0x80 }, { 0xff, 0x80, 0xff }, { 0x80, 0xff, 0xff }, { 0xff, 0x80, 0x80 }, { 0x80, 0x80, 0x80 } }; /* * Fetch a message from the server and extract a vNote from it */ struct vnote *vnote_new_from_msg(long msgnum,int unread) { StrBuf *Buf; StrBuf *Data = NULL; const char *bptr; int Done = 0; char uid_from_headers[256]; char mime_partnum[256]; char mime_filename[256]; char mime_content_type[256]; char mime_disposition[256]; char relevant_partnum[256]; int phase = 0; /* 0 = citadel headers, 1 = mime headers, 2 = body */ char msg4_content_type[256] = ""; char msg4_content_encoding[256] = ""; int msg4_content_length = 0; struct vnote *vnote_from_body = NULL; int vnote_inline = 0; /* 1 = MSG4 gave us a text/x-vnote top level */ relevant_partnum[0] = '\0'; serv_printf("MSG4 %ld", msgnum); /* we need the mime headers */ Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 1) { FreeStrBuf (&Buf); return NULL; } while ((StrBuf_ServGetln(Buf)>=0) && !Done) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; break; } bptr = ChrPtr(Buf); switch (phase) { case 0: if (!strncasecmp(bptr, "exti=", 5)) { safestrncpy(uid_from_headers, &(ChrPtr(Buf)[5]), sizeof uid_from_headers); } else if (!strncasecmp(bptr, "part=", 5)) { extract_token(mime_filename, &bptr[5], 1, '|', sizeof mime_filename); extract_token(mime_partnum, &bptr[5], 2, '|', sizeof mime_partnum); extract_token(mime_disposition, &bptr[5], 3, '|', sizeof mime_disposition); extract_token(mime_content_type, &bptr[5], 4, '|', sizeof mime_content_type); if (!strcasecmp(mime_content_type, "text/vnote")) { strcpy(relevant_partnum, mime_partnum); } } else if ((phase == 0) && (!strncasecmp(bptr, "text", 4))) { phase = 1; } break; case 1: if (!IsEmptyStr(bptr)) { if (!strncasecmp(bptr, "Content-type: ", 14)) { safestrncpy(msg4_content_type, &bptr[14], sizeof msg4_content_type); striplt(msg4_content_type); } else if (!strncasecmp(bptr, "Content-transfer-encoding: ", 27)) { safestrncpy(msg4_content_encoding, &bptr[27], sizeof msg4_content_encoding); striplt(msg4_content_type); } else if ((!strncasecmp(bptr, "Content-length: ", 16))) { msg4_content_length = atoi(&bptr[16]); } break; } else { phase++; if ((msg4_content_length > 0) && ( !strcasecmp(msg4_content_encoding, "7bit")) && (!strcasecmp(msg4_content_type, "text/vnote")) ) { vnote_inline = 1; } } case 2: if (vnote_inline) { Data = NewStrBufPlain(NULL, msg4_content_length * 2); if (msg4_content_length > 0) { StrBuf_ServGetBLOBBuffered(Data, msg4_content_length); phase ++; } else { StrBufAppendBuf(Data, Buf, 0); StrBufAppendBufPlain(Data, "\r\n", 1, 0); } } case 3: if (vnote_inline) { StrBufAppendBuf(Data, Buf, 0); } } } FreeStrBuf(&Buf); /* If MSG4 didn't give us the part we wanted, but we know that we can find it * as one of the other MIME parts, attempt to load it now. */ if ((!vnote_inline) && (!IsEmptyStr(relevant_partnum))) { Data = load_mimepart(msgnum, relevant_partnum); } if (StrLength(Data) > 0) { if (IsEmptyStr(uid_from_headers)) { /* Convert an old-style note to a vNote */ vnote_from_body = vnote_new(); vnote_from_body->uid = strdup(uid_from_headers); vnote_from_body->color_red = pastel_palette[3][0]; vnote_from_body->color_green = pastel_palette[3][1]; vnote_from_body->color_blue = pastel_palette[3][2]; vnote_from_body->body = malloc(StrLength(Data) + 1); vnote_from_body->body[0] = 0; memcpy(vnote_from_body->body, ChrPtr(Data), StrLength(Data) + 1); FreeStrBuf(&Data); return vnote_from_body; } else { char *Buf = SmashStrBuf(&Data); struct vnote *v = vnote_new_from_str(Buf); free(Buf); return(v); } } return NULL; } /* * Serialize a vnote and write it to the server */ void write_vnote_to_server(struct vnote *v) { char buf[1024]; char *pch; char boundary[256]; static int seq = 0; snprintf(boundary, sizeof boundary, "Citadel--Multipart--%s--%04x--%04x", ChrPtr(WC->serv_info->serv_fqdn), getpid(), ++seq ); serv_puts("ENT0 1|||4"); serv_getln(buf, sizeof buf); if (buf[0] == '4') { /* Remember, serv_printf() appends an extra newline */ serv_printf("Content-type: multipart/alternative; " "boundary=\"%s\"\n", boundary); serv_printf("This is a multipart message in MIME format.\n"); serv_printf("--%s", boundary); serv_puts("Content-type: text/plain; charset=utf-8"); serv_puts("Content-Transfer-Encoding: 7bit"); serv_puts(""); serv_puts(v->body); serv_puts(""); serv_printf("--%s", boundary); serv_puts("Content-type: text/vnote"); serv_puts("Content-Transfer-Encoding: 7bit"); serv_puts(""); pch = vnote_serialize(v); serv_puts(pch); free(pch); serv_printf("--%s--", boundary); serv_puts("000"); } } /* * Background ajax call to receive updates from the browser when a note is moved, resized, or updated. */ void ajax_update_note(void) { char buf[1024]; int msgnum; struct vnote *v = NULL; if (!havebstr("note_uid")) { begin_ajax_response(); wc_printf("Received ajax_update_note() request without a note UID."); end_ajax_response(); return; } serv_printf("EUID %s", bstr("note_uid")); serv_getln(buf, sizeof buf); if (buf[0] != '2') { begin_ajax_response(); wc_printf("Cannot find message containing vNote with the requested uid!"); end_ajax_response(); return; } msgnum = atol(&buf[4]); /* Was this request a delete operation? If so, nuke it... */ if (havebstr("deletenote")) { if (!strcasecmp(bstr("deletenote"), "yes")) { serv_printf("DELE %d", msgnum); serv_getln(buf, sizeof buf); begin_ajax_response(); wc_printf("%s", buf); end_ajax_response(); return; } } /* If we get to this point it's an update, not a delete */ v = vnote_new_from_msg(msgnum, 0); if (!v) { begin_ajax_response(); wc_printf("Cannot locate a vNote within message %d\n", msgnum); end_ajax_response(); return; } /* Make any requested changes */ if (havebstr("top")) { v->pos_top = atoi(bstr("top")); } if (havebstr("left")) { v->pos_left = atoi(bstr("left")); } if (havebstr("height")) { v->pos_height = atoi(bstr("height")); } if (havebstr("width")) { v->pos_width = atoi(bstr("width")); } if (havebstr("red")) { v->color_red = atoi(bstr("red")); } if (havebstr("green")) { v->color_green = atoi(bstr("green")); } if (havebstr("blue")) { v->color_blue = atoi(bstr("blue")); } if (havebstr("value")) { /* I would have preferred 'body' but InPlaceEditor hardcodes 'value' */ if (v->body) free(v->body); v->body = strdup(bstr("value")); } /* Serialize it and save it to the message base. Server will delete the old one. */ write_vnote_to_server(v); begin_ajax_response(); if (v->body) { escputs(v->body); } end_ajax_response(); vnote_free(v); } /* * display sticky notes * * msgnum = Message number on the local server of the note to be displayed */ /*TODO: wrong hook */ int notes_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i) { struct vnote *v; WCTemplputParams TP; memset(&TP, 0, sizeof(WCTemplputParams)); TP.Filter.ContextType = CTX_VNOTE; v = vnote_new_from_msg(Msg->msgnum, is_new); if (v) { TP.Context = v; DoTemplate(HKEY("vnoteitem"), WC->WBuf, &TP); /* uncomment these lines to see ugly debugging info StrBufAppendPrintf(WC->trailing_javascript, "document.write('L: ' + $('note-%s').style.left + '; ');", v->uid); StrBufAppendPrintf(WC->trailing_javascript, "document.write('T: ' + $('note-%s').style.top + '; ');", v->uid); StrBufAppendPrintf(WC->trailing_javascript, "document.write('W: ' + $('note-%s').style.width + '; ');", v->uid); StrBufAppendPrintf(WC->trailing_javascript, "document.write('H: ' + $('note-%s').style.height + '
    ');", v->uid); */ vnote_free(v); } return 0; } /* * Create a new note */ void add_new_note(void) { struct vnote *v; v = vnote_new(); if (v) { v->uid = malloc(128); generate_uuid(v->uid); v->color_red = pastel_palette[3][0]; v->color_green = pastel_palette[3][1]; v->color_blue = pastel_palette[3][2]; v->body = strdup(_("Click on any note to edit it.")); write_vnote_to_server(v); vnote_free(v); } readloop(readfwd, eUseDefault); } void tmpl_vcard_put_posleft(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%d", v->pos_left); } void tmpl_vcard_put_postop(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%d", v->pos_top); } void tmpl_vcard_put_poswidth(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%d", v->pos_width); } void tmpl_vcard_put_posheight(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%d", v->pos_height); } void tmpl_vcard_put_posheight2(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%d", (v->pos_height / 16) - 5); } void tmpl_vcard_put_width2(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%d", (v->pos_width / 9) - 1); } void tmpl_vcard_put_color(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%02X%02X%02X", v->color_red, v->color_green, v->color_blue); } void tmpl_vcard_put_bgcolor(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendPrintf(Target, "%02X%02X%02X", v->color_red/2, v->color_green/2, v->color_blue/2); } void tmpl_vcard_put_message(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrEscAppend(Target, NULL, v->body, 0, 0); /*TODO?*/ } void tmpl_vcard_put_uid(StrBuf *Target, WCTemplputParams *TP) { struct vnote *v = (struct vnote *) CTX(CTX_VNOTE); StrBufAppendBufPlain(Target, v->uid, -1, 0); } int notes_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { strcpy(cmd, "MSGS ALL"); Stat->maxmsgs = 32767; wc_printf("
    \n"); return 200; } int notes_Cleanup(void **ViewSpecific) { wDumpContent(1); return 0; } void render_MIME_VNote(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = CTX(CTX_MIME_ATACH); if (StrLength(Mime->Data) == 0) MimeLoadData(Mime); if (StrLength(Mime->Data) > 0) { struct vnote *v; StrBuf *Buf; char *vcard; Buf = NewStrBuf(); vcard = SmashStrBuf(&Mime->Data); v = vnote_new_from_str(vcard); free (vcard); if (v) { WCTemplputParams TP; memset(&TP, 0, sizeof(WCTemplputParams)); TP.Filter.ContextType = CTX_VNOTE; TP.Context = v; DoTemplate(HKEY("mail_vnoteitem"), Buf, &TP); vnote_free(v); Mime->Data = Buf; } else { if (Mime->Data == NULL) Mime->Data = NewStrBuf(); else FlushStrBuf(Mime->Data); } } } void InitModule_NOTES (void) { RegisterCTX(CTX_VNOTE); RegisterReadLoopHandlerset( VIEW_NOTES, notes_GetParamsGetServerCall, NULL, NULL, NULL, notes_LoadMsgFromServer, NULL, notes_Cleanup, NULL); WebcitAddUrlHandler(HKEY("add_new_note"), "", 0, add_new_note, 0); WebcitAddUrlHandler(HKEY("ajax_update_note"), "", 0, ajax_update_note, 0); RegisterNamespace("VNOTE:POS:LEFT", 0, 0, tmpl_vcard_put_posleft, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:POS:TOP", 0, 0, tmpl_vcard_put_postop, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:POS:WIDTH", 0, 0, tmpl_vcard_put_poswidth, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:POS:HEIGHT", 0, 0, tmpl_vcard_put_posheight, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:POS:HEIGHT2", 0, 0, tmpl_vcard_put_posheight2, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:POS:WIDTH2", 0, 0, tmpl_vcard_put_width2, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:COLOR", 0, 0, tmpl_vcard_put_color, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:BGCOLOR", 0, 0,tmpl_vcard_put_bgcolor, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:MSG", 0, 1, tmpl_vcard_put_message, NULL, CTX_VNOTE); RegisterNamespace("VNOTE:UID", 0, 0, tmpl_vcard_put_uid, NULL, CTX_VNOTE); RegisterMimeRenderer(HKEY("text/vnote"), render_MIME_VNote, 1, 300); } webcit-dfsg.orig/messages.c0000644000175000017500000015562413223341037015767 0ustar michaelmichael/* * Functions which deal with the fetching and displaying of messages. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" #include "calendar.h" HashList *MimeRenderHandler = NULL; HashList *ReadLoopHandler = NULL; int dbg_analyze_msg = 0; #define SUBJ_COL_WIDTH_PCT 50 /* Mailbox view column width */ #define SENDER_COL_WIDTH_PCT 30 /* Mailbox view column width */ #define DATE_PLUS_BUTTONS_WIDTH_PCT 20 /* Mailbox view column width */ void jsonMessageListHdr(void); void display_enter(void); void fixview() { /* workaround for json listview; its not useable directly */ if (WC->CurRoom.view == VIEW_JSON_LIST) { StrBuf *View = NewStrBuf(); StrBufPrintf(View, "%d", VIEW_MAILBOX); putbstr("view", View);; } } int load_message(message_summary *Msg, StrBuf *FoundCharset, StrBuf **Error) { StrBuf *Buf; StrBuf *HdrToken; char buf[SIZ]; int Done = 0; int state=0; int rc; Buf = NewStrBuf(); if (Msg->PartNum != NULL) { serv_printf("MSG4 %ld|%s", Msg->msgnum, ChrPtr(Msg->PartNum)); } else { serv_printf("MSG4 %ld", Msg->msgnum); } StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 1) { *Error = NewStrBuf(); StrBufAppendPrintf(*Error, ""); StrBufAppendPrintf(*Error, _("ERROR:")); StrBufAppendPrintf(*Error, " %s
    \n", &buf[4]); FreeStrBuf(&Buf); return 0; } /* begin everythingamundo table */ HdrToken = NewStrBuf(); while (!Done && StrBuf_ServGetln(Buf)>=0) { if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { Done = 1; if (state < 2) { if (Msg->MsgBody->Data == NULL) Msg->MsgBody->Data = NewStrBuf(); Msg->MsgBody->ContentType = NewStrBufPlain(HKEY("text/html")); StrBufAppendPrintf(Msg->MsgBody->Data, "
    "); StrBufAppendPrintf(Msg->MsgBody->Data, _("Empty message")); StrBufAppendPrintf(Msg->MsgBody->Data, "

    \n"); StrBufAppendPrintf(Msg->MsgBody->Data, "
    \n"); } break; } switch (state) { case 0:/* Citadel Message Headers */ if (StrLength(Buf) == 0) { state ++; break; } StrBufExtract_token(HdrToken, Buf, 0, '='); StrBufCutLeft(Buf, StrLength(HdrToken) + 1); /* look up one of the examine_* functions to parse the content */ rc = EvaluateMsgHdr(SKEY(HdrToken), Msg, Buf, FoundCharset); if (rc == 1) { state++; } /* TODO: else LogError(Target, __FUNCTION__, "don't know how to handle message header[%s]\n", ChrPtr(HdrToken)); */ break; case 1:/* Message Mime Header */ if (StrLength(Buf) == 0) { state++; if (Msg->MsgBody->ContentType == NULL) /* end of header or no header? */ Msg->MsgBody->ContentType = NewStrBufPlain(HKEY("text/plain")); /* usual end of mime header */ } else { StrBufExtract_token(HdrToken, Buf, 0, ':'); if (StrLength(HdrToken) > 0) { StrBufCutLeft(Buf, StrLength(HdrToken) + 1); /* the examine*'s know how to do with mime headers too... */ EvaluateMsgHdr(SKEY(HdrToken), Msg, Buf, FoundCharset); break; } } case 2: /* Message Body */ if (Msg->MsgBody->size_known > 0) { StrBuf_ServGetBLOBBuffered(Msg->MsgBody->Data, Msg->MsgBody->length); state ++; /*/ todo: check next line, if not 000, append following lines */ } else if (1){ if (StrLength(Msg->MsgBody->Data) > 0) StrBufAppendBufPlain(Msg->MsgBody->Data, "\n", 1, 0); StrBufAppendBuf(Msg->MsgBody->Data, Buf, 0); } break; case 3: StrBufAppendBuf(Msg->MsgBody->Data, Buf, 0); break; } } if (Msg->AllAttach == NULL) Msg->AllAttach = NewHash(1,NULL); /* now we put the body mimepart we read above into the mimelist */ Put(Msg->AllAttach, SKEY(Msg->MsgBody->PartNum), Msg->MsgBody, DestroyMime); FreeStrBuf(&Buf); FreeStrBuf(&HdrToken); return 1; } /* * I wanna SEE that message! * * msgnum Message number to display * printable_view Nonzero to display a printable view * section Optional for encapsulated message/rfc822 submessage */ int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, const StrBuf *PartNum, const StrBuf **OutMime, WCTemplputParams *TP) { StrBuf *Buf; StrBuf *FoundCharset; HashPos *it; void *vMime; message_summary *Msg = NULL; void *vHdr; long len; const char *Key; WCTemplputParams SuperTP; WCTemplputParams SubTP; StrBuf *Error = NULL; memset(&SuperTP, 0, sizeof(WCTemplputParams)); memset(&SubTP, 0, sizeof(WCTemplputParams)); Buf = NewStrBuf(); FoundCharset = NewStrBuf(); Msg = (message_summary *)malloc(sizeof(message_summary)); memset(Msg, 0, sizeof(message_summary)); Msg->msgnum = msgnum; Msg->PartNum = PartNum; Msg->MsgBody = (wc_mime_attachment*) malloc(sizeof(wc_mime_attachment)); memset(Msg->MsgBody, 0, sizeof(wc_mime_attachment)); Msg->MsgBody->msgnum = msgnum; if (!load_message(Msg, FoundCharset, &Error)) { StrBufAppendBuf(Target, Error, 0); FreeStrBuf(&Error); } /* Extract just the content-type (omit attributes such as "charset") */ StrBufExtract_token(Buf, Msg->MsgBody->ContentType, 0, ';'); StrBufTrim(Buf); StrBufLowerCase(Buf); StackContext(TP, &SuperTP, Msg, CTX_MAILSUM, 0, NULL); { /* Locate a renderer capable of converting this MIME part into HTML */ if (GetHash(MimeRenderHandler, SKEY(Buf), &vHdr) && (vHdr != NULL)) { RenderMimeFuncStruct *Render; StackContext(&SuperTP, &SubTP, Msg->MsgBody, CTX_MIME_ATACH, 0, NULL); { Render = (RenderMimeFuncStruct*)vHdr; Render->f(Target, &SubTP, FoundCharset); } UnStackContext(&SubTP); } if (StrLength(Msg->reply_references)> 0) { /* Trim down excessively long lists of thread references. We eliminate the * second one in the list so that the thread root remains intact. */ int rrtok = num_tokens(ChrPtr(Msg->reply_references), '|'); int rrlen = StrLength(Msg->reply_references); if ( ((rrtok >= 3) && (rrlen > 900)) || (rrtok > 10) ) { StrBufRemove_token(Msg->reply_references, 1, '|'); } } /* now check if we need to translate some mimeparts, and remove the duplicate */ it = GetNewHashPos(Msg->AllAttach, 0); while (GetNextHashPos(Msg->AllAttach, it, &len, &Key, &vMime) && (vMime != NULL)) { StackContext(&SuperTP, &SubTP, vMime, CTX_MIME_ATACH, 0, NULL); { evaluate_mime_part(Target, &SubTP); } UnStackContext(&SubTP); } DeleteHashPos(&it); *OutMime = DoTemplate(tmpl, tmpllen, Target, &SuperTP); } UnStackContext(&SuperTP); DestroyMessageSummary(Msg); FreeStrBuf(&FoundCharset); FreeStrBuf(&Buf); return 1; } long HttpStatus(long CitadelStatus) { long httpstatus = 502; switch (MAJORCODE(CitadelStatus)) { case LISTING_FOLLOWS: case CIT_OK: httpstatus = 201; break; case ERROR: switch (MINORCODE(CitadelStatus)) { case INTERNAL_ERROR: httpstatus = 403; break; case TOO_BIG: case ILLEGAL_VALUE: case HIGHER_ACCESS_REQUIRED: case MAX_SESSIONS_EXCEEDED: case RESOURCE_BUSY: case RESOURCE_NOT_OPEN: case NOT_HERE: case INVALID_FLOOR_OPERATION: case FILE_NOT_FOUND: case ROOM_NOT_FOUND: httpstatus = 409; break; case MESSAGE_NOT_FOUND: case ALREADY_EXISTS: httpstatus = 403; break; case NO_SUCH_SYSTEM: httpstatus = 502; break; default: case CMD_NOT_SUPPORTED: case PASSWORD_REQUIRED: case ALREADY_LOGGED_IN: case USERNAME_REQUIRED: case NOT_LOGGED_IN: case SERVER_SHUTTING_DOWN: case NO_SUCH_USER: case ASYNC_GEXP: httpstatus = 502; break; } break; default: case BINARY_FOLLOWS: case SEND_BINARY: case START_CHAT_MODE: case ASYNC_MSG: case MORE_DATA: case SEND_LISTING: httpstatus = 502; /* aeh... whut? */ break; } return httpstatus; } /* * Unadorned HTML output of an individual message, suitable * for placing in a hidden iframe, for printing, or whatever */ void handle_one_message(void) { long CitStatus = ERROR + NOT_HERE; int CopyMessage = 0; const StrBuf *Destination; void *vLine; const StrBuf *Mime; long msgnum = 0L; wcsession *WCC = WC; const StrBuf *Tmpl; StrBuf *CmdBuf = NULL; const char *pMsg; pMsg = strchr(ChrPtr(WCC->Hdr->HR.ReqLine), '/'); if (pMsg == NULL) { HttpStatus(CitStatus); return; } msgnum = atol(pMsg + 1); StrBufCutAt(WCC->Hdr->HR.ReqLine, 0, pMsg); gotoroom(WCC->Hdr->HR.ReqLine); switch (WCC->Hdr->HR.eReqType) { case eGET: case ePOST: Tmpl = sbstr("template"); if (StrLength(Tmpl) > 0) read_message(WCC->WBuf, SKEY(Tmpl), msgnum, NULL, &Mime, NULL); else read_message(WCC->WBuf, HKEY("view_message"), msgnum, NULL, &Mime, NULL); http_transmit_thing(ChrPtr(Mime), 0); break; case eDELETE: CmdBuf = NewStrBuf (); if ((WCC->CurRoom.RAFlags & UA_ISTRASH) != 0) { /* Delete from Trash is a real delete */ serv_printf("DELE %ld", msgnum); } else { /* Otherwise move it to Trash */ serv_printf("MOVE %ld|_TRASH_|0", msgnum); } StrBuf_ServGetln(CmdBuf); GetServerStatusMsg(CmdBuf, &CitStatus, 1, 0); HttpStatus(CitStatus); break; case eCOPY: CopyMessage = 1; case eMOVE: if (GetHash(WCC->Hdr->HTTPHeaders, HKEY("DESTINATION"), &vLine) && (vLine!=NULL)) { Destination = (StrBuf*) vLine; serv_printf("MOVE %ld|%s|%d", msgnum, ChrPtr(Destination), CopyMessage); StrBuf_ServGetln(CmdBuf); GetServerStatusMsg(CmdBuf, NULL, 1, 0); GetServerStatus(CmdBuf, &CitStatus); HttpStatus(CitStatus); } else HttpStatus(500); break; default: break; } } /* * Unadorned HTML output of an individual message, suitable * for placing in a hidden iframe, for printing, or whatever */ void embed_message(void) { const StrBuf *Mime; long msgnum = 0L; wcsession *WCC = WC; const StrBuf *Tmpl; StrBuf *CmdBuf = NULL; msgnum = StrBufExtract_long(WCC->Hdr->HR.ReqLine, 0, '/'); if (msgnum <= 0) return; switch (WCC->Hdr->HR.eReqType) { case eGET: case ePOST: Tmpl = sbstr("template"); if (StrLength(Tmpl) > 0) read_message(WCC->WBuf, SKEY(Tmpl), msgnum, NULL, &Mime, NULL); else read_message(WCC->WBuf, HKEY("view_message"), msgnum, NULL, &Mime, NULL); http_transmit_thing(ChrPtr(Mime), 0); break; case eDELETE: CmdBuf = NewStrBuf (); if ((WCC->CurRoom.RAFlags & UA_ISTRASH) != 0) { /* Delete from Trash is a real delete */ serv_printf("DELE %ld", msgnum); } else { /* Otherwise move it to Trash */ serv_printf("MOVE %ld|_TRASH_|0", msgnum); } StrBuf_ServGetln(CmdBuf); GetServerStatusMsg(CmdBuf, NULL, 1, 0); break; default: break; } } /* * Printable view of a message */ void print_message(void) { long msgnum = 0L; const StrBuf *Mime; msgnum = StrBufExtract_long(WC->Hdr->HR.ReqLine, 0, '/'); output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-type: text/html\r\n" "Server: " PACKAGE_STRING "\r\n" "Connection: close\r\n"); begin_burst(); read_message(WC->WBuf, HKEY("view_message_print"), msgnum, NULL, &Mime, NULL); wDumpContent(0); } /* * Display a message's headers */ void display_headers(void) { long msgnum = 0L; char buf[1024]; msgnum = StrBufExtract_long(WC->Hdr->HR.ReqLine, 0, '/'); output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-type: text/plain\r\n" "Server: %s\r\n" "Connection: close\r\n", PACKAGE_STRING); begin_burst(); serv_printf("MSG2 %ld|1", msgnum); serv_getln(buf, sizeof buf); if (buf[0] == '1') { while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { wc_printf("%s\n", buf); } } wDumpContent(0); } /* * load message pointers from the server for a "read messages" operation * * servcmd: the citadel command to send to the citserver */ int load_msg_ptrs(const char *servcmd, const char *filter, StrBuf *FoundCharset, SharedMessageStatus *Stat, void **ViewSpecific, load_msg_ptrs_detailheaders LH, StrBuf *FetchMessageList, eMessageField *MessageFieldList, long HeaderCount) { wcsession *WCC = WC; message_summary *Msg; StrBuf *Buf, *Buf2; long len; int n; int skipit; const char *Ptr = NULL; int StatMajor; Stat->lowest_found = LONG_MAX; Stat->highest_found = LONG_MIN; if (WCC->summ != NULL) { DeleteHash(&WCC->summ); } WCC->summ = NewHash(1, Flathash); Buf = NewStrBuf(); serv_puts(servcmd); StrBuf_ServGetln(Buf); StatMajor = GetServerStatus(Buf, NULL); switch (StatMajor) { case 1: break; case 8: if (filter != NULL) { serv_puts(filter); serv_puts("000"); break; } else if (FetchMessageList != NULL) { serv_putbuf(FetchMessageList); break; } /* fall back to empty filter in case of we were fooled... */ serv_puts(""); serv_puts("000"); break; default: FreeStrBuf(&Buf); return (Stat->nummsgs); } Buf2 = NewStrBuf(); while (len = StrBuf_ServGetln(Buf), ((len >= 0) && ((len != 3) || strcmp(ChrPtr(Buf), "000")!= 0))) { if (Stat->nummsgs < Stat->maxload) { skipit = 0; Ptr = NULL; Msg = (message_summary*)malloc(sizeof(message_summary)); memset(Msg, 0, sizeof(message_summary)); Msg->msgnum = StrBufExtractNext_long(Buf, &Ptr, '|'); Msg->date = StrBufExtractNext_long(Buf, &Ptr, '|'); if (MessageFieldList != NULL) { long i; for (i = 0; i < HeaderCount; i++) { StrBufExtract_NextToken(Buf2, Buf, &Ptr, '|'); if (StrLength(Buf2) > 0) { EvaluateMsgHdrEnum(MessageFieldList[i], Msg, Buf2, FoundCharset); } } } else { if (Stat->nummsgs == 0) { if (Msg->msgnum < Stat->lowest_found) { Stat->lowest_found = Msg->msgnum; } if (Msg->msgnum > Stat->highest_found) { Stat->highest_found = Msg->msgnum; } } if ((Msg->msgnum == 0) && (StrLength(Buf) < 32)) { free(Msg); continue; } } /* * as citserver probably gives us messages in forward date sorting * nummsgs should be the same order as the message date. */ if (Msg->date == 0) { Msg->date = Stat->nummsgs; if (StrLength(Buf) < 32) skipit = 1; } if ((!skipit) && (LH != NULL)) { if (!LH(Buf, &Ptr, Msg, Buf2, ViewSpecific)){ free(Msg); continue; } } n = Msg->msgnum; Put(WCC->summ, (const char *)&n, sizeof(n), Msg, DestroyMessageSummary); } Stat->nummsgs++; } FreeStrBuf(&Buf2); FreeStrBuf(&Buf); return (Stat->nummsgs); } /** * \brief sets FlagToSet for each of ScanMe that appears in MatchMSet * \param ScanMe List of BasicMsgStruct to be searched it MatchSet * \param MatchMSet MSet we want to flag * \param FlagToSet Flag to set on each BasicMsgStruct->Flags if in MSet */ long SetFlagsFromMSet(HashList *ScanMe, MSet *MatchMSet, int FlagToSet, int Reverse) { const char *HashKey; long HKLen; long count = 0; HashPos *at; void *vMsg; message_summary *Msg; at = GetNewHashPos(ScanMe, 0); while (GetNextHashPos(ScanMe, at, &HKLen, &HashKey, &vMsg)) { /* Are you a new message, or an old message? */ Msg = (message_summary*) vMsg; if (Reverse && IsInMSetList(MatchMSet, Msg->msgnum)) { Msg->Flags = Msg->Flags | FlagToSet; count++; } else if (!Reverse && !IsInMSetList(MatchMSet, Msg->msgnum)) { Msg->Flags = Msg->Flags | FlagToSet; count++; } } DeleteHashPos(&at); return count; } long load_seen_flags(void) { long count = 0; StrBuf *OldMsg; wcsession *WCC = WC; MSet *MatchMSet; OldMsg = NewStrBuf(); serv_puts("GTSN"); StrBuf_ServGetln(OldMsg); if (GetServerStatus(OldMsg, NULL) == 2) { StrBufCutLeft(OldMsg, 4); } else { FreeStrBuf(&OldMsg); return 0; } if (ParseMSet(&MatchMSet, OldMsg)) { count = SetFlagsFromMSet(WCC->summ, MatchMSet, MSGFLAG_READ, 0); } DeleteMSet(&MatchMSet); FreeStrBuf(&OldMsg); return count; } extern readloop_struct rlid[]; typedef struct _RoomRenderer{ int RoomType; GetParamsGetServerCall_func GetParamsGetServerCall; PrintViewHeader_func PrintPageHeader; PrintViewHeader_func PrintViewHeader; LoadMsgFromServer_func LoadMsgFromServer; RenderView_or_Tail_func RenderView_or_Tail; View_Cleanup_func ViewCleanup; load_msg_ptrs_detailheaders LHParse; long HeaderCount; StrBuf *FetchMessageList; eMessageField *MessageFieldList; } RoomRenderer; /* * command loop for reading messages * * Set oper to "readnew" or "readold" or "readfwd" or "headers" or "readgt" or "readlt" or "do_search" */ void readloop(long oper, eCustomRoomRenderer ForceRenderer) { RoomRenderer *ViewMsg; void *vViewMsg; void *vMsg; message_summary *Msg; char cmd[256] = ""; char filter[256] = ""; int i, r; wcsession *WCC = WC; HashPos *at; const char *HashKey; long HKLen; WCTemplputParams SubTP; SharedMessageStatus Stat; void *ViewSpecific = NULL; if (havebstr("is_summary") && (1 == (ibstr("is_summary")))) { WCC->CurRoom.view = VIEW_MAILBOX; } if (havebstr("view")) { WCC->CurRoom.view = ibstr("view"); } memset(&Stat, 0, sizeof(SharedMessageStatus)); Stat.maxload = 10000; Stat.lowest_found = (-1); Stat.highest_found = (-1); if (ForceRenderer == eUseDefault) GetHash(ReadLoopHandler, IKEY(WCC->CurRoom.view), &vViewMsg); else GetHash(ReadLoopHandler, IKEY(ForceRenderer), &vViewMsg); if (vViewMsg == NULL) { WCC->CurRoom.view = VIEW_BBS; GetHash(ReadLoopHandler, IKEY(WCC->CurRoom.view), &vViewMsg); } if (vViewMsg == NULL) { return; /* TODO: print message */ } ViewMsg = (RoomRenderer*) vViewMsg; if (ViewMsg->PrintPageHeader == NULL) output_headers(1, 1, 1, 0, 0, 0); else ViewMsg->PrintPageHeader(&Stat, ViewSpecific); if (ViewMsg->GetParamsGetServerCall != NULL) { r = ViewMsg->GetParamsGetServerCall( &Stat, &ViewSpecific, oper, cmd, sizeof(cmd), filter, sizeof(filter) ); } else { r = 0; } switch(r) { case 400: case 404: return; case 300: /* the callback hook should do the work for us here, since he knows what to do. */ return; case 200: default: break; } if (!IsEmptyStr(cmd)) { const char *p = NULL; StrBuf *FoundCharset = NULL; if (!IsEmptyStr(filter)) p = filter; if (ViewMsg->HeaderCount > 0) { FoundCharset = NewStrBuf(); } Stat.nummsgs = load_msg_ptrs(cmd, p, FoundCharset, &Stat, &ViewSpecific, ViewMsg->LHParse, ViewMsg->FetchMessageList, ViewMsg->MessageFieldList, ViewMsg->HeaderCount); FreeStrBuf(&FoundCharset); } if (Stat.sortit) { CompareFunc SortIt; StackContext(NULL, &SubTP, NULL, CTX_MAILSUM, 0, NULL); { SortIt = RetrieveSort(&SubTP, NULL, 0, HKEY("date"), Stat.defaultsortorder); } UnStackContext(&SubTP); if (SortIt != NULL) SortByPayload(WCC->summ, SortIt); } if (Stat.startmsg < 0) { Stat.startmsg = 0; } if (Stat.load_seen) Stat.numNewmsgs = load_seen_flags(); /* * Print any inforation above the message list... */ if (ViewMsg->PrintViewHeader != NULL) ViewMsg->PrintViewHeader(&Stat, &ViewSpecific); WCC->startmsg = Stat.startmsg; WCC->maxmsgs = Stat.maxmsgs; WCC->num_displayed = 0; /* Put some helpful data in vars for mailsummary_json */ { StrBuf *Foo; Foo = NewStrBuf (); StrBufPrintf(Foo, "%ld", Stat.nummsgs); PutBstr(HKEY("__READLOOP:TOTALMSGS"), NewStrBufDup(Foo)); /* keep Foo! */ StrBufPrintf(Foo, "%ld", Stat.numNewmsgs); PutBstr(HKEY("__READLOOP:NEWMSGS"), NewStrBufDup(Foo)); /* keep Foo! */ StrBufPrintf(Foo, "%ld", Stat.startmsg); PutBstr(HKEY("__READLOOP:STARTMSG"), Foo); /* store Foo elsewhere, descope it here. */ } /* * iterate over each message. if we need to load an attachment, do it here. */ if ((ViewMsg->LoadMsgFromServer != NULL) && (!IsEmptyStr(cmd))) { at = GetNewHashPos(WCC->summ, 0); Stat.num_displayed = i = 0; while ( GetNextHashPos(WCC->summ, at, &HKLen, &HashKey, &vMsg)) { Msg = (message_summary*) vMsg; if ((Msg->msgnum >= Stat.startmsg) && (Stat.num_displayed <= Stat.maxmsgs)) { ViewMsg->LoadMsgFromServer(&Stat, &ViewSpecific, Msg, (Msg->Flags & MSGFLAG_READ) != 0, i); } i++; } DeleteHashPos(&at); } /* * Done iterating the message list. now tasks we want to do after. */ if (ViewMsg->RenderView_or_Tail != NULL) ViewMsg->RenderView_or_Tail(&Stat, &ViewSpecific, oper); if (ViewMsg->ViewCleanup != NULL) ViewMsg->ViewCleanup(&ViewSpecific); WCC->startmsg = 0; WCC->maxmsgs = 0; if (WCC->summ != NULL) { DeleteHash(&WCC->summ); } } /* * Back end for post_message() * ... this is where the actual message gets transmitted to the server. */ void post_mime_to_server(void) { wcsession *WCC = WC; char top_boundary[SIZ]; char alt_boundary[SIZ]; int is_multipart = 0; static int seq = 0; wc_mime_attachment *att; char *encoded; size_t encoded_length; size_t encoded_strlen; char *txtmail = NULL; int include_text_alt = 0; /* Set to nonzero to include multipart/alternative text/plain */ sprintf(top_boundary, "Citadel--Multipart--%s--%04x--%04x", ChrPtr(WCC->serv_info->serv_fqdn), getpid(), ++seq ); sprintf(alt_boundary, "Citadel--Multipart--%s--%04x--%04x", ChrPtr(WCC->serv_info->serv_fqdn), getpid(), ++seq ); /* RFC2045 requires this, and some clients look for it... */ serv_puts("MIME-Version: 1.0"); serv_puts("X-Mailer: " PACKAGE_STRING); /* If there are attachments, we have to do multipart/mixed */ if (GetCount(WCC->attachments) > 0) { is_multipart = 1; } /* Only do multipart/alternative for mailboxes. BBS and Wiki rooms don't need it. */ if ((WCC->CurRoom.view == VIEW_MAILBOX) || (WCC->CurRoom.view == VIEW_JSON_LIST)) { include_text_alt = 1; } if (is_multipart) { /* Remember, serv_printf() appends an extra newline */ serv_printf("Content-type: multipart/mixed; boundary=\"%s\"\n", top_boundary); serv_printf("This is a multipart message in MIME format.\n"); serv_printf("--%s", top_boundary); } /* Remember, serv_printf() appends an extra newline */ if (include_text_alt) { StrBuf *Buf; serv_printf("Content-type: multipart/alternative; " "boundary=\"%s\"\n", alt_boundary); serv_printf("This is a multipart message in MIME format.\n"); serv_printf("--%s", alt_boundary); serv_puts("Content-type: text/plain; charset=utf-8"); serv_puts("Content-Transfer-Encoding: quoted-printable"); serv_puts(""); txtmail = html_to_ascii(bstr("msgtext"), 0, 80, 0); Buf = NewStrBufPlain(txtmail, -1); free(txtmail); text_to_server_qp(Buf); /* Transmit message in quoted-printable encoding */ FreeStrBuf(&Buf); serv_printf("\n--%s", alt_boundary); } if (havebstr("markdown")) { serv_puts("Content-type: text/x-markdown; charset=utf-8"); serv_puts("Content-Transfer-Encoding: quoted-printable"); serv_puts(""); text_to_server_qp(sbstr("msgtext")); /* Transmit message in quoted-printable encoding */ } else { serv_puts("Content-type: text/html; charset=utf-8"); serv_puts("Content-Transfer-Encoding: quoted-printable"); serv_puts(""); serv_puts("\r\n"); text_to_server_qp(sbstr("msgtext")); /* Transmit message in quoted-printable encoding */ serv_puts("\r\n"); } if (include_text_alt) { serv_printf("--%s--", alt_boundary); } if (is_multipart) { long len; const char *Key; void *vAtt; HashPos *it; /* Add in the attachments */ it = GetNewHashPos(WCC->attachments, 0); while (GetNextHashPos(WCC->attachments, it, &len, &Key, &vAtt)) { att = (wc_mime_attachment *)vAtt; if (att->length == 0) continue; encoded_length = ((att->length * 150) / 100); encoded = malloc(encoded_length); if (encoded == NULL) break; encoded_strlen = CtdlEncodeBase64(encoded, ChrPtr(att->Data), StrLength(att->Data), 1); serv_printf("--%s", top_boundary); serv_printf("Content-type: %s", ChrPtr(att->ContentType)); serv_printf("Content-disposition: attachment; filename=\"%s\"", ChrPtr(att->FileName)); serv_puts("Content-transfer-encoding: base64"); serv_puts(""); serv_write(encoded, encoded_strlen); serv_puts(""); serv_puts(""); free(encoded); } serv_printf("--%s--", top_boundary); DeleteHashPos(&it); } serv_puts("000"); } /* * Post message (or don't post message) * * Note regarding the "dont_post" variable: * A random value (actually, it's just a timestamp) is inserted as a hidden * field called "postseq" when the display_enter page is generated. This * value is checked when posting, using the static variable dont_post. If a * user attempts to post twice using the same dont_post value, the message is * discarded. This prevents the accidental double-saving of the same message * if the user happens to click the browser "back" button. */ void post_message(void) { StrBuf *UserName; StrBuf *EmailAddress; StrBuf *EncBuf; char buf[1024]; StrBuf *encoded_subject = NULL; static long dont_post = (-1L); int is_anonymous = 0; const StrBuf *display_name = NULL; wcsession *WCC = WC; StrBuf *Buf; if (havebstr("force_room")) { gotoroom(sbstr("force_room")); } if (havebstr("display_name")) { display_name = sbstr("display_name"); if (!strcmp(ChrPtr(display_name), "__ANONYMOUS__")) { display_name = NULL; is_anonymous = 1; } } if (!strcasecmp(bstr("submit_action"), "cancel")) { AppendImportantMessage(_("Cancelled. Message was not posted."), -1); } else if (lbstr("postseq") == dont_post) { AppendImportantMessage( _("Automatically cancelled because you have already " "saved this message."), -1); } else { const char CMD[] = "ENT0 1|%s|%d|4|%s|%s||%s|%s|%s|%s|%s"; StrBuf *Recp = NULL; StrBuf *Cc = NULL; StrBuf *Bcc = NULL; StrBuf *wikipage = NULL; const StrBuf *my_email_addr = NULL; StrBuf *CmdBuf = NULL; StrBuf *references = NULL; int saving_to_drafts = 0; long HeaderLen = 0; saving_to_drafts = !strcasecmp(bstr("submit_action"), "draft"); Buf = NewStrBuf(); if (saving_to_drafts) { /* temporarily change to the drafts room */ serv_puts("GOTO _DRAFTS_"); StrBuf_ServGetln(Buf); if (GetServerStatusMsg(Buf, NULL, 1, 2) != 2) { /* You probably don't even have a dumb Drafts folder */ syslog(LOG_DEBUG, "%s:%d: server save to drafts error: %s\n", __FILE__, __LINE__, ChrPtr(Buf) + 4); AppendImportantMessage(_("Saved to Drafts failed: "), -1); display_enter(); FreeStrBuf(&Buf); return; } } if (havebstr("references")) { const StrBuf *ref = sbstr("references"); references = NewStrBufDup(ref); if (*ChrPtr(references) == '|') { /* remove leading '|' if present */ StrBufCutLeft(references, 1); } StrBufReplaceChars(references, '|', '!'); } if (havebstr("subject")) { const StrBuf *Subj; /* * make enough room for the encoded string; * plus the QP header */ Subj = sbstr("subject"); StrBufRFC2047encode(&encoded_subject, Subj); } UserName = NewStrBuf(); EmailAddress = NewStrBuf(); EncBuf = NewStrBuf(); Recp = StrBufSanitizeEmailRecipientVector(sbstr("recp"), UserName, EmailAddress, EncBuf); Cc = StrBufSanitizeEmailRecipientVector(sbstr("cc"), UserName, EmailAddress, EncBuf); Bcc = StrBufSanitizeEmailRecipientVector(sbstr("bcc"), UserName, EmailAddress, EncBuf); FreeStrBuf(&UserName); FreeStrBuf(&EmailAddress); FreeStrBuf(&EncBuf); wikipage = NewStrBufDup(sbstr("page")); str_wiki_index(wikipage); my_email_addr = sbstr("my_email_addr"); HeaderLen = StrLength(Recp) + StrLength(encoded_subject) + StrLength(Cc) + StrLength(Bcc) + StrLength(wikipage) + StrLength(my_email_addr) + StrLength(references); CmdBuf = NewStrBufPlain(NULL, sizeof (CMD) + HeaderLen); StrBufPrintf(CmdBuf, CMD, saving_to_drafts?"":ChrPtr(Recp), is_anonymous, ChrPtr(encoded_subject), ChrPtr(display_name), saving_to_drafts?"":ChrPtr(Cc), saving_to_drafts?"":ChrPtr(Bcc), ChrPtr(wikipage), ChrPtr(my_email_addr), ChrPtr(references)); FreeStrBuf(&references); FreeStrBuf(&encoded_subject); free(wikipage); if ((HeaderLen + StrLength(sbstr("msgtext")) < 10) && (GetCount(WCC->attachments) == 0)){ AppendImportantMessage(_("Refusing to post empty message.\n"), -1); FreeStrBuf(&CmdBuf); } else { syslog(LOG_DEBUG, "%s\n", ChrPtr(CmdBuf)); serv_puts(ChrPtr(CmdBuf)); FreeStrBuf(&CmdBuf); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 4) { if (saving_to_drafts) { if ( (havebstr("recp")) || (havebstr("cc" )) || (havebstr("bcc" )) ) { /* save recipient headers or room to post to */ serv_printf("To: %s", ChrPtr(Recp)); serv_printf("Cc: %s", ChrPtr(Cc)); serv_printf("Bcc: %s", ChrPtr(Bcc)); } else { serv_printf("X-Citadel-Room: %s", ChrPtr(WCC->CurRoom.name)); } } post_mime_to_server(); if (saving_to_drafts) { AppendImportantMessage(_("Message has been saved to Drafts.\n"), -1); gotoroom(WCC->CurRoom.name); fixview(); readloop(readnew, eUseDefault); FreeStrBuf(&Buf); return; } else if ( (havebstr("recp")) || (havebstr("cc" )) || (havebstr("bcc" )) ) { AppendImportantMessage(_("Message has been sent.\n"), -1); } else { AppendImportantMessage(_("Message has been posted.\n"), -1); } dont_post = lbstr("postseq"); } else { syslog(LOG_DEBUG, "%s:%d: server post error: %s", __FILE__, __LINE__, ChrPtr(Buf) + 4); AppendImportantMessage(ChrPtr(Buf) + 4, StrLength(Buf) - 4); display_enter(); if (saving_to_drafts) gotoroom(WCC->CurRoom.name); FreeStrBuf(&Recp); FreeStrBuf(&Buf); FreeStrBuf(&Cc); FreeStrBuf(&Bcc); return; } } FreeStrBuf(&Recp); FreeStrBuf(&Buf); FreeStrBuf(&Cc); FreeStrBuf(&Bcc); } DeleteHash(&WCC->attachments); /* * We may have been supplied with instructions regarding the location * to which we must return after posting. If found, go there. */ if (havebstr("return_to")) { http_redirect(bstr("return_to")); } /* * If we were editing a page in a wiki room, go to that page now. */ else if (havebstr("page")) { snprintf(buf, sizeof buf, "wiki?page=%s", bstr("page")); http_redirect(buf); } /* * Otherwise, just go to the "read messages" loop. */ else { fixview(); readloop(readnew, eUseDefault); } } /* * Client is uploading an attachment */ void upload_attachment(void) { wcsession *WCC = WC; const char *pch; int n; const char *newn; long newnlen; void *v; wc_mime_attachment *att; const StrBuf *Tmpl = sbstr("template"); const StrBuf *MimeType = NULL; const StrBuf *UID; begin_burst(); syslog(LOG_DEBUG, "upload_attachment()\n"); if (!Tmpl) wc_printf("upload_attachment()
    \n"); if (WCC->upload_length <= 0) { syslog(LOG_DEBUG, "ERROR no attachment was uploaded\n"); if (Tmpl) { putlbstr("UPLOAD_ERROR", 1); MimeType = DoTemplate(SKEY(Tmpl), NULL, &NoCtx); } else wc_printf("ERROR no attachment was uploaded
    \n"); http_transmit_thing(ChrPtr(MimeType), 0); return; } syslog(LOG_DEBUG, "Client is uploading %d bytes\n", WCC->upload_length); if (Tmpl) putlbstr("UPLOAD_LENGTH", WCC->upload_length); else wc_printf("Client is uploading %d bytes
    \n", WCC->upload_length); att = (wc_mime_attachment*)malloc(sizeof(wc_mime_attachment)); memset(att, 0, sizeof(wc_mime_attachment )); att->length = WCC->upload_length; att->ContentType = NewStrBufPlain(WCC->upload_content_type, -1); att->FileName = NewStrBufDup(WCC->upload_filename); UID = sbstr("qquuid"); if (UID) att->PartNum = NewStrBufDup(UID); if (WCC->attachments == NULL) { WCC->attachments = NewHash(1, Flathash); } /* And add it to the list. */ n = 0; if ((GetCount(WCC->attachments) > 0) && GetHashAt(WCC->attachments, GetCount(WCC->attachments) -1, &newnlen, &newn, &v)) n = *((int*) newn) + 1; Put(WCC->attachments, IKEY(n), att, DestroyMime); /* * Mozilla sends a simple filename, which is what we want, * but Satan's Browser sends an entire pathname. Reduce * the path to just a filename if we need to. */ pch = strrchr(ChrPtr(att->FileName), '/'); if (pch != NULL) { StrBufCutLeft(att->FileName, pch - ChrPtr(att->FileName) + 1); } pch = strrchr(ChrPtr(att->FileName), '\\'); if (pch != NULL) { StrBufCutLeft(att->FileName, pch - ChrPtr(att->FileName) + 1); } /* * Transfer control of this memory from the upload struct * to the attachment struct. */ att->Data = WCC->upload; WCC->upload = NULL; WCC->upload_length = 0; if (Tmpl) MimeType = DoTemplate(SKEY(Tmpl), NULL, &NoCtx); http_transmit_thing(ChrPtr(MimeType), 0); } /* * Remove an attachment from the message currently being composed. * * Currently we identify the attachment to be removed by its filename. * There is probably a better way to do this. */ void remove_attachment(void) { wcsession *WCC = WC; wc_mime_attachment *att; void *vAtt; StrBuf *WhichAttachment; HashPos *at; long len; int found=0; const char *key; WhichAttachment = NewStrBufDup(sbstr("which_attachment")); if (ChrPtr(WhichAttachment)[0] == '/') StrBufCutLeft(WhichAttachment, 1); StrBufUnescape(WhichAttachment, 0); at = GetNewHashPos(WCC->attachments, 0); do { vAtt = NULL; GetHashPos(WCC->attachments, at, &len, &key, &vAtt); att = (wc_mime_attachment*) vAtt; if ((att != NULL) && ( !strcmp(ChrPtr(WhichAttachment), ChrPtr(att->FileName)) || ((att->PartNum != NULL) && !strcmp(ChrPtr(WhichAttachment), ChrPtr(att->PartNum))) )) { DeleteEntryFromHash(WCC->attachments, at); found=1; break; } } while (NextHashPos(WCC->attachments, at)); FreeStrBuf(&WhichAttachment); wc_printf("remove_attachment(%d) completed\n", found); } const char *ReplyToModeStrings [3] = { "reply", "replyall", "forward" }; typedef enum _eReplyToNodes { eReply, eReplyAll, eForward }eReplyToNodes; /* * display the message entry screen */ void display_enter(void) { const char *ReplyingModeStr; eReplyToNodes ReplyMode = eReply; StrBuf *Line; long Result; int rc; const StrBuf *display_name = NULL; int recipient_required = 0; int subject_required = 0; int is_anonymous = 0; wcsession *WCC = WC; int i = 0; long replying_to; int prefer_md; get_pref_yesno("markdown", &prefer_md, 0); if (havebstr("force_room")) { gotoroom(sbstr("force_room")); } display_name = sbstr("display_name"); if (!strcmp(ChrPtr(display_name), "__ANONYMOUS__")) { display_name = NULL; is_anonymous = 1; } /* * First, do we have permission to enter messages in this room at all? */ Line = NewStrBuf(); serv_puts("ENT0 0"); StrBuf_ServGetln(Line); rc = GetServerStatusMsg(Line, &Result, 0, 2); if (Result == 570) { /* 570 means that we need a recipient here */ recipient_required = 1; } else if (rc != 2) { /* Any other error means that we cannot continue */ rc = GetServerStatusMsg(Line, &Result, 0, 2); fixview(); readloop(readnew, eUseDefault); FreeStrBuf(&Line); return; } /* Is the server strongly recommending that the user enter a message subject? */ if (StrLength(Line) > 4) { subject_required = extract_int(ChrPtr(Line) + 4, 1); } /* * Are we perhaps in an address book view? If so, then an "enter * message" command really means "add new entry." */ if (WCC->CurRoom.defview == VIEW_ADDRESSBOOK) { do_edit_vcard(-1, "", NULL, NULL, "", ChrPtr(WCC->CurRoom.name)); FreeStrBuf(&Line); return; } /* * Are we perhaps in a calendar room? If so, then an "enter * message" command really means "add new calendar item." */ if (WCC->CurRoom.defview == VIEW_CALENDAR) { display_edit_event(); FreeStrBuf(&Line); return; } /* * Are we perhaps in a tasks view? If so, then an "enter * message" command really means "add new task." */ if (WCC->CurRoom.defview == VIEW_TASKS) { display_edit_task(); FreeStrBuf(&Line); return; } ReplyingModeStr = bstr("replying_mode"); if (ReplyingModeStr != NULL) for (i = 0; i < 3; i++) { if (strcmp(ReplyingModeStr, ReplyToModeStrings[i]) == 0) { ReplyMode = (eReplyToNodes) i; break; } } /* * If the "replying_to" variable is set, it refers to a message * number from which we must extract some header fields... */ replying_to = lbstr("replying_to"); if (replying_to > 0) { long len; StrBuf *wefw = NULL; StrBuf *msgn = NULL; StrBuf *from = NULL; StrBuf *node = NULL; StrBuf *rfca = NULL; StrBuf *rcpt = NULL; StrBuf *cccc = NULL; StrBuf *replyto = NULL; StrBuf *nvto = NULL; serv_printf("MSG0 %ld|1", replying_to); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 0, 0) == 1) while (len = StrBuf_ServGetln(Line), (len >= 0) && ((len != 3) || strcmp(ChrPtr(Line), "000"))) { eMessageField which; if ((StrLength(Line) > 4) && (ChrPtr(Line)[4] == '=') && GetFieldFromMnemonic(&which, ChrPtr(Line))) switch (which) { case eMsgSubject: { StrBuf *subj = NewStrBuf(); StrBuf *FlatSubject; if (ReplyMode == eForward) { if (strncasecmp(ChrPtr(Line) + 5, "Fw:", 3)) { StrBufAppendBufPlain(subj, HKEY("Fw: "), 0); } } else { if (strncasecmp(ChrPtr(Line) + 5, "Re:", 3)) { StrBufAppendBufPlain(subj, HKEY("Re: "), 0); } } StrBufAppendBufPlain(subj, ChrPtr(Line) + 5, StrLength(Line) - 5, 0); FlatSubject = NewStrBufPlain(NULL, StrLength(subj)); StrBuf_RFC822_to_Utf8(FlatSubject, subj, NULL, NULL); PutBstr(HKEY("subject"), FlatSubject); } break; case eWeferences: { int rrtok; int rrlen; wefw = NewStrBufPlain(ChrPtr(Line) + 5, StrLength(Line) - 5); /* Trim down excessively long lists of thread references. We eliminate the * second one in the list so that the thread root remains intact. */ rrtok = num_tokens(ChrPtr(wefw), '|'); rrlen = StrLength(wefw); if ( ((rrtok >= 3) && (rrlen > 900)) || (rrtok > 10) ) { StrBufRemove_token(wefw, 1, '|'); } break; } case emessageId: msgn = NewStrBufPlain(ChrPtr(Line) + 5, StrLength(Line) - 5); break; case eAuthor: { StrBuf *FlatFrom; from = NewStrBufPlain(ChrPtr(Line) + 5, StrLength(Line) - 5); FlatFrom = NewStrBufPlain(NULL, StrLength(from)); StrBuf_RFC822_to_Utf8(FlatFrom, from, NULL, NULL); FreeStrBuf(&from); from = FlatFrom; for (i=0; i 0) { StrBuf *refs = NewStrBuf(); if (StrLength(wefw) > 0) { StrBufAppendBuf(refs, wefw, 0); } if ( (StrLength(wefw) > 0) && (StrLength(msgn) > 0) ) { StrBufAppendBufPlain(refs, HKEY("|"), 0); } if (StrLength(msgn) > 0) { StrBufAppendBuf(refs, msgn, 0); } PutBstr(HKEY("references"), refs); } /* * If this is a Reply or a ReplyAll, copy the sender's email into the To: field */ if ((ReplyMode == eReply) || (ReplyMode == eReplyAll)) { StrBuf *to_rcpt; if ((StrLength(replyto) > 0) && (ReplyMode == eReplyAll)) { to_rcpt = NewStrBuf(); StrBufAppendBuf(to_rcpt, replyto, 0); } else if (StrLength(rfca) > 0) { to_rcpt = NewStrBuf(); StrBufAppendBuf(to_rcpt, from, 0); StrBufAppendBufPlain(to_rcpt, HKEY(" <"), 0); StrBufAppendBuf(to_rcpt, rfca, 0); StrBufAppendBufPlain(to_rcpt, HKEY(">"), 0); } else { to_rcpt = from; from = NULL; if ( (StrLength(node) > 0) && (strcasecmp(ChrPtr(node), ChrPtr(WCC->serv_info->serv_nodename))) ) { StrBufAppendBufPlain(to_rcpt, HKEY(" @ "), 0); StrBufAppendBuf(to_rcpt, node, 0); } } PutBstr(HKEY("recp"), to_rcpt); } /* * Only if this is a ReplyAll, copy all recipients into the Cc: field */ if (ReplyMode == eReplyAll) { StrBuf *cc_rcpt = rcpt; rcpt = NULL; if ((StrLength(cccc) > 0) && (StrLength(replyto) == 0)) { if (cc_rcpt != NULL) { StrBufAppendPrintf(cc_rcpt, ", "); StrBufAppendBuf(cc_rcpt, cccc, 0); } else { cc_rcpt = cccc; cccc = NULL; } } if (cc_rcpt != NULL) PutBstr(HKEY("cc"), cc_rcpt); } FreeStrBuf(&wefw); FreeStrBuf(&msgn); FreeStrBuf(&from); FreeStrBuf(&node); FreeStrBuf(&rfca); FreeStrBuf(&rcpt); FreeStrBuf(&cccc); } FreeStrBuf(&Line); /* * Otherwise proceed normally. * Do a custom room banner with no navbar... */ if (recipient_required) { const StrBuf *Recp = NULL; const StrBuf *Cc = NULL; const StrBuf *Bcc = NULL; StrBuf *wikipage = NULL; StrBuf *CmdBuf = NULL; const char CMD[] = "ENT0 0|%s|%d|0||%s||%s|%s|%s"; Recp = sbstr("recp"); Cc = sbstr("cc"); Bcc = sbstr("bcc"); wikipage = NewStrBufDup(sbstr("page")); str_wiki_index(wikipage); CmdBuf = NewStrBufPlain(NULL, sizeof (CMD) + StrLength(Recp) + StrLength(display_name) + StrLength(Cc) + StrLength(Bcc) + StrLength(wikipage)); StrBufPrintf(CmdBuf, CMD, ChrPtr(Recp), is_anonymous, ChrPtr(display_name), ChrPtr(Cc), ChrPtr(Bcc), ChrPtr(wikipage) ); serv_puts(ChrPtr(CmdBuf)); StrBuf_ServGetln(CmdBuf); free(wikipage); rc = GetServerStatusMsg(CmdBuf, &Result, 0, 0); if ( (Result == 570) /* invalid or missing recipient(s) */ || (Result == 550) /* higher access required to send Internet mail */ ) { /* These errors will have been displayed and are excusable */ } else if (rc != 2) { /* Any other error means that we cannot continue */ AppendImportantMessage(ChrPtr(CmdBuf) + 4, StrLength(CmdBuf) - 4); FreeStrBuf(&CmdBuf); fixview(); readloop(readnew, eUseDefault); return; } FreeStrBuf(&CmdBuf); } if (recipient_required) PutBstr(HKEY("__RCPTREQUIRED"), NewStrBufPlain(HKEY("1"))); if (recipient_required || subject_required) PutBstr(HKEY("__SUBJREQUIRED"), NewStrBufPlain(HKEY("1"))); begin_burst(); output_headers(1, 0, 0, 0, 1, 0); if ((WCC->CurRoom.defview == VIEW_WIKIMD) || prefer_md) DoTemplate(HKEY("edit_markdown_epic"), NULL, &NoCtx); else DoTemplate(HKEY("edit_message"), NULL, &NoCtx); end_burst(); return; } /* * delete a message */ void delete_msg(void) { long msgid; StrBuf *Line; msgid = lbstr("msgid"); Line = NewStrBuf(); if ((WC->CurRoom.RAFlags & UA_ISTRASH) != 0) { /* Delete from Trash is a real delete */ serv_printf("DELE %ld", msgid); } else { /* Otherwise move it to Trash */ serv_printf("MOVE %ld|_TRASH_|0", msgid); } StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); fixview(); readloop(readnew, eUseDefault); } /* * move a message to another room */ void move_msg(void) { long msgid; msgid = lbstr("msgid"); if (havebstr("move_button")) { StrBuf *Line; serv_printf("MOVE %ld|%s", msgid, bstr("target_room")); Line = NewStrBuf(); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); FreeStrBuf(&Line); } else { AppendImportantMessage(_("The message was not moved."), -1); } fixview(); readloop(readnew, eUseDefault); } /* * Generic function to output an arbitrary MIME attachment from * message being composed * * partnum The MIME part to be output * filename Fake filename to give * force_download Nonzero to force set the Content-Type: header to "application/octet-stream" */ void postpart(StrBuf *partnum, StrBuf *filename, int force_download) { void *vPart; StrBuf *content_type; wc_mime_attachment *part; int i; i = StrToi(partnum); if (GetHash(WC->attachments, IKEY(i), &vPart) && (vPart != NULL)) { part = (wc_mime_attachment*) vPart; if (force_download) { content_type = NewStrBufPlain(HKEY("application/octet-stream")); } else { content_type = NewStrBufDup(part->ContentType); } StrBufAppendBuf(WC->WBuf, part->Data, 0); http_transmit_thing(ChrPtr(content_type), 0); } else { hprintf("HTTP/1.1 404 %s\n", ChrPtr(partnum)); output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf(_("An error occurred while retrieving this part: %s/%s\n"), ChrPtr(partnum), ChrPtr(filename)); end_burst(); } FreeStrBuf(&content_type); } /* * Generic function to output an arbitrary MIME part from an arbitrary * message number on the server. * * msgnum Number of the item on the citadel server * partnum The MIME part to be output * force_download Nonzero to force set the Content-Type: header to "application/octet-stream" */ void mimepart(int force_download) { int detect_mime = 0; long msgnum; long ErrorDetail; StrBuf *att; wcsession *WCC = WC; StrBuf *Buf; off_t bytes; StrBuf *ContentType = NewStrBufPlain(HKEY("application/octet-stream")); const char *CT; att = Buf = NewStrBuf(); msgnum = StrBufExtract_long(WCC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(att, WCC->Hdr->HR.ReqLine, 1, '/'); serv_printf("OPNA %ld|%s", msgnum, ChrPtr(att)); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &ErrorDetail) == 2) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); StrBufExtract_token(ContentType, Buf, 3, '|'); CheckGZipCompressionAllowed (SKEY(ContentType)); if (force_download) { FlushStrBuf(ContentType); detect_mime = 0; } else { if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream")) { StrBufExtract_token(Buf, WCC->Hdr->HR.ReqLine, 2, '/'); CT = GuessMimeByFilename(SKEY(Buf)); StrBufPlain(ContentType, CT, -1); } if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream")) { detect_mime = 1; } } serv_read_binary_to_http(ContentType, bytes, 0, detect_mime); serv_read_binary(WCC->WBuf, bytes, Buf); serv_puts("CLOS"); StrBuf_ServGetln(Buf); CT = ChrPtr(ContentType); } else { StrBufCutLeft(Buf, 4); switch (ErrorDetail) { default: case ERROR + MESSAGE_NOT_FOUND: hprintf("HTTP/1.1 404 %s\n", ChrPtr(Buf)); break; case ERROR + NOT_LOGGED_IN: hprintf("HTTP/1.1 401 %s\n", ChrPtr(Buf)); break; case ERROR + HIGHER_ACCESS_REQUIRED: hprintf("HTTP/1.1 403 %s\n", ChrPtr(Buf)); break; case ERROR + INTERNAL_ERROR: case ERROR + TOO_BIG: hprintf("HTTP/1.1 500 %s\n", ChrPtr(Buf)); break; } hprintf("Pragma: no-cache\r\n" "Cache-Control: no-store\r\n" "Expires: -1\r\n" ); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf(_("An error occurred while retrieving this part: %s\n"), ChrPtr(Buf)); end_burst(); } FreeStrBuf(&ContentType); FreeStrBuf(&Buf); } /* * Read any MIME part of a message, from the server, into memory. */ StrBuf *load_mimepart(long msgnum, char *partnum) { off_t bytes; StrBuf *Buf; Buf = NewStrBuf(); serv_printf("DLAT %ld|%s", msgnum, partnum); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 6) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); FreeStrBuf(&Buf); Buf = NewStrBuf(); StrBuf_ServGetBLOBBuffered(Buf, bytes); return(Buf); } else { FreeStrBuf(&Buf); return(NULL); } } /* * Read any MIME part of a message, from the server, into memory. */ void MimeLoadData(wc_mime_attachment *Mime) { StrBuf *Buf; const char *Ptr; off_t bytes; /* TODO: is there a chance the content type is different from the one we know? */ serv_printf("DLAT %ld|%s", Mime->msgnum, ChrPtr(Mime->PartNum)); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 6) { Ptr = &(ChrPtr(Buf)[4]); bytes = StrBufExtractNext_long(Buf, &Ptr, '|'); StrBufSkip_NTokenS(Buf, &Ptr, '|', 3); /* filename, cbtype, mimetype */ if (Mime->Charset == NULL) Mime->Charset = NewStrBuf(); StrBufExtract_NextToken(Mime->Charset, Buf, &Ptr, '|'); if (Mime->Data == NULL) Mime->Data = NewStrBufPlain(NULL, bytes); StrBuf_ServGetBLOBBuffered(Mime->Data, bytes); } else { FlushStrBuf(Mime->Data); /* TODO XImportant message */ } FreeStrBuf(&Buf); } void view_mimepart(void) { mimepart(0); } void download_mimepart(void) { mimepart(1); } void view_postpart(void) { StrBuf *filename = NewStrBuf(); StrBuf *partnum = NewStrBuf(); StrBufExtract_token(partnum, WC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(filename, WC->Hdr->HR.ReqLine, 1, '/'); postpart(partnum, filename, 0); FreeStrBuf(&filename); FreeStrBuf(&partnum); } void download_postpart(void) { StrBuf *filename = NewStrBuf(); StrBuf *partnum = NewStrBuf(); StrBufExtract_token(partnum, WC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(filename, WC->Hdr->HR.ReqLine, 1, '/'); postpart(partnum, filename, 1); FreeStrBuf(&filename); FreeStrBuf(&partnum); } void show_num_attachments(void) { wc_printf("%d", GetCount(WC->attachments)); } void h_readnew(void) { readloop(readnew, eUseDefault);} void h_readold(void) { readloop(readold, eUseDefault);} void h_readfwd(void) { readloop(readfwd, eUseDefault);} void h_headers(void) { readloop(headers, eUseDefault);} void h_do_search(void) { readloop(do_search, eUseDefault);} void h_readgt(void) { readloop(readgt, eUseDefault);} void h_readlt(void) { readloop(readlt, eUseDefault);} /* Output message list in JSON format */ void jsonMessageList(void) { StrBuf *View = NewStrBuf(); const StrBuf *room = sbstr("room"); long oper = (havebstr("query")) ? do_search : readnew; StrBufPrintf(View, "%d", VIEW_JSON_LIST); putbstr("view", View);; gotoroom(room); readloop(oper, eUseDefault); } void FreeReadLoopHandlerSet(void *v) { RoomRenderer *Handler = (RoomRenderer *) v; FreeStrBuf(&Handler->FetchMessageList); if (Handler->MessageFieldList != NULL) { free(Handler->MessageFieldList); } free(Handler); } void RegisterReadLoopHandlerset( int RoomType, GetParamsGetServerCall_func GetParamsGetServerCall, PrintViewHeader_func PrintPageHeader, PrintViewHeader_func PrintViewHeader, load_msg_ptrs_detailheaders LH, LoadMsgFromServer_func LoadMsgFromServer, RenderView_or_Tail_func RenderView_or_Tail, View_Cleanup_func ViewCleanup, const char **browseListFields ) { long count = 0; long i = 0; RoomRenderer *Handler; Handler = (RoomRenderer*) malloc(sizeof(RoomRenderer)); Handler->RoomType = RoomType; Handler->GetParamsGetServerCall = GetParamsGetServerCall; Handler->PrintPageHeader = PrintPageHeader; Handler->PrintViewHeader = PrintViewHeader; Handler->LoadMsgFromServer = LoadMsgFromServer; Handler->RenderView_or_Tail = RenderView_or_Tail; Handler->ViewCleanup = ViewCleanup; Handler->LHParse = LH; if (browseListFields != NULL) { while (browseListFields[count] != NULL) { count ++; } Handler->HeaderCount = count; Handler->MessageFieldList = (eMessageField*) malloc(sizeof(eMessageField) * count); Handler->FetchMessageList = NewStrBufPlain(NULL, 5 * count + 4 + 5); StrBufPlain(Handler->FetchMessageList, HKEY("time\n")); for (i = 0; i < count; i++) { if (!GetFieldFromMnemonic(&Handler->MessageFieldList[i], browseListFields[i])) { fprintf(stderr, "Unknown message header: %s\n", browseListFields[i]); exit(1); } StrBufAppendBufPlain(Handler->FetchMessageList, browseListFields[i], 4, 0); StrBufAppendBufPlain(Handler->FetchMessageList, HKEY("\n"), 0); } StrBufAppendBufPlain(Handler->FetchMessageList, HKEY("000"), 0); } else { Handler->FetchMessageList = NULL; Handler->MessageFieldList = NULL; } Put(ReadLoopHandler, IKEY(RoomType), Handler, FreeReadLoopHandlerSet); } void InitModule_MSG (void) { RegisterPreference("use_sig", _("Attach signature to email messages?"), PRF_YESNO, NULL); RegisterPreference("signature", _("Use this signature:"), PRF_QP_STRING, NULL); RegisterPreference("default_header_charset", _("Default character set for email headers:"), PRF_STRING, NULL); RegisterPreference("defaultfrom", _("Preferred email address"), PRF_STRING, NULL); RegisterPreference("defaultname", _("Preferred display name for email messages"), PRF_STRING, NULL); RegisterPreference("defaulthandle", _("Preferred display name for bulletin board posts"), PRF_STRING, NULL); RegisterPreference("mailbox",_("Mailbox view mode"), PRF_STRING, NULL); RegisterPreference("markdown",_("Prefer markdown editing"), PRF_YESNO, NULL); WebcitAddUrlHandler(HKEY("readnew"), "", 0, h_readnew, ANONYMOUS|NEED_URL); WebcitAddUrlHandler(HKEY("readold"), "", 0, h_readold, ANONYMOUS|NEED_URL); WebcitAddUrlHandler(HKEY("readfwd"), "", 0, h_readfwd, ANONYMOUS|NEED_URL); WebcitAddUrlHandler(HKEY("headers"), "", 0, h_headers, NEED_URL); WebcitAddUrlHandler(HKEY("readgt"), "", 0, h_readgt, ANONYMOUS|NEED_URL); WebcitAddUrlHandler(HKEY("readlt"), "", 0, h_readlt, ANONYMOUS|NEED_URL); WebcitAddUrlHandler(HKEY("do_search"), "", 0, h_do_search, 0); WebcitAddUrlHandler(HKEY("display_enter"), "", 0, display_enter, 0); WebcitAddUrlHandler(HKEY("post"), "", 0, post_message, PROHIBIT_STARTPAGE); WebcitAddUrlHandler(HKEY("move_msg"), "", 0, move_msg, PROHIBIT_STARTPAGE); WebcitAddUrlHandler(HKEY("delete_msg"), "", 0, delete_msg, PROHIBIT_STARTPAGE); WebcitAddUrlHandler(HKEY("msg"), "", 0, embed_message, NEED_URL); WebcitAddUrlHandler(HKEY("message"), "", 0, handle_one_message, NEED_URL|XHTTP_COMMANDS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE); WebcitAddUrlHandler(HKEY("printmsg"), "", 0, print_message, NEED_URL); WebcitAddUrlHandler(HKEY("msgheaders"), "", 0, display_headers, NEED_URL); WebcitAddUrlHandler(HKEY("mimepart"), "", 0, view_mimepart, NEED_URL); WebcitAddUrlHandler(HKEY("mimepart_download"), "", 0, download_mimepart, NEED_URL); WebcitAddUrlHandler(HKEY("postpart"), "", 0, view_postpart, NEED_URL|PROHIBIT_STARTPAGE); WebcitAddUrlHandler(HKEY("postpart_download"), "", 0, download_postpart, NEED_URL|PROHIBIT_STARTPAGE); WebcitAddUrlHandler(HKEY("upload_attachment"), "", 0, upload_attachment, AJAX); WebcitAddUrlHandler(HKEY("remove_attachment"), "", 0, remove_attachment, AJAX); WebcitAddUrlHandler(HKEY("show_num_attachments"), "", 0, show_num_attachments, AJAX); /* json */ WebcitAddUrlHandler(HKEY("roommsgs"), "", 0, jsonMessageList,0); } void SessionDetachModule_MSG (wcsession *sess) { DeleteHash(&sess->summ); } webcit-dfsg.orig/bootstrap0000755000175000017500000000172513223341037015747 0ustar michaelmichael#!/bin/sh # # run me after checking WebCit out of svn. # # Remove any vestiges of pre-6.05 build environments rm -f .libs modules *.so *.lo *.la 2>/dev/null if ./scripts/get_ical_data.sh; then echo ... running aclocal ... aclocal echo ... running autoconf ... autoconf # If your autoconf version changes, the autom4te.cache stuff will mess you up. # Get rid of it. echo ... removing autoheader cache files ... rm -rf autom4te*.cache echo ... running autoheader ... autoheader echo ... mk_module_init.sh ... ./scripts/mk_module_init.sh echo echo This script has been tested with autoconf 2.53 and echo automake 1.5. Other versions may work, but I recommend the latest echo compatible versions of these. echo echo Also note that autoconf and automake should be configured echo with the same prefix. echo fi grep '^#define CLIENT_VERSION' webcit.h | sed 's/[^0-9]*//g' >package-version.txt webcit-dfsg.orig/calendar.h0000644000175000017500000000565013223341037015727 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef __CALENDAR_H__ #define __CALENDAR_H__ /* * calview contains data passed back and forth between the message fetching loop * and the calendar view renderer. */ enum { calview_month, calview_day, calview_week, calview_brief, calview_summary }; typedef struct _calview { int view; int year; int month; int day; time_t lower_bound; time_t upper_bound; }calview; typedef void (*IcalCallbackFunc)(icalcomponent *, long, char*, int, calview *); void display_individual_cal(icalcomponent *cal, long msgnum, char *from, int unread, calview *calv); void load_ical_object(long msgnum, int unread, icalcomponent_kind which_kind, IcalCallbackFunc CallBack, calview *calv, int RenderAsync ); int calendar_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i); int calendar_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper); int calendar_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen); int calendar_Cleanup(void **ViewSpecific); int __calendar_Cleanup(void **ViewSpecific); void render_calendar_view(calview *c); void display_edit_individual_event(icalcomponent *supplied_vtodo, long msgnum, char *from, int unread, calview *calv); void save_individual_event(icalcomponent *supplied_vtodo, long msgnum, char *from, int unread, calview *calv); void ical_dezonify(icalcomponent *cal); int tasks_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i); void display_edit_task(void); void display_edit_event(void); icaltimezone *get_default_icaltimezone(void); void display_icaltimetype_as_webform(struct icaltimetype *, char *, int); void icaltime_from_webform(struct icaltimetype *result, char *prefix); void icaltime_from_webform_dateonly(struct icaltimetype *result, char *prefix); void partstat_as_string(char *buf, icalproperty *attendee); icalcomponent *ical_encapsulate_subcomponent(icalcomponent *subcomp); void check_attendee_availability(icalcomponent *supplied_vevent); int ical_ctdl_is_overlap( struct icaltimetype t1start, struct icaltimetype t1end, struct icaltimetype t2start, struct icaltimetype t2end ); #endif webcit-dfsg.orig/calendar_view.c0000644000175000017500000013067113223341037016756 0ustar michaelmichael/* * Handles the HTML display of calendar items. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "calendar.h" /* These define how high the hour rows are in the day view */ #define TIMELINE 22 #define EXTRATIMELINE 22 void embeddable_mini_calendar(int year, int month) { struct tm starting_tm; struct tm tm; time_t thetime; int i; time_t previous_month; time_t next_month; time_t colheader_time; struct tm colheader_tm; char colheader_label[32]; long weekstart = 0; char url[256]; char div_id[256]; snprintf(div_id, sizeof div_id, "mini_calendar_%d", rand() ); /* Determine what day to start. If an impossible value is found, start on Sunday. */ get_pref_long("weekstart", &weekstart, 17); if (weekstart > 6) weekstart = 0; /* * Now back up to the 1st of the month... */ memset(&starting_tm, 0, sizeof(struct tm)); starting_tm.tm_year = year - 1900; starting_tm.tm_mon = month - 1; starting_tm.tm_mday = 1; thetime = mktime(&starting_tm); memcpy(&tm, &starting_tm, sizeof(struct tm)); while (tm.tm_mday != 1) { thetime = thetime - (time_t)86400; /* go back 24 hours */ localtime_r(&thetime, &tm); } /* Determine previous and next months ... for links */ previous_month = thetime - (time_t)864000L; /* back 10 days */ next_month = thetime + (time_t)(31L * 86400L); /* ahead 31 days */ /* Now back up until we're on the user's preferred start day */ localtime_r(&thetime, &tm); while (tm.tm_wday != weekstart) { thetime = thetime - (time_t)86400; /* go back 24 hours */ localtime_r(&thetime, &tm); } wc_printf("
    \n", div_id); /* Previous month link */ localtime_r(&previous_month, &tm); wc_printf("«", (int)(tm.tm_year)+1900, tm.tm_mon + 1); wc_strftime(colheader_label, sizeof colheader_label, "%B", &starting_tm); wc_printf("  " "" "%s %d" "" "  ", colheader_label, year); /* Next month link */ localtime_r(&next_month, &tm); wc_printf("»", (int)(tm.tm_year)+1900, tm.tm_mon + 1); wc_printf("" ""); colheader_time = thetime; for (i=0; i<7; ++i) { colheader_time = thetime + (i * 86400) ; localtime_r(&colheader_time, &colheader_tm); wc_strftime(colheader_label, sizeof colheader_label, "%A", &colheader_tm); wc_printf("", colheader_label[0]); } wc_printf("\n"); /* Now do 35 or 42 days */ for (i = 0; i < 42; ++i) { localtime_r(&thetime, &tm); if (i < 35) { /* Before displaying Sunday, start a new row */ if ((i % 7) == 0) { wc_printf(""); } if (tm.tm_mon == month-1) { snprintf(url, sizeof url, "readfwd?calview=day?year=%d?month=%d?day=%d", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday); wc_printf("", url, tm.tm_mday); } else { wc_printf(""); } /* After displaying one week, end the row */ if ((i % 7) == 6) { wc_printf("\n"); } } thetime += (time_t)86400; /* ahead 24 hours */ } wc_printf("
    %c
    %d
    " /* end of inner table */ "
    \n"); StrBufAppendPrintf(WC->trailing_javascript, " function minical_change_month(year, month) { \n" " p = 'year=' + year + '&month=' + month \n" " + '&r=' + ctdlRandomString(); \n" " new Ajax.Updater('%s', 'mini_calendar', \n" " { method: 'get', parameters: p, evalScripts: true } ); \n" " } \n" "", div_id ); } /* * ajax embedder for the above mini calendar */ void ajax_mini_calendar(void) { embeddable_mini_calendar( ibstr("year"), ibstr("month")); } /* * Display one day of a whole month view of a calendar */ void calendar_month_view_display_events(int year, int month, int day) { long hklen; const char *HashKey; void *vCal; HashPos *Pos; disp_cal *Cal; icalproperty *p = NULL; icalproperty *q = NULL; struct icaltimetype t; struct icaltimetype end_t; struct icaltimetype today_start_t; struct icaltimetype today_end_t; struct icaltimetype today_t; struct tm starting_tm; struct tm ending_tm; int all_day_event = 0; int show_event = 0; char buf[256]; wcsession *WCC = WC; time_t tt; if (GetCount(WCC->disp_cal_items) == 0) { wc_printf("
    \n"); return; } /* * Create an imaginary event which spans the 24 hours of today. Any events which * overlap with this one take place at least partially in this day. We have to * convert it from a struct tm in order to make it UTC. */ memset(&starting_tm, 0, sizeof(struct tm)); starting_tm.tm_year = year - 1900; starting_tm.tm_mon = month - 1; starting_tm.tm_mday = day; starting_tm.tm_hour = 0; starting_tm.tm_min = 0; today_start_t = icaltime_from_timet_with_zone(mktime(&starting_tm), 0, icaltimezone_get_utc_timezone()); today_start_t.is_utc = 1; memset(&ending_tm, 0, sizeof(struct tm)); ending_tm.tm_year = year - 1900; ending_tm.tm_mon = month - 1; ending_tm.tm_mday = day; ending_tm.tm_hour = 23; ending_tm.tm_min = 59; today_end_t = icaltime_from_timet_with_zone(mktime(&ending_tm), 0, icaltimezone_get_utc_timezone()); today_end_t.is_utc = 1; /* * Create another one without caring about the timezone for all day events. */ today_t = icaltime_null_date(); today_t.year = year; today_t.month = month; today_t.day = day; /* * Now loop through our list of events to see which ones occur today. */ Pos = GetNewHashPos(WCC->disp_cal_items, 0); while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { Cal = (disp_cal*)vCal; all_day_event = 0; q = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY); if (q != NULL) { t = icalproperty_get_dtstart(q); } else { memset(&t, 0, sizeof t); } q = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY); if (q != NULL) { end_t = icalproperty_get_dtend(q); } else { memset(&end_t, 0, sizeof end_t); } if (t.is_date) all_day_event = 1; if (all_day_event) { show_event = ical_ctdl_is_overlap(t, end_t, today_t, icaltime_null_time()); } else { show_event = ical_ctdl_is_overlap(t, end_t, today_start_t, today_end_t); } /* * If we determined that this event occurs today, then display it. */ if (show_event) { /* time_t logtt = icaltime_as_timet(t); syslog(LOG_DEBUG, "Match on %04d-%02d-%02d for event %x%s on %s", year, month, day, (int)Cal, ((all_day_event) ? " (all day)" : ""), ctime(&logtt) ); */ p = icalcomponent_get_first_property(Cal->cal, ICAL_SUMMARY_PROPERTY); if (p == NULL) { p = icalproperty_new_summary(_("Untitled Event")); icalcomponent_add_property(Cal->cal, p); } if (p != NULL) { if (all_day_event) { wc_printf("" "
    " ); } wc_printf("" "" , (Cal->unread)?"_unread":"_read", Cal->cal_msgnum, year, month, day ); escputs((char *) icalproperty_get_comment(p)); wc_printf(""); wc_printf("%s: %s
    ", _("From"), Cal->from); wc_printf("%s ", _("Summary:")); escputs((char *)icalproperty_get_comment(p)); wc_printf("
    "); q = icalcomponent_get_first_property( Cal->cal, ICAL_LOCATION_PROPERTY); if (q) { wc_printf("%s ", _("Location:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } /* * Only show start/end times if we're actually looking at the VEVENT * component. Otherwise it shows bogus dates for e.g. timezones */ if (icalcomponent_isa(Cal->cal) == ICAL_VEVENT_COMPONENT) { q = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY); if (q != NULL) { int no_end = 0; t = icalproperty_get_dtstart(q); q = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY); if (q != NULL) { end_t = icalproperty_get_dtend(q); } else { /* * events with starting date/time equal * ending date/time might get only * DTSTART but no DTEND */ no_end = 1; } if (t.is_date) { /* all day event */ struct tm d_tm; if (!no_end) { /* end given, have to adjust it */ icaltime_adjust(&end_t, -1, 0, 0, 0); } memset(&d_tm, 0, sizeof d_tm); d_tm.tm_year = t.year - 1900; d_tm.tm_mon = t.month - 1; d_tm.tm_mday = t.day; wc_strftime(buf, sizeof buf, "%x", &d_tm); if (no_end || !icaltime_compare(t, end_t)) { wc_printf("%s %s
    ", _("Date:"), buf); } else { wc_printf("%s %s
    ", _("Starting date:"), buf); d_tm.tm_year = end_t.year - 1900; d_tm.tm_mon = end_t.month - 1; d_tm.tm_mday = end_t.day; wc_strftime(buf, sizeof buf, "%x", &d_tm); wc_printf("%s %s
    ", _("Ending date:"), buf); } } else { tt = icaltime_as_timet(t); webcit_fmt_date(buf, 256, tt, DATEFMT_BRIEF); if (no_end || !icaltime_compare(t, end_t)) { wc_printf("%s %s
    ", _("Date/time:"), buf); } else { wc_printf("%s %s
    ", _("Starting date/time:"), buf); tt = icaltime_as_timet(end_t); webcit_fmt_date(buf, 256, tt, DATEFMT_BRIEF); wc_printf("%s %s
    ", _("Ending date/time:"), buf); } } } } q = icalcomponent_get_first_property(Cal->cal, ICAL_DESCRIPTION_PROPERTY); if (q) { wc_printf("%s ", _("Notes:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } wc_printf("
    "); wc_printf("

    \n"); if (all_day_event) { wc_printf("
    "); } } } } DeleteHashPos(&Pos); } /* * Display one day of a whole month view of a calendar */ void calendar_month_view_brief_events(time_t thetime, const char *daycolor) { long hklen; const char *HashKey; void *vCal; HashPos *Pos; time_t event_tt; time_t event_tts; time_t event_tte; wcsession *WCC = WC; struct tm event_tms; struct tm event_tme; struct tm today_tm; icalproperty *p; icalproperty *e; struct icaltimetype t; disp_cal *Cal; int all_day_event = 0; char *timeformat; int time_format; time_format = get_time_format_cached (); if (time_format == WC_TIMEFORMAT_24) timeformat="%k:%M"; else timeformat="%I:%M %p"; localtime_r(&thetime, &today_tm); Pos = GetNewHashPos(WCC->disp_cal_items, 0); while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { Cal = (disp_cal*)vCal; p = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY); if (p != NULL) { t = icalproperty_get_dtstart(p); event_tt = icaltime_as_timet(t); event_tts=event_tt; if (t.is_date) all_day_event = 1; else all_day_event = 0; if (all_day_event) { gmtime_r(&event_tts, &event_tms); } else { localtime_r(&event_tts, &event_tms); } /* \todo epoch &! daymask */ if ((event_tms.tm_year == today_tm.tm_year) && (event_tms.tm_mon == today_tm.tm_mon) && (event_tms.tm_mday == today_tm.tm_mday)) { char sbuf[255]; char ebuf[255]; p = icalcomponent_get_first_property( Cal->cal, ICAL_SUMMARY_PROPERTY); if (p == NULL) { p = icalproperty_new_summary(_("Untitled Event")); icalcomponent_add_property(Cal->cal, p); } e = icalcomponent_get_first_property( Cal->cal, ICAL_DTEND_PROPERTY); if ((p != NULL) && (e != NULL)) { time_t difftime; int hours, minutes; t = icalproperty_get_dtend(e); event_tte = icaltime_as_timet(t); localtime_r(&event_tte, &event_tme); difftime=(event_tte-event_tts)/60; hours=(int)(difftime / 60); minutes=difftime % 60; wc_printf("%i:%2i" "" "", daycolor, hours, minutes, (Cal->unread)?"_unread":"_read", daycolor, Cal->cal_msgnum, bstr("year"), bstr("month"), bstr("day") ); escputs((char *) icalproperty_get_comment(p)); /* \todo: allso ammitime format */ wc_strftime(&sbuf[0], sizeof(sbuf), timeformat, &event_tms); wc_strftime(&ebuf[0], sizeof(sbuf), timeformat, &event_tme); wc_printf("" "%s%s", daycolor, sbuf, daycolor, ebuf); } } } } DeleteHashPos(&Pos); } /* * view one month. pretty view */ void calendar_month_view(int year, int month, int day) { struct tm starting_tm; struct tm tm; struct tm today_tm; time_t thetime; int i; time_t previous_month; time_t next_month; time_t colheader_time; time_t today_timet; struct tm colheader_tm; char colheader_label[32]; long weekstart = 0; /* * Make sure we know which day is today. */ today_timet = time(NULL); localtime_r(&today_timet, &today_tm); /* * Determine what day to start. If an impossible value is found, start on Sunday. */ get_pref_long("weekstart", &weekstart, 17); if (weekstart > 6) weekstart = 0; /* * Now back up to the 1st of the month... */ memset(&starting_tm, 0, sizeof(struct tm)); starting_tm.tm_year = year - 1900; starting_tm.tm_mon = month - 1; starting_tm.tm_mday = day; thetime = mktime(&starting_tm); memcpy(&tm, &starting_tm, sizeof(struct tm)); while (tm.tm_mday != 1) { thetime = thetime - (time_t)86400; /* go back 24 hours */ localtime_r(&thetime, &tm); } /* Determine previous and next months ... for links */ previous_month = thetime - (time_t)864000L; /* back 10 days */ next_month = thetime + (time_t)(31L * 86400L); /* ahead 31 days */ /* Now back up until we're on the user's preferred start day */ localtime_r(&thetime, &tm); while (tm.tm_wday != weekstart) { thetime = thetime - (time_t)86400; /* go back 24 hours */ localtime_r(&thetime, &tm); } /* Outer table (to get the background color) */ wc_printf(" \n
    "); wc_printf("\n"); wc_printf("
    "); localtime_r(&previous_month, &tm); wc_printf("", (int)(tm.tm_year)+1900, tm.tm_mon + 1); wc_printf("\"%s\"\n", _("previous")); wc_strftime(colheader_label, sizeof colheader_label, "%B", &starting_tm); wc_printf("  " "" "%s %d" "" "  ", colheader_label, year); localtime_r(&next_month, &tm); wc_printf("", (int)(tm.tm_year)+1900, tm.tm_mon + 1); wc_printf("\"%s\"\n", _("next")); wc_printf("
    \n"); /* Inner table (the real one) */ wc_printf(""); wc_printf(""); colheader_time = thetime; for (i=0; i<7; ++i) { colheader_time = thetime + (i * 86400) ; localtime_r(&colheader_time, &colheader_tm); wc_strftime(colheader_label, sizeof colheader_label, "%A", &colheader_tm); wc_printf("", colheader_label); } wc_printf("\n"); /* Now do 35 or 42 days */ localtime_r(&thetime, &tm); for (i = 0; i<42; ++i) { /* Before displaying the first day of the week, start a new row */ if ((i % 7) == 0) { wc_printf(""); /* After displaying the last day of the week, end the row */ if ((i % 7) == 6) { wc_printf("\n"); } thetime += (time_t)86400; /* ahead 24 hours */ localtime_r(&thetime, &tm); if ( ((i % 7) == 6) && (tm.tm_mon != month-1) && (tm.tm_mday < 15) ) { i = 100; /* break out of the loop */ } } wc_printf("
    " "%s
    "); wc_strftime(colheader_label, sizeof colheader_label, "%V", &tm); wc_printf("%s ", colheader_label); } wc_printf("
    ", ((tm.tm_mon != month-1) ? "out" : (((tm.tm_year == today_tm.tm_year) && (tm.tm_mon == today_tm.tm_mon) && (tm.tm_mday == today_tm.tm_mday)) ? "today" : ((tm.tm_wday==0 || tm.tm_wday==6) ? "weekend" : "day"))) ); if ((i==0) || (tm.tm_mday == 1)) { wc_strftime(colheader_label, sizeof colheader_label, "%B", &tm); wc_printf("%s ", colheader_label); } wc_printf("" "%d
    ", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_mday); /* put the data here, stupid */ calendar_month_view_display_events( tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday ); wc_printf("
    " /* end of inner table */ "
    \n" /* end of outer table */ ); } /* * view one month. brief view */ void calendar_brief_month_view(int year, int month, int day) { struct tm starting_tm; struct tm tm; time_t thetime; int i; time_t previous_month; time_t next_month; char month_label[32]; /* Determine what day to start. * First, back up to the 1st of the month... */ memset(&starting_tm, 0, sizeof(struct tm)); starting_tm.tm_year = year - 1900; starting_tm.tm_mon = month - 1; starting_tm.tm_mday = day; thetime = mktime(&starting_tm); memcpy(&tm, &starting_tm, sizeof(struct tm)); while (tm.tm_mday != 1) { thetime = thetime - (time_t)86400; /* go back 24 hours */ localtime_r(&thetime, &tm); } /* Determine previous and next months ... for links */ previous_month = thetime - (time_t)864000L; /* back 10 days */ next_month = thetime + (time_t)(31L * 86400L); /* ahead 31 days */ /* Now back up until we're on a Sunday */ localtime_r(&thetime, &tm); while (tm.tm_wday != 0) { thetime = thetime - (time_t)86400; /* go back 24 hours */ localtime_r(&thetime, &tm); } /* Outer table (to get the background color) */ wc_printf("
    \n"); wc_printf("\n"); wc_printf("
    "); localtime_r(&previous_month, &tm); wc_printf("", (int)(tm.tm_year)+1900, tm.tm_mon + 1); wc_printf("\"%s\"\n", _("previous")); wc_strftime(month_label, sizeof month_label, "%B", &tm); wc_printf("  " "" "%s %d" "" "  ", month_label, year); localtime_r(&next_month, &tm); wc_printf("", (int)(tm.tm_year)+1900, tm.tm_mon + 1); wc_printf("\"%s\"\n", _("next")); wc_printf("
    \n"); /* Inner table (the real one) */ wc_printf(""); wc_printf("\n"); wc_printf("
    \n"); /* Now do 35 days */ for (i = 0; i < 35; ++i) { char weeknumber[255]; char weekday_name[32]; char *daycolor; localtime_r(&thetime, &tm); /* Before displaying Sunday, start a new CELL */ if ((i % 7) == 0) { wc_strftime(&weeknumber[0], sizeof(weeknumber), "%U", &tm); wc_printf("" " \n", _("Week"), weeknumber, _("Hours"), _("Subject"), _("Start"), _("End") ); } daycolor=((tm.tm_mon != month-1) ? "DDDDDD" : ((tm.tm_wday==0 || tm.tm_wday==6) ? "EEEECC" : "FFFFFF")); /* Day Header */ wc_strftime(weekday_name, sizeof weekday_name, "%A", &tm); wc_printf("\n", daycolor, weekday_name,tm.tm_mday, daycolor); /* put the data of one day here, stupid */ calendar_month_view_brief_events(thetime, daycolor); /* After displaying Saturday, end the row */ if ((i % 7) == 6) { wc_printf("
    %s %s
    %s%s%s%s
    %s,%i." "
    \n"); } thetime += (time_t)86400; /* ahead 24 hours */ } wc_printf("
    " /* end of inner table */ "
    \n" /* end of outer table */ ); } /* * Calendar week view -- not implemented yet, this is a stub function */ void calendar_week_view(int year, int month, int day) { wc_printf("
    week view FIXME

    \n"); } /* * display one day * Display events for a particular hour of a particular day. * (Specify hour < 0 to show "all day" events) * * dstart and dend indicate which hours our "daytime" begins and end */ void calendar_day_view_display_events(time_t thetime, int year, int month, int day, int notime_events, int dstart, int dend) { long hklen; const char *HashKey; void *vCal; HashPos *Pos; icalproperty *p = NULL; icalproperty *q = NULL; time_t event_tt; time_t event_tte; struct tm event_te; struct tm event_tm; int show_event = 0; int all_day_event = 0; int ongoing_event = 0; wcsession *WCC = WC; disp_cal *Cal; struct icaltimetype t; struct icaltimetype end_t; struct icaltimetype today_start_t; struct icaltimetype today_end_t; struct icaltimetype today_t; struct tm starting_tm; struct tm ending_tm; int top = 0; int bottom = 0; int gap = 1; int startmin = 0; int diffmin = 0; int endmin = 0; char buf[256]; if (GetCount(WCC->disp_cal_items) == 0) { /* nothing to display */ return; } /* Create an imaginary event which spans the current day. Any events which * overlap with this one take place at least partially in this day. */ memset(&starting_tm, 0, sizeof(struct tm)); starting_tm.tm_year = year - 1900; starting_tm.tm_mon = month - 1; starting_tm.tm_mday = day; starting_tm.tm_hour = 0; starting_tm.tm_min = 0; today_start_t = icaltime_from_timet_with_zone(mktime(&starting_tm), 0, icaltimezone_get_utc_timezone()); today_start_t.is_utc = 1; memset(&ending_tm, 0, sizeof(struct tm)); ending_tm.tm_year = year - 1900; ending_tm.tm_mon = month - 1; ending_tm.tm_mday = day; ending_tm.tm_hour = 23; ending_tm.tm_min = 59; today_end_t = icaltime_from_timet_with_zone(mktime(&ending_tm), 0, icaltimezone_get_utc_timezone()); today_end_t.is_utc = 1; /* * Create another one without caring about the timezone for all day events. */ today_t = icaltime_null_date(); today_t.year = year; today_t.month = month; today_t.day = day; /* Now loop through our list of events to see which ones occur today. */ Pos = GetNewHashPos(WCC->disp_cal_items, 0); while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { Cal = (disp_cal*)vCal; all_day_event = 0; ongoing_event=0; q = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY); if (q != NULL) { t = icalproperty_get_dtstart(q); event_tt = icaltime_as_timet(t); localtime_r(&event_tt, &event_te); } else { memset(&t, 0, sizeof t); } if (t.is_date) all_day_event = 1; q = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY); if (q != NULL) { end_t = icalproperty_get_dtend(q); } else { /* no end given means end = start */ memcpy(&end_t, &t, sizeof(struct icaltimetype)); } if (all_day_event) { show_event = ical_ctdl_is_overlap(t, end_t, today_t, icaltime_null_time()); if (icaltime_compare(t, end_t)) { /* * the end date is non-inclusive so adjust it by one * day because our test is inclusive, note that a day is * not to much because we are talking about all day * events */ icaltime_adjust(&end_t, -1, 0, 0, 0); } } else { show_event = ical_ctdl_is_overlap(t, end_t, today_start_t, today_end_t); } event_tte = icaltime_as_timet(end_t); localtime_r(&event_tte, &event_tm); /* If we determined that this event occurs today, then display it. */ p = icalcomponent_get_first_property(Cal->cal,ICAL_SUMMARY_PROPERTY); if (p == NULL) { p = icalproperty_new_summary(_("Untitled Event")); icalcomponent_add_property(Cal->cal, p); } if ((show_event) && (p != NULL)) { if ((event_te.tm_mday != day) || (event_tm.tm_mday != day)) ongoing_event = 1; if (all_day_event && notime_events) { wc_printf("
  • " "" , (Cal->unread)?"_unread":"_read", Cal->cal_msgnum, year, month, day ); escputs((char *) icalproperty_get_comment(p)); wc_printf(""); wc_printf("%s
    ", _("All day event")); wc_printf("%s: %s
    ", _("From"), Cal->from); wc_printf("%s ", _("Summary:")); escputs((char *) icalproperty_get_comment(p)); wc_printf("
    "); q = icalcomponent_get_first_property(Cal->cal,ICAL_LOCATION_PROPERTY); if (q) { wc_printf("%s ", _("Location:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } if (!icaltime_compare(t, end_t)) { /* one day only */ webcit_fmt_date(buf, 256, event_tt, DATEFMT_LOCALEDATE); wc_printf("%s %s
    ", _("Date:"), buf); } else { webcit_fmt_date(buf, 256, event_tt, DATEFMT_LOCALEDATE); wc_printf("%s %s
    ", _("Starting date:"), buf); webcit_fmt_date(buf, 256, event_tte, DATEFMT_LOCALEDATE); wc_printf("%s %s
    ", _("Ending date:"), buf); } q = icalcomponent_get_first_property(Cal->cal,ICAL_DESCRIPTION_PROPERTY); if (q) { wc_printf("%s ", _("Notes:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } wc_printf("
    "); wc_printf("
    ("); wc_printf(_("All day event")); wc_printf(")
  • \n"); } else if (ongoing_event && notime_events) { wc_printf("
  • " "" , (Cal->unread)?"_unread":"_read", Cal->cal_msgnum, year, month, day ); escputs((char *) icalproperty_get_comment(p)); wc_printf(""); wc_printf("%s
    ", _("Ongoing event")); wc_printf("%s: %s
    ", _("From"), Cal->from); wc_printf("%s ", _("Summary:")); escputs((char *) icalproperty_get_comment(p)); wc_printf("
    "); q = icalcomponent_get_first_property(Cal->cal,ICAL_LOCATION_PROPERTY); if (q) { wc_printf("%s ", _("Location:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } webcit_fmt_date(buf, 256, event_tt, DATEFMT_BRIEF); wc_printf("%s %s
    ", _("Starting date/time:"), buf); webcit_fmt_date(buf, 256, event_tte, DATEFMT_BRIEF); wc_printf("%s %s
    ", _("Ending date/time:"), buf); q = icalcomponent_get_first_property(Cal->cal,ICAL_DESCRIPTION_PROPERTY); if (q) { wc_printf("%s ", _("Notes:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } wc_printf("
    "); wc_printf("
    ("); wc_printf(_("Ongoing event")); wc_printf(")
  • \n"); } else if (!all_day_event && !notime_events) { gap++; if (event_te.tm_mday != day) event_te.tm_hour = 0; if (event_tm.tm_mday != day) event_tm.tm_hour = 24; /* Calculate the location of the top of the box */ if (event_te.tm_hour < dstart) { startmin = diffmin = event_te.tm_min / 6; top = (event_te.tm_hour * EXTRATIMELINE) + startmin; } else if ((event_te.tm_hour >= dstart) && (event_te.tm_hour <= dend)) { startmin = diffmin = (event_te.tm_min / 2); top = (dstart * EXTRATIMELINE) + ((event_te.tm_hour - dstart) * TIMELINE) + startmin; } else if (event_te.tm_hour >dend) { startmin = diffmin = event_te.tm_min / 6; top = (dstart * EXTRATIMELINE) + ((dend - dstart - 1) * TIMELINE) + ((event_tm.tm_hour - dend + 1) * EXTRATIMELINE) + startmin ; } else { /* should never get here */ } /* Calculate the location of the bottom of the box */ if (event_tm.tm_hour < dstart) { endmin = diffmin = event_tm.tm_min / 6; bottom = (event_tm.tm_hour * EXTRATIMELINE) + endmin; } else if ((event_tm.tm_hour >= dstart) && (event_tm.tm_hour <= dend)) { endmin = diffmin = (event_tm.tm_min / 2); bottom = (dstart * EXTRATIMELINE) + ((event_tm.tm_hour - dstart) * TIMELINE) + endmin ; } else if (event_tm.tm_hour >dend) { endmin = diffmin = event_tm.tm_min / 6; bottom = (dstart * EXTRATIMELINE) + ((dend - dstart + 1) * TIMELINE) + ((event_tm.tm_hour - dend - 1) * EXTRATIMELINE) + endmin; } else { /* should never get here */ } wc_printf("
    ", (Cal->unread)?"_unread":"_read", top, (gap * 40), (bottom-top) ); wc_printf("" , Cal->cal_msgnum, year, month, day, t.hour ); escputs((char *) icalproperty_get_comment(p)); wc_printf(""); wc_printf("%s: %s
    ", _("From"), Cal->from); wc_printf("%s ", _("Summary:")); escputs((char *) icalproperty_get_comment(p)); wc_printf("
    "); q = icalcomponent_get_first_property(Cal->cal,ICAL_LOCATION_PROPERTY); if (q) { wc_printf("%s ", _("Location:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } if (!icaltime_compare(t, end_t)) { /* one day only */ webcit_fmt_date(buf, 256, event_tt, DATEFMT_BRIEF); wc_printf("%s %s
    ", _("Date/time:"), buf); } else { webcit_fmt_date(buf, 256, event_tt, DATEFMT_BRIEF); wc_printf("%s %s
    ", _("Starting date/time:"), buf); webcit_fmt_date(buf, 256, event_tte, DATEFMT_BRIEF); wc_printf("%s %s
    ", _("Ending date/time:"), buf); } q = icalcomponent_get_first_property(Cal->cal,ICAL_DESCRIPTION_PROPERTY); if (q) { wc_printf("%s ", _("Notes:")); escputs((char *)icalproperty_get_comment(q)); wc_printf("
    "); } wc_printf("
    "); wc_printf("
    \n"); } } } DeleteHashPos(&Pos); } /* * view one day */ void calendar_day_view(int year, int month, int day) { int hour; struct icaltimetype today, yesterday, tomorrow; long daystart; long dayend; struct tm d_tm; char d_str[160]; int time_format; time_t today_t; int timeline = TIMELINE; int extratimeline = EXTRATIMELINE; int gap = 0; int hourlabel; int extrahourlabel; time_format = get_time_format_cached (); get_pref_long("daystart", &daystart, 8); get_pref_long("dayend", &dayend, 17); /* when loading daystart/dayend, replace missing, corrupt, or impossible values with defaults */ if ((daystart < 0) || (dayend < 2) || (daystart >= 23) || (dayend > 23) || (dayend <= daystart)) { daystart = 9; dayend = 17; } /* Today's date */ memset(&d_tm, 0, sizeof d_tm); d_tm.tm_year = year - 1900; d_tm.tm_mon = month - 1; d_tm.tm_mday = day; today_t = mktime(&d_tm); /* Figure out the dates for "yesterday" and "tomorrow" links */ memset(&today, 0, sizeof(struct icaltimetype)); today.year = year; today.month = month; today.day = day; today.is_date = 1; memcpy(&yesterday, &today, sizeof(struct icaltimetype)); --yesterday.day; yesterday = icaltime_normalize(yesterday); memcpy(&tomorrow, &today, sizeof(struct icaltimetype)); ++tomorrow.day; tomorrow = icaltime_normalize(tomorrow); /* Inner table (the real one) */ wc_printf(" \n"); /* Innermost cell (contains hours etc.) */ wc_printf(""); /* end of innermost table */ /* Display extra events (start/end times not present or not today) in the middle column */ wc_printf(""); /* end extra on the middle */ wc_printf(""); /* end stuff-on-the-right */ wc_printf("
    "); wc_printf("
    "); /* Now the middle of the day... */ extrahourlabel = extratimeline - 2; hourlabel = extrahourlabel * 150 / 100; if (hourlabel > (timeline - 2)) hourlabel = timeline - 2; for (hour = 0; hour < daystart; ++hour) { /* could do HEIGHT=xx */ wc_printf("
    " "", /* TODO: what have these been used for? (hour * extratimeline ), extratimeline, extrahourlabel, */ year, month, day, hour ); if (time_format == WC_TIMEFORMAT_24) { wc_printf("%2d:00 ", hour); } else { wc_printf("%d:00%s ", ((hour == 0) ? 12 : (hour <= 12 ? hour : hour-12)), (hour < 12 ? "am" : "pm") ); } wc_printf("
    "); } gap = daystart * extratimeline; for (hour = daystart; hour <= dayend; ++hour) { /* could do HEIGHT=xx */ wc_printf("
    " "", /*TODO: what have these been used for? gap + ((hour - daystart) * timeline ), timeline, hourlabel, */ year, month, day, hour ); if (time_format == WC_TIMEFORMAT_24) { wc_printf("%2d:00 ", hour); } else { wc_printf("%d:00%s ", (hour <= 12 ? hour : hour-12), (hour < 12 ? "am" : "pm") ); } wc_printf("
    "); } gap = gap + ((dayend - daystart + 1) * timeline); for (hour = (dayend + 1); hour < 24; ++hour) { /* could do HEIGHT=xx */ wc_printf("
    " "", /*TODO: what have these been used for? gap + ((hour - dayend - 1) * extratimeline ), extratimeline, extrahourlabel, */ year, month, day, hour ); if (time_format == WC_TIMEFORMAT_24) { wc_printf("%2d:00 ", hour); } else { wc_printf("%d:00%s ", (hour <= 12 ? hour : hour-12), (hour < 12 ? "am" : "pm") ); } wc_printf("
    "); } /* Display events with start and end times on this day */ calendar_day_view_display_events(today_t, year, month, day, 0, daystart, dayend); wc_printf("
    "); wc_printf("
    "); wc_printf("
      "); /* Display all-day events */ calendar_day_view_display_events(today_t, year, month, day, 1, daystart, dayend); wc_printf("
    "); wc_printf("
    "); /* begin stuff-on-the-right */ /* Begin todays-date-with-left-and-right-arrows */ wc_printf("\n"); wc_printf(""); /* Left arrow */ wc_printf(""); wc_strftime(d_str, sizeof d_str, "", &d_tm ); wc_printf("%s", d_str); /* Right arrow */ wc_printf(""); wc_printf("
    "); wc_printf("", yesterday.year, yesterday.month, yesterday.day); wc_printf("\"previous\""); wc_printf("" "%A
    " "%B
    " "%d
    " "%Y
    " "
    "); wc_printf("", tomorrow.year, tomorrow.month, tomorrow.day); wc_printf("\"%s\"\n", _("next")); wc_printf("
    \n"); /* End todays-date-with-left-and-right-arrows */ /* Embed a mini month calendar in this space */ wc_printf("
    \n"); embeddable_mini_calendar(year, month); wc_printf("
    \n"); /* end of inner table */ } /* * Display today's events. Returns the number of items displayed. */ int calendar_summary_view(void) { long hklen; const char *HashKey; void *vCal; HashPos *Pos; disp_cal *Cal; icalproperty *p; struct icaltimetype t; time_t event_tt; struct tm event_tm; struct tm today_tm; time_t now; int all_day_event = 0; char timestring[SIZ]; wcsession *WCC = WC; int num_displayed = 0; if (GetCount(WC->disp_cal_items) == 0) { return(0); } now = time(NULL); localtime_r(&now, &today_tm); Pos = GetNewHashPos(WCC->disp_cal_items, 0); while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { Cal = (disp_cal*)vCal; p = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY); if (p != NULL) { t = icalproperty_get_dtstart(p); event_tt = icaltime_as_timet(t); if (t.is_date) { all_day_event = 1; } else { all_day_event = 0; } fmt_time(timestring, SIZ, event_tt); if (all_day_event) { gmtime_r(&event_tt, &event_tm); } else { localtime_r(&event_tt, &event_tm); } if ( (event_tm.tm_year == today_tm.tm_year) && (event_tm.tm_mon == today_tm.tm_mon) && (event_tm.tm_mday == today_tm.tm_mday) ) { p = icalcomponent_get_first_property(Cal->cal, ICAL_SUMMARY_PROPERTY); if (p == NULL) { p = icalproperty_new_summary(_("Untitled Task")); icalcomponent_add_property(Cal->cal, p); } if (p != NULL) { if (WCC->CurRoom.view == VIEW_TASKS) { wc_printf(""); } else { wc_printf(""); } escputs((char *) icalproperty_get_comment(p)); if (!all_day_event) { wc_printf(" (%s)", timestring); } wc_printf("
    \n"); ++num_displayed; } } } } DeleteHashPos(&Pos); DeleteHash(&WC->disp_cal_items); return(num_displayed); } /* * Parse the URL variables in order to determine the scope and display of a calendar view */ int calendar_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { wcsession *WCC = WC; calview *c; time_t now; struct tm tm; char cv[32]; int span = 3888000; c = (calview*) malloc(sizeof(calview)); memset(c, 0, sizeof(calview)); *ViewSpecific = (void*)c; Stat->load_seen = 1; strcpy(cmd, "MSGS ALL"); Stat->maxmsgs = 32767; /* In case no date was specified, go with today */ now = time(NULL); localtime_r(&now, &tm); c->year = tm.tm_year + 1900; c->month = tm.tm_mon + 1; c->day = tm.tm_mday; /* Now see if a date was specified */ if (havebstr("year")) c->year = ibstr("year"); if (havebstr("month")) c->month = ibstr("month"); if (havebstr("day")) c->day = ibstr("day"); /* How would you like that cooked? */ if (havebstr("calview")) { strcpy(cv, bstr("calview")); } else { strcpy(cv, "month"); } /* Display the selected view */ if (!strcasecmp(cv, "day")) { c->view = calview_day; } else if (!strcasecmp(cv, "week")) { c->view = calview_week; } else if (!strcasecmp(cv, "summary")) { /* shouldn't ever happen, but just in case */ c->view = calview_day; } else { if (WCC->CurRoom.view == VIEW_CALBRIEF) { c->view = calview_brief; } else { c->view = calview_month; } } /* Now try and set the lower and upper bounds so that we don't * burn too many cpu cycles parsing data way in the past or future */ tm.tm_year = c->year - 1900; tm.tm_mon = c->month - 1; tm.tm_mday = c->day; now = mktime(&tm); if (c->view == calview_month) span = 3888000; if (c->view == calview_brief) span = 3888000; if (c->view == calview_week) span = 604800; if (c->view == calview_day) span = 86400; if (c->view == calview_summary) span = 86400; c->lower_bound = now - span; c->upper_bound = now + span; return 200; } /* * Render a calendar view from data previously loaded into memory */ int calendar_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { wcsession *WCC = WC; calview *c = (calview*) *ViewSpecific; if (c->view == calview_day) { calendar_day_view(c->year, c->month, c->day); } else if (c->view == calview_week) { calendar_week_view(c->year, c->month, c->day); } else { if (WCC->CurRoom.view == VIEW_CALBRIEF) { calendar_brief_month_view(c->year, c->month, c->day); } else { calendar_month_view(c->year, c->month, c->day); } } /* Free the in-memory list of calendar items */ DeleteHash(&WC->disp_cal_items); return 0; } void InitModule_CALENDAR_VIEW (void) { WebcitAddUrlHandler(HKEY("mini_calendar"), "", 0, ajax_mini_calendar, AJAX); } webcit-dfsg.orig/msg_renderers.c0000644000175000017500000014120613223341037017006 0ustar michaelmichael#include "webcit.h" #include "webserver.h" #include "dav.h" CtxType CTX_MAILSUM = CTX_NONE; CtxType CTX_MIME_ATACH = CTX_NONE; HashList *MsgHeaderHandler = NULL; HashList *DflMsgHeaderHandler = NULL; HashList *DflEnumMsgHeaderHandler = NULL; static inline void CheckConvertBufs(struct wcsession *WCC) { if (WCC->ConvertBuf1 == NULL) WCC->ConvertBuf1 = NewStrBuf(); if (WCC->ConvertBuf2 == NULL) WCC->ConvertBuf2 = NewStrBuf(); } /* * message index functions */ void DestroyMimeParts(wc_mime_attachment *Mime) { FreeStrBuf(&Mime->Name); FreeStrBuf(&Mime->FileName); FreeStrBuf(&Mime->PartNum); FreeStrBuf(&Mime->Disposition); FreeStrBuf(&Mime->ContentType); FreeStrBuf(&Mime->Charset); FreeStrBuf(&Mime->Data); } void DestroyMime(void *vMime) { wc_mime_attachment *Mime = (wc_mime_attachment*)vMime; DestroyMimeParts(Mime); free(Mime); } void DestroyMessageSummary(void *vMsg) { message_summary *Msg = (message_summary*) vMsg; FreeStrBuf(&Msg->from); FreeStrBuf(&Msg->to); FreeStrBuf(&Msg->subj); FreeStrBuf(&Msg->reply_inreplyto); FreeStrBuf(&Msg->reply_references); FreeStrBuf(&Msg->cccc); FreeStrBuf(&Msg->ReplyTo); FreeStrBuf(&Msg->hnod); FreeStrBuf(&Msg->AllRcpt); FreeStrBuf(&Msg->Room); FreeStrBuf(&Msg->Rfca); FreeStrBuf(&Msg->EnvTo); FreeStrBuf(&Msg->OtherNode); DeleteHash(&Msg->Attachments); /* list of Attachments */ DeleteHash(&Msg->Submessages); DeleteHash(&Msg->AttachLinks); DeleteHash(&Msg->AllAttach); free(Msg); } int EvaluateMsgHdrEnum(eMessageField f, message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { void *vHdr; headereval* Hdr = NULL; if (GetHash(DflEnumMsgHeaderHandler, IKEY(f), &vHdr) && (vHdr != NULL)) { Hdr = (headereval*)vHdr; } if (Hdr == NULL) return -1; Hdr->evaluator(Msg, HdrLine, FoundCharset); return Hdr->Type; } int EvaluateMsgHdr(const char *HeaderName, long HdrNLen, message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { void *vHdr; headereval* Hdr = NULL; if (HdrNLen == 4) { if (GetHash(DflMsgHeaderHandler, HeaderName, HdrNLen, &vHdr) && (vHdr != NULL)) { Hdr = (headereval*)vHdr; } } if (Hdr == NULL && GetHash(MsgHeaderHandler, HeaderName, HdrNLen, &vHdr) && (vHdr != NULL)) { Hdr = (headereval*)vHdr; } if (Hdr == NULL) return -1; Hdr->evaluator(Msg, HdrLine, FoundCharset); return Hdr->Type; } void RegisterMsgHdr(const char *HeaderName, long HdrNLen, ExamineMsgHeaderFunc evaluator, int type) { headereval *ev; ev = (headereval*) malloc(sizeof(headereval)); ev->evaluator = evaluator; ev->Type = type; if (HdrNLen == 4) { eMessageField f; if (GetFieldFromMnemonic(&f, HeaderName)) { Put(DflMsgHeaderHandler, HeaderName, HdrNLen, ev, NULL); Put(DflEnumMsgHeaderHandler, IKEY(f), ev, reference_free_handler); return; } } Put(MsgHeaderHandler, HeaderName, HdrNLen, ev, NULL); } void RegisterMimeRenderer(const char *HeaderName, long HdrNLen, RenderMimeFunc MimeRenderer, int InlineRenderable, int Priority) { RenderMimeFuncStruct *f; f = (RenderMimeFuncStruct*) malloc(sizeof(RenderMimeFuncStruct)); f->f = MimeRenderer; Put(MimeRenderHandler, HeaderName, HdrNLen, f, NULL); if (InlineRenderable) RegisterEmbeddableMimeType(HeaderName, HdrNLen, 10000 - Priority); } /*----------------------------------------------------------------------------*/ /* * comparator for two longs in descending order. */ int longcmp_r(const void *s1, const void *s2) { long l1; long l2; l1 = *(long *)GetSearchPayload(s1); l2 = *(long *)GetSearchPayload(s2); if (l1 > l2) return(-1); if (l1 < l2) return(+1); return(0); } /* * comparator for longs; descending order. */ int qlongcmp_r(const void *s1, const void *s2) { long l1 = (long) s1; long l2 = (long) s2; if (l1 > l2) return(-1); if (l1 < l2) return(+1); return(0); } /* * comparator for message summary structs by ascending subject. */ int summcmp_subj(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)GetSearchPayload(s1); summ2 = (message_summary *)GetSearchPayload(s2); return strcasecmp(ChrPtr(summ1->subj), ChrPtr(summ2->subj)); } /* * comparator for message summary structs by descending subject. */ int summcmp_rsubj(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)GetSearchPayload(s1); summ2 = (message_summary *)GetSearchPayload(s2); return strcasecmp(ChrPtr(summ2->subj), ChrPtr(summ1->subj)); } /* * comparator for message summary structs by descending subject. */ int groupchange_subj(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)s1; summ2 = (message_summary *)s2; return ChrPtr(summ2->subj)[0] != ChrPtr(summ1->subj)[0]; } /* * comparator for message summary structs by ascending sender. */ int summcmp_sender(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)GetSearchPayload(s1); summ2 = (message_summary *)GetSearchPayload(s2); return strcasecmp(ChrPtr(summ1->from), ChrPtr(summ2->from)); } /* * comparator for message summary structs by descending sender. */ int summcmp_rsender(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)GetSearchPayload(s1); summ2 = (message_summary *)GetSearchPayload(s2); return strcasecmp(ChrPtr(summ2->from), ChrPtr(summ1->from)); } /* * comparator for message summary structs by descending sender. */ int groupchange_sender(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)s1; summ2 = (message_summary *)s2; return strcasecmp(ChrPtr(summ2->from), ChrPtr(summ1->from)) != 0; } /* * comparator for message summary structs by ascending date. */ int summcmp_date(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)GetSearchPayload(s1); summ2 = (message_summary *)GetSearchPayload(s2); if (summ1->date < summ2->date) return -1; else if (summ1->date > summ2->date) return +1; else return 0; } /* * comparator for message summary structs by descending date. */ int summcmp_rdate(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)GetSearchPayload(s1); summ2 = (message_summary *)GetSearchPayload(s2); if (summ1->date < summ2->date) return +1; else if (summ1->date > summ2->date) return -1; else return 0; } /* * comparator for message summary structs by descending date. */ const long DAYSECONDS = 24 * 60 * 60; int groupchange_date(const void *s1, const void *s2) { message_summary *summ1; message_summary *summ2; summ1 = (message_summary *)s1; summ2 = (message_summary *)s2; return (summ1->date % DAYSECONDS) != (summ2->date %DAYSECONDS); } /*----------------------------------------------------------------------------*/ /* Don't wanna know... or? */ void examine_pref(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) {return;} void examine_suff(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) {return;} void examine_path(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) {return;} void examine_content_encoding(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { /* TODO: do we care? */ } void examine_exti(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { /* we don't care */ } void examine_nhdr(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { Msg->nhdr = 0; if (!strncasecmp(ChrPtr(HdrLine), "yes", 8)) Msg->nhdr = 1; } int Conditional_ANONYMOUS_MESSAGE(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return Msg->nhdr != 0; } void examine_type(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { Msg->format_type = StrToi(HdrLine); } void examine_from(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->from); Msg->from = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->from, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); } void tmplput_MAIL_SUMM_FROM(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->from, 0); } void examine_subj(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->subj); Msg->subj = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->subj, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); } void tmplput_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); if (TP->Tokens->nParameters == 4) { const char *pch; long len; GetTemplateTokenString(Target, TP, 3, &pch, &len); if ((len > 0)&& (strstr(ChrPtr(Msg->subj), pch) == NULL)) { GetTemplateTokenString(Target, TP, 2, &pch, &len); StrBufAppendBufPlain(Target, pch, len, 0); } } StrBufAppendTemplate(Target, TP, Msg->subj, 0); } int Conditional_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->subj) > 0; } void examine_msgn(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; long Offset = 0; const char *pOffset; CheckConvertBufs(WCC); FreeStrBuf(&Msg->reply_inreplyto); Msg->reply_inreplyto = NewStrBufPlain(NULL, StrLength(HdrLine)); pOffset = strchr(ChrPtr(HdrLine), '/'); if (pOffset != NULL) { Offset = pOffset - ChrPtr(HdrLine); } Msg->reply_inreplyto_hash = ThreadIdHashOffset(HdrLine, Offset); StrBuf_RFC822_2_Utf8(Msg->reply_inreplyto, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); } void tmplput_MAIL_SUMM_INREPLYTO(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->reply_inreplyto, 0); } int Conditional_MAIL_SUMM_UNREAD(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return (Msg->Flags & MSGFLAG_READ) != 0; } void examine_wefw(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; long Offset = 0; const char *pOffset; CheckConvertBufs(WCC); FreeStrBuf(&Msg->reply_references); Msg->reply_references = NewStrBufPlain(NULL, StrLength(HdrLine)); pOffset = strchr(ChrPtr(HdrLine), '/'); if (pOffset != NULL) { Offset = pOffset - ChrPtr(HdrLine); } Msg->reply_references_hash = ThreadIdHashOffset(HdrLine, Offset); StrBuf_RFC822_2_Utf8(Msg->reply_references, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); } void tmplput_MAIL_SUMM_REFIDS(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->reply_references, 0); } void examine_replyto(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->ReplyTo); Msg->ReplyTo = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->ReplyTo, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); if (Msg->AllRcpt == NULL) Msg->AllRcpt = NewStrBufPlain(NULL, StrLength(HdrLine)); if (StrLength(Msg->AllRcpt) > 0) { StrBufAppendBufPlain(Msg->AllRcpt, HKEY(", "), 0); } StrBufAppendBuf(Msg->AllRcpt, Msg->ReplyTo, 0); } void tmplput_MAIL_SUMM_REPLYTO(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->ReplyTo, 0); } void examine_cccc(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->cccc); Msg->cccc = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->cccc, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); if (Msg->AllRcpt == NULL) Msg->AllRcpt = NewStrBufPlain(NULL, StrLength(HdrLine)); if (StrLength(Msg->AllRcpt) > 0) { StrBufAppendBufPlain(Msg->AllRcpt, HKEY(", "), 0); } StrBufAppendBuf(Msg->AllRcpt, Msg->cccc, 0); } void tmplput_MAIL_SUMM_CCCC(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->cccc, 0); } void examine_room(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { if ((StrLength(HdrLine) > 0) && (strcasecmp(ChrPtr(HdrLine), ChrPtr(WC->CurRoom.name)))) { FreeStrBuf(&Msg->Room); Msg->Room = NewStrBufDup(HdrLine); } } void tmplput_MAIL_SUMM_ORGROOM(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->Room, 0); } void examine_rfca(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { FreeStrBuf(&Msg->Rfca); Msg->Rfca = NewStrBufDup(HdrLine); } void tmplput_MAIL_SUMM_RFCA(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->Rfca, 0); } int Conditional_MAIL_SUMM_RFCA(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->Rfca) > 0; } int Conditional_MAIL_SUMM_CCCC(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->cccc) > 0; } int Conditional_MAIL_SUMM_REPLYTO(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->ReplyTo) > 0; } void examine_node(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; if ( (StrLength(HdrLine) > 0) && ((WC->CurRoom.QRFlags & QR_NETWORK) || ((strcasecmp(ChrPtr(HdrLine), ChrPtr(WCC->serv_info->serv_nodename)) && (strcasecmp(ChrPtr(HdrLine), ChrPtr(WCC->serv_info->serv_fqdn))))))) { FreeStrBuf(&Msg->OtherNode); Msg->OtherNode = NewStrBufDup(HdrLine); } } void tmplput_MAIL_SUMM_OTHERNODE(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->OtherNode, 0); } int Conditional_MAIL_SUMM_OTHERNODE(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->OtherNode) > 0; } void examine_nvto(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->EnvTo); Msg->EnvTo = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->EnvTo, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); } void examine_rcpt(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->to); Msg->to = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->to, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); if (Msg->AllRcpt == NULL) Msg->AllRcpt = NewStrBufPlain(NULL, StrLength(HdrLine)); if (StrLength(Msg->AllRcpt) > 0) { StrBufAppendBufPlain(Msg->AllRcpt, HKEY(", "), 0); } StrBufAppendBuf(Msg->AllRcpt, Msg->to, 0); } void tmplput_MAIL_SUMM_TO(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->to, 0); } int Conditional_MAIL_SUMM_TO(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->to) != 0; } int Conditional_MAIL_SUMM_SUBJ(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->subj) != 0; } void tmplput_MAIL_SUMM_ALLRCPT(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->AllRcpt, 0); } void tmplput_SUMM_COUNT(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendPrintf(Target, "%d", GetCount( WC->summ)); } HashList *iterate_get_mailsumm_All(StrBuf *Target, WCTemplputParams *TP) { return WC->summ; } void examine_time(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { Msg->date = StrTol(HdrLine); } void tmplput_MAIL_SUMM_DATE_BRIEF(StrBuf *Target, WCTemplputParams *TP) { char datebuf[64]; message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); webcit_fmt_date(datebuf, 64, Msg->date, DATEFMT_BRIEF); StrBufAppendBufPlain(Target, datebuf, -1, 0); } void tmplput_MAIL_SUMM_EUID(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->euid, 0); } void tmplput_MAIL_SUMM_DATE_FULL(StrBuf *Target, WCTemplputParams *TP) { char datebuf[64]; message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); webcit_fmt_date(datebuf, 64, Msg->date, DATEFMT_FULL); StrBufAppendBufPlain(Target, datebuf, -1, 0); } void tmplput_MAIL_SUMM_DATE_NO(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendPrintf(Target, "%ld", Msg->date, 0); } void render_MAIL(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); const StrBuf *TemplateMime; if (Mime->Data == NULL) Mime->Data = NewStrBufPlain(NULL, Mime->length); else FlushStrBuf(Mime->Data); read_message(Mime->Data, HKEY("view_submessage"), Mime->msgnum, Mime->PartNum, &TemplateMime, TP); /* if ( (!IsEmptyStr(mime_submessages)) && (!section[0]) ) { for (i=0; i"); read_message(Mime->msgnum, 1, ChrPtr(Mime->Section)); wc_printf(""); } } */ } void render_MIME_ICS(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); if (StrLength(Mime->Data) == 0) { MimeLoadData(Mime); } if (StrLength(Mime->Data) > 0) { cal_process_attachment(Mime); } } void examine_mime_part(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { const char *Ptr = NULL; wc_mime_attachment *Mime; StrBuf *Buf; wcsession *WCC = WC; CheckConvertBufs(WCC); Mime = (wc_mime_attachment*) malloc(sizeof(wc_mime_attachment)); memset(Mime, 0, sizeof(wc_mime_attachment)); Mime->msgnum = Msg->msgnum; Buf = NewStrBuf(); Mime->Name = NewStrBuf(); StrBufExtract_NextToken(Buf, HdrLine, &Ptr, '|'); StrBuf_RFC822_2_Utf8(Mime->Name, Buf, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); StrBufTrim(Mime->Name); StrBufExtract_NextToken(Buf, HdrLine, &Ptr, '|'); Mime->FileName = NewStrBuf(); StrBuf_RFC822_2_Utf8(Mime->FileName, Buf, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); StrBufTrim(Mime->FileName); Mime->PartNum = NewStrBuf(); StrBufExtract_NextToken(Mime->PartNum, HdrLine, &Ptr, '|'); StrBufTrim(Mime->PartNum); if (strchr(ChrPtr(Mime->PartNum), '.') != NULL) Mime->level = 2; else Mime->level = 1; Mime->Disposition = NewStrBuf(); StrBufExtract_NextToken(Mime->Disposition, HdrLine, &Ptr, '|'); Mime->ContentType = NewStrBuf(); StrBufExtract_NextToken(Mime->ContentType, HdrLine, &Ptr, '|'); StrBufTrim(Mime->ContentType); StrBufLowerCase(Mime->ContentType); if (!strcmp(ChrPtr(Mime->ContentType), "application/octet-stream")) { StrBufPlain(Mime->ContentType, GuessMimeByFilename(SKEY(Mime->FileName)), -1); } Mime->length = StrBufExtractNext_int(HdrLine, &Ptr, '|'); StrBufSkip_NTokenS(HdrLine, &Ptr, '|', 1); /* cbid?? */ Mime->Charset = NewStrBuf(); StrBufExtract_NextToken(Mime->Charset, HdrLine, &Ptr, '|'); if ( (StrLength(Mime->FileName) == 0) && (StrLength(Mime->Name) > 0) ) { StrBufAppendBuf(Mime->FileName, Mime->Name, 0); } if (StrLength(Msg->PartNum) > 0) { StrBuf *tmp; StrBufPrintf(Buf, "%s.%s", ChrPtr(Msg->PartNum), ChrPtr(Mime->PartNum)); tmp = Mime->PartNum; Mime->PartNum = Buf; Buf = tmp; } if (Msg->AllAttach == NULL) Msg->AllAttach = NewHash(1,NULL); Put(Msg->AllAttach, SKEY(Mime->PartNum), Mime, DestroyMime); FreeStrBuf(&Buf); } void evaluate_mime_part(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); void *vMimeRenderer; /* just print the root-node */ if ((Mime->level >= 1) && GetHash(MimeRenderHandler, SKEY(Mime->ContentType), &vMimeRenderer) && vMimeRenderer != NULL) { Mime->Renderer = (RenderMimeFuncStruct*) vMimeRenderer; if (Msg->Submessages == NULL) Msg->Submessages = NewHash(1,NULL); Put(Msg->Submessages, SKEY(Mime->PartNum), Mime, reference_free_handler); } else if ((Mime->level >= 1) && (!strcasecmp(ChrPtr(Mime->Disposition), "inline")) && (!strncasecmp(ChrPtr(Mime->ContentType), "image/", 6)) ){ if (Msg->AttachLinks == NULL) Msg->AttachLinks = NewHash(1,NULL); Put(Msg->AttachLinks, SKEY(Mime->PartNum), Mime, reference_free_handler); } else if ((Mime->level >= 1) && (StrLength(Mime->ContentType) > 0) && ( (!strcasecmp(ChrPtr(Mime->Disposition), "attachment")) || (!strcasecmp(ChrPtr(Mime->Disposition), "inline")) || (!strcasecmp(ChrPtr(Mime->Disposition), "")))) { if (Msg->AttachLinks == NULL) Msg->AttachLinks = NewHash(1,NULL); Put(Msg->AttachLinks, SKEY(Mime->PartNum), Mime, reference_free_handler); if ((strcasecmp(ChrPtr(Mime->ContentType), "application/octet-stream") == 0) && (StrLength(Mime->FileName) > 0)) { FlushStrBuf(Mime->ContentType); StrBufAppendBufPlain(Mime->ContentType, GuessMimeByFilename(SKEY(Mime->FileName)), -1, 0); } } } void tmplput_MAIL_SUMM_NATTACH(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendPrintf(Target, "%ld", GetCount(Msg->Attachments)); } void examine_hnod(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; CheckConvertBufs(WCC); FreeStrBuf(&Msg->hnod); Msg->hnod = NewStrBufPlain(NULL, StrLength(HdrLine)); StrBuf_RFC822_2_Utf8(Msg->hnod, HdrLine, WCC->DefaultCharset, FoundCharset, WCC->ConvertBuf1, WCC->ConvertBuf2); } void tmplput_MAIL_SUMM_H_NODE(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->hnod, 0); } int Conditional_MAIL_SUMM_H_NODE(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return StrLength(Msg->hnod) > 0; } void examine_text(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { if (Msg->MsgBody->Data == NULL) Msg->MsgBody->Data = NewStrBufPlain(NULL, SIZ); else FlushStrBuf(Msg->MsgBody->Data); } void examine_msg4_partnum(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { Msg->MsgBody->PartNum = NewStrBufDup(HdrLine); StrBufTrim(Msg->MsgBody->PartNum); } void examine_content_lengh(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { Msg->MsgBody->length = StrTol(HdrLine); Msg->MsgBody->size_known = 1; } void examine_content_type(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { StrBuf *Token; StrBuf *Value; const char* sem; const char *eq; int len; StrBufTrim(HdrLine); Msg->MsgBody->ContentType = NewStrBufDup(HdrLine); sem = strchr(ChrPtr(HdrLine), ';'); if (sem != NULL) { Token = NewStrBufPlain(NULL, StrLength(HdrLine)); Value = NewStrBufPlain(NULL, StrLength(HdrLine)); len = sem - ChrPtr(HdrLine); StrBufCutAt(Msg->MsgBody->ContentType, len, NULL); while (sem != NULL) { while (isspace(*(sem + 1))) sem ++; StrBufCutLeft(HdrLine, sem - ChrPtr(HdrLine)); sem = strchr(ChrPtr(HdrLine), ';'); if (sem != NULL) len = sem - ChrPtr(HdrLine); else len = StrLength(HdrLine); FlushStrBuf(Token); FlushStrBuf(Value); StrBufAppendBufPlain(Token, ChrPtr(HdrLine), len, 0); eq = strchr(ChrPtr(Token), '='); if (eq != NULL) { len = eq - ChrPtr(Token); StrBufAppendBufPlain(Value, eq + 1, StrLength(Token) - len - 1, 0); StrBufCutAt(Token, len, NULL); StrBufTrim(Value); } StrBufTrim(Token); if (EvaluateMsgHdr(SKEY(Token), Msg, Value, FoundCharset) < 0) syslog(LOG_WARNING, "don't know how to handle content type sub-header[%s]\n", ChrPtr(Token)); } FreeStrBuf(&Token); FreeStrBuf(&Value); } } int ReadOneMessageSummary(message_summary *Msg, StrBuf *FoundCharset, StrBuf *Buf) { const char *buf; const char *ebuf; int nBuf; long len; serv_printf("MSG0 %ld|1", Msg->msgnum); /* ask for headers only */ StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 1) { return 0; } while (len = StrBuf_ServGetln(Buf), (len >= 0) && ((len != 3) || strcmp(ChrPtr(Buf), "000"))) { buf = ChrPtr(Buf); ebuf = strchr(ChrPtr(Buf), '='); nBuf = ebuf - buf; if (EvaluateMsgHdr(buf, nBuf, Msg, Buf, FoundCharset) < 0) syslog(LOG_INFO, "Don't know how to handle Message Headerline [%s]", ChrPtr(Buf)); } return 1; } void tmplput_MAIL_SUMM_N(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendPrintf(Target, "%ld", Msg->msgnum); } void tmplput_MAIL_SUMM_PERMALINK(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBuf *perma_link; const StrBuf *View; perma_link = NewStrBufPlain(HKEY("/readfwd?go=")); StrBufUrlescAppend(perma_link, WC->CurRoom.name, NULL); View = sbstr("view"); if (View != NULL) { StrBufAppendBufPlain(perma_link, HKEY("?view="), 0); StrBufAppendBuf(perma_link, View, 0); } StrBufAppendBufPlain(perma_link, HKEY("?start_reading_at="), 0); StrBufAppendPrintf(perma_link, "%ld#%ld", Msg->msgnum, Msg->msgnum); StrBufAppendBuf(Target, perma_link, 0); FreeStrBuf(&perma_link); } int Conditional_MAIL_MIME_ALL(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return GetCount(Msg->Attachments) > 0; } int Conditional_MAIL_MIME_SUBMESSAGES(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return GetCount(Msg->Submessages) > 0; } int Conditional_MAIL_MIME_ATTACHLINKS(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return GetCount(Msg->AttachLinks) > 0; } int Conditional_MAIL_MIME_ATTACH(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return GetCount(Msg->AllAttach) > 0; } void tmplput_QUOTED_MAIL_BODY(StrBuf *Target, WCTemplputParams *TP) { const StrBuf *Mime; long MsgNum; StrBuf *Buf; MsgNum = LBstr(TKEY(0)); Buf = NewStrBuf(); read_message(Buf, HKEY("view_message_replyquote"), MsgNum, NULL, &Mime, TP); StrBufAppendTemplate(Target, TP, Buf, 1); FreeStrBuf(&Buf); } void tmplput_EDIT_MAIL_BODY(StrBuf *Target, WCTemplputParams *TP) { const StrBuf *Mime; long MsgNum; StrBuf *Buf; MsgNum = LBstr(TKEY(0)); Buf = NewStrBuf(); read_message(Buf, HKEY("view_message_edit"), MsgNum, NULL, &Mime, TP); StrBufAppendTemplate(Target, TP, Buf, 1); FreeStrBuf(&Buf); } void tmplput_EDIT_WIKI_BODY(StrBuf *Target, WCTemplputParams *TP) { const StrBuf *Mime; long msgnum; StrBuf *Buf; /* Insert the existing content of the wiki page into the editor. But we only want * to do this the first time -- if the user is uploading an attachment we don't want * to do it again. */ if (!havebstr("attach_button")) { StrBuf *wikipage = NewStrBufDup(sbstr("page")); putbstr("format", NewStrBufPlain(HKEY("plain"))); str_wiki_index(wikipage); msgnum = locate_message_by_uid(ChrPtr(wikipage)); FreeStrBuf(&wikipage); if (msgnum >= 0L) { Buf = NewStrBuf(); read_message(Buf, HKEY("view_message_wikiedit"), msgnum, NULL, &Mime, TP); StrBufAppendTemplate(Target, TP, Buf, 1); FreeStrBuf(&Buf); } } } void tmplput_MAIL_BODY(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); StrBufAppendTemplate(Target, TP, Msg->MsgBody->Data, 0); } void render_MAIL_variformat(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { /* Messages in legacy Citadel variformat get handled thusly... */ wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); StrBuf *TTarget = NewStrBufPlain(NULL, StrLength(Mime->Data)); FmOut(TTarget, "JUSTIFY", Mime->Data); FreeStrBuf(&Mime->Data); Mime->Data = TTarget; } void render_MAIL_text_plain(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); const char *ptr, *pte; const char *BufPtr = NULL; StrBuf *Line; StrBuf *Line1; StrBuf *Line2; StrBuf *TTarget; long Linecount; long nEmptyLines; int bn = 0; int bq = 0; int i; long len; #ifdef HAVE_ICONV StrBuf *cs = NULL; int ConvertIt = 1; iconv_t ic = (iconv_t)(-1) ; #endif if ((StrLength(Mime->Data) == 0) && (Mime->length > 0)) { FreeStrBuf(&Mime->Data); MimeLoadData(Mime); } #ifdef HAVE_ICONV if (ConvertIt) { if (StrLength(Mime->Charset) != 0) cs = Mime->Charset; else if (StrLength(FoundCharset) > 0) cs = FoundCharset; else if (StrLength(WC->DefaultCharset) > 0) cs = WC->DefaultCharset; if (cs == NULL) { ConvertIt = 0; } else if (!strcasecmp(ChrPtr(cs), "utf-8")) { ConvertIt = 0; } else if (!strcasecmp(ChrPtr(cs), "us-ascii")) { ConvertIt = 0; } else { ctdl_iconv_open("UTF-8", ChrPtr(cs), &ic); if (ic == (iconv_t)(-1) ) { syslog(LOG_WARNING, "%s:%d iconv_open(UTF-8, %s) failed: %s\n", __FILE__, __LINE__, ChrPtr(Mime->Charset), strerror(errno)); } } } #endif Line = NewStrBufPlain(NULL, SIZ); Line1 = NewStrBufPlain(NULL, SIZ); Line2 = NewStrBufPlain(NULL, SIZ); TTarget = NewStrBufPlain(NULL, StrLength(Mime->Data)); Linecount = 0; nEmptyLines = 0; if (StrLength(Mime->Data) > 0) do { StrBufSipLine(Line, Mime->Data, &BufPtr); bq = 0; i = 0; ptr = ChrPtr(Line); len = StrLength(Line); pte = ptr + len; while ((ptr < pte) && ((*ptr == '>') || isspace(*ptr))) { if (*ptr == '>') bq++; ptr ++; i++; } if (i > 0) StrBufCutLeft(Line, i); if (StrLength(Line) == 0) { if (Linecount == 0) continue; StrBufAppendBufPlain(TTarget, HKEY("
    \n"), 0); nEmptyLines ++; continue; } nEmptyLines = 0; for (i = bn; i < bq; i++) StrBufAppendBufPlain(TTarget, HKEY("
    "), 0); for (i = bq; i < bn; i++) StrBufAppendBufPlain(TTarget, HKEY("
    "), 0); #ifdef HAVE_ICONV if (ConvertIt) { StrBufConvert(Line, Line1, &ic); } #endif StrBufAppendBufPlain(TTarget, HKEY(""), 0); UrlizeText(Line1, Line, Line2); StrEscAppend(TTarget, Line1, NULL, 0, 0); StrBufAppendBufPlain(TTarget, HKEY("
    \n"), 0); bn = bq; Linecount ++; } while ((BufPtr != StrBufNOTNULL) && (BufPtr != NULL)); if (nEmptyLines > 0) StrBufCutRight(TTarget, nEmptyLines * (sizeof ("
    \n") - 1)); for (i = 0; i < bn; i++) StrBufAppendBufPlain(TTarget, HKEY(""), 0); StrBufAppendBufPlain(TTarget, HKEY("

    "), 0); #ifdef HAVE_ICONV if (ic != (iconv_t)(-1) ) { iconv_close(ic); } #endif FreeStrBuf(&Mime->Data); Mime->Data = TTarget; FlushStrBuf(Mime->ContentType); StrBufAppendBufPlain(Mime->ContentType, HKEY("text/html"), 0); FlushStrBuf(Mime->Charset); StrBufAppendBufPlain(Mime->Charset, HKEY("UTF-8"), 0); FreeStrBuf(&Line); FreeStrBuf(&Line1); FreeStrBuf(&Line2); } void render_MAIL_html(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); StrBuf *Buf; if (StrLength(Mime->Data) == 0) return; Buf = NewStrBufPlain(NULL, StrLength(Mime->Data)); /* HTML is fun, but we've got to strip it first */ output_html(ChrPtr(Mime->Charset), (WC->CurRoom.view == VIEW_WIKI ? 1 : 0), Mime->msgnum, Mime->Data, Buf); FreeStrBuf(&Mime->Data); Mime->Data = Buf; } #ifdef HAVE_MARKDOWN /* char * MarkdownHandleURL(const char* SourceURL, const int len, void* something) { } */ void render_MAIL_markdown(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { #include wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); MMIOT *doc; char *md_as_html = NULL; const char *format; if (StrLength(Mime->Data) == 0) return; format = bstr("format"); if ((format == NULL) || strcmp(format, "plain")) { doc = mkd_string(ChrPtr(Mime->Data), StrLength(Mime->Data), 0); mkd_basename(doc, "/wiki?page="); mkd_compile(doc, 0); if (mkd_document(doc, &md_as_html) != EOF) { FreeStrBuf(&Mime->Data); Mime->Data = NewStrBufPlain(md_as_html, -1); } mkd_cleanup(doc); } } #endif void render_MAIL_UNKNOWN(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); /* Unknown weirdness */ FlushStrBuf(Mime->Data); StrBufAppendBufPlain(Mime->Data, _("I don't know how to display "), -1, 0); StrBufAppendBuf(Mime->Data, Mime->ContentType, 0); StrBufAppendBufPlain(Mime->Data, HKEY("
    \n"), 0); } HashList *iterate_get_mime_All(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return Msg->Attachments; } HashList *iterate_get_mime_Submessages(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return Msg->Submessages; } HashList *iterate_get_mime_AttachLinks(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return Msg->AttachLinks; } HashList *iterate_get_mime_Attachments(StrBuf *Target, WCTemplputParams *TP) { message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM); return Msg->AllAttach; } void tmplput_MIME_Name(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendTemplate(Target, TP, mime->Name, 0); } void tmplput_MIME_FileName(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendTemplate(Target, TP, mime->FileName, 0); } void tmplput_MIME_PartNum(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendTemplate(Target, TP, mime->PartNum, 0); } void tmplput_MIME_MsgNum(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendPrintf(Target, "%ld", mime->msgnum); } void tmplput_MIME_Disposition(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendTemplate(Target, TP, mime->Disposition, 0); } void tmplput_MIME_ContentType(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendTemplate(Target, TP, mime->ContentType, 0); } void examine_charset(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { Msg->MsgBody->Charset = NewStrBufDup(HdrLine); } void tmplput_MIME_Charset(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendTemplate(Target, TP, mime->Charset, 0); } void tmplput_MIME_Data(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); if (mime->Renderer != NULL) mime->Renderer->f(Target, TP, NULL); StrBufAppendTemplate(Target, TP, mime->Data, 0); /* TODO: check whether we need to load it now? */ } void tmplput_MIME_LoadData(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); wc_mime_attachment *att; if (( (!strcasecmp(ChrPtr(mime->Disposition), "inline"))|| (!strcasecmp(ChrPtr(mime->Disposition), "attachment"))) && (strcasecmp(ChrPtr(mime->ContentType), "application/ms-tnef")!=0)) { int n; char N[64]; /* steal this mime part... */ att = malloc(sizeof(wc_mime_attachment)); memcpy(att, mime, sizeof(wc_mime_attachment)); memset(mime, 0, sizeof(wc_mime_attachment)); if (att->Data == NULL) MimeLoadData(att); if (WCC->attachments == NULL) WCC->attachments = NewHash(1, NULL); /* And add it to the list. */ n = snprintf(N, sizeof N, "%d", GetCount(WCC->attachments) + 1); Put(WCC->attachments, N, n, att, DestroyMime); } } void tmplput_MIME_Length(StrBuf *Target, WCTemplputParams *TP) { wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH); StrBufAppendPrintf(Target, "%ld", mime->length); } HashList *iterate_get_registered_Attachments(StrBuf *Target, WCTemplputParams *TP) { return WC->attachments; } void get_registered_Attachments_Count(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendPrintf(Target, "%ld", GetCount (WC->attachments)); } void servcmd_do_search(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS SEARCH|%s", bstr("query")); } void servcmd_headers(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS ALL"); } void servcmd_readfwd(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS ALL"); } void servcmd_readgt(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS GT|%s", bstr("gt")); } void servcmd_readlt(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS LT|%s", bstr("lt")); } void servcmd_readnew(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS NEW"); } void servcmd_readold(char *buf, long bufsize) { snprintf(buf, bufsize, "MSGS OLD"); } /* DO NOT REORDER OR REMOVE ANY OF THESE */ readloop_struct rlid[] = { { {HKEY("do_search")}, servcmd_do_search }, { {HKEY("headers")}, servcmd_headers }, { {HKEY("readfwd")}, servcmd_readfwd }, { {HKEY("readnew")}, servcmd_readnew }, { {HKEY("readold")}, servcmd_readold }, { {HKEY("readgt")}, servcmd_readgt }, { {HKEY("readlt")}, servcmd_readlt } }; const char* fieldMnemonics[] = { "from", /* A -> eAuthor */ "exti", /* E -> eXclusivID */ "rfca", /* F -> erFc822Addr */ "hnod", /* H -> eHumanNode */ "msgn", /* I -> emessageId */ "jrnl", /* J -> eJournal */ "rep2", /* K -> eReplyTo */ "list", /* L -> eListID */ "text", /* M -> eMesageText */ "node", /* N -> eNodeName */ "room", /* O -> eOriginalRoom */ "path", /* P -> eMessagePath */ "rcpt", /* R -> eRecipient */ "spec", /* S -> eSpecialField */ "time", /* T -> eTimestamp */ "subj", /* U -> eMsgSubject */ "nvto", /* V -> eenVelopeTo */ "wefw", /* W -> eWeferences */ "cccc", /* Y -> eCarbonCopY */ "nhdr", /* % -> eHeaderOnly */ "type", /* % -> eFormatType */ "part", /* % -> eMessagePart */ "suff", /* % -> eSubFolder */ "pref" /* % -> ePevious */ }; HashList *msgKeyLookup = NULL; int GetFieldFromMnemonic(eMessageField *f, const char* c) { void *v = NULL; if (GetHash(msgKeyLookup, c, 4, &v)) { *f = (eMessageField) v; return 1; } return 0; } void FillMsgKeyLookupTable(void) { long i = 0; msgKeyLookup = NewHash (1, FourHash); while (i != eLastHeader) { if (fieldMnemonics[i] != NULL) { Put(msgKeyLookup, fieldMnemonics[i], 4, (void*)i, reference_free_handler); } i++; } } void InitModule_MSGRENDERERS (void) { RegisterCTX(CTX_MAILSUM); RegisterCTX(CTX_MIME_ATACH); RegisterSortFunc(HKEY("date"), NULL, 0, summcmp_date, summcmp_rdate, groupchange_date, CTX_MAILSUM); RegisterSortFunc(HKEY("subject"), NULL, 0, summcmp_subj, summcmp_rsubj, groupchange_subj, CTX_MAILSUM); RegisterSortFunc(HKEY("sender"), NULL, 0, summcmp_sender, summcmp_rsender, groupchange_sender, CTX_MAILSUM); RegisterNamespace("SUMM:COUNT", 0, 0, tmplput_SUMM_COUNT, NULL, CTX_NONE); /* iterate over all known mails in WC->summ */ RegisterIterator("MAIL:SUMM:MSGS", 0, NULL, iterate_get_mailsumm_All, NULL,NULL, CTX_MAILSUM, CTX_NONE, IT_NOFLAG); RegisterNamespace("MAIL:SUMM:EUID", 0, 1, tmplput_MAIL_SUMM_EUID, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:DATEBRIEF", 0, 0, tmplput_MAIL_SUMM_DATE_BRIEF, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:DATEFULL", 0, 0, tmplput_MAIL_SUMM_DATE_FULL, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:DATENO", 0, 0, tmplput_MAIL_SUMM_DATE_NO, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:N", 0, 0, tmplput_MAIL_SUMM_N, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:PERMALINK", 0, 0, tmplput_MAIL_SUMM_PERMALINK, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:FROM", 0, 2, tmplput_MAIL_SUMM_FROM, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:TO", 0, 2, tmplput_MAIL_SUMM_TO, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:SUBJECT", 0, 4, tmplput_MAIL_SUMM_SUBJECT, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:NTATACH", 0, 0, tmplput_MAIL_SUMM_NATTACH, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:CCCC", 0, 2, tmplput_MAIL_SUMM_CCCC, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:REPLYTO", 0, 2, tmplput_MAIL_SUMM_REPLYTO, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:H_NODE", 0, 2, tmplput_MAIL_SUMM_H_NODE, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:ALLRCPT", 0, 2, tmplput_MAIL_SUMM_ALLRCPT, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:ORGROOM", 0, 2, tmplput_MAIL_SUMM_ORGROOM, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:RFCA", 0, 2, tmplput_MAIL_SUMM_RFCA, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:OTHERNODE", 2, 0, tmplput_MAIL_SUMM_OTHERNODE, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:REFIDS", 0, 1, tmplput_MAIL_SUMM_REFIDS, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:INREPLYTO", 0, 2, tmplput_MAIL_SUMM_INREPLYTO, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:BODY", 0, 2, tmplput_MAIL_BODY, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:QUOTETEXT", 1, 2, tmplput_QUOTED_MAIL_BODY, NULL, CTX_NONE); RegisterNamespace("MAIL:EDITTEXT", 1, 2, tmplput_EDIT_MAIL_BODY, NULL, CTX_NONE); RegisterNamespace("MAIL:EDITWIKI", 1, 2, tmplput_EDIT_WIKI_BODY, NULL, CTX_NONE); RegisterConditional("COND:MAIL:SUMM:RFCA", 0, Conditional_MAIL_SUMM_RFCA, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUMM:CCCC", 0, Conditional_MAIL_SUMM_CCCC, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUMM:REPLYTO", 0, Conditional_MAIL_SUMM_REPLYTO, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUMM:UNREAD", 0, Conditional_MAIL_SUMM_UNREAD, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUMM:H_NODE", 0, Conditional_MAIL_SUMM_H_NODE, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUMM:OTHERNODE", 0, Conditional_MAIL_SUMM_OTHERNODE, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUMM:SUBJECT", 0, Conditional_MAIL_SUMM_SUBJECT, CTX_MAILSUM); RegisterConditional("COND:MAIL:ANON", 0, Conditional_ANONYMOUS_MESSAGE, CTX_MAILSUM); RegisterConditional("COND:MAIL:TO", 0, Conditional_MAIL_SUMM_TO, CTX_MAILSUM); RegisterConditional("COND:MAIL:SUBJ", 0, Conditional_MAIL_SUMM_SUBJ, CTX_MAILSUM); /* do we have mimetypes to iterate over? */ RegisterConditional("COND:MAIL:MIME:ATTACH", 0, Conditional_MAIL_MIME_ALL, CTX_MAILSUM); RegisterConditional("COND:MAIL:MIME:ATTACH:SUBMESSAGES", 0, Conditional_MAIL_MIME_SUBMESSAGES, CTX_MAILSUM); RegisterConditional("COND:MAIL:MIME:ATTACH:LINKS", 0, Conditional_MAIL_MIME_ATTACHLINKS, CTX_MAILSUM); RegisterConditional("COND:MAIL:MIME:ATTACH:ATT", 0, Conditional_MAIL_MIME_ATTACH, CTX_MAILSUM); RegisterIterator("MAIL:MIME:ATTACH", 0, NULL, iterate_get_mime_All, NULL, NULL, CTX_MIME_ATACH, CTX_MAILSUM, IT_NOFLAG); RegisterIterator("MAIL:MIME:ATTACH:SUBMESSAGES", 0, NULL, iterate_get_mime_Submessages, NULL, NULL, CTX_MIME_ATACH, CTX_MAILSUM, IT_NOFLAG); RegisterIterator("MAIL:MIME:ATTACH:LINKS", 0, NULL, iterate_get_mime_AttachLinks, NULL, NULL, CTX_MIME_ATACH, CTX_MAILSUM, IT_NOFLAG); RegisterIterator("MAIL:MIME:ATTACH:ATT", 0, NULL, iterate_get_mime_Attachments, NULL, NULL, CTX_MIME_ATACH, CTX_MAILSUM, IT_NOFLAG); /* Parts of a mime attachent */ RegisterNamespace("MAIL:MIME:NAME", 0, 2, tmplput_MIME_Name, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:FILENAME", 0, 2, tmplput_MIME_FileName, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:PARTNUM", 0, 2, tmplput_MIME_PartNum, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:MSGNUM", 0, 2, tmplput_MIME_MsgNum, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:DISPOSITION", 0, 2, tmplput_MIME_Disposition, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:CONTENTTYPE", 0, 2, tmplput_MIME_ContentType, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:CHARSET", 0, 2, tmplput_MIME_Charset, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:LENGTH", 0, 2, tmplput_MIME_Length, NULL, CTX_MIME_ATACH); RegisterNamespace("MAIL:MIME:DATA", 0, 2, tmplput_MIME_Data, NULL, CTX_MIME_ATACH); /* load the actual attachment into WC->attachments; no output!!! */ RegisterNamespace("MAIL:MIME:LOADDATA", 0, 0, tmplput_MIME_LoadData, NULL, CTX_MIME_ATACH); /* iterate the WC->attachments; use the above tokens for their contents */ RegisterIterator("MSG:ATTACHNAMES", 0, NULL, iterate_get_registered_Attachments, NULL, NULL, CTX_MIME_ATACH, CTX_NONE, IT_NOFLAG); RegisterNamespace("MSG:NATTACH", 0, 0, get_registered_Attachments_Count, NULL, CTX_NONE); /* mime renderers translate an attachment into webcit viewable html text */ RegisterMimeRenderer(HKEY("message/rfc822"), render_MAIL, 0, 150); //* RegisterMimeRenderer(HKEY("text/calendar"), render_MIME_ICS, 1, 501); RegisterMimeRenderer(HKEY("application/ics"), render_MIME_ICS, 1, 500); //*/ RegisterMimeRenderer(HKEY("text/x-citadel-variformat"), render_MAIL_variformat, 1, 2); RegisterMimeRenderer(HKEY("text/plain"), render_MAIL_text_plain, 1, 3); RegisterMimeRenderer(HKEY("text"), render_MAIL_text_plain, 1, 1); RegisterMimeRenderer(HKEY("text/html"), render_MAIL_html, 1, 100); #ifdef HAVE_MARKDOWN RegisterMimeRenderer(HKEY("text/x-markdown"), render_MAIL_markdown, 1, 30); #endif RegisterMimeRenderer(HKEY(""), render_MAIL_UNKNOWN, 0, 0); /* these headers are citserver replies to MSG4 and friends. one evaluator for each */ RegisterMsgHdr(HKEY("nhdr"), examine_nhdr, 0); RegisterMsgHdr(HKEY("exti"), examine_exti, 0); RegisterMsgHdr(HKEY("type"), examine_type, 0); RegisterMsgHdr(HKEY("from"), examine_from, 0); RegisterMsgHdr(HKEY("subj"), examine_subj, 0); RegisterMsgHdr(HKEY("msgn"), examine_msgn, 0); RegisterMsgHdr(HKEY("wefw"), examine_wefw, 0); RegisterMsgHdr(HKEY("cccc"), examine_cccc, 0); RegisterMsgHdr(HKEY("rep2"), examine_replyto, 0); RegisterMsgHdr(HKEY("hnod"), examine_hnod, 0); RegisterMsgHdr(HKEY("room"), examine_room, 0); RegisterMsgHdr(HKEY("rfca"), examine_rfca, 0); RegisterMsgHdr(HKEY("node"), examine_node, 0); RegisterMsgHdr(HKEY("rcpt"), examine_rcpt, 0); RegisterMsgHdr(HKEY("nvto"), examine_nvto, 0); RegisterMsgHdr(HKEY("time"), examine_time, 0); RegisterMsgHdr(HKEY("part"), examine_mime_part, 0); RegisterMsgHdr(HKEY("text"), examine_text, 1); /* these are the content-type headers we get infront of a message; put it into the same hash since it doesn't clash. */ RegisterMsgHdr(HKEY("X-Citadel-MSG4-Partnum"), examine_msg4_partnum, 0); RegisterMsgHdr(HKEY("Content-type"), examine_content_type, 0); RegisterMsgHdr(HKEY("Content-length"), examine_content_lengh, 0); RegisterMsgHdr(HKEY("Content-transfer-encoding"), examine_content_encoding, 0); /* do we care? */ RegisterMsgHdr(HKEY("charset"), examine_charset, 0); /* Don't care about these... */ RegisterMsgHdr(HKEY("pref"), examine_pref, 0); RegisterMsgHdr(HKEY("suff"), examine_suff, 0); RegisterMsgHdr(HKEY("path"), examine_path, 0); } void InitModule2_MSGRENDERERS (void) { /* and finalize the anouncement to the server... */ CreateMimeStr(); } void ServerStartModule_MSGRENDERERS (void) { DflMsgHeaderHandler = NewHash (1, FourHash); DflEnumMsgHeaderHandler = NewHash (1, Flathash); MsgHeaderHandler = NewHash(1, NULL); MimeRenderHandler = NewHash(1, NULL); ReadLoopHandler = NewHash(1, NULL); FillMsgKeyLookupTable(); } void ServerShutdownModule_MSGRENDERERS (void) { DeleteHash(&DflMsgHeaderHandler); DeleteHash(&DflEnumMsgHeaderHandler); DeleteHash(&MsgHeaderHandler); DeleteHash(&MimeRenderHandler); DeleteHash(&ReadLoopHandler); DeleteHash(&msgKeyLookup); } void SessionDestroyModule_MSGRENDERERS (wcsession *sess) { DeleteHash(&sess->attachments); FreeStrBuf(&sess->ConvertBuf1); FreeStrBuf(&sess->ConvertBuf2); } webcit-dfsg.orig/subst.c0000644000175000017500000022157013223341037015312 0ustar michaelmichael#include "sysdep.h" #include #include #include #include #include #include #include #include #define SHOW_ME_VAPPEND_PRINTF #include "webcit.h" #include "webserver.h" extern char *static_dirs[PATH_MAX]; /* Disk representation */ HashList *TemplateCache; HashList *LocalTemplateCache; HashList *GlobalNS; HashList *Iterators; HashList *Conditionals; HashList *SortHash; HashList *Defines; int DumpTemplateI18NStrings = 0; int LoadTemplates = 0; int dbg_backtrace_template_errors = 0; WCTemplputParams NoCtx; StrBuf *I18nDump = NULL; const char EmptyStr[]=""; #define SV_GETTEXT 1 #define SV_CONDITIONAL 2 #define SV_NEG_CONDITIONAL 3 #define SV_CUST_STR_CONDITIONAL 4 #define SV_SUBTEMPL 5 #define SV_PREEVALUATED 6 /* * Dynamic content for variable substitution in templates */ typedef struct _wcsubst { ContextFilter Filter; int wcs_type; /* which type of Substitution are we */ char wcs_key[32]; /* copy of our hashkey for debugging */ StrBuf *wcs_value; /* if we're a string, keep it here */ long lvalue; /* type long? keep data here */ WCHandlerFunc wcs_function; /* funcion hook ???*/ } wcsubst; typedef struct _WCTemplate { StrBuf *Data; StrBuf *FileName; int nTokensUsed; int TokenSpace; StrBuf *MimeType; WCTemplateToken **Tokens; } WCTemplate; typedef struct _HashHandler { ContextFilter Filter; WCPreevalFunc PreEvalFunc; WCHandlerFunc HandlerFunc; }HashHandler; typedef enum _estate { eNext, eSkipTilEnd } TemplState; void *load_template(StrBuf *Target, WCTemplate *NewTemplate); int EvaluateConditional(StrBuf *Target, int Neg, int state, WCTemplputParams **TPP); typedef struct _SortStruct { StrBuf *Name; StrBuf *PrefPrepend; CompareFunc Forward; CompareFunc Reverse; CompareFunc GroupChange; CtxType ContextType; }SortStruct; HashList *CtxList = NULL; static CtxType CtxCounter = CTX_NONE; CtxType CTX_STRBUF = CTX_NONE; CtxType CTX_STRBUFARR = CTX_NONE; CtxType CTX_LONGVECTOR = CTX_NONE; CtxType CTX_ITERATE = CTX_NONE; CtxType CTX_TAB = CTX_NONE; void HFreeContextType(void *pCtx) { CtxTypeStruct *FreeStruct = (CtxTypeStruct *) pCtx; FreeStrBuf(&FreeStruct->Name); free(FreeStruct); } void PutContextType(const char *name, long len, CtxType TheCtx) { CtxTypeStruct *NewStruct; NewStruct = (CtxTypeStruct*) malloc(sizeof(CtxTypeStruct)); NewStruct->Name = NewStrBufPlain(name, len); NewStruct->Type = TheCtx; Put(CtxList, IKEY(NewStruct->Type), NewStruct, HFreeContextType); } void RegisterContextType(const char *name, long len, CtxType *TheCtx) { if (*TheCtx != CTX_NONE) return; *TheCtx = ++CtxCounter; PutContextType(name, len, *TheCtx); } CtxTypeStruct *GetContextType(CtxType Type) { void *pv = NULL; GetHash(CtxList, IKEY(Type), &pv); return pv; } const char *UnknownContext = "CTX_UNKNOWN"; const char *ContextName(CtxType ContextType) { CtxTypeStruct *pCtx; pCtx = GetContextType(ContextType); if (pCtx != NULL) return ChrPtr(pCtx->Name); else return UnknownContext; } void StackDynamicContext(WCTemplputParams *Super, WCTemplputParams *Sub, void *Context, CtxType ContextType, int nArgs, WCTemplateToken *Tokens, WCConditionalFunc ExitCtx, long ExitCTXID) { memset(Sub, 0, sizeof(WCTemplputParams)); if (Super != NULL) { Sub->Sub = Super->Sub; Super->Sub = Sub; } if (Sub->Sub != NULL) Sub->Sub->Super = Sub; Sub->Super = Super; Sub->Context = Context; Sub->Filter.ContextType = ContextType; Sub->nArgs = nArgs; Sub->Tokens = Tokens; Sub->ExitCtx = ExitCtx; Sub->ExitCTXID = ExitCTXID; } void UnStackContext(WCTemplputParams *Sub) { if (Sub->Super != NULL) { Sub->Super->Sub = Sub->Sub; } if (Sub->Sub != NULL) { Sub->Sub->Super = Sub->Super; } } void UnStackDynamicContext(StrBuf *Target, WCTemplputParams **TPP) { WCTemplputParams *TP = *TPP; WCTemplputParams *Super = TP->Super; TP->ExitCtx(Target, TP); *TPP = Super; } void *GetContextPayload(WCTemplputParams *TP, CtxType ContextType) { WCTemplputParams *whichTP = TP; if (ContextType == CTX_NONE) return TP->Context; while ((whichTP != NULL) && (whichTP->Filter.ContextType != ContextType)) whichTP = whichTP->Super; return whichTP->Context; } void DestroySortStruct(void *vSort) { SortStruct *Sort = (SortStruct*) vSort; FreeStrBuf(&Sort->Name); FreeStrBuf(&Sort->PrefPrepend); free (Sort); } void LogTemplateError (StrBuf *Target, const char *Type, int ErrorPos, WCTemplputParams *TP, const char *Format, ...) { wcsession *WCC; StrBuf *Error; StrBuf *Info; va_list arg_ptr; const char *Err = NULL; Info = NewStrBuf(); Error = NewStrBuf(); va_start(arg_ptr, Format); StrBufVAppendPrintf(Error, Format, arg_ptr); va_end(arg_ptr); switch (ErrorPos) { case ERR_NAME: /* the main token name... */ Err = (TP->Tokens!= NULL)? TP->Tokens->pName:""; break; default: Err = ((TP->Tokens!= NULL) && (TP->Tokens->nParameters > ErrorPos - 1))? TP->Tokens->Params[ErrorPos - 1]->Start : ""; break; } if (TP->Tokens != NULL) { syslog(LOG_WARNING, "%s [%s] (in '%s' line %ld); %s; [%s]\n", Type, Err, ChrPtr(TP->Tokens->FileName), TP->Tokens->Line, ChrPtr(Error), ChrPtr(TP->Tokens->FlatToken)); } else { syslog(LOG_WARNING, "%s: %s;\n", Type, ChrPtr(Error)); } WCC = WC; if (WCC == NULL) { FreeStrBuf(&Info); FreeStrBuf(&Error); return; } if (WCC->WFBuf == NULL) WCC->WFBuf = NewStrBuf(); if (TP->Tokens != NULL) { /* deprecated: StrBufAppendPrintf( Target, "
    \n%s [%s] (in '%s' line %ld); %s\n[%s]\n
    \n", Type, Err, ChrPtr(TP->Tokens->FileName), TP->Tokens->Line, ChrPtr(Error), ChrPtr(TP->Tokens->FlatToken)); */ StrBufPrintf(Info, "%s [%s] %s; [%s]", Type, Err, ChrPtr(Error), ChrPtr(TP->Tokens->FlatToken)); SerializeJson(WCC->WFBuf, WildFireException(SKEY(TP->Tokens->FileName), TP->Tokens->Line, Info, 1), 1); /* SerializeJson(Header, WildFireMessage(SKEY(TP->Tokens->FileName), TP->Tokens->Line, Error, eERROR), 1); */ } else { /* deprecated. StrBufAppendPrintf( Target, "
    \n%s: %s\n
    \n", Type, ChrPtr(Error)); */ StrBufPrintf(Info, "%s [%s] %s; [%s]", Type, Err, ChrPtr(Error), ChrPtr(TP->Tokens->FlatToken)); SerializeJson(WCC->WFBuf, WildFireException(HKEY(__FILE__), __LINE__, Info, 1), 1); } FreeStrBuf(&Info); FreeStrBuf(&Error); /* if (dbg_backtrace_template_errors) wc_backtrace(LOG_DEBUG); */ } void LogError (StrBuf *Target, const char *Type, const char *Format, ...) { wcsession *WCC; StrBuf *Error; StrBuf *Info; va_list arg_ptr; Info = NewStrBuf(); Error = NewStrBuf(); va_start(arg_ptr, Format); StrBufVAppendPrintf(Error, Format, arg_ptr); va_end(arg_ptr); syslog(LOG_WARNING, "%s", ChrPtr(Error)); WCC = WC; if (WCC->WFBuf == NULL) WCC->WFBuf = NewStrBuf(); SerializeJson(WCC->WFBuf, WildFireException(Type, strlen(Type), 0, Info, 1), 1); FreeStrBuf(&Info); FreeStrBuf(&Error); /* if (dbg_backtrace_template_errors) wc_backtrace(LOG_DEBUG); */ } void RegisterNS(const char *NSName, long len, int nMinArgs, int nMaxArgs, WCHandlerFunc HandlerFunc, WCPreevalFunc PreevalFunc, CtxType ContextRequired) { HashHandler *NewHandler; NewHandler = (HashHandler*) malloc(sizeof(HashHandler)); memset(NewHandler, 0, sizeof(HashHandler)); NewHandler->Filter.nMinArgs = nMinArgs; NewHandler->Filter.nMaxArgs = nMaxArgs; NewHandler->Filter.ContextType = ContextRequired; NewHandler->PreEvalFunc = PreevalFunc; NewHandler->HandlerFunc = HandlerFunc; Put(GlobalNS, NSName, len, NewHandler, NULL); } int CheckContext(StrBuf *Target, ContextFilter *Need, WCTemplputParams *TP, const char *ErrType) { WCTemplputParams *TPP = TP; if ((Need != NULL) && (Need->ContextType != CTX_NONE) && (Need->ContextType != TPP->Filter.ContextType)) { while ((TPP != NULL) && (Need->ContextType != TPP->Filter.ContextType)) { TPP = TPP->Super; } if (TPP != NULL) return 1; LogTemplateError( Target, ErrType, ERR_NAME, TP, " WARNING: requires Context: [%s], have [%s]!", ContextName(Need->ContextType), ContextName(TP->Filter.ContextType)); return 0; } /* if (TP->Tokens->nParameters < Need->nMinArgs) { LogTemplateError(Target, ErrType, ERR_NAME, TP, "needs at least %ld params, have %ld", Need->nMinArgs, TP->Tokens->nParameters); return 0; } else if (TP->Tokens->nParameters > Need->nMaxArgs) { LogTemplateError(Target, ErrType, ERR_NAME, TP, "just needs %ld params, you gave %ld", Need->nMaxArgs, TP->Tokens->nParameters); return 0; } */ return 1; } void FreeToken(WCTemplateToken **Token) { int i; FreeStrBuf(&(*Token)->FlatToken); if ((*Token)->HaveParameters) for (i = 0; i < (*Token)->nParameters; i++) free((*Token)->Params[i]); free(*Token); *Token = NULL; } void FreeWCTemplate(void *vFreeMe) { int i; WCTemplate *FreeMe = (WCTemplate*)vFreeMe; if (FreeMe->TokenSpace > 0) { for (i = 0; i < FreeMe->nTokensUsed; i ++) { FreeToken(&FreeMe->Tokens[i]); } free(FreeMe->Tokens); } FreeStrBuf(&FreeMe->FileName); FreeStrBuf(&FreeMe->Data); FreeStrBuf(&FreeMe->MimeType); free(FreeMe); } int HaveTemplateTokenString(StrBuf *Target, WCTemplputParams *TP, int N, const char **Value, long *len) { if (N >= TP->Tokens->nParameters) { return 0; } switch (TP->Tokens->Params[N]->Type) { case TYPE_INTDEFINE: case TYPE_STR: case TYPE_BSTR: case TYPE_PREFSTR: case TYPE_ROOMPREFSTR: case TYPE_GETTEXT: case TYPE_SUBTEMPLATE: return 1; case TYPE_LONG: case TYPE_PREFINT: default: return 0; } } void GetTemplateTokenString(StrBuf *Target, WCTemplputParams *TP, int N, const char **Value, long *len) { StrBuf *Buf; if (N >= TP->Tokens->nParameters) { LogTemplateError(Target, "TokenParameter", N, TP, "invalid token %d. this shouldn't have come till here.\n", N); *Value = ""; *len = 0; return; } switch (TP->Tokens->Params[N]->Type) { case TYPE_INTDEFINE: case TYPE_STR: *Value = TP->Tokens->Params[N]->Start; *len = TP->Tokens->Params[N]->len; break; case TYPE_BSTR: if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type BSTR, empty lookup string not admitted.", N); *len = 0; *Value = EmptyStr; break; } Buf = (StrBuf*) SBstr(TKEY(N)); *Value = ChrPtr(Buf); *len = StrLength(Buf); break; case TYPE_PREFSTR: if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type PREFSTR, empty lookup string not admitted.", N); *len = 0; *Value = EmptyStr; break; } get_PREFERENCE(TKEY(N), &Buf); *Value = ChrPtr(Buf); *len = StrLength(Buf); break; case TYPE_ROOMPREFSTR: if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type PREFSTR, empty lookup string not admitted.", N); *len = 0; *Value = EmptyStr; break; } Buf = get_ROOM_PREFS(TKEY(N)); *Value = ChrPtr(Buf); *len = StrLength(Buf); break; case TYPE_LONG: LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type LONG, want string.", N); break; case TYPE_PREFINT: LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type PREFINT, want string.", N); break; case TYPE_GETTEXT: *Value = _(TP->Tokens->Params[N]->Start); *len = strlen(*Value); break; case TYPE_SUBTEMPLATE: if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type SUBTEMPLATE, empty lookup string not admitted.", N); *len = 0; *Value = EmptyStr; break; } Buf = NewStrBuf(); DoTemplate(TKEY(N), Buf, TP); *Value = ChrPtr(Buf); *len = StrLength(Buf); /* we can't free it here, so we put it into the subst so its discarded later on. */ PutRequestLocalMem(Buf, HFreeStrBuf); break; default: LogTemplateError(Target, "TokenParameter", N, TP, "unknown param type %d; [%d]", N, TP->Tokens->Params[N]->Type); break; } } long GetTemplateTokenNumber(StrBuf *Target, WCTemplputParams *TP, int N, long dflt) { long Ret; if (N >= TP->Tokens->nParameters) { LogTemplateError(Target, "TokenParameter", N, TP, "invalid token %d. this shouldn't have come till here.\n", N); wc_backtrace(LOG_DEBUG); return 0; } switch (TP->Tokens->Params[N]->Type) { case TYPE_STR: return atol(TP->Tokens->Params[N]->Start); break; case TYPE_BSTR: if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type BSTR, empty lookup string not admitted.", N); return 0; } return LBstr(TKEY(N)); break; case TYPE_PREFSTR: LogTemplateError(Target, "TokenParameter", N, TP, "requesting a prefstring in param %d want a number", N); if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type PREFSTR, empty lookup string not admitted.", N); return 0; } if (get_PREF_LONG(TKEY(N), &Ret, dflt)) return Ret; return 0; case TYPE_ROOMPREFSTR: LogTemplateError(Target, "TokenParameter", N, TP, "requesting a prefstring in param %d want a number", N); if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type PREFSTR, empty lookup string not admitted.", N); return 0; } if (get_ROOM_PREFS_LONG(TKEY(N), &Ret, dflt)) return Ret; return 0; case TYPE_INTDEFINE: case TYPE_LONG: return TP->Tokens->Params[N]->lvalue; case TYPE_PREFINT: if (TP->Tokens->Params[N]->len == 0) { LogTemplateError(Target, "TokenParameter", N, TP, "Requesting parameter %d; of type PREFINT, empty lookup string not admitted.", N); return 0; } if (get_PREF_LONG(TKEY(N), &Ret, dflt)) return Ret; return 0; case TYPE_GETTEXT: LogTemplateError(Target, "TokenParameter", N, TP, "requesting a I18N string in param %d; want a number", N); return 0; case TYPE_SUBTEMPLATE: LogTemplateError(Target, "TokenParameter", N, TP, "requesting a subtemplate in param %d; not supported for numbers", N); return 0; default: LogTemplateError(Target, "TokenParameter", N, TP, "unknown param type %d; [%d]", N, TP->Tokens->Params[N]->Type); return 0; } } /* * puts string into the template and computes which escape methon we should use * Source = the string we should put into the template * FormatTypeIndex = where should we look for escape types if? */ void StrBufAppendTemplate(StrBuf *Target, WCTemplputParams *TP, const StrBuf *Source, int FormatTypeIndex) { const char *pFmt = NULL; char EscapeAs = ' '; if ((FormatTypeIndex < TP->Tokens->nParameters) && (TP->Tokens->Params[FormatTypeIndex] != NULL) && (TP->Tokens->Params[FormatTypeIndex]->Type == TYPE_STR) && (TP->Tokens->Params[FormatTypeIndex]->len >= 1)) { pFmt = TP->Tokens->Params[FormatTypeIndex]->Start; EscapeAs = *pFmt; } switch(EscapeAs) { case 'H': StrEscAppend(Target, Source, NULL, 0, 2); break; case 'X': StrEscAppend(Target, Source, NULL, 0, 0); break; case 'J': StrECMAEscAppend(Target, Source, NULL); break; case 'K': StrHtmlEcmaEscAppend(Target, Source, NULL, 0, 0); break; case 'U': StrBufUrlescAppend(Target, Source, NULL); break; case 'F': if (pFmt != NULL) pFmt++; else pFmt = "JUSTIFY"; if (*pFmt == '\0') pFmt = "JUSTIFY"; FmOut(Target, pFmt, Source); break; default: StrBufAppendBuf(Target, Source, 0); } } /* * puts string into the template and computes which escape methon we should use * Source = the string we should put into the template * FormatTypeIndex = where should we look for escape types if? */ void StrBufAppendTemplateStr(StrBuf *Target, WCTemplputParams *TP, const char *Source, int FormatTypeIndex) { const char *pFmt = NULL; char EscapeAs = ' '; if ((FormatTypeIndex < TP->Tokens->nParameters) && (TP->Tokens->Params[FormatTypeIndex]->Type == TYPE_STR) && (TP->Tokens->Params[FormatTypeIndex]->len >= 1)) { pFmt = TP->Tokens->Params[FormatTypeIndex]->Start; EscapeAs = *pFmt; } switch(EscapeAs) { case 'H': StrEscAppend(Target, NULL, Source, 0, 2); break; case 'X': StrEscAppend(Target, NULL, Source, 0, 0); break; case 'J': StrECMAEscAppend(Target, NULL, Source); break; case 'K': StrHtmlEcmaEscAppend(Target, NULL, Source, 0, 0); break; case 'U': StrBufUrlescAppend(Target, NULL, Source); break; /* case 'F': if (pFmt != NULL) pFmt++; else pFmt = "JUSTIFY"; if (*pFmt == '\0') pFmt = "JUSTIFY"; FmOut(Target, pFmt, Source); break; */ default: StrBufAppendBufPlain(Target, Source, -1, 0); } } void PutNewToken(WCTemplate *Template, WCTemplateToken *NewToken) { if (Template->nTokensUsed + 1 >= Template->TokenSpace) { if (Template->TokenSpace <= 0) { Template->Tokens = (WCTemplateToken**)malloc( sizeof(WCTemplateToken*) * 10); memset(Template->Tokens, 0, sizeof(WCTemplateToken*) * 10); Template->TokenSpace = 10; } else { WCTemplateToken **NewTokens; NewTokens= (WCTemplateToken**) malloc( sizeof(WCTemplateToken*) * Template->TokenSpace * 2); memset(NewTokens, 0, sizeof(WCTemplateToken*) * Template->TokenSpace * 2); memcpy(NewTokens, Template->Tokens, sizeof(WCTemplateToken*) * Template->nTokensUsed); free(Template->Tokens); Template->TokenSpace *= 2; Template->Tokens = NewTokens; } } Template->Tokens[(Template->nTokensUsed)++] = NewToken; } int GetNextParameter(StrBuf *Buf, const char **pCh, const char *pe, WCTemplateToken *Tokens, WCTemplate *pTmpl, WCTemplputParams *TP, TemplateParam **pParm) { const char *pch = *pCh; const char *pchs, *pche; TemplateParam *Parm; char quote = '\0'; int ParamBrace = 0; *pParm = Parm = (TemplateParam *) malloc(sizeof(TemplateParam)); memset(Parm, 0, sizeof(TemplateParam)); Parm->Type = TYPE_STR; /* Skip leading whitespaces */ while ((*pch == ' ' )|| (*pch == '\t')|| (*pch == '\r')|| (*pch == '\n')) pch ++; if (*pch == ':') { Parm->Type = TYPE_PREFSTR; pch ++; if (*pch == '(') { pch ++; ParamBrace = 1; } } else if (*pch == '.') { Parm->Type = TYPE_ROOMPREFSTR; pch ++; if (*pch == '(') { pch ++; ParamBrace = 1; } } else if (*pch == ';') { Parm->Type = TYPE_PREFINT; pch ++; if (*pch == '(') { pch ++; ParamBrace = 1; } } else if (*pch == '#') { Parm->Type = TYPE_INTDEFINE; pch ++; } else if (*pch == '_') { Parm->Type = TYPE_GETTEXT; pch ++; if (*pch == '(') { pch ++; ParamBrace = 1; } } else if (*pch == 'B') { Parm->Type = TYPE_BSTR; pch ++; if (*pch == '(') { pch ++; ParamBrace = 1; } } else if (*pch == '=') { Parm->Type = TYPE_SUBTEMPLATE; pch ++; if (*pch == '(') { pch ++; ParamBrace = 1; } } if (*pch == '"') quote = '"'; else if (*pch == '\'') quote = '\''; if (quote != '\0') { pch ++; pchs = pch; while (pch <= pe && ((*pch != quote) || ( (pch > pchs) && (*(pch - 1) == '\\')) )) { pch ++; } pche = pch; if (*pch != quote) { syslog(LOG_WARNING, "Error (in '%s' line %ld); " "evaluating template param [%s] in Token [%s]\n", ChrPtr(pTmpl->FileName), Tokens->Line, ChrPtr(Tokens->FlatToken), *pCh); pch ++; free(Parm); *pParm = NULL; return 0; } else { StrBufPeek(Buf, pch, -1, '\0'); if (LoadTemplates > 1) { syslog(LOG_DEBUG, "DBG: got param [%s] "SIZE_T_FMT" "SIZE_T_FMT"\n", pchs, pche - pchs, strlen(pchs) ); } Parm->Start = pchs; Parm->len = pche - pchs; pch ++; /* move after trailing quote */ if (ParamBrace && (*pch == ')')) { pch ++; } } } else { Parm->Type = TYPE_LONG; pchs = pch; while ((pch <= pe) && (isdigit(*pch) || (*pch == '+') || (*pch == '-'))) pch ++; pch ++; if (pch - pchs > 1){ StrBufPeek(Buf, pch, -1, '\0'); Parm->lvalue = atol(pchs); Parm->Start = pchs; pch++; } else { Parm->lvalue = 0; /* TODO whUT? syslog(LOG_DEBUG, "Error (in '%s' line %ld); " "evaluating long template param [%s] in Token [%s]\n", ChrPtr(pTmpl->FileName), Tokens->Line, ChrPtr(Tokens->FlatToken), *pCh); */ free(Parm); *pParm = NULL; return 0; } } while ((*pch == ' ' )|| (*pch == '\t')|| (*pch == '\r')|| (*pch == ',' )|| (*pch == '\n')) pch ++; switch (Parm->Type) { case TYPE_GETTEXT: if (DumpTemplateI18NStrings) { StrBufAppendPrintf(I18nDump, "_(\"%s\");\n", Parm->Start); } break; case TYPE_INTDEFINE: { void *vPVal; if (GetHash(Defines, Parm->Start, Parm->len, &vPVal) && (vPVal != NULL)) { long *PVal; PVal = (long*) vPVal; Parm->lvalue = *PVal; } else if (strchr(Parm->Start, '|') != NULL) { const char *Pos; StrBuf *pToken; StrBuf *Match; Parm->MaskBy = eOR; pToken = NewStrBufPlain (Parm->Start, Parm->len); Match = NewStrBufPlain (NULL, Parm->len); Pos = ChrPtr(pToken); while ((Pos != NULL) && (Pos != StrBufNOTNULL)) { StrBufExtract_NextToken(Match, pToken, &Pos, '|'); StrBufTrim(Match); if (StrLength (Match) > 0) { if (GetHash(Defines, SKEY(Match), &vPVal) && (vPVal != NULL)) { long *PVal; PVal = (long*) vPVal; Parm->lvalue |= *PVal; } else { LogTemplateError(NULL, "Define", Tokens->nParameters, TP, "%s isn't known!!", ChrPtr(Match)); } } } FreeStrBuf(&pToken); FreeStrBuf(&Match); } else if (strchr(Parm->Start, '&') != NULL) { const char *Pos; StrBuf *pToken; StrBuf *Match; Parm->MaskBy = eAND; pToken = NewStrBufPlain (Parm->Start, Parm->len); Match = NewStrBufPlain (NULL, Parm->len); Pos = ChrPtr(pToken); while ((Pos != NULL) && (Pos != StrBufNOTNULL)) { StrBufExtract_NextToken(Match, pToken, &Pos, '&'); StrBufTrim(Match); if (StrLength (Match) > 0) { if (GetHash(Defines, SKEY(Match), &vPVal) && (vPVal != NULL)) { long *PVal; PVal = (long*) vPVal; Parm->lvalue |= *PVal; } else { LogTemplateError(NULL, "Define", Tokens->nParameters, TP, "%s isn't known!!", ChrPtr(Match)); } } } FreeStrBuf(&Match); FreeStrBuf(&pToken); } else { LogTemplateError(NULL, "Define", Tokens->nParameters, TP, "%s isn't known!!", Parm->Start); }} break; case TYPE_SUBTEMPLATE:{ void *vTmpl; /* well, we don't check the mobile stuff here... */ if (!GetHash(LocalTemplateCache, Parm->Start, Parm->len, &vTmpl) && !GetHash(TemplateCache, Parm->Start, Parm->len, &vTmpl)) { LogTemplateError(NULL, "SubTemplate", Tokens->nParameters, TP, "referenced here doesn't exist"); }} break; } *pCh = pch; return 1; } WCTemplateToken *NewTemplateSubstitute(StrBuf *Buf, const char *pStart, const char *pTokenStart, const char *pTokenEnd, long Line, WCTemplate *pTmpl) { void *vVar; const char *pch; WCTemplateToken *NewToken; WCTemplputParams TP; NewToken = (WCTemplateToken*)malloc(sizeof(WCTemplateToken)); memset(NewToken, 0, sizeof(WCTemplateToken)); TP.Tokens = NewToken; NewToken->FileName = pTmpl->FileName; /* to print meaningfull log messages... */ NewToken->Flags = 0; NewToken->Line = Line + 1; NewToken->pTokenStart = pTokenStart; NewToken->TokenStart = pTokenStart - pStart; NewToken->TokenEnd = (pTokenEnd - pStart) - NewToken->TokenStart; NewToken->pTokenEnd = pTokenEnd; NewToken->NameEnd = NewToken->TokenEnd - 2; NewToken->PreEval = NULL; NewToken->FlatToken = NewStrBufPlain(pTokenStart + 2, pTokenEnd - pTokenStart - 2); StrBufShrinkToFit(NewToken->FlatToken, 1); StrBufPeek(Buf, pTokenStart, + 1, '\0'); StrBufPeek(Buf, pTokenEnd, -1, '\0'); pch = NewToken->pName = pTokenStart + 2; NewToken->HaveParameters = 0;; NewToken->nParameters = 0; while (pch < pTokenEnd - 1) { if (*pch == '(') { StrBufPeek(Buf, pch, -1, '\0'); NewToken->NameEnd = pch - NewToken->pName; pch ++; if (*(pTokenEnd - 1) != ')') { LogTemplateError( NULL, "Parseerror", ERR_NAME, &TP, "Warning, Non welformed Token; missing right parenthesis"); } while (pch < pTokenEnd - 1) { NewToken->nParameters++; if (GetNextParameter(Buf, &pch, pTokenEnd - 1, NewToken, pTmpl, &TP, &NewToken->Params[NewToken->nParameters - 1])) { NewToken->HaveParameters = 1; if (NewToken->nParameters >= MAXPARAM) { LogTemplateError( NULL, "Parseerror", ERR_NAME, &TP, "only [%d] Params allowed in Tokens", MAXPARAM); FreeToken(&NewToken); return NULL; } } else break; } if((NewToken->NameEnd == 1) && (NewToken->HaveParameters == 1)) { if (*(NewToken->pName) == '_') NewToken->Flags = SV_GETTEXT; else if (*(NewToken->pName) == '=') NewToken->Flags = SV_SUBTEMPL; else if (*(NewToken->pName) == '%') NewToken->Flags = SV_CUST_STR_CONDITIONAL; else if (*(NewToken->pName) == '?') NewToken->Flags = SV_CONDITIONAL; else if (*(NewToken->pName) == '!') NewToken->Flags = SV_NEG_CONDITIONAL; } } else pch ++; } switch (NewToken->Flags) { case 0: /* If we're able to find out more about the token, do it now while its fresh. */ pch = NewToken->pName; while (pch < NewToken->pName + NewToken->NameEnd) { if (((*pch >= 'A') && (*pch <= 'Z')) || ((*pch >= '0') && (*pch <= '9')) || (*pch == ':') || (*pch == '-') || (*pch == '_')) pch ++; else { LogTemplateError( NULL, "Token Name", ERR_NAME, &TP, "contains illegal char: '%c'", *pch); pch++; } } if (GetHash(GlobalNS, NewToken->pName, NewToken->NameEnd, &vVar)) { HashHandler *Handler; Handler = (HashHandler*) vVar; if ((NewToken->nParameters < Handler->Filter.nMinArgs) || (NewToken->nParameters > Handler->Filter.nMaxArgs)) { LogTemplateError( NULL, "Token", ERR_NAME, &TP, "doesn't work with %d params", NewToken->nParameters); } else { NewToken->PreEval = Handler; NewToken->Flags = SV_PREEVALUATED; if (Handler->PreEvalFunc != NULL) Handler->PreEvalFunc(NewToken); } } else { LogTemplateError( NULL, "Token ", ERR_NAME, &TP, " isn't known to us."); } break; case SV_GETTEXT: if ((NewToken->nParameters < 1) || (NewToken->nParameters > 2)) { LogTemplateError( NULL, "Gettext", ERR_NAME, &TP, "requires 1 or 2 parameter, you gave %d params", NewToken->nParameters); NewToken->Flags = 0; break; } if (DumpTemplateI18NStrings) { StrBufAppendPrintf(I18nDump, "_(\"%s\");\n", NewToken->Params[0]->Start); } break; case SV_SUBTEMPL: if (NewToken->nParameters != 1) { LogTemplateError( NULL, "Subtemplates", ERR_NAME, &TP, "require exactly 1 parameter, you gave %d params", NewToken->nParameters); break; } else { void *vTmpl; /* well, we don't check the mobile stuff here... */ if (!GetHash(LocalTemplateCache, NewToken->Params[0]->Start, NewToken->Params[0]->len, &vTmpl) && !GetHash(TemplateCache, NewToken->Params[0]->Start, NewToken->Params[0]->len, &vTmpl)) { LogTemplateError( NULL, "SubTemplate", ERR_PARM1, &TP, "doesn't exist"); } } break; case SV_CUST_STR_CONDITIONAL: case SV_CONDITIONAL: case SV_NEG_CONDITIONAL: if (NewToken->nParameters <2) { LogTemplateError( NULL, "Conditional", ERR_PARM1, &TP, "require at least 2 parameters, you gave %d params", NewToken->nParameters); NewToken->Flags = 0; break; } if (NewToken->Params[1]->lvalue == 0) { LogTemplateError( NULL, "Conditional", ERR_PARM1, &TP, "Conditional ID (Parameter 1) mustn't be 0!"); NewToken->Flags = 0; break; } if (!GetHash(Conditionals, NewToken->Params[0]->Start, NewToken->Params[0]->len, &vVar) || (vVar == NULL)) { if ((NewToken->Params[0]->len == 1) && (NewToken->Params[0]->Start[0] == 'X')) break; LogTemplateError( NULL, "Conditional", ERR_PARM1, &TP, "Not found!"); /* NewToken->Error = NewStrBuf(); StrBufAppendPrintf( NewToken->Error, "
    \nConditional [%s] (in '%s' line %ld); Not found!\n[%s]\n
    \n", NewToken->Params[0]->Start, ChrPtr(pTmpl->FileName), NewToken->Line, ChrPtr(NewToken->FlatToken)); */ } else { NewToken->PreEval = vVar; } break; } return NewToken; } /** * \brief Display a variable-substituted template * \param templatename template file to load */ void *prepare_template(StrBuf *filename, StrBuf *Key, HashList *PutThere) { WCTemplate *NewTemplate; NewTemplate = (WCTemplate *) malloc(sizeof(WCTemplate)); memset(NewTemplate, 0, sizeof(WCTemplate)); NewTemplate->Data = NULL; NewTemplate->FileName = NewStrBufDup(filename); StrBufShrinkToFit(NewTemplate->FileName, 1); NewTemplate->nTokensUsed = 0; NewTemplate->TokenSpace = 0; NewTemplate->Tokens = NULL; NewTemplate->MimeType = NewStrBufPlain(GuessMimeByFilename (SKEY(NewTemplate->FileName)), -1); if (strstr(ChrPtr(NewTemplate->MimeType), "text") != NULL) { StrBufAppendBufPlain(NewTemplate->MimeType, HKEY("; charset=utf-8"), 0); } if (strstr(ChrPtr(NewTemplate->MimeType), "text") != NULL) { StrBufAppendBufPlain(NewTemplate->MimeType, HKEY("; charset=utf-8"), 0); } Put(PutThere, ChrPtr(Key), StrLength(Key), NewTemplate, FreeWCTemplate); return NewTemplate; } /** * \brief Display a variable-substituted template * \param templatename template file to load */ void *duplicate_template(WCTemplate *OldTemplate) { WCTemplate *NewTemplate; NewTemplate = (WCTemplate *) malloc(sizeof(WCTemplate)); memset(NewTemplate, 0, sizeof(WCTemplate)); NewTemplate->Data = NULL; NewTemplate->FileName = NewStrBufDup(OldTemplate->FileName); StrBufShrinkToFit(NewTemplate->FileName, 1); NewTemplate->nTokensUsed = 0; NewTemplate->TokenSpace = 0; NewTemplate->Tokens = NULL; NewTemplate->MimeType = NewStrBufDup(OldTemplate->MimeType); return NewTemplate; } void SanityCheckTemplate(StrBuf *Target, WCTemplate *CheckMe) { int i = 0; int j; int FoundConditionalEnd; for (i = 0; i < CheckMe->nTokensUsed; i++) { switch(CheckMe->Tokens[i]->Flags) { case SV_CONDITIONAL: case SV_NEG_CONDITIONAL: FoundConditionalEnd = 0; if ((CheckMe->Tokens[i]->Params[0]->len == 1) && (CheckMe->Tokens[i]->Params[0]->Start[0] == 'X')) break; for (j = i + 1; j < CheckMe->nTokensUsed; j++) { if (((CheckMe->Tokens[j]->Flags == SV_CONDITIONAL) || (CheckMe->Tokens[j]->Flags == SV_NEG_CONDITIONAL)) && (CheckMe->Tokens[i]->Params[1]->lvalue == CheckMe->Tokens[j]->Params[1]->lvalue)) { FoundConditionalEnd = 1; break; } } if (!FoundConditionalEnd) { WCTemplputParams TP; memset(&TP, 0, sizeof(WCTemplputParams)); TP.Tokens = CheckMe->Tokens[i]; LogTemplateError( Target, "Token", ERR_PARM1, &TP, "Conditional without Endconditional" ); } break; default: break; } } } /** * \brief Display a variable-substituted template * \param templatename template file to load */ void *load_template(StrBuf *Target, WCTemplate *NewTemplate) { int fd; struct stat statbuf; const char *pS, *pE, *pch, *Err; long Line; fd = open(ChrPtr(NewTemplate->FileName), O_RDONLY); if (fd <= 0) { syslog(LOG_WARNING, "ERROR: could not open template '%s' - %s\n", ChrPtr(NewTemplate->FileName), strerror(errno)); return NULL; } if (fstat(fd, &statbuf) == -1) { syslog(LOG_WARNING, "ERROR: could not stat template '%s' - %s\n", ChrPtr(NewTemplate->FileName), strerror(errno)); return NULL; } NewTemplate->Data = NewStrBufPlain(NULL, statbuf.st_size + 1); if (StrBufReadBLOB(NewTemplate->Data, &fd, 1, statbuf.st_size, &Err) < 0) { close(fd); syslog(LOG_WARNING, "ERROR: reading template '%s' - %s
    \n", ChrPtr(NewTemplate->FileName), strerror(errno)); return NULL; } close(fd); Line = 0; StrBufShrinkToFit(NewTemplate->Data, 1); StrBufShrinkToFit(NewTemplate->MimeType, 1); pS = pch = ChrPtr(NewTemplate->Data); pE = pS + StrLength(NewTemplate->Data); while (pch < pE) { const char *pts, *pte; char InQuotes = '\0'; void *pv; /** Find one */ for (; pch < pE; pch ++) { if ((*pch=='<')&&(*(pch + 1)=='?') && !((pch == pS) && /* we must ommit a = pE) continue; pts = pch; /** Found one? parse it. */ for (; pch <= pE - 1; pch ++) { if ((!InQuotes) && ((*pch == '\'') || (*pch == '"'))) { InQuotes = *pch; } else if (InQuotes && (InQuotes == *pch)) { InQuotes = '\0'; } else if ((InQuotes) && (*pch == '\\') && (*(pch + 1) == InQuotes)) { pch++; } else if ((!InQuotes) && (*pch == '>')) { break; } } if (pch + 1 > pE) continue; pte = pch; pv = NewTemplateSubstitute(NewTemplate->Data, pS, pts, pte, Line, NewTemplate); if (pv != NULL) { PutNewToken(NewTemplate, pv); pch ++; } } SanityCheckTemplate(NULL, NewTemplate); return NewTemplate; } const char* PrintTemplate(void *vSubst) { WCTemplate *Tmpl = vSubst; return ChrPtr(Tmpl->FileName); } int LoadTemplateDir(const StrBuf *DirName, HashList *big, const StrBuf *BaseKey) { int Toplevel; StrBuf *FileName; StrBuf *Key; StrBuf *SubKey; StrBuf *SubDirectory; DIR *filedir = NULL; struct dirent *filedir_entry; struct dirent *d; int d_type = 0; int d_namelen; int d_without_ext; d = (struct dirent *)malloc(offsetof(struct dirent, d_name) + PATH_MAX + 1); if (d == NULL) { return 0; } filedir = opendir (ChrPtr(DirName)); if (filedir == NULL) { free(d); return 0; } Toplevel = StrLength(BaseKey) == 0; SubDirectory = NewStrBuf(); SubKey = NewStrBuf(); FileName = NewStrBufPlain(NULL, PATH_MAX); Key = NewStrBuf(); while ((readdir_r(filedir, d, &filedir_entry) == 0) && (filedir_entry != NULL)) { char *MinorPtr; #ifdef _DIRENT_HAVE_D_NAMLEN d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); #endif #ifdef _DIRENT_HAVE_D_TYPE d_type = filedir_entry->d_type; #else #ifndef DT_UNKNOWN #define DT_UNKNOWN 0 #define DT_DIR 4 #define DT_REG 8 #define DT_LNK 10 #define IFTODT(mode) (((mode) & 0170000) >> 12) #define DTTOIF(dirtype) ((dirtype) << 12) #endif d_type = DT_UNKNOWN; #endif d_without_ext = d_namelen; if ((d_namelen > 1) && filedir_entry->d_name[d_namelen - 1] == '~') continue; /* Ignore backup files... */ if ((d_namelen == 1) && (filedir_entry->d_name[0] == '.')) continue; if ((d_namelen == 2) && (filedir_entry->d_name[0] == '.') && (filedir_entry->d_name[1] == '.')) continue; if (d_type == DT_UNKNOWN) { struct stat s; char path[PATH_MAX]; snprintf(path, PATH_MAX, "%s/%s", ChrPtr(DirName), filedir_entry->d_name); if (lstat(path, &s) == 0) { d_type = IFTODT(s.st_mode); } } switch (d_type) { case DT_DIR: /* Skip directories we are not interested in... */ if (strcmp(filedir_entry->d_name, ".svn") == 0) continue; FlushStrBuf(SubKey); if (!Toplevel) { /* If we're not toplevel, the upper dirs count as foo_bar_*/ StrBufAppendBuf(SubKey, BaseKey, 0); StrBufAppendBufPlain(SubKey, HKEY("_"), 0); } StrBufAppendBufPlain(SubKey, filedir_entry->d_name, d_namelen, 0); FlushStrBuf(SubDirectory); StrBufAppendBuf(SubDirectory, DirName, 0); if (ChrPtr(SubDirectory)[StrLength(SubDirectory) - 1] != '/') StrBufAppendBufPlain(SubDirectory, HKEY("/"), 0); StrBufAppendBufPlain(SubDirectory, filedir_entry->d_name, d_namelen, 0); LoadTemplateDir(SubDirectory, big, SubKey); break; case DT_LNK: case DT_REG: while ((d_without_ext > 0) && (filedir_entry->d_name[d_without_ext] != '.')) d_without_ext --; if ((d_without_ext == 0) || (d_namelen < 3)) continue; if (((d_namelen > 1) && filedir_entry->d_name[d_namelen - 1] == '~') || (strcmp(&filedir_entry->d_name[d_without_ext], ".orig") == 0) || (strcmp(&filedir_entry->d_name[d_without_ext], ".swp") == 0)) continue; /* Ignore backup files... */ StrBufPrintf(FileName, "%s/%s", ChrPtr(DirName), filedir_entry->d_name); MinorPtr = strchr(filedir_entry->d_name, '.'); if (MinorPtr != NULL) *MinorPtr = '\0'; FlushStrBuf(Key); if (!Toplevel) { /* If we're not toplevel, the upper dirs count as foo_bar_*/ StrBufAppendBuf(Key, BaseKey, 0); StrBufAppendBufPlain(Key, HKEY("_"), 0); } StrBufAppendBufPlain(Key, filedir_entry->d_name, MinorPtr - filedir_entry->d_name, 0); if (LoadTemplates >= 1) syslog(LOG_DEBUG, "%s %s\n", ChrPtr(FileName), ChrPtr(Key)); prepare_template(FileName, Key, big); default: break; } } free(d); closedir(filedir); FreeStrBuf(&FileName); FreeStrBuf(&Key); FreeStrBuf(&SubDirectory); FreeStrBuf(&SubKey); return 1; } void InitTemplateCache(void) { int i; StrBuf *Key; StrBuf *Dir; HashList *Templates[2]; Dir = NewStrBuf(); Key = NewStrBuf(); /* Primary Template set... */ StrBufPrintf(Dir, "%s/t", static_dirs[0]); LoadTemplateDir(Dir, TemplateCache, Key); /* User local Template set */ StrBufPrintf(Dir, "%s/t", static_dirs[1]); LoadTemplateDir(Dir, LocalTemplateCache, Key); /* Debug Templates, just to be loaded while debugging. */ StrBufPrintf(Dir, "%s/dbg", static_dirs[0]); LoadTemplateDir(Dir, TemplateCache, Key); Templates[0] = TemplateCache; Templates[1] = LocalTemplateCache; if (LoadTemplates == 0) for (i=0; i < 2; i++) { const char *Key; long KLen; HashPos *At; void *vTemplate; At = GetNewHashPos(Templates[i], 0); while (GetNextHashPos(Templates[i], At, &KLen, &Key, &vTemplate) && (vTemplate != NULL)) { load_template(NULL, (WCTemplate *)vTemplate); } DeleteHashPos(&At); } FreeStrBuf(&Dir); FreeStrBuf(&Key); } /*----------------------------------------------------------------------------- * Filling & processing Templates */ /** * \brief executes one token * \param Target buffer to append to * \param Token da to process. * \param Template we're iterating * \param Context Contextpoointer to pass in * \param state are we in conditional state? * \param ContextType what type of information does context giv us? */ int EvaluateToken(StrBuf *Target, int state, WCTemplputParams **TPP) { const char *AppendMe; long AppendMeLen; HashHandler *Handler; void *vVar; WCTemplputParams *TP = *TPP; /* much output, since pName is not terminated... syslog(LOG_DEBUG,"Doing token: %s\n",Token->pName); */ switch (TP->Tokens->Flags) { case SV_GETTEXT: TmplGettext(Target, TP); break; case SV_CONDITIONAL: /** Forward conditional evaluation */ Handler = (HashHandler*) TP->Tokens->PreEval; if (!CheckContext(Target, &Handler->Filter, TP, "Conditional")) { return 0; } return EvaluateConditional(Target, 1, state, TPP); break; case SV_NEG_CONDITIONAL: /** Reverse conditional evaluation */ Handler = (HashHandler*) TP->Tokens->PreEval; if (!CheckContext(Target, &Handler->Filter, TP, "Conditional")) { return 0; } return EvaluateConditional(Target, 0, state, TPP); break; case SV_CUST_STR_CONDITIONAL: /** Conditional put custom strings from params */ Handler = (HashHandler*) TP->Tokens->PreEval; if (!CheckContext(Target, &Handler->Filter, TP, "Conditional")) { return 0; } if (TP->Tokens->nParameters >= 6) { if (EvaluateConditional(Target, 0, state, TPP)) { GetTemplateTokenString(Target, TP, 5, &AppendMe, &AppendMeLen); StrBufAppendBufPlain(Target, AppendMe, AppendMeLen, 0); } else{ GetTemplateTokenString(Target, TP, 4, &AppendMe, &AppendMeLen); StrBufAppendBufPlain(Target, AppendMe, AppendMeLen, 0); } if (*TPP != TP) { UnStackDynamicContext(Target, TPP); } } else { LogTemplateError( Target, "Conditional", ERR_NAME, TP, "needs at least 6 Params!"); } break; case SV_SUBTEMPL: if (TP->Tokens->nParameters == 1) DoTemplate(TKEY(0), Target, TP); break; case SV_PREEVALUATED: Handler = (HashHandler*) TP->Tokens->PreEval; if (!CheckContext(Target, &Handler->Filter, TP, "Token")) { return 0; } Handler->HandlerFunc(Target, TP); break; default: if (GetHash(GlobalNS, TP->Tokens->pName, TP->Tokens->NameEnd, &vVar)) { Handler = (HashHandler*) vVar; if (!CheckContext(Target, &Handler->Filter, TP, "Token")) { return 0; } else { Handler->HandlerFunc(Target, TP); } } else { LogTemplateError( Target, "Token UNKNOWN", ERR_NAME, TP, "You've specified a token that isn't known to webcit.!"); } } return 0; } const StrBuf *ProcessTemplate(WCTemplate *Tmpl, StrBuf *Target, WCTemplputParams *CallingTP) { WCTemplate *pTmpl = Tmpl; int done = 0; int i; TemplState state; const char *pData, *pS; long len; WCTemplputParams TP; WCTemplputParams *TPtr = &TP; memset(TPtr, 0, sizeof(WCTemplputParams)); memcpy(&TP.Filter, &CallingTP->Filter, sizeof(ContextFilter)); TP.Context = CallingTP->Context; TP.Sub = CallingTP->Sub; TP.Super = CallingTP->Super; if (LoadTemplates != 0) { if (LoadTemplates > 1) syslog(LOG_DEBUG, "DBG: ----- loading: [%s] ------ \n", ChrPtr(Tmpl->FileName)); pTmpl = duplicate_template(Tmpl); if(load_template(Target, pTmpl) == NULL) { StrBufAppendPrintf( Target, "
    \nError loading Template [%s]\n See Logfile for details\n
    \n", ChrPtr(Tmpl->FileName)); FreeWCTemplate(pTmpl); return NULL; } } pS = pData = ChrPtr(pTmpl->Data); len = StrLength(pTmpl->Data); i = 0; state = eNext; while (!done) { if (i >= pTmpl->nTokensUsed) { StrBufAppendBufPlain(Target, pData, len - (pData - pS), 0); done = 1; } else { int TokenRc = 0; StrBufAppendBufPlain( Target, pData, pTmpl->Tokens[i]->pTokenStart - pData, 0); TPtr->Tokens = pTmpl->Tokens[i]; TPtr->nArgs = pTmpl->Tokens[i]->nParameters; TokenRc = EvaluateToken(Target, TokenRc, &TPtr); if (TokenRc > 0) { state = eSkipTilEnd; } else if (TokenRc < 0) { if ((TPtr != &TP) && (TPtr->ExitCTXID == -TokenRc)) { UnStackDynamicContext(Target, &TPtr); } TokenRc = 0; } while ((state != eNext) && (i+1 < pTmpl->nTokensUsed)) { /* condition told us to skip till its end condition */ i++; TPtr->Tokens = pTmpl->Tokens[i]; TPtr->nArgs = pTmpl->Tokens[i]->nParameters; if ((pTmpl->Tokens[i]->Flags == SV_CONDITIONAL) || (pTmpl->Tokens[i]->Flags == SV_NEG_CONDITIONAL)) { int rc; rc = EvaluateConditional( Target, pTmpl->Tokens[i]->Flags, TokenRc, &TPtr); if (-rc == TokenRc) { TokenRc = 0; state = eNext; if ((TPtr != &TP) && (TPtr->ExitCTXID == - rc)) { UnStackDynamicContext(Target, &TPtr); } } } } pData = pTmpl->Tokens[i++]->pTokenEnd + 1; if (i > pTmpl->nTokensUsed) done = 1; } } if (LoadTemplates != 0) { FreeWCTemplate(pTmpl); } return Tmpl->MimeType; } StrBuf *textPlainType; /** * \brief Display a variable-substituted template * \param templatename template file to load * \returns the mimetype of the template its doing */ const StrBuf *DoTemplate(const char *templatename, long len, StrBuf *Target, WCTemplputParams *TP) { WCTemplputParams LocalTP; HashList *Static; HashList *StaticLocal; void *vTmpl; if (Target == NULL) Target = WC->WBuf; if (TP == NULL) { memset(&LocalTP, 0, sizeof(WCTemplputParams)); TP = &LocalTP; } Static = TemplateCache; StaticLocal = LocalTemplateCache; if (len == 0) { syslog(LOG_WARNING, "Can't to load a template with empty name!\n"); StrBufAppendPrintf(Target, "
    \nCan't to load a template with empty name!\n
    "); return textPlainType; } if (!GetHash(StaticLocal, templatename, len, &vTmpl) && !GetHash(Static, templatename, len, &vTmpl)) { StrBuf *escapedString = NewStrBufPlain(NULL, len); StrHtmlEcmaEscAppend(escapedString, NULL, templatename, 1, 1); syslog(LOG_WARNING, "didn't find Template [%s] %ld %ld\n", ChrPtr(escapedString), len , (long)strlen(templatename)); StrBufAppendPrintf(Target, "
    \ndidn't find Template [%s] %ld %ld\n
    ", ChrPtr(escapedString), len, (long)strlen(templatename)); WC->isFailure = 1; #if 0 dbg_PrintHash(Static, PrintTemplate, NULL); PrintHash(Static, VarPrintTransition, PrintTemplate); #endif FreeStrBuf(&escapedString); return textPlainType; } if (vTmpl == NULL) return textPlainType; return ProcessTemplate(vTmpl, Target, TP); } void tmplput_Comment(StrBuf *Target, WCTemplputParams *TP) { if (LoadTemplates != 0) { StrBuf *Comment; const char *pch; long len; GetTemplateTokenString(Target, TP, 0, &pch, &len); Comment = NewStrBufPlain(pch, len); StrBufAppendBufPlain(Target, HKEY(""), 0); FreeStrBuf(&Comment); } } /*----------------------------------------------------------------------------- * Iterators */ typedef struct _HashIterator { HashList *StaticList; int AdditionalParams; CtxType ContextType; CtxType XPectContextType; int Flags; RetrieveHashlistFunc GetHash; HashDestructorFunc Destructor; SubTemplFunc DoSubTemplate; FilterByParamFunc Filter; } HashIterator; void RegisterITERATOR(const char *Name, long len, int AdditionalParams, HashList *StaticList, RetrieveHashlistFunc GetHash, SubTemplFunc DoSubTempl, HashDestructorFunc Destructor, FilterByParamFunc Filter, CtxType ContextType, CtxType XPectContextType, int Flags) { HashIterator *It; It = (HashIterator*)malloc(sizeof(HashIterator)); memset(It, 0, sizeof(HashIterator)); It->StaticList = StaticList; It->AdditionalParams = AdditionalParams; It->GetHash = GetHash; It->DoSubTemplate = DoSubTempl; It->Destructor = Destructor; It->Filter = Filter; It->ContextType = ContextType; It->XPectContextType = XPectContextType; It->Flags = Flags; Put(Iterators, Name, len, It, NULL); } typedef struct _iteratestruct { int GroupChange; int oddeven; const char *Key; long KeyLen; int n; int LastN; }IterateStruct; int preeval_iterate(WCTemplateToken *Token) { WCTemplputParams TPP; WCTemplputParams *TP; void *vTmpl; void *vIt; HashIterator *It; memset(&TPP, 0, sizeof(WCTemplputParams)); TP = &TPP; TP->Tokens = Token; if (!GetHash(Iterators, TKEY(0), &vIt)) { LogTemplateError( NULL, "Iterator", ERR_PARM1, TP, "not found"); return 0; } if (TP->Tokens->Params[1]->Type != TYPE_SUBTEMPLATE) { LogTemplateError(NULL, "Iterator", ERR_PARM1, TP, "Need token with type Subtemplate as param 1, have %s", TP->Tokens->Params[1]->Start); } /* well, we don't check the mobile stuff here... */ if (!GetHash(LocalTemplateCache, TKEY(1), &vTmpl) && !GetHash(TemplateCache, TKEY(1), &vTmpl)) { LogTemplateError(NULL, "SubTemplate", ERR_PARM1, TP, "referenced here doesn't exist"); } Token->Preeval2 = vIt; It = (HashIterator *) vIt; if (TP->Tokens->nParameters < It->AdditionalParams + 2) { LogTemplateError( NULL, "Iterator", ERR_PARM1, TP, "doesn't work with %d params", TP->Tokens->nParameters); } return 1; } void tmpl_iterate_subtmpl(StrBuf *Target, WCTemplputParams *TP) { HashIterator *It; HashList *List; HashPos *it; SortStruct *SortBy = NULL; void *vSortBy; int DetectGroupChange = 0; int nMembersUsed; void *vContext; void *vLastContext = NULL; StrBuf *SubBuf; WCTemplputParams IterateTP; WCTemplputParams SubTP; IterateStruct Status; long StartAt = 0; long StepWidth = 0; long StopAt = -1; memset(&Status, 0, sizeof(IterateStruct)); It = (HashIterator*) TP->Tokens->Preeval2; if (It == NULL) { LogTemplateError( Target, "Iterator", ERR_PARM1, TP, "Unknown!"); return; } if (TP->Tokens->nParameters < It->AdditionalParams + 2) { LogTemplateError( Target, "Iterator", ERR_PARM1, TP, "doesn't work with %d params", TP->Tokens->nParameters - 1); return; } if ((It->XPectContextType != CTX_NONE) && (It->XPectContextType != TP->Filter.ContextType)) { LogTemplateError( Target, "Iterator", ERR_PARM1, TP, "requires context of type %s, have %s", ContextName(It->XPectContextType), ContextName(TP->Filter.ContextType)); return ; } if (It->StaticList == NULL) List = It->GetHash(Target, TP); else List = It->StaticList; DetectGroupChange = (It->Flags & IT_FLAG_DETECT_GROUPCHANGE) != 0; if (DetectGroupChange) { const StrBuf *BSort; DetectGroupChange = 0; if (havebstr("SortBy")) { BSort = sbstr("SortBy"); if (GetHash(SortHash, SKEY(BSort), &vSortBy) && (vSortBy != NULL)) { SortBy = (SortStruct*)vSortBy; /* first check whether its intended for us... */ if ((SortBy->ContextType == It->ContextType)&& /** Ok, its us, lets see in which direction we should sort... */ (havebstr("SortOrder"))) { int SortOrder; SortOrder = lbstr("SortOrder"); if (SortOrder != 0) DetectGroupChange = 1; } } } } nMembersUsed = GetCount(List); StackContext (TP, &IterateTP, &Status, CTX_ITERATE, 0, TP->Tokens); { SubBuf = NewStrBuf(); if (HAVE_PARAM(2)) { StartAt = GetTemplateTokenNumber(Target, TP, 2, 0); } if (HAVE_PARAM(3)) { StepWidth = GetTemplateTokenNumber(Target, TP, 3, 0); } if (HAVE_PARAM(4)) { StopAt = GetTemplateTokenNumber(Target, TP, 4, -1); } it = GetNewHashPos(List, StepWidth); if (StopAt < 0) { StopAt = GetCount(List); } while (GetNextHashPos(List, it, &Status.KeyLen, &Status.Key, &vContext)) { if ((Status.n >= StartAt) && (Status.n <= StopAt)) { if ((It->Filter != NULL) && !It->Filter(Status.Key, Status.KeyLen, vContext, Target, TP)) { continue; } if (DetectGroupChange && Status.n > 0) { Status.GroupChange = SortBy->GroupChange(vContext, vLastContext); } Status.LastN = (Status.n + 1) == nMembersUsed; StackContext(&IterateTP, &SubTP, vContext, It->ContextType, 0, NULL); { if (It->DoSubTemplate != NULL) It->DoSubTemplate(SubBuf, &SubTP); DoTemplate(TKEY(1), SubBuf, &SubTP); StrBufAppendBuf(Target, SubBuf, 0); FlushStrBuf(SubBuf); } UnStackContext(&SubTP); Status.oddeven = ! Status.oddeven; vLastContext = vContext; } Status.n++; } } UnStackContext(&IterateTP); FreeStrBuf(&SubBuf); DeleteHashPos(&it); if (It->Destructor != NULL) It->Destructor(&List); } int conditional_ITERATE_ISGROUPCHANGE(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); if (TP->Tokens->nParameters < 3) return Ctx->GroupChange; return TP->Tokens->Params[2]->lvalue == Ctx->GroupChange; } void tmplput_ITERATE_ODDEVEN(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); if (Ctx->oddeven) StrBufAppendBufPlain(Target, HKEY("odd"), 0); else StrBufAppendBufPlain(Target, HKEY("even"), 0); } void tmplput_ITERATE_KEY(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); StrBufAppendBufPlain(Target, Ctx->Key, Ctx->KeyLen, 0); } void tmplput_ITERATE_N_DIV(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); long div; long divisor = GetTemplateTokenNumber(Target, TP, 0, 1); ///TODO divisor == 0 -> log error exit div = Ctx->n / divisor; StrBufAppendPrintf(Target, "%ld", div); } void tmplput_ITERATE_N(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); StrBufAppendPrintf(Target, "%d", Ctx->n); } int conditional_ITERATE_FIRSTN(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); return Ctx->n == 0; } int conditional_ITERATE_LASTN(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); return Ctx->LastN; } int conditional_ITERATE_ISMOD(StrBuf *Target, WCTemplputParams *TP) { IterateStruct *Ctx = CTX(CTX_ITERATE); long divisor = GetTemplateTokenNumber(Target, TP, 2, 1); long expectRemainder = GetTemplateTokenNumber(Target, TP, 3, 0); return Ctx->n % divisor == expectRemainder; } /*----------------------------------------------------------------------------- * Conditionals */ int EvaluateConditional(StrBuf *Target, int Neg, int state, WCTemplputParams **TPP) { ConditionalStruct *Cond; int rc = 0; int res; WCTemplputParams *TP = *TPP; if ((TP->Tokens->Params[0]->len == 1) && (TP->Tokens->Params[0]->Start[0] == 'X')) { return - (TP->Tokens->Params[1]->lvalue); } Cond = (ConditionalStruct *) TP->Tokens->PreEval; if (Cond == NULL) { LogTemplateError( Target, "Conditional", ERR_PARM1, TP, "unknown!"); return 0; } if (!CheckContext(Target, &Cond->Filter, TP, "Conditional")) { return 0; } res = Cond->CondF(Target, TP); if (res == Neg) rc = TP->Tokens->Params[1]->lvalue; if (LoadTemplates > 5) syslog(LOG_DEBUG, "<%s> : %d %d==%d\n", ChrPtr(TP->Tokens->FlatToken), rc, res, Neg); if (TP->Sub != NULL) { *TPP = TP->Sub; } return rc; } void RegisterContextConditional(const char *Name, long len, int nParams, WCConditionalFunc CondF, WCConditionalFunc ExitCtxCond, int ContextRequired) { ConditionalStruct *Cond; Cond = (ConditionalStruct*)malloc(sizeof(ConditionalStruct)); memset(Cond, 0, sizeof(ConditionalStruct)); Cond->PlainName = Name; Cond->Filter.nMaxArgs = nParams; Cond->Filter.nMinArgs = nParams; Cond->CondF = CondF; Cond->CondExitCtx = ExitCtxCond; Cond->Filter.ContextType = ContextRequired; Put(Conditionals, Name, len, Cond, NULL); } void RegisterTokenParamDefine(const char *Name, long len, long Value) { long *PVal; PVal = (long*)malloc(sizeof(long)); *PVal = Value; Put(Defines, Name, len, PVal, NULL); } long GetTokenDefine(const char *Name, long len, long DefValue) { void *vPVal; if (GetHash(Defines, Name, len, &vPVal) && (vPVal != NULL)) { return *(long*) vPVal; } else { return DefValue; } } void tmplput_DefStr(StrBuf *Target, WCTemplputParams *TP) { const char *Str; long len; GetTemplateTokenString(Target, TP, 2, &Str, &len); StrBufAppendBufPlain(Target, Str, len, 0); } void tmplput_DefVal(StrBuf *Target, WCTemplputParams *TP) { int val; val = GetTemplateTokenNumber(Target, TP, 0, 0); StrBufAppendPrintf(Target, "%d", val); } HashList *Defines; /*----------------------------------------------------------------------------- * Context Strings */ void tmplput_ContextString(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendTemplate(Target, TP, (StrBuf*)CTX(CTX_STRBUF), 0); } int ConditionalContextStr(StrBuf *Target, WCTemplputParams *TP) { StrBuf *TokenText = (StrBuf*) CTX((CTX_STRBUF)); const char *CompareToken; long len; GetTemplateTokenString(Target, TP, 2, &CompareToken, &len); return strcmp(ChrPtr(TokenText), CompareToken) == 0; } void tmplput_ContextStringArray(StrBuf *Target, WCTemplputParams *TP) { HashList *Arr = (HashList*) CTX(CTX_STRBUFARR); void *pV; int val; val = GetTemplateTokenNumber(Target, TP, 0, 0); if (GetHash(Arr, IKEY(val), &pV) && (pV != NULL)) { StrBufAppendTemplate(Target, TP, (StrBuf*)pV, 1); } } int ConditionalContextStrinArray(StrBuf *Target, WCTemplputParams *TP) { HashList *Arr = (HashList*) CTX(CTX_STRBUFARR); void *pV; int val; const char *CompareToken; long len; GetTemplateTokenString(Target, TP, 2, &CompareToken, &len); val = GetTemplateTokenNumber(Target, TP, 0, 0); if (GetHash(Arr, IKEY(val), &pV) && (pV != NULL)) { return strcmp(ChrPtr((StrBuf*)pV), CompareToken) == 0; } else return 0; } /*----------------------------------------------------------------------------- * Boxed-API */ void tmpl_do_boxed(StrBuf *Target, WCTemplputParams *TP) { WCTemplputParams SubTP; StrBuf *Headline = NULL; if (TP->Tokens->nParameters == 2) { if (TP->Tokens->Params[1]->Type == TYPE_STR) { Headline = NewStrBuf(); DoTemplate(TKEY(1), Headline, TP); } else { const char *Ch; long len; GetTemplateTokenString(Target, TP, 1, &Ch, &len); Headline = NewStrBufPlain(Ch, len); } } /* else TODO error? logging? */ StackContext (TP, &SubTP, Headline, CTX_STRBUF, 0, NULL); { DoTemplate(HKEY("box_begin"), Target, &SubTP); } UnStackContext(&SubTP); DoTemplate(TKEY(0), Target, TP); DoTemplate(HKEY("box_end"), Target, TP); FreeStrBuf(&Headline); } /*----------------------------------------------------------------------------- * Tabbed-API */ typedef struct _tab_struct { long CurrentTab; StrBuf *TabTitle; } tab_struct; int preeval_do_tabbed(WCTemplateToken *Token) { WCTemplputParams TPP; WCTemplputParams *TP; const char *Ch; long len; int i, nTabs; memset(&TPP, 0, sizeof(WCTemplputParams)); TP = &TPP; TP->Tokens = Token; nTabs = TP->Tokens->nParameters / 2 - 1; if (TP->Tokens->nParameters % 2 != 0) { LogTemplateError(NULL, "TabbedApi", ERR_PARM1, TP, "need even number of arguments"); return 0; } else for (i = 0; i < nTabs; i++) { if (!HaveTemplateTokenString(NULL, TP, i * 2, &Ch, &len) || (TP->Tokens->Params[i * 2]->len == 0)) { LogTemplateError(NULL, "TabbedApi", ERR_PARM1, TP, "Tab-Subject %d needs to be able to produce a string, have %s", i, TP->Tokens->Params[i * 2]->Start); return 0; } if (!HaveTemplateTokenString(NULL, TP, i * 2 + 1, &Ch, &len) || (TP->Tokens->Params[i * 2 + 1]->len == 0)) { LogTemplateError(NULL, "TabbedApi", ERR_PARM1, TP, "Tab-Content %d needs to be able to produce a string, have %s", i, TP->Tokens->Params[i * 2 + 1]->Start); return 0; } } if (!HaveTemplateTokenString(NULL, TP, i * 2 + 1, &Ch, &len) || (TP->Tokens->Params[i * 2 + 1]->len == 0)) { LogTemplateError(NULL, "TabbedApi", ERR_PARM1, TP, "Tab-Content %d needs to be able to produce a string, have %s", i, TP->Tokens->Params[i * 2 + 1]->Start); return 0; } return 1; } void tmpl_do_tabbed(StrBuf *Target, WCTemplputParams *TP) { StrBuf **TabNames; int i, ntabs, nTabs; tab_struct TS; WCTemplputParams SubTP; memset(&TS, 0, sizeof(tab_struct)); nTabs = ntabs = TP->Tokens->nParameters / 2; TabNames = (StrBuf **) malloc(ntabs * sizeof(StrBuf*)); memset(TabNames, 0, ntabs * sizeof(StrBuf*)); for (i = 0; i < ntabs; i++) { if ((TP->Tokens->Params[i * 2]->Type == TYPE_STR) && (TP->Tokens->Params[i * 2]->len > 0)) { TabNames[i] = NewStrBuf(); DoTemplate(TKEY(i * 2), TabNames[i], TP); } else if (TP->Tokens->Params[i * 2]->Type == TYPE_GETTEXT) { const char *Ch; long len; GetTemplateTokenString(Target, TP, i * 2, &Ch, &len); TabNames[i] = NewStrBufPlain(Ch, -1); } else { /** A Tab without subject? we can't count that, add it as silent */ nTabs --; } } StackContext (TP, &SubTP, &TS, CTX_TAB, 0, NULL); { StrTabbedDialog(Target, nTabs, TabNames); for (i = 0; i < ntabs; i++) { memset(&TS, 0, sizeof(tab_struct)); TS.CurrentTab = i; TS.TabTitle = TabNames[i]; StrBeginTab(Target, i, nTabs, TabNames); DoTemplate(TKEY(i * 2 + 1), Target, &SubTP); StrEndTab(Target, i, nTabs); } for (i = 0; i < ntabs; i++) FreeStrBuf(&TabNames[i]); free(TabNames); } UnStackContext(&SubTP); } void tmplput_TAB_N(StrBuf *Target, WCTemplputParams *TP) { tab_struct *Ctx = CTX(CTX_TAB); StrBufAppendPrintf(Target, "%d", Ctx->CurrentTab); } void tmplput_TAB_TITLE(StrBuf *Target, WCTemplputParams *TP) { tab_struct *Ctx = CTX(CTX_TAB); StrBufAppendTemplate(Target, TP, Ctx->TabTitle, 0); } /*----------------------------------------------------------------------------- * Sorting-API */ void RegisterSortFunc(const char *name, long len, const char *prepend, long preplen, CompareFunc Forward, CompareFunc Reverse, CompareFunc GroupChange, CtxType ContextType) { SortStruct *NewSort; NewSort = (SortStruct*) malloc(sizeof(SortStruct)); memset(NewSort, 0, sizeof(SortStruct)); NewSort->Name = NewStrBufPlain(name, len); if (prepend != NULL) NewSort->PrefPrepend = NewStrBufPlain(prepend, preplen); else NewSort->PrefPrepend = NULL; NewSort->Forward = Forward; NewSort->Reverse = Reverse; NewSort->GroupChange = GroupChange; NewSort->ContextType = ContextType; if (ContextType == CTX_NONE) { syslog(LOG_WARNING, "sorting requires a context. CTX_NONE won't make it.\n"); exit(1); } Put(SortHash, name, len, NewSort, DestroySortStruct); } CompareFunc RetrieveSort(WCTemplputParams *TP, const char *OtherPrefix, long OtherPrefixLen, const char *Default, long ldefault, long DefaultDirection) { const StrBuf *BSort = NULL; SortStruct *SortBy; void *vSortBy; long SortOrder = -1; if (havebstr("SortBy")) { BSort = sbstr("SortBy"); if (OtherPrefix == NULL) { set_room_pref("sort", NewStrBufDup(BSort), 0); } else { set_X_PREFS(HKEY("sort"), OtherPrefix, OtherPrefixLen, NewStrBufDup(BSort), 0); } } else { /** Try to fallback to our remembered values... */ if (OtherPrefix == NULL) { BSort = get_room_pref("sort"); } else { BSort = get_X_PREFS(HKEY("sort"), OtherPrefix, OtherPrefixLen); } if (BSort != NULL) putbstr("SortBy", NewStrBufDup(BSort)); else { StrBuf *Buf; BSort = Buf = NewStrBufPlain(Default, ldefault); putbstr("SortBy", Buf); } } if (!GetHash(SortHash, SKEY(BSort), &vSortBy) || (vSortBy == NULL)) { if (!GetHash(SortHash, Default, ldefault, &vSortBy) || (vSortBy == NULL)) { LogTemplateError( NULL, "Sorting", ERR_PARM1, TP, "Illegal default sort: [%s]", Default); wc_backtrace(LOG_WARNING); } } SortBy = (SortStruct*)vSortBy; if (SortBy->ContextType != TP->Filter.ContextType) return NULL; /** Ok, its us, lets see in which direction we should sort... */ if (havebstr("SortOrder")) { SortOrder = lbstr("SortOrder"); } else { /** Try to fallback to our remembered values... */ StrBuf *Buf = NULL; if (SortBy->PrefPrepend == NULL) { Buf = get_room_pref("SortOrder"); SortOrder = StrTol(Buf); } else { BSort = get_X_PREFS(HKEY("SortOrder"), OtherPrefix, OtherPrefixLen); } if (Buf == NULL) SortOrder = DefaultDirection; Buf = NewStrBufPlain(NULL, 64); StrBufPrintf(Buf, "%ld", SortOrder); putbstr("SortOrder", Buf); } switch (SortOrder) { default: case 0: return NULL; case 1: return SortBy->Forward; case 2: return SortBy->Reverse; } } enum { eNO_SUCH_SORT, eNOT_SPECIFIED, eINVALID_PARAM, eFOUND }; ConstStr SortIcons[] = { {HKEY("static/webcit_icons/sort_none.gif")}, {HKEY("static/webcit_icons/up_pointer.gif")}, {HKEY("static/webcit_icons/down_pointer.gif")}, }; ConstStr SortNextOrder[] = { {HKEY("1")}, {HKEY("2")}, {HKEY("0")}, }; int GetSortMetric(WCTemplputParams *TP, SortStruct **Next, SortStruct **Param, long *SortOrder, int N) { int bSortError = eNOT_SPECIFIED; const StrBuf *BSort; void *vSort; *SortOrder = 0; *Next = NULL; if (!GetHash(SortHash, TKEY(0), &vSort) || (vSort == NULL)) return eNO_SUCH_SORT; *Param = (SortStruct*) vSort; if (havebstr("SortBy")) { BSort = sbstr("SortBy"); bSortError = eINVALID_PARAM; if ((*Param)->PrefPrepend == NULL) { set_room_pref("sort", NewStrBufDup(BSort), 0); } else { set_X_PREFS(HKEY("sort"), TKEY(N), NewStrBufDup(BSort), 0); } } else { /** Try to fallback to our remembered values... */ if ((*Param)->PrefPrepend == NULL) { BSort = get_room_pref("sort"); } else { BSort = get_X_PREFS(HKEY("sort"), TKEY(N)); } } if (!GetHash(SortHash, SKEY(BSort), &vSort) || (vSort == NULL)) return bSortError; *Next = (SortStruct*) vSort; /** Ok, its us, lets see in which direction we should sort... */ if (havebstr("SortOrder")) { *SortOrder = lbstr("SortOrder"); } else { /** Try to fallback to our remembered values... */ if ((*Param)->PrefPrepend == NULL) { *SortOrder = StrTol(get_room_pref("SortOrder")); } else { *SortOrder = StrTol(get_X_PREFS(HKEY("SortOrder"), TKEY(N))); } } if (*SortOrder > 2) *SortOrder = 0; return eFOUND; } void tmplput_SORT_ICON(StrBuf *Target, WCTemplputParams *TP) { long SortOrder; SortStruct *Next; SortStruct *Param; const ConstStr *SortIcon; switch (GetSortMetric(TP, &Next, &Param, &SortOrder, 2)){ case eNO_SUCH_SORT: LogTemplateError( Target, "Sorter", ERR_PARM1, TP, " Sorter [%s] unknown!", TP->Tokens->Params[0]->Start); break; case eINVALID_PARAM: LogTemplateError(NULL, "Sorter", ERR_PARM1, TP, " Sorter specified by BSTR 'SortBy' [%s] unknown!", bstr("SortBy")); case eNOT_SPECIFIED: case eFOUND: if (Next == Param) { SortIcon = &SortIcons[SortOrder]; } else { /** Not Us... */ SortIcon = &SortIcons[0]; } StrBufAppendBufPlain(Target, SortIcon->Key, SortIcon->len, 0); } } void tmplput_SORT_NEXT(StrBuf *Target, WCTemplputParams *TP) { long SortOrder; SortStruct *Next; SortStruct *Param; switch (GetSortMetric(TP, &Next, &Param, &SortOrder, 2)){ case eNO_SUCH_SORT: LogTemplateError( Target, "Sorter", ERR_PARM1, TP, " Sorter [%s] unknown!", TP->Tokens->Params[0]->Start); break; case eINVALID_PARAM: LogTemplateError( NULL, "Sorter", ERR_PARM1, TP, " Sorter specified by BSTR 'SortBy' [%s] unknown!", bstr("SortBy")); case eNOT_SPECIFIED: case eFOUND: StrBufAppendBuf(Target, Param->Name, 0); } } void tmplput_SORT_ORDER(StrBuf *Target, WCTemplputParams *TP) { long SortOrder; const ConstStr *SortOrderStr; SortStruct *Next; SortStruct *Param; switch (GetSortMetric(TP, &Next, &Param, &SortOrder, 2)){ case eNO_SUCH_SORT: LogTemplateError( Target, "Sorter", ERR_PARM1, TP, " Sorter [%s] unknown!", TP->Tokens->Params[0]->Start); break; case eINVALID_PARAM: LogTemplateError( NULL, "Sorter", ERR_PARM1, TP, " Sorter specified by BSTR 'SortBy' [%s] unknown!", bstr("SortBy")); case eNOT_SPECIFIED: case eFOUND: if (Next == Param) { SortOrderStr = &SortNextOrder[SortOrder]; } else { /** Not Us... */ SortOrderStr = &SortNextOrder[0]; } StrBufAppendBufPlain(Target, SortOrderStr->Key, SortOrderStr->len, 0); } } void tmplput_long_vector(StrBuf *Target, WCTemplputParams *TP) { long *LongVector = (long*) CTX(CTX_LONGVECTOR); if ((TP->Tokens->Params[0]->Type == TYPE_LONG) && (TP->Tokens->Params[0]->lvalue <= LongVector[0])) { StrBufAppendPrintf(Target, "%ld", LongVector[TP->Tokens->Params[0]->lvalue]); } else { if (TP->Tokens->Params[0]->Type != TYPE_LONG) { LogTemplateError( Target, "Longvector", ERR_NAME, TP, "needs a numerical Parameter!"); } else { LogTemplateError( Target, "LongVector", ERR_PARM1, TP, "doesn't have %ld Parameters, its just the size of %ld!", TP->Tokens->Params[0]->lvalue, LongVector[0]); } } } void dbg_print_longvector(long *LongVector) { StrBuf *Buf = NewStrBufPlain(HKEY("Longvector: [")); int nItems = LongVector[0]; int i; for (i = 0; i < nItems; i++) { if (i + 1 < nItems) StrBufAppendPrintf(Buf, "%d: %ld | ", i, LongVector[i]); else StrBufAppendPrintf(Buf, "%d: %ld]\n", i, LongVector[i]); } syslog(LOG_DEBUG, "%s", ChrPtr(Buf)); FreeStrBuf(&Buf); } int ConditionalLongVector(StrBuf *Target, WCTemplputParams *TP) { long *LongVector = (long*) CTX(CTX_LONGVECTOR); if ((TP->Tokens->Params[2]->Type == TYPE_LONG) && (TP->Tokens->Params[2]->lvalue <= LongVector[0])&& (TP->Tokens->Params[3]->Type == TYPE_LONG) && (TP->Tokens->Params[3]->lvalue <= LongVector[0])) { return LongVector[TP->Tokens->Params[2]->lvalue] == LongVector[TP->Tokens->Params[3]->lvalue]; } else { if ((TP->Tokens->Params[2]->Type == TYPE_LONG) || (TP->Tokens->Params[2]->Type == TYPE_LONG)) { LogTemplateError( Target, "ConditionalLongvector", ERR_PARM1, TP, "needs two long Parameter!"); } else { LogTemplateError( Target, "Longvector", ERR_PARM1, TP, "doesn't have %ld / %ld Parameters, its just the size of %ld!", TP->Tokens->Params[2]->lvalue, TP->Tokens->Params[3]->lvalue, LongVector[0]); } } return 0; } void tmplput_CURRENT_FILE(StrBuf *Target, WCTemplputParams *TP) { StrBufAppendTemplate(Target, TP, TP->Tokens->FileName, 0); } void InitModule_SUBST (void) { RegisterCTX(CTX_TAB); RegisterCTX(CTX_ITERATE); memset(&NoCtx, 0, sizeof(WCTemplputParams)); RegisterNamespace("--", 0, 2, tmplput_Comment, NULL, CTX_NONE); RegisterNamespace("SORT:ICON", 1, 2, tmplput_SORT_ICON, NULL, CTX_NONE); RegisterNamespace("SORT:ORDER", 1, 2, tmplput_SORT_ORDER, NULL, CTX_NONE); RegisterNamespace("SORT:NEXT", 1, 2, tmplput_SORT_NEXT, NULL, CTX_NONE); RegisterNamespace("CONTEXTSTR", 0, 1, tmplput_ContextString, NULL, CTX_STRBUF); RegisterNamespace("CONTEXTSTRARR", 1, 2, tmplput_ContextStringArray, NULL, CTX_STRBUFARR); RegisterNamespace("ITERATE", 2, 100, tmpl_iterate_subtmpl, preeval_iterate, CTX_NONE); RegisterNamespace("DOBOXED", 1, 2, tmpl_do_boxed, NULL, CTX_NONE); RegisterNamespace("DOTABBED", 2, 100, tmpl_do_tabbed, preeval_do_tabbed, CTX_NONE); RegisterNamespace("TAB:N", 0, 0, tmplput_TAB_N, NULL, CTX_TAB); RegisterNamespace("TAB:SUBJECT", 0, 1, tmplput_TAB_TITLE, NULL, CTX_TAB); RegisterNamespace("LONGVECTOR", 1, 1, tmplput_long_vector, NULL, CTX_LONGVECTOR); RegisterConditional("COND:CONTEXTSTR", 3, ConditionalContextStr, CTX_STRBUF); RegisterConditional("COND:CONTEXTSTRARR", 4, ConditionalContextStrinArray, CTX_STRBUFARR); RegisterConditional("COND:LONGVECTOR", 4, ConditionalLongVector, CTX_LONGVECTOR); RegisterConditional("COND:ITERATE:ISGROUPCHANGE", 2, conditional_ITERATE_ISGROUPCHANGE, CTX_ITERATE); RegisterConditional("COND:ITERATE:LASTN", 2, conditional_ITERATE_LASTN, CTX_ITERATE); RegisterConditional("COND:ITERATE:FIRSTN", 2, conditional_ITERATE_FIRSTN, CTX_ITERATE); RegisterConditional("COND:ITERATE:ISMOD", 3, conditional_ITERATE_ISMOD, CTX_ITERATE); RegisterNamespace("ITERATE:ODDEVEN", 0, 0, tmplput_ITERATE_ODDEVEN, NULL, CTX_ITERATE); RegisterNamespace("ITERATE:KEY", 0, 0, tmplput_ITERATE_KEY, NULL, CTX_ITERATE); RegisterNamespace("ITERATE:N", 0, 0, tmplput_ITERATE_N, NULL, CTX_ITERATE); RegisterNamespace("ITERATE:N:DIV", 1, 1, tmplput_ITERATE_N_DIV, NULL, CTX_ITERATE); RegisterNamespace("CURRENTFILE", 0, 1, tmplput_CURRENT_FILE, NULL, CTX_NONE); RegisterNamespace("DEF:STR", 1, 1, tmplput_DefStr, NULL, CTX_NONE); RegisterNamespace("DEF:VAL", 1, 1, tmplput_DefVal, NULL, CTX_NONE); } void ServerStartModule_SUBST (void) { textPlainType = NewStrBufPlain(HKEY("text/plain")); LocalTemplateCache = NewHash(1, NULL); TemplateCache = NewHash(1, NULL); GlobalNS = NewHash(1, NULL); Iterators = NewHash(1, NULL); Conditionals = NewHash(1, NULL); SortHash = NewHash(1, NULL); Defines = NewHash(1, NULL); CtxList = NewHash(1, NULL); PutContextType(HKEY("CTX_NONE"), 0); RegisterCTX(CTX_STRBUF); RegisterCTX(CTX_STRBUFARR); RegisterCTX(CTX_LONGVECTOR); } void FinalizeModule_SUBST (void) { } void ServerShutdownModule_SUBST (void) { FreeStrBuf(&textPlainType); DeleteHash(&TemplateCache); DeleteHash(&LocalTemplateCache); DeleteHash(&GlobalNS); DeleteHash(&Iterators); DeleteHash(&Conditionals); DeleteHash(&SortHash); DeleteHash(&Defines); DeleteHash(&CtxList); } void SessionNewModule_SUBST (wcsession *sess) { } void SessionAttachModule_SUBST (wcsession *sess) { } void SessionDetachModule_SUBST (wcsession *sess) { FreeStrBuf(&sess->WFBuf); } void SessionDestroyModule_SUBST (wcsession *sess) { } webcit-dfsg.orig/roomviews.c0000644000175000017500000001677713223341037016217 0ustar michaelmichael/* * Lots of different room-related operations. */ #include "webcit.h" #include "webserver.h" char *viewdefs[VIEW_MAX]; /* * This table defines which views may be selected as the * default view for a room at the time of its creation. */ int allowed_default_views[VIEW_MAX] = { 1, /* VIEW_BBS Bulletin board */ 1, /* VIEW_MAILBOX Mailbox summary */ 1, /* VIEW_ADDRESSBOOK Address book */ 1, /* VIEW_CALENDAR Calendar */ 1, /* VIEW_TASKS Tasks */ 1, /* VIEW_NOTES Notes */ 1, /* VIEW_WIKI Wiki */ 0, /* VIEW_CALBRIEF Brief Calendar */ 0, /* VIEW_JOURNAL Journal */ 0, /* VIEW_DRAFTS Drafts */ 1, /* VIEW_BLOG Blog */ 0, /* VIEW_QUEUE Mail Queue */ 1 /* VIEW_WIKIMD MarkDown Wiki */ }; /* * Given the default view for a room, this table defines * which alternate views may be selected by the user. */ ROOM_VIEWS exchangeable_views[VIEW_MAX][VIEW_MAX] = { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* bulletin board */ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* mailbox summary */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* address book */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, /* calendar */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, /* tasks */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, /* notes */ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, /* wiki */ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 }, /* brief calendar */ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, /* journal */ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 }, /* drafts */ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* blog */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } /* Markdown wiki */ }; /* * Initialize the viewdefs with localized strings */ void initialize_viewdefs(void) { viewdefs[VIEW_BBS] = _("Bulletin Board"); viewdefs[VIEW_MAILBOX] = _("Mail Folder"); viewdefs[VIEW_ADDRESSBOOK] = _("Address Book"); viewdefs[VIEW_CALENDAR] = _("Calendar"); viewdefs[VIEW_TASKS] = _("Task List"); viewdefs[VIEW_NOTES] = _("Notes List"); viewdefs[VIEW_WIKI] = _("Wiki"); viewdefs[VIEW_CALBRIEF] = _("Calendar List"); viewdefs[VIEW_JOURNAL] = _("Journal"); viewdefs[VIEW_DRAFTS] = _("Drafts"); viewdefs[VIEW_BLOG] = _("Blog"); viewdefs[VIEW_WIKIMD] = _("Markdown Wiki"); } void tmplput_ROOM_COLLECTIONTYPE(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); switch(Folder->view) { case VIEW_CALENDAR: StrBufAppendBufPlain(Target, HKEY("vevent"), 0); break; case VIEW_TASKS: StrBufAppendBufPlain(Target, HKEY("vtodo"), 0); break; case VIEW_ADDRESSBOOK: StrBufAppendBufPlain(Target, HKEY("vcard"), 0); break; case VIEW_NOTES: StrBufAppendBufPlain(Target, HKEY("vnotes"), 0); break; case VIEW_JOURNAL: StrBufAppendBufPlain(Target, HKEY("vjournal"), 0); break; case VIEW_WIKI: StrBufAppendBufPlain(Target, HKEY("wiki"), 0); break; case VIEW_WIKIMD: StrBufAppendBufPlain(Target, HKEY("x-markdown"), 0); break; } } int ConditionalRoomHasGroupdavContent(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); syslog(LOG_DEBUG, "-> %s: %d\n", ChrPtr(Folder->name), Folder->view); return ((Folder->view == VIEW_CALENDAR) || (Folder->view == VIEW_TASKS) || (Folder->view == VIEW_ADDRESSBOOK) || (Folder->view == VIEW_NOTES) || (Folder->view == VIEW_JOURNAL) ); } int ConditionalIsRoomtype(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if ((WCC == NULL) || (TP->Tokens->nParameters < 3)) { return ((WCC->CurRoom.view < VIEW_BBS) || (WCC->CurRoom.view > VIEW_MAX)); } return WCC->CurRoom.view == GetTemplateTokenNumber(Target, TP, 2, VIEW_BBS); } void tmplput_CurrentRoomViewString(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBuf *Buf; if ((WCC == NULL) || (WCC->CurRoom.defview >= VIEW_MAX) || (WCC->CurRoom.defview < VIEW_BBS)) { LogTemplateError(Target, "Token", ERR_PARM2, TP, "Roomview [%ld] not valid\n", (WCC != NULL)? WCC->CurRoom.defview : -1); return; } Buf = NewStrBufPlain(_(viewdefs[WCC->CurRoom.defview]), -1); StrBufAppendTemplate(Target, TP, Buf, 0); FreeStrBuf(&Buf); } void tmplput_RoomViewString(StrBuf *Target, WCTemplputParams *TP) { long CheckThis; StrBuf *Buf; CheckThis = GetTemplateTokenNumber(Target, TP, 0, 0); if ((CheckThis >= VIEW_MAX) || (CheckThis < VIEW_BBS)) { LogTemplateError(Target, "Token", ERR_PARM2, TP, "Roomview [%ld] not valid\n", CheckThis); return; } Buf = NewStrBufPlain(_(viewdefs[CheckThis]), -1); StrBufAppendTemplate(Target, TP, Buf, 0); FreeStrBuf(&Buf); } int ConditionalIsAllowedDefaultView(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; long CheckThis; if (WCC == NULL) return 0; CheckThis = GetTemplateTokenNumber(Target, TP, 2, 0); if ((CheckThis >= VIEW_MAX) || (CheckThis < VIEW_BBS)) { LogTemplateError(Target, "Conditional", ERR_PARM2, TP, "Roomview [%ld] not valid\n", CheckThis); return 0; } return allowed_default_views[CheckThis] != 0; } int ConditionalThisRoomDefView(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; long CheckThis; if (WCC == NULL) return 0; CheckThis = GetTemplateTokenNumber(Target, TP, 2, 0); return CheckThis == WCC->CurRoom.defview; } int ConditionalThisRoomCurrView(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; long CheckThis; if (WCC == NULL) return 0; CheckThis = GetTemplateTokenNumber(Target, TP, 2, 0); return CheckThis == WCC->CurRoom.view; } int ConditionalThisRoomHaveView(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; long CheckThis; if (WCC == NULL) return 0; CheckThis = GetTemplateTokenNumber(Target, TP, 2, 0); if ((CheckThis >= VIEW_MAX) || (CheckThis < VIEW_BBS)) { LogTemplateError(Target, "Conditional", ERR_PARM2, TP, "Roomview [%ld] not valid\n", CheckThis); return 0; } return exchangeable_views [WCC->CurRoom.defview][CheckThis] ; } void tmplput_ROOM_VIEW(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%d", Folder->view); } void tmplput_ROOM_DEFVIEW(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)CTX(CTX_ROOMS); StrBufAppendPrintf(Target, "%d", Folder->defview); } void tmplput_CurrentRoomDefView(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; StrBufAppendPrintf(Target, "%d", WCC->CurRoom.defview); } void InitModule_ROOMVIEWS (void) { /* we duplicate this, just to be shure its already done. */ RegisterCTX(CTX_ROOMS); RegisterCTX(CTX_FLOORS); initialize_viewdefs(); RegisterNamespace("THISROOM:VIEW_STRING", 0, 1, tmplput_CurrentRoomViewString, NULL, CTX_NONE); RegisterNamespace("ROOM:VIEW_STRING", 1, 2, tmplput_RoomViewString, NULL, CTX_NONE); RegisterConditional("COND:ALLOWED_DEFAULT_VIEW", 0, ConditionalIsAllowedDefaultView, CTX_NONE); RegisterConditional("COND:THISROOM:DEFAULT_VIEW", 0, ConditionalThisRoomDefView, CTX_NONE); RegisterNamespace("THISROOM:DEFAULT_VIEW", 0, 0, tmplput_CurrentRoomDefView, NULL, CTX_NONE); RegisterNamespace("ROOM:INFO:DEFVIEW", 0, 1, tmplput_ROOM_DEFVIEW, NULL, CTX_ROOMS); RegisterConditional("COND:ROOM:TYPE_IS", 0, ConditionalIsRoomtype, CTX_NONE); RegisterConditional("COND:THISROOM:HAVE_VIEW", 0, ConditionalThisRoomHaveView, CTX_NONE); RegisterConditional("COND:ROOM:DAV_CONTENT", 0, ConditionalRoomHasGroupdavContent, CTX_ROOMS); RegisterConditional("COND:THISROOM:CURR_VIEW", 0, ConditionalThisRoomCurrView, CTX_NONE); RegisterNamespace("ROOM:INFO:VIEW", 0, 1, tmplput_ROOM_VIEW, NULL, CTX_ROOMS); RegisterNamespace("ROOM:INFO:COLLECTIONTYPE", 0, 1, tmplput_ROOM_COLLECTIONTYPE, NULL, CTX_ROOMS); } webcit-dfsg.orig/inetconf.c0000644000175000017500000001341513223341037015754 0ustar michaelmichael/* * Functions which handle Internet domain configuration etc. */ #include "webcit.h" #include "webserver.h" typedef enum _e_cfg { ic_localhost, ic_directory, ic_smarthost, ic_fallback, ic_rbl, ic_spamass, ic_masq, ic_clamav, ic_notify, ic_max } ECfg; /* These are server config keywords; do not localize! */ ConstStr CfgNames[] = { { HKEY("localhost") }, { HKEY("directory") }, { HKEY("smarthost") }, { HKEY("fallbackhost") }, { HKEY("rbl") }, { HKEY("spamassassin") }, { HKEY("masqdomain") }, { HKEY("clamav") }, { HKEY("notify") } }; /* * display the inet config dialog */ void load_inetconf(void) { wcsession *WCC = WC; StrBuf *Buf, *CfgToken, *Value; void *vHash; HashList *Hash; char nnn[64]; int i, len, nUsed; WCC->InetCfg = NewHash(1, NULL); for (i = 0; i < (sizeof(CfgNames) / sizeof(ConstStr)); i++) { Hash = NewHash(1, NULL); Put(WCC->InetCfg, CKEY(CfgNames[i]), Hash, HDeleteHash); } serv_printf("CONF GETSYS|application/x-citadel-internet-config"); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { CfgToken = NewStrBuf(); while ((len = StrBuf_ServGetln(Buf), ((len >= 0) && ((len != 3) || strcmp(ChrPtr(Buf), "000"))))) { Value = NewStrBuf(); StrBufExtract_token(CfgToken, Buf, 1, '|'); // VILE SLEAZY HACK: change obsolete "directory" domains to "localhost" domains if (!strcasecmp(ChrPtr(CfgToken), "directory")) { FreeStrBuf(&CfgToken); CfgToken = NewStrBufPlain(HKEY("localhost")); } StrBufExtract_token(Value, Buf, 0, '|'); GetHash(WCC->InetCfg, ChrPtr(CfgToken), StrLength(CfgToken), &vHash); Hash = (HashList*) vHash; if (Hash == NULL) { syslog(LOG_WARNING, "ERROR Loading inet config line: [%s]", ChrPtr(Buf)); FreeStrBuf(&Value); continue; } nUsed = GetCount(Hash); nUsed = snprintf(nnn, sizeof(nnn), "%d", nUsed+1); Put(Hash, nnn, nUsed, Value, HFreeStrBuf); } FreeStrBuf(&CfgToken); } FreeStrBuf(&Buf); } /* * save changes to the inet config */ void new_save_inetconf(void) { wcsession *WCC = WC; HashList *Hash; StrBuf *Str; StrBuf *Buf; const StrBuf *eType, *eNum, *eName; char nnn[64]; void *vHash, *vStr; int i, nUsed; load_inetconf(); eType = sbstr("etype"); GetHash(WCC->InetCfg, ChrPtr(eType), StrLength(eType), &vHash); Hash = (HashList*) vHash; if (Hash == NULL) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } if (strcasecmp(bstr("oper"), "delete") == 0) { eNum = sbstr("ename"); if (!GetHash(Hash, ChrPtr(eNum), StrLength(eNum), &vStr) || (vStr == NULL)) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } Str = (StrBuf*)vStr; AppendImportantMessage(SKEY(Str)); AppendImportantMessage(_(" has been deleted."), -1); FlushStrBuf(Str); } else if (!strcasecmp(bstr("oper"), "add")) { StrBuf *name; eName = sbstr("ename"); if (eName == NULL) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } nUsed = GetCount(Hash); nUsed = snprintf(nnn, sizeof(nnn), "%d", nUsed+1); name = NewStrBufDup(eName); StrBufTrim(name); Put(Hash, nnn, nUsed, name, HFreeStrBuf); AppendImportantMessage(SKEY(eName)); AppendImportantMessage( /* added status message*/ _(" added."), -1); } Buf = NewStrBuf(); serv_printf("CONF PUTSYS|application/x-citadel-internet-config"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 4) { for (i = 0; i < (sizeof(CfgNames) / sizeof(ConstStr)); i++) { HashPos *where; const char *Key; long KeyLen; GetHash(WCC->InetCfg, CKEY(CfgNames[i]), &vHash); Hash = (HashList*) vHash; if (Hash == NULL) { AppendImportantMessage(_("Invalid Parameter"), -1); url_do_template(); return; } if (GetCount(Hash) > 0) { where = GetNewHashPos(Hash, 0); while (GetNextHashPos(Hash, where, &KeyLen, &Key, &vStr)) { Str = (StrBuf*) vStr; if ((Str!= NULL) && (StrLength(Str) > 0)) serv_printf("%s|%s", ChrPtr(Str), CfgNames[i].Key); } DeleteHashPos(&where); } } serv_puts("000"); DeleteHash(&WCC->InetCfg); } FreeStrBuf(&Buf); url_do_template(); } void DeleteInetConfHash(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if (WCC->InetCfg != NULL) DeleteHash(&WCC->InetCfg); } HashList *GetInetConfHash(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; void *vHash; if (WCC->InetCfg == NULL) load_inetconf(); GetHash(WCC->InetCfg, TKEY(5), &vHash); PutBstr(HKEY("__SERVCFG:INET:TYPE"), NewStrBufPlain(TKEY(5))); return vHash; } HashList *GetValidDomainNames(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Line; HashList *ValidDomainNames = NULL; long State; int gvdnlevel = 0; serv_printf("GVDN %d", gvdnlevel); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, &State) == 1) { int Done = 0; int n = 0; ValidDomainNames = NewHash(1, NULL); while(!Done && (StrBuf_ServGetln(Line) >= 0)) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) { Done = 1; } else { Put(ValidDomainNames, IKEY(n), NewStrBufDup(Line), HFreeStrBuf); n++; /* #0 is the type... */ } } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); FreeStrBuf(&Line); return ValidDomainNames; } void InitModule_INETCONF (void) { WebcitAddUrlHandler(HKEY("save_inetconf"), "", 0, new_save_inetconf, 0); RegisterIterator("SERVCFG:INET", 1, NULL, GetInetConfHash, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); RegisterNamespace("SERVCFG:FLUSHINETCFG",0, 0, DeleteInetConfHash, NULL, CTX_NONE); RegisterIterator("ITERATE:VALID:DOMAINNAMES", 1, NULL, GetValidDomainNames, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG); } webcit-dfsg.orig/feed_generator.c0000644000175000017500000001641113223341037017117 0ustar michaelmichael/* * RSS feed generator (could be adapted in the future to feed both RSS and Atom) * * Copyright (c) 2010-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" /* * RSS feed generator -- do one message */ void feed_rss_one_message(long msgnum) { int in_body = 0; int in_messagetext = 0; int found_title = 0; int found_guid = 0; char pubdate[128]; StrBuf *messagetext = NULL; int is_top_level_post = 1; const char *BufPtr = NULL; StrBuf *Line = NewStrBufPlain(NULL, 1024); char buf[1024]; int permalink_hash = 0; /* Phase 1: read the message into memory */ serv_printf("MSG4 %ld", msgnum); serv_getln(buf, sizeof buf); if (buf[0] != '1') return; StrBuf *ServerResponse = NewStrBuf(); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { StrBufAppendPrintf(ServerResponse, "%s\n", buf); } /* Phase 2: help SkyNet become self-aware */ BufPtr = NULL; while (StrBufSipLine(Line, ServerResponse, &BufPtr), ((BufPtr!=StrBufNOTNULL)&&(BufPtr!=NULL)) ) { if (in_body) { /* do nothing */ } else if (StrLength(Line) == 0) { ++in_body; } else if ((StrLength(Line) > 5) && (!strncasecmp(ChrPtr(Line), "wefw=", 5))) { is_top_level_post = 0; /* presence of references means it's a reply/comment */ } else if ((StrLength(Line) > 5) && (!strncasecmp(ChrPtr(Line), "msgn=", 5))) { StrBufCutLeft(Line, 5); permalink_hash = ThreadIdHash(Line); } } /* * Phase 3: output the message in RSS form * (suppress replies [comments] if this is a blog room) */ if ( (WC->CurRoom.view != VIEW_BLOG) || (is_top_level_post == 1) ) { wc_printf(""); wc_printf("%s/readfwd?go=", ChrPtr(site_prefix)); urlescputs(ChrPtr(WC->CurRoom.name)); if ((WC->CurRoom.view == VIEW_BLOG) && (permalink_hash != 0)) { wc_printf("?p=%d", permalink_hash); } else { wc_printf("?start_reading_at=%ld", msgnum); } wc_printf(""); BufPtr = NULL; in_body = 0; in_messagetext = 0; while (StrBufSipLine(Line, ServerResponse, &BufPtr), ((BufPtr!=StrBufNOTNULL)&&(BufPtr!=NULL)) ) { safestrncpy(buf, ChrPtr(Line), sizeof buf); /* XML parsers can be picky; strip out nonprintable header characters */ if ((strlen(buf)>=6) && (buf[4]=='=')) { char *p = &buf[5]; while (*p) { if (!isprint(*p)) { *p = 0; } ++p; } } /* Now output fields */ if (in_body) { if (in_messagetext) { StrBufAppendBufPlain(messagetext, buf, -1, 0); StrBufAppendBufPlain(messagetext, HKEY("\r\n"), 0); } else if (IsEmptyStr(buf)) { in_messagetext = 1; } } else if (!strncasecmp(buf, "subj=", 5)) { wc_printf(""); escputs(&buf[5]); wc_printf(""); ++found_title; } else if (!strncasecmp(buf, "exti=", 5)) { wc_printf(""); escputs(&buf[5]); wc_printf(""); ++found_guid; } else if (!strncasecmp(buf, "time=", 5)) { http_datestring(pubdate, sizeof pubdate, atol(&buf[5])); wc_printf("%s", pubdate); } else if (!strncasecmp(buf, "text", 4)) { if (!found_title) { wc_printf("Message #%ld", msgnum); } if (!found_guid) { wc_printf("%ld@%s", msgnum, ChrPtr(WC->serv_info->serv_humannode) ); } wc_printf(""); in_body = 1; messagetext = NewStrBuf(); } } if (in_body) { cdataout((char*)ChrPtr(messagetext)); FreeStrBuf(&messagetext); wc_printf(""); } wc_printf(""); } FreeStrBuf(&Line); FreeStrBuf(&ServerResponse); return; } /* * RSS feed generator -- go through the message list */ void feed_rss_do_messages(void) { wcsession *WCC = WC; int num_msgs = 0; int i; SharedMessageStatus Stat; message_summary *Msg = NULL; memset(&Stat, 0, sizeof Stat); Stat.maxload = INT_MAX; Stat.lowest_found = (-1); Stat.highest_found = (-1); num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0); if (num_msgs < 1) return; i = num_msgs; /* convention is to feed newest-to-oldest */ while (i > 0) { Msg = GetMessagePtrAt(i-1, WCC->summ); if (Msg != NULL) { feed_rss_one_message(Msg->msgnum); } --i; } } /* * Output the room info file of the current room as a for the channel */ void feed_rss_do_room_info_as_description(void) { wc_printf(""); escputs(ChrPtr(WC->CurRoom.name)); /* FIXME use the output of RINF instead */ wc_printf("\r\n"); } /* * Entry point for RSS feed generator */ void feed_rss(void) { char buf[1024]; output_headers(0, 0, 0, 0, 1, 0); hprintf("Content-type: text/xml; charset=utf-8\r\n"); hprintf( "Server: %s / %s\r\n" "Connection: close\r\n" , PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software) ); begin_burst(); wc_printf("" "" "" ); wc_printf(""); escputs(ChrPtr(WC->CurRoom.name)); wc_printf(""); wc_printf(""); escputs(ChrPtr(site_prefix)); wc_printf("/"); serv_puts("RINF"); serv_getln(buf, sizeof buf); if (buf[0] == '1') { wc_printf("\r\n"); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { escputs(buf); wc_printf("\r\n"); } wc_printf(""); } wc_printf(""); escputs(ChrPtr(WC->CurRoom.name)); wc_printf(""); escputs(ChrPtr(site_prefix)); wc_printf("/roompic?room="); urlescputs(ChrPtr(WC->CurRoom.name)); wc_printf(""); escputs(ChrPtr(site_prefix)); wc_printf("/\r\n"); feed_rss_do_room_info_as_description(); feed_rss_do_messages(); wc_printf("" "" "\r\n\r\n" ); wDumpContent(0); } /* * Offer the RSS feed meta tag for this room */ void tmplput_rssmeta(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; char feed_link[1024]; strcpy(feed_link, "/feed_rss?go="); urlesc(&feed_link[20], sizeof(feed_link) - 20, (char *)ChrPtr(WCC->CurRoom.name) ); StrBufAppendPrintf(Target, "", feed_link ); } /* * Offer the RSS feed button for this room */ void tmplput_rssbutton(StrBuf *Target, WCTemplputParams *TP) { StrBuf *FeedLink = NULL; FeedLink = NewStrBufPlain(HKEY("/feed_rss?go=")); StrBufUrlescAppend(FeedLink, WC->CurRoom.name, NULL); StrBufAppendPrintf(Target, "\"RSS\""); StrBufAppendPrintf(Target, ""); FreeStrBuf(&FeedLink); } void InitModule_RSS (void) { WebcitAddUrlHandler(HKEY("feed_rss"), "", 0, feed_rss, ANONYMOUS|COOKIEUNNEEDED); RegisterNamespace("THISROOM:FEED:RSS", 0, 0, tmplput_rssbutton, NULL, CTX_NONE); RegisterNamespace("THISROOM:FEED:RSSMETA", 0, 0, tmplput_rssmeta, NULL, CTX_NONE); } webcit-dfsg.orig/setup.c0000644000175000017500000004135713223341037015315 0ustar michaelmichael/* * WebCit setup utility * * (This is basically just an install wizard. It's not required.) */ #include "sysdep.h" #include "webcit.h" #include "webserver.h" #define UI_TEXT 0 /* Default setup type -- text only */ #define UI_DIALOG 2 /* Use the 'dialog' program */ #define UI_SILENT 3 /* Silent running, for use in scripts */ int setup_type; char setup_directory[SIZ]; int using_web_installer = 0; char suggested_url[SIZ]; /* some copies... int syslog(int loglevel, const char *format, ...){return 0;} */ void wc_printf(const char *format,...){} void RegisterNS(const char *NSName, long len, int nMinArgs, int nMaxArgs, WCHandlerFunc HandlerFunc, WCPreevalFunc PreEvalFunc, int ContextRequired){} void StrBufAppendTemplateStr(StrBuf *Target, WCTemplputParams *TP, const char *Source, int FormatTypeIndex){} void RegisterHeaderHandler(const char *Name, long Len, Header_Evaluator F){} pthread_key_t MyConKey; #ifdef ENABLE_NLS #ifdef HAVE_USELOCALE int localeoffset = 1; #else int localeoffset = 0; #endif #endif /* * Delete an entry from /etc/inittab */ void delete_init_entry(char *which_entry) { char *inittab = NULL; FILE *fp; char buf[SIZ]; char entry[SIZ]; char levels[SIZ]; char state[SIZ]; char prog[SIZ]; inittab = strdup(""); if (inittab == NULL) return; fp = fopen("/etc/inittab", "r"); if (fp == NULL) return; while(fgets(buf, sizeof buf, fp) != NULL) { if (num_tokens(buf, ':') == 4) { extract_token(entry, buf, 0, ':', sizeof entry); extract_token(levels, buf, 1, ':', sizeof levels); extract_token(state, buf, 2, ':', sizeof state); extract_token(prog, buf, 3, ':', sizeof prog); /* includes 0x0a LF */ if (!strcmp(entry, which_entry)) { strcpy(state, "off"); /* disable it */ } } inittab = realloc(inittab, strlen(inittab) + strlen(buf) + 2); if (inittab == NULL) { fclose(fp); return; } strcat(inittab, buf); } fclose(fp); fp = fopen("/etc/inittab", "w"); if (fp != NULL) { fwrite(inittab, strlen(inittab), 1, fp); fclose(fp); kill(1, SIGHUP); /* Tell init to re-read /etc/inittab */ } free(inittab); } /* * Remove any /etc/inittab entries for webcit, because we don't * start it that way anymore. */ void delete_the_old_way(void) { FILE *infp; char buf[1024]; char looking_for[1024]; int have_entry = 0; char entry[1024]; char prog[1024]; char init_entry[1024]; strcpy(init_entry, ""); /* Determine the fully qualified path name of webcit */ snprintf(looking_for, sizeof looking_for, "%s/webcit ", setup_directory); /* Pound through /etc/inittab line by line. Set have_entry to 1 if * an entry is found which we believe starts webcit. */ infp = fopen("/etc/inittab", "r"); if (infp == NULL) { return; } else { while (fgets(buf, sizeof buf, infp) != NULL) { buf[strlen(buf) - 1] = 0; extract_token(entry, buf, 0, ':', sizeof entry); extract_token(prog, buf, 3, ':', sizeof prog); if (!strncasecmp(prog, looking_for, strlen(looking_for))) { ++have_entry; strcpy(init_entry, entry); } } fclose(infp); } /* Bail out if there's nothing to do. */ if (!have_entry) return; delete_init_entry(init_entry); } void cleanup(int exitcode) { exit(exitcode); } void title(char *text) { if (setup_type == UI_TEXT) { printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<%s>\n", text); } } int yesno(char *question, int default_value) { int i = 0; int answer = 0; char buf[SIZ] = ""; switch (setup_type) { case UI_TEXT: do { printf("%s\nYes/No [%s] --> ", question, ( default_value ? "Yes" : "No" ) ); if (fgets(buf, sizeof buf, stdin)) { answer = tolower(buf[0]); if ((buf[0]==0) || (buf[0]==13) || (buf[0]==10)) answer = default_value; else if (answer == 'y') answer = 1; else if (answer == 'n') answer = 0; } } while ((answer < 0) || (answer > 1)); break; case UI_DIALOG: sprintf(buf, "exec %s %s --yesno '%s' 15 75", getenv("CTDL_DIALOG"), ( default_value ? "" : "--defaultno" ), question); i = system(buf); if (i == 0) { answer = 1; } else { answer = 0; } break; } return (answer); } void set_value(char *prompt, char str[]) { char buf[SIZ] = ""; char dialog_result[PATH_MAX]; char setupmsg[SIZ]; FILE *fp; strcpy(setupmsg, ""); switch (setup_type) { case UI_TEXT: title("WebCit setup"); printf("\n%s\n", prompt); printf("This is currently set to:\n%s\n", str); printf("Enter new value or press return to leave unchanged:\n"); if (fgets(buf, sizeof buf, stdin)) { buf[strlen(buf) - 1] = 0; } if (strlen(buf) != 0) strcpy(str, buf); break; case UI_DIALOG: CtdlMakeTempFileName(dialog_result, sizeof dialog_result); sprintf(buf, "exec %s --inputbox '%s' 19 72 '%s' 2>%s", getenv("CTDL_DIALOG"), prompt, str, dialog_result); system(buf); fp = fopen(dialog_result, "r"); if (fp != NULL) { if (fgets(str, sizeof buf, fp)){ if (str[strlen(str)-1] == 10) { str[strlen(str)-1] = 0; } } fclose(fp); unlink(dialog_result); } break; } } extern const char *AvailLang[]; int GetLocalePrefs(void) { int nLocales; StrBuf *Buf; char buf[SIZ]; char dialog_result[PATH_MAX]; FILE *fp; int i = 0; int offs = 0; nLocales = 0; while (!IsEmptyStr(AvailLang[nLocales])) nLocales++; Buf = NewStrBuf(); StrBufAppendBufPlain(Buf, HKEY("Select the locale webcit should use : \n"), 0); #ifdef HAVE_USELOCALE StrBufAppendBufPlain(Buf, HKEY(" 0 Let the user select it at the login prompt (default)\n"), 0); offs ++; #endif for (i = 0; i < nLocales; i++) { StrBufAppendPrintf(Buf, " %ld: %s\n", i + offs, AvailLang[i]); } switch (setup_type) { case UI_TEXT: title("WebCit setup"); printf("\n%s\n", ChrPtr(Buf)); printf("This is currently set to:\n%ld\n", 0L); printf("Enter new value or press return to leave unchanged:\n"); if (fgets(buf, sizeof buf, stdin)) return atoi(buf); break; case UI_DIALOG: CtdlMakeTempFileName(dialog_result, sizeof dialog_result); sprintf(buf, "exec %s --inputbox '%s' 19 72 '%ld' 2>%s", getenv("CTDL_DIALOG"), ChrPtr(Buf), 0L, dialog_result); system(buf); fp = fopen(dialog_result, "r"); if (fp != NULL) { char *str = &buf[0]; if (fgets(str, sizeof buf, fp)){ if (str[strlen(str)-1] == 10) { str[strlen(str)-1] = 0; } } fclose(fp); unlink(dialog_result); return atoi(buf); } break; } return 0; } void important_message(char *title, char *msgtext) { char buf[SIZ]; switch (setup_type) { case UI_TEXT: printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf(" %s \n\n%s\n\n", title, msgtext); printf("Press return to continue..."); if (fgets(buf, sizeof buf, stdin)); break; case UI_DIALOG: sprintf(buf, "exec %s --msgbox '%s' 19 72", getenv("CTDL_DIALOG"), msgtext); system(buf); break; } } void display_error(char *error_message) { important_message("Error", error_message); } void progress(char *text, long int curr, long int cmax) { static long dots_printed = 0L; long a = 0; char buf[SIZ]; static FILE *fp = NULL; switch (setup_type) { case UI_TEXT: if (curr == 0) { printf("%s\n", text); printf(".........................."); printf(".........................."); printf("..........................\r"); fflush(stdout); dots_printed = 0; } else if (curr == cmax) { printf("\r%79s\n", ""); } else { a = (curr * 100) / cmax; a = a * 78; a = a / 100; while (dots_printed < a) { printf("*"); ++dots_printed; fflush(stdout); } } break; case UI_DIALOG: if (curr == 0) { sprintf(buf, "exec %s --gauge '%s' 7 72 0", getenv("CTDL_DIALOG"), text); fp = popen(buf, "w"); if (fp != NULL) { fprintf(fp, "0\n"); fflush(fp); } } else if (curr == cmax) { if (fp != NULL) { fprintf(fp, "100\n"); pclose(fp); fp = NULL; } } else { a = (curr * 100) / cmax; if (fp != NULL) { fprintf(fp, "%ld\n", a); fflush(fp); } } break; } } /* * install_init_scripts() -- Create and deploy SysV init scripts. * */ void install_init_scripts(void) { #ifdef ENABLE_NLS int localechoice; #endif char question[1024]; char buf[256]; char http_port[128]; #ifdef HAVE_OPENSSL char https_port[128]; #endif char hostname[128]; char portname[128]; char command[SIZ]; struct utsname my_utsname; struct stat etcinitd; FILE *fp; char *initfile = "/etc/init.d/webcit"; fp = fopen(initfile, "r"); if (fp != NULL) { if (yesno("WebCit already appears to be configured to start at boot.\n" "Would you like to keep your boot configuration as is?\n", 1) == 1) { return; } fclose(fp); } /* Otherwise, prompt the user to create an entry. */ snprintf(question, sizeof question, "Would you like to automatically start WebCit at boot?" ); if (yesno(question, 1) == 0) return; #ifdef ENABLE_NLS localechoice = GetLocalePrefs(); #endif /* Defaults */ sprintf(http_port, "2000"); #ifdef HAVE_OPENSSL sprintf(https_port, "443"); #endif sprintf(hostname, "uds"); sprintf(portname, "/usr/local/citadel"); /* This is a very hackish way of learning the port numbers used * in a previous install, if we are upgrading: read them out of * the existing init script. */ if ((stat("/etc/init.d/", &etcinitd) == -1) && (errno == ENOENT)) { if ((stat("/etc/rc.d/init.d/", &etcinitd) == -1) && (errno == ENOENT)) initfile = WEBCITDIR"/webcit.init"; else initfile = "/etc/rc.d/init.d/webcit"; } fp = fopen(initfile, "r"); if (fp != NULL) { while (fgets(buf, sizeof buf, fp) != NULL) { if (strlen(buf) > 0) { buf[strlen(buf)-1] = 0; /* strip trailing cr */ } if (!strncasecmp(buf, "HTTP_PORT=", 10)) { safestrncpy(http_port, &buf[10], sizeof http_port); } #ifdef HAVE_OPENSSL if (!strncasecmp(buf, "HTTPS_PORT=", 11)) { safestrncpy(https_port, &buf[11], sizeof https_port); } #endif if (!strncasecmp(buf, "CTDL_HOSTNAME=", 14)) { safestrncpy(hostname, &buf[14], sizeof hostname); } if (!strncasecmp(buf, "CTDL_PORTNAME=", 14)) { safestrncpy(portname, &buf[14], sizeof portname); } } fclose(fp); } /* Now ask for the port numbers */ snprintf(question, sizeof question, "On which port do you want WebCit to listen for HTTP " "requests?\n\nYou can use the standard port (80) if you are " "not running another\nweb server (such as Apache), otherwise " "select another port."); set_value(question, http_port); uname(&my_utsname); sprintf(suggested_url, "http://%s:%s/", my_utsname.nodename, http_port); #ifdef HAVE_OPENSSL snprintf(question, sizeof question, "On which port do you want WebCit to listen for HTTPS " "requests?\n\nYou can use the standard port (443) if you are " "not running another\nweb server (such as Apache), otherwise " "select another port."); set_value(question, https_port); #endif /* Find out where Citadel is. */ if ( (using_web_installer) && (getenv("CITADEL") != NULL) ) { strcpy(hostname, "uds"); strcpy(portname, getenv("CITADEL")); } else { snprintf(question, sizeof question, "Is the Citadel service running on the same host as WebCit?"); if (yesno(question, ((!strcasecmp(hostname, "uds")) ? 1 : 0))) { strcpy(hostname, "uds"); if (atoi(portname) != 0) strcpy(portname, "/usr/local/citadel"); set_value("In what directory is Citadel installed?", portname); } else { if (!strcasecmp(hostname, "uds")) strcpy(hostname, "127.0.0.1"); if (atoi(portname) == 0) strcpy(portname, "504"); set_value("Enter the host name or IP address of your " "Citadel server.", hostname); set_value("Enter the port number on which Citadel is " "running (usually 504)", portname); } } fp = fopen(initfile, "w"); fprintf(fp, "#!/bin/sh\n" "\n" "# uncomment this to create coredumps as described in\n" "# http://www.citadel.org/doku.php/faq:mastering_your_os:gdb#how.do.i.make.my.system.produce.core-files\n" "# ulimit -c unlimited\n" "WEBCIT_DIR=%s\n", setup_directory); fprintf(fp, "HTTP_PORT=%s\n", http_port); #ifdef HAVE_OPENSSL fprintf(fp, "HTTPS_PORT=%s\n", https_port); #endif fprintf(fp, "CTDL_HOSTNAME=%s\n", hostname); fprintf(fp, "CTDL_PORTNAME=%s\n", portname); #ifdef ENABLE_NLS if (localechoice == 0) { #ifdef HAVE_USELOCALE fprintf(fp, "unset LANG\n"); #else fprintf(fp, "export WEBCIT_LANG=c\n"); #endif } else { fprintf(fp, "export WEBCIT_LANG=%s\n", AvailLang[localechoice - localeoffset]); } #else fprintf(fp, "# your system doesn't support locales\n"); #endif fprintf(fp, "\n" "\n" "case \"$1\" in\n" "\n" "start) echo -n \"Starting WebCit... \"\n" " if $WEBCIT_DIR/webcit " "-D/var/run/webcit.pid " "-p$HTTP_PORT $CTDL_HOSTNAME $CTDL_PORTNAME\n" " then\n" " echo \"ok\"\n" " else\n" " echo \"failed\"\n" " fi\n"); #ifdef HAVE_OPENSSL fprintf(fp, " echo -n \"Starting WebCit SSL... \"\n" " if $WEBCIT_DIR/webcit " "-D/var/run/webcit-ssl.pid " "-s -p$HTTPS_PORT $CTDL_HOSTNAME $CTDL_PORTNAME\n" " then\n" " echo \"ok\"\n" " else\n" " echo \"failed\"\n" " fi\n"); #endif fprintf(fp, " ;;\n" "stop) echo -n \"Stopping WebCit... \"\n" " if kill `cat /var/run/webcit.pid 2>/dev/null` 2>/dev/null\n" " then\n" " echo \"ok\"\n" " else\n" " echo \"failed\"\n" " fi\n" " rm -f /var/run/webcit.pid 2>/dev/null\n"); #ifdef HAVE_OPENSSL fprintf(fp, " echo -n \"Stopping WebCit SSL... \"\n" " if kill `cat /var/run/webcit-ssl.pid 2>/dev/null` 2>/dev/null\n" " then\n" " echo \"ok\"\n" " else\n" " echo \"failed\"\n" " fi\n" " rm -f /var/run/webcit-ssl.pid 2>/dev/null\n"); #endif fprintf(fp, " ;;\n" "restart) $0 stop\n" " $0 start\n" " ;;\n" "*) echo \"Usage: $0 {start|stop|restart}\"\n" " exit 1\n" " ;;\n" "esac\n" ); fclose(fp); chmod(initfile, 0755); /* Set up the run levels. */ system("/bin/rm -f /etc/rc?.d/[SK]??webcit 2>/dev/null"); snprintf(command, sizeof(command), "for x in 2 3 4 5 ; do [ -d /etc/rc$x.d ] && ln -s %s /etc/rc$x.d/S84webcit ; done 2>/dev/null", initfile); system(command); snprintf(command, sizeof(command), "for x in 0 6 S; do [ -d /etc/rc$x.d ] && ln -s %s /etc/rc$x.d/K15webcit ; done 2>/dev/null", initfile); system(command); } /* * Figure out what type of user interface we're going to use */ int discover_ui(void) { /* Use "dialog" if we have it */ if (getenv("CTDL_DIALOG") != NULL) { return UI_DIALOG; } return UI_TEXT; } int main(int argc, char *argv[]) { int a; char aaa[256]; int info_only = 0; strcpy(suggested_url, "http://:/"); /* set an invalid setup type */ setup_type = (-1); /* Check to see if we're running the web installer */ if (getenv("CITADEL_INSTALLER") != NULL) { using_web_installer = 1; } /* parse command line args */ for (a = 0; a < argc; ++a) { if (!strncmp(argv[a], "-u", 2)) { strcpy(aaa, argv[a]); strcpy(aaa, &aaa[2]); setup_type = atoi(aaa); } if (!strcmp(argv[a], "-i")) { info_only = 1; } if (!strcmp(argv[a], "-q")) { setup_type = UI_SILENT; } } /* If a setup type was not specified, try to determine automatically * the best one to use out of all available types. */ if (setup_type < 0) { setup_type = discover_ui(); } if (info_only == 1) { important_message("WebCit Setup", "Welcome to WebCit setup"); cleanup(0); } /* Get started in a valid setup directory. */ strcpy(setup_directory, WEBCITDIR); if ( (using_web_installer) && (getenv("WEBCIT") != NULL) ) { strcpy(setup_directory, getenv("WEBCIT")); } else { set_value("In what directory is WebCit installed?", setup_directory); } if (chdir(setup_directory) != 0) { important_message("WebCit Setup", "The directory you specified does not exist."); cleanup(errno); } /* * We used to start WebCit by putting it directly into /etc/inittab. * Since some systems are moving away from init, we can't do this anymore. */ progress("Removing obsolete /etc/inittab entries...", 0, 1); delete_the_old_way(); progress("Removing obsolete /etc/inittab entries...", 1, 1); /* Now begin. */ switch (setup_type) { case UI_TEXT: printf("\n\n\n" " *** WebCit setup program ***\n\n"); break; } /* * If we're running on SysV, install init scripts. */ if (!access("/var/run", W_OK)) { install_init_scripts(); if (!access("/etc/init.d/webcit", X_OK)) { system("/etc/init.d/webcit stop"); system("/etc/init.d/webcit start"); } sprintf(aaa, "Setup is finished. You may now log in.\n" "Point your web browser at %s\n", suggested_url ); important_message("Setup finished", aaa); } else { important_message("Setup finished", "Setup is finished. You may now start the server."); } cleanup(0); return 0; } webcit-dfsg.orig/tcp_sockets.c0000644000175000017500000007012713223341037016473 0ustar michaelmichael/* * Copyright (c) 1987-2017 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* * Uncomment this to log all communications with the Citadel server #define SERV_TRACE 1 */ #include "webcit.h" #include "webserver.h" long MaxRead = -1; /* should we do READ scattered or all at once? */ /* * register the timeout */ RETSIGTYPE timeout(int signum) { syslog(LOG_WARNING, "Connection timed out; unable to reach citserver\n"); /* no exit here, since we need to server the connection unreachable thing. exit(3); */ } /* * Client side - connect to a unix domain socket */ int uds_connectsock(char *sockpath) { struct sockaddr_un addr; int s; memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; strncpy(addr.sun_path, sockpath, sizeof addr.sun_path); s = socket(AF_UNIX, SOCK_STREAM, 0); if (s < 0) { syslog(LOG_WARNING, "Can't create socket [%s]: %s\n", sockpath, strerror(errno)); return(-1); } if (connect(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) { syslog(LOG_WARNING, "Can't connect [%s]: %s\n", sockpath, strerror(errno)); close(s); return(-1); } return s; } /* * TCP client - connect to a host/port */ int tcp_connectsock(char *host, char *service) { struct in6_addr serveraddr; struct addrinfo hints; struct addrinfo *res = NULL; struct addrinfo *ai = NULL; int rc = (-1); int s = (-1); if ((host == NULL) || IsEmptyStr(host)) return (-1); if ((service == NULL) || IsEmptyStr(service)) return (-1); syslog(LOG_DEBUG, "tcp_connectsock(%s,%s)\n", host, service); memset(&hints, 0x00, sizeof(hints)); hints.ai_flags = AI_NUMERICSERV; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; /* * Handle numeric IPv4 and IPv6 addresses */ rc = inet_pton(AF_INET, host, &serveraddr); if (rc == 1) { /* dotted quad */ hints.ai_family = AF_INET; hints.ai_flags |= AI_NUMERICHOST; } else { rc = inet_pton(AF_INET6, host, &serveraddr); if (rc == 1) { /* IPv6 address */ hints.ai_family = AF_INET6; hints.ai_flags |= AI_NUMERICHOST; } } /* Begin the connection process */ rc = getaddrinfo(host, service, &hints, &res); if (rc != 0) { syslog(LOG_DEBUG, "%s: %s\n", host, gai_strerror(rc)); freeaddrinfo(res); return(-1); } /* * Try all available addresses until we connect to one or until we run out. */ for (ai = res; ai != NULL; ai = ai->ai_next) { if (ai->ai_family == AF_INET) syslog(LOG_DEBUG, "Trying IPv4\n"); else if (ai->ai_family == AF_INET6) syslog(LOG_DEBUG, "Trying IPv6\n"); else syslog(LOG_WARNING, "This is going to fail.\n"); s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if (s < 0) { syslog(LOG_WARNING, "socket() failed: %s\n", strerror(errno)); freeaddrinfo(res); return(-1); } rc = connect(s, ai->ai_addr, ai->ai_addrlen); if (rc >= 0) { int fdflags; freeaddrinfo(res); fdflags = fcntl(rc, F_GETFL); if (fdflags < 0) { syslog(LOG_ERR, "unable to get socket %d flags! %s \n", rc, strerror(errno)); close(rc); return -1; } fdflags = fdflags | O_NONBLOCK; if (fcntl(rc, F_SETFL, fdflags) < 0) { syslog(LOG_ERR, "unable to set socket %d nonblocking flags! %s \n", rc, strerror(errno)); close(s); return -1; } return(s); } else { syslog(LOG_WARNING, "connect() failed: %s\n", strerror(errno)); close(s); } } freeaddrinfo(res); return(-1); } /* * input string from pipe */ int serv_getln(char *strbuf, int bufsize) { wcsession *WCC = WC; int len; *strbuf = '\0'; StrBuf_ServGetln(WCC->MigrateReadLineBuf); len = StrLength(WCC->MigrateReadLineBuf); if (len > bufsize) len = bufsize - 1; memcpy(strbuf, ChrPtr(WCC->MigrateReadLineBuf), len); FlushStrBuf(WCC->MigrateReadLineBuf); strbuf[len] = '\0'; #ifdef SERV_TRACE syslog(LOG_DEBUG, "%3d<<<%s\n", WCC->serv_sock, strbuf); #endif return len; } int StrBuf_ServGetln(StrBuf *buf) { wcsession *WCC = WC; const char *ErrStr = NULL; int rc; if (!WCC->connected) return -1; FlushStrBuf(buf); rc = StrBufTCP_read_buffered_line_fast(buf, WCC->ReadBuf, &WCC->ReadPos, &WCC->serv_sock, 5, 1, &ErrStr); if (rc < 0) { syslog(LOG_INFO, "StrBuf_ServGetln(): Server connection broken: %s\n", (ErrStr)?ErrStr:""); wc_backtrace(LOG_INFO); if (WCC->serv_sock > 0) close(WCC->serv_sock); WCC->serv_sock = (-1); WCC->connected = 0; WCC->logged_in = 0; } #ifdef SERV_TRACE else { long pos = 0; if (WCC->ReadPos != NULL) pos = WCC->ReadPos - ChrPtr(WCC->ReadBuf); syslog(LOG_DEBUG, "%3d<<<[%ld]%s\n", WC->serv_sock, pos, ChrPtr(buf)); } #endif return rc; } int StrBuf_ServGetBLOBBuffered(StrBuf *buf, long BlobSize) { wcsession *WCC = WC; const char *ErrStr; int rc; rc = StrBufReadBLOBBuffered(buf, WCC->ReadBuf, &WCC->ReadPos, &WCC->serv_sock, 1, BlobSize, NNN_TERM, &ErrStr); if (rc < 0) { syslog(LOG_INFO, "StrBuf_ServGetBLOBBuffered(): Server connection broken: %s\n", (ErrStr)?ErrStr:""); wc_backtrace(LOG_INFO); if (WCC->serv_sock > 0) close(WCC->serv_sock); WCC->serv_sock = (-1); WCC->connected = 0; WCC->logged_in = 0; } #ifdef SERV_TRACE else syslog(LOG_DEBUG, "%3d<<serv_sock, StrLength(buf)); #endif return rc; } int StrBuf_ServGetBLOB(StrBuf *buf, long BlobSize) { wcsession *WCC = WC; const char *ErrStr; int rc; WCC->ReadPos = NULL; rc = StrBufReadBLOB(buf, &WCC->serv_sock, 1, BlobSize, &ErrStr); if (rc < 0) { syslog(LOG_INFO, "StrBuf_ServGetBLOB(): Server connection broken: %s\n", (ErrStr)?ErrStr:""); wc_backtrace(LOG_INFO); if (WCC->serv_sock > 0) close(WCC->serv_sock); WCC->serv_sock = (-1); WCC->connected = 0; WCC->logged_in = 0; } #ifdef SERV_TRACE else syslog(LOG_DEBUG, "%3d<<serv_sock, StrLength(buf)); #endif return rc; } void FlushReadBuf (void) { long len; const char *pch; const char *pche; wcsession *WCC = WC; len = StrLength(WCC->ReadBuf); if ((len > 0) && (WCC->ReadPos != NULL) && (WCC->ReadPos != StrBufNOTNULL)) { pch = ChrPtr(WCC->ReadBuf); pche = pch + len; if (WCC->ReadPos != pche) { syslog(LOG_ERR, "ERROR: somebody didn't eat his soup! Remaing Chars: %ld [%s]\n", (long)(pche - WCC->ReadPos), pche ); syslog(LOG_ERR, "--------------------------------------------------------------------------------\n" "Whole buf: [%s]\n" "--------------------------------------------------------------------------------\n", pch); AppendImportantMessage(HKEY("Suppenkasper alert! watch your webcit logfile and get connected to your favourite opensource Crew.")); } } FlushStrBuf(WCC->ReadBuf); WCC->ReadPos = NULL; } /* * send binary to server * buf the buffer to write to citadel server * nbytes how many bytes to send to citadel server */ int serv_write(const char *buf, int nbytes) { wcsession *WCC = WC; int bytes_written = 0; int retval; FlushReadBuf(); while (bytes_written < nbytes) { retval = write(WCC->serv_sock, &buf[bytes_written], nbytes - bytes_written); if (retval < 1) { const char *ErrStr = strerror(errno); syslog(LOG_INFO, "serv_write(): Server connection broken: %s\n", (ErrStr)?ErrStr:""); if (WCC->serv_sock > 0) close(WCC->serv_sock); WCC->serv_sock = (-1); WCC->connected = 0; WCC->logged_in = 0; return 0; } bytes_written = bytes_written + retval; } return 1; } /* * send line to server * string the line to send to the citadel server */ int serv_puts(const char *string) { #ifdef SERV_TRACE syslog(LOG_DEBUG, "%3d>>>%s\n", WC->serv_sock, string); #endif FlushReadBuf(); if (!serv_write(string, strlen(string))) return 0; return serv_write("\n", 1); } /* * send line to server * string the line to send to the citadel server */ int serv_putbuf(const StrBuf *string) { #ifdef SERV_TRACE syslog(LOG_DEBUG, "%3d>>>%s\n", WC->serv_sock, ChrPtr(string)); #endif FlushReadBuf(); if (!serv_write(ChrPtr(string), StrLength(string))) return 0; return serv_write("\n", 1); } /* * convenience function to send stuff to the server * format the formatstring * ... the entities to insert into format */ int serv_printf(const char *format,...) { va_list arg_ptr; char buf[SIZ]; size_t len; int rc; FlushReadBuf(); va_start(arg_ptr, format); vsnprintf(buf, sizeof buf, format, arg_ptr); va_end(arg_ptr); len = strlen(buf); buf[len++] = '\n'; buf[len] = '\0'; rc = serv_write(buf, len); #ifdef SERV_TRACE syslog(LOG_DEBUG, ">>>%s", buf); #endif return rc; } /* * Read binary data from server into memory using a series of server READ commands. * returns the read content as StrBuf */ int serv_read_binary(StrBuf *Ret, size_t total_len, StrBuf *Buf) { wcsession *WCC = WC; size_t bytes_read = 0; size_t this_block = 0; int rc = 6; int ServerRc = 6; if (Ret == NULL) { return -1; } while ((bytes_read < total_len) && (ServerRc == 6)) { if (WCC->serv_sock==-1) { FlushStrBuf(Ret); return -1; } serv_printf("READ "SIZE_T_FMT"|"SIZE_T_FMT, bytes_read, total_len-bytes_read); if ( (rc = StrBuf_ServGetln(Buf) > 0) && (ServerRc = GetServerStatus(Buf, NULL), ServerRc == 6) ) { if (rc < 0) return rc; StrBufCutLeft(Buf, 4); this_block = StrTol(Buf); rc = StrBuf_ServGetBLOBBuffered(Ret, this_block); if (rc < 0) { syslog(LOG_INFO, "Server connection broken during download\n"); wc_backtrace(LOG_INFO); if (WCC->serv_sock > 0) close(WCC->serv_sock); WCC->serv_sock = (-1); WCC->connected = 0; WCC->logged_in = 0; return rc; } bytes_read += rc; } } return StrLength(Ret); } int client_write(StrBuf *ThisBuf) { wcsession *WCC = WC; const char *ptr, *eptr; long count; ssize_t res = 0; fd_set wset; int fdflags; ptr = ChrPtr(ThisBuf); count = StrLength(ThisBuf); eptr = ptr + count; fdflags = fcntl(WC->Hdr->http_sock, F_GETFL); while ((ptr < eptr) && (WCC->Hdr->http_sock != -1)) { if ((fdflags & O_NONBLOCK) == O_NONBLOCK) { FD_ZERO(&wset); FD_SET(WCC->Hdr->http_sock, &wset); if (select(WCC->Hdr->http_sock + 1, NULL, &wset, NULL, NULL) == -1) { syslog(LOG_INFO, "client_write: Socket select failed (%s)\n", strerror(errno)); return -1; } } if ((WCC->Hdr->http_sock == -1) || ((res = write(WCC->Hdr->http_sock, ptr, count)), (res == -1))) { syslog(LOG_INFO, "client_write: Socket write failed (%s)\n", strerror(errno)); wc_backtrace(LOG_INFO); return -1; } count -= res; ptr += res; } return 0; } int read_serv_chunk( StrBuf *Buf, size_t total_len, size_t *bytes_read ) { int rc; int ServerRc; wcsession *WCC = WC; serv_printf("READ "SIZE_T_FMT"|"SIZE_T_FMT, *bytes_read, total_len-(*bytes_read)); if ( (rc = StrBuf_ServGetln(Buf) > 0) && (ServerRc = GetServerStatus(Buf, NULL), ServerRc == 6) ) { size_t this_block = 0; if (rc < 0) return rc; StrBufCutLeft(Buf, 4); this_block = StrTol(Buf); rc = StrBuf_ServGetBLOBBuffered(WCC->WBuf, this_block); if (rc < 0) { syslog(LOG_INFO, "Server connection broken during download\n"); wc_backtrace(LOG_INFO); if (WCC->serv_sock > 0) close(WCC->serv_sock); WCC->serv_sock = (-1); WCC->connected = 0; WCC->logged_in = 0; return rc; } *bytes_read += rc; } return 6; } static inline int send_http(StrBuf *Buf) { #ifdef HAVE_OPENSSL if (is_https) return client_write_ssl(Buf); else #endif return client_write(Buf); } /* * Read binary data from server into memory using a series of server READ commands. * returns the read content as StrBuf */ void serv_read_binary_to_http(StrBuf *MimeType, size_t total_len, int is_static, int detect_mime) { int ServerRc = 6; wcsession *WCC = WC; size_t bytes_read = 0; int first = 1; int client_con_state = 0; int chunked = 0; int is_gzip = 0; const char *Err = NULL; StrBuf *BufHeader = NULL; StrBuf *Buf; StrBuf *pBuf = NULL; vStreamT *SC = NULL; IOBuffer ReadBuffer; IOBuffer WriteBuffer; Buf = NewStrBuf(); if (WCC->Hdr->HaveRange) { WCC->Hdr->HaveRange++; WCC->Hdr->TotalBytes = total_len; /* open range? or beyound file border? correct the numbers. */ if ((WCC->Hdr->RangeTil == -1) || (WCC->Hdr->RangeTil>= total_len)) WCC->Hdr->RangeTil = total_len - 1; bytes_read = WCC->Hdr->RangeStart; total_len = WCC->Hdr->RangeTil; } else chunked = total_len > SIZ * 10; /* TODO: disallow for HTTP / 1.0 */ if (chunked) { BufHeader = NewStrBuf(); } if ((detect_mime != 0) && (bytes_read != 0)) { /* need to read first chunk to detect mime, though the client doesn't care */ size_t bytes_read = 0; const char *CT; ServerRc = read_serv_chunk( Buf, total_len, &bytes_read); if (ServerRc != 6) { FreeStrBuf(&BufHeader); FreeStrBuf(&Buf); return; } CT = GuessMimeType(SKEY(WCC->WBuf)); FlushStrBuf(WCC->WBuf); StrBufPlain(MimeType, CT, -1); CheckGZipCompressionAllowed(SKEY(MimeType)); detect_mime = 0; FreeStrBuf(&Buf); } memset(&WriteBuffer, 0, sizeof(IOBuffer)); if (chunked && !DisableGzip && WCC->Hdr->HR.gzip_ok) { is_gzip = 1; SC = StrBufNewStreamContext (eZLibEncode, &Err); if (SC == NULL) { syslog(LOG_ERR, "Error while initializing stream context: %s", Err); FreeStrBuf(&Buf); return; } memset(&ReadBuffer, 0, sizeof(IOBuffer)); ReadBuffer.Buf = WCC->WBuf; WriteBuffer.Buf = NewStrBufPlain(NULL, SIZ*2);; pBuf = WriteBuffer.Buf; } else { pBuf = WCC->WBuf; } if (!detect_mime) { http_transmit_headers(ChrPtr(MimeType), is_static, chunked, is_gzip); if (send_http(WCC->HBuf) < 0) { FreeStrBuf(&Buf); FreeStrBuf(&WriteBuffer.Buf); FreeStrBuf(&BufHeader); if (StrBufDestroyStreamContext(eZLibEncode, &SC, &Err) && Err) { syslog(LOG_ERR, "Error while destroying stream context: %s", Err); } return; } } while ((bytes_read < total_len) && (ServerRc == 6) && (client_con_state == 0)) { if (WCC->serv_sock==-1) { FlushStrBuf(WCC->WBuf); FreeStrBuf(&Buf); FreeStrBuf(&WriteBuffer.Buf); FreeStrBuf(&BufHeader); StrBufDestroyStreamContext(eZLibEncode, &SC, &Err); if (StrBufDestroyStreamContext(eZLibEncode, &SC, &Err) && Err) { syslog(LOG_ERR, "Error while destroying stream context: %s", Err); } return; } ServerRc = read_serv_chunk( Buf, total_len, &bytes_read); if (ServerRc != 6) break; if (detect_mime) { const char *CT; detect_mime = 0; CT = GuessMimeType(SKEY(WCC->WBuf)); StrBufPlain(MimeType, CT, -1); if (is_gzip) { CheckGZipCompressionAllowed(SKEY(MimeType)); is_gzip = WCC->Hdr->HR.gzip_ok; } http_transmit_headers(ChrPtr(MimeType), is_static, chunked, is_gzip); client_con_state = send_http(WCC->HBuf); } if (is_gzip) { int done = (bytes_read == total_len); while ((IOBufferStrLength(&ReadBuffer) > 0) && (client_con_state == 0)) { int rc; do { rc = StrBufStreamTranscode(eZLibEncode, &WriteBuffer, &ReadBuffer, NULL, -1, SC, done, &Err); if (StrLength (pBuf) > 0) { StrBufPrintf(BufHeader, "%s%x\r\n", (first)?"":"\r\n", StrLength (pBuf)); first = 0; client_con_state = send_http(BufHeader); if (client_con_state == 0) { client_con_state = send_http(pBuf); } FlushStrBuf(pBuf); } } while ((rc == 1) && (StrLength(pBuf) > 0)); } FlushStrBuf(WCC->WBuf); } else { if ((chunked) && (client_con_state == 0)) { StrBufPrintf(BufHeader, "%s%x\r\n", (first)?"":"\r\n", StrLength (pBuf)); first = 0; client_con_state = send_http(BufHeader); } if (client_con_state == 0) client_con_state = send_http(pBuf); FlushStrBuf(pBuf); } } if (SC && StrBufDestroyStreamContext(eZLibEncode, &SC, &Err) && Err) { syslog(LOG_ERR, "Error while destroying stream context: %s", Err); } FreeStrBuf(&WriteBuffer.Buf); if ((chunked) && (client_con_state == 0)) { StrBufPlain(BufHeader, HKEY("\r\n0\r\n\r\n")); if (send_http(BufHeader) < 0) { FreeStrBuf(&Buf); FreeStrBuf(&BufHeader); return; } } FreeStrBuf(&BufHeader); FreeStrBuf(&Buf); } int ClientGetLine(ParsedHttpHdrs *Hdr, StrBuf *Target) { const char *Error; #ifdef HAVE_OPENSSL const char *pch, *pchs; int rlen, len, retval = 0; if (is_https) { int ntries = 0; if (StrLength(Hdr->ReadBuf) > 0) { pchs = ChrPtr(Hdr->ReadBuf); pch = strchr(pchs, '\n'); if (pch != NULL) { rlen = 0; len = pch - pchs; if (len > 0 && (*(pch - 1) == '\r') ) rlen ++; StrBufSub(Target, Hdr->ReadBuf, 0, len - rlen); StrBufCutLeft(Hdr->ReadBuf, len + 1); return len - rlen; } } while (retval == 0) { pch = NULL; pchs = ChrPtr(Hdr->ReadBuf); if (*pchs != '\0') pch = strchr(pchs, '\n'); if (pch == NULL) { retval = client_read_sslbuffer(Hdr->ReadBuf, SLEEPING); pchs = ChrPtr(Hdr->ReadBuf); pch = strchr(pchs, '\n'); if (pch == NULL) retval = 0; } if (retval == 0) { sleeeeeeeeeep(1); ntries ++; } if (ntries > 10) return 0; } if ((retval > 0) && (pch != NULL)) { rlen = 0; len = pch - pchs; if (len > 0 && (*(pch - 1) == '\r') ) rlen ++; StrBufSub(Target, Hdr->ReadBuf, 0, len - rlen); StrBufCutLeft(Hdr->ReadBuf, len + 1); return len - rlen; } else return -1; } else #endif return StrBufTCP_read_buffered_line_fast(Target, Hdr->ReadBuf, &Hdr->Pos, &Hdr->http_sock, 5, 1, &Error); } /* * This is a generic function to set up a master socket for listening on * a TCP port. The server shuts down if the bind fails. (IPv4/IPv6 version) * * ip_addr IP address to bind * port_number port number to bind * queue_len number of incoming connections to allow in the queue */ int webcit_tcp_server(const char *ip_addr, int port_number, int queue_len) { const char *ipv4broadcast = "0.0.0.0"; int IsDefault = 0; struct protoent *p; struct sockaddr_in6 sin6; struct sockaddr_in sin4; int s, i, b; int ip_version = 6; retry: memset(&sin6, 0, sizeof(sin6)); memset(&sin4, 0, sizeof(sin4)); sin6.sin6_family = AF_INET6; sin4.sin_family = AF_INET; if ( (ip_addr == NULL) /* any IPv6 */ || (IsEmptyStr(ip_addr)) || (!strcmp(ip_addr, "*")) ) { IsDefault = 1; ip_version = 6; sin6.sin6_addr = in6addr_any; } else if (!strcmp(ip_addr, "0.0.0.0")) /* any IPv4 */ { ip_version = 4; sin4.sin_addr.s_addr = INADDR_ANY; } else if ((strchr(ip_addr, '.')) && (!strchr(ip_addr, ':'))) /* specific IPv4 */ { ip_version = 4; if (inet_pton(AF_INET, ip_addr, &sin4.sin_addr) <= 0) { syslog(LOG_WARNING, "Error binding to [%s] : %s\n", ip_addr, strerror(errno)); return (-WC_EXIT_BIND); } } else /* specific IPv6 */ { ip_version = 6; if (inet_pton(AF_INET6, ip_addr, &sin6.sin6_addr) <= 0) { syslog(LOG_WARNING, "Error binding to [%s] : %s\n", ip_addr, strerror(errno)); return (-WC_EXIT_BIND); } } if (port_number == 0) { syslog(LOG_WARNING, "Cannot start: no port number specified.\n"); return (-WC_EXIT_BIND); } sin6.sin6_port = htons((u_short) port_number); sin4.sin_port = htons((u_short) port_number); p = getprotobyname("tcp"); s = socket( ((ip_version == 6) ? PF_INET6 : PF_INET), SOCK_STREAM, (p->p_proto)); if (s < 0) { if (IsDefault && (errno == EAFNOSUPPORT)) { s = 0; ip_addr = ipv4broadcast; goto retry; } syslog(LOG_WARNING, "Can't create a listening socket: %s\n", strerror(errno)); return (-WC_EXIT_BIND); } /* Set some socket options that make sense. */ i = 1; setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i)); if (ip_version == 6) { b = bind(s, (struct sockaddr *) &sin6, sizeof(sin6)); } else { b = bind(s, (struct sockaddr *) &sin4, sizeof(sin4)); } if (b < 0) { syslog(LOG_ERR, "Can't bind: %s\n", strerror(errno)); close(s); return (-WC_EXIT_BIND); } if (listen(s, queue_len) < 0) { syslog(LOG_ERR, "Can't listen: %s\n", strerror(errno)); close(s); return (-WC_EXIT_BIND); } return (s); } /* * Create a Unix domain socket and listen on it * sockpath - file name of the unix domain socket * queue_len - Number of incoming connections to allow in the queue */ int webcit_uds_server(char *sockpath, int queue_len) { struct sockaddr_un addr; int s; int i; int actual_queue_len; actual_queue_len = queue_len; if (actual_queue_len < 5) actual_queue_len = 5; i = unlink(sockpath); if ((i != 0) && (errno != ENOENT)) { syslog(LOG_WARNING, "webcit: can't unlink %s: %s\n", sockpath, strerror(errno)); return (-WC_EXIT_BIND); } memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; safestrncpy(addr.sun_path, sockpath, sizeof addr.sun_path); s = socket(AF_UNIX, SOCK_STREAM, 0); if (s < 0) { syslog(LOG_WARNING, "webcit: Can't create a unix domain socket: %s\n", strerror(errno)); return (-WC_EXIT_BIND); } if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { syslog(LOG_WARNING, "webcit: Can't bind: %s\n", strerror(errno)); close(s); return (-WC_EXIT_BIND); } if (listen(s, actual_queue_len) < 0) { syslog(LOG_WARNING, "webcit: Can't listen: %s\n", strerror(errno)); close(s); return (-WC_EXIT_BIND); } chmod(sockpath, 0777); return(s); } /* * Read data from the client socket. * * sock socket fd to read from * buf buffer to read into * bytes number of bytes to read * timeout Number of seconds to wait before timing out * * Possible return values: * 1 Requested number of bytes has been read. * 0 Request timed out. * -1 Connection is broken, or other error. */ int client_read_to(ParsedHttpHdrs *Hdr, StrBuf *Target, int bytes, int timeout) { const char *Error; int retval = 0; #ifdef HAVE_OPENSSL if (is_https) { long bufremain = 0; long baselen; baselen = StrLength(Target); if (Hdr->Pos == NULL) Hdr->Pos = ChrPtr(Hdr->ReadBuf); if (StrLength(Hdr->ReadBuf) > 0) { bufremain = StrLength(Hdr->ReadBuf) - (Hdr->Pos - ChrPtr(Hdr->ReadBuf)); if (bytes < bufremain) bufremain = bytes; StrBufAppendBufPlain(Target, Hdr->Pos, bufremain, 0); StrBufCutLeft(Hdr->ReadBuf, bufremain); } if (bytes > bufremain) { while ((StrLength(Hdr->ReadBuf) + StrLength(Target) < bytes + baselen) && (retval >= 0)) retval = client_read_sslbuffer(Hdr->ReadBuf, timeout); if (retval >= 0) { StrBufAppendBuf(Target, Hdr->ReadBuf, 0); /* todo: Buf > bytes? */ return 1; } else { syslog(LOG_INFO, "client_read_ssl() failed\n"); return -1; } } else return 1; } #endif retval = StrBufReadBLOBBuffered(Target, Hdr->ReadBuf, &Hdr->Pos, &Hdr->http_sock, 1, bytes, O_TERM, &Error); if (retval < 0) { syslog(LOG_INFO, "client_read() failed: %s\n", Error); wc_backtrace(LOG_DEBUG); return retval; } return 1; } /* * Begin buffering HTTP output so we can transmit it all in one write operation later. */ void begin_burst(void) { if (WC->WBuf == NULL) { WC->WBuf = NewStrBufPlain(NULL, 32768); } } /* * Finish buffering HTTP output. [Compress using zlib and] output with a Content-Length: header. */ long end_burst(void) { wcsession *WCC = WC; const char *ptr, *eptr; long count; ssize_t res = 0; fd_set wset; int fdflags; if (!DisableGzip && (WCC->Hdr->HR.gzip_ok)) { if (CompressBuffer(WCC->WBuf) > 0) hprintf("Content-encoding: gzip\r\n"); else { syslog(LOG_ALERT, "Compression failed: %d [%s] sending uncompressed\n", errno, strerror(errno)); wc_backtrace(LOG_INFO); } } if (WCC->WFBuf != NULL) { WildFireSerializePayload(WCC->WFBuf, WCC->HBuf, &WCC->Hdr->nWildfireHeaders, NULL); FreeStrBuf(&WCC->WFBuf); } if (WCC->Hdr->HR.prohibit_caching) hprintf("Pragma: no-cache\r\nCache-Control: no-store\r\nExpires:-1\r\n"); hprintf("Content-length: %d\r\n\r\n", StrLength(WCC->WBuf)); ptr = ChrPtr(WCC->HBuf); count = StrLength(WCC->HBuf); eptr = ptr + count; #ifdef HAVE_OPENSSL if (is_https) { client_write_ssl(WCC->HBuf); client_write_ssl(WCC->WBuf); return (count); } #endif if (WCC->Hdr->http_sock == -1) return -1; fdflags = fcntl(WC->Hdr->http_sock, F_GETFL); while ((ptr < eptr) && (WCC->Hdr->http_sock != -1)){ if ((fdflags & O_NONBLOCK) == O_NONBLOCK) { FD_ZERO(&wset); FD_SET(WCC->Hdr->http_sock, &wset); if (select(WCC->Hdr->http_sock + 1, NULL, &wset, NULL, NULL) == -1) { syslog(LOG_DEBUG, "client_write: Socket select failed (%s)\n", strerror(errno)); return -1; } } if ((WCC->Hdr->http_sock == -1) || (res = write(WCC->Hdr->http_sock, ptr, count)) == -1) { syslog(LOG_DEBUG, "client_write: Socket write failed (%s)\n", strerror(errno)); wc_backtrace(LOG_INFO); return res; } count -= res; ptr += res; } ptr = ChrPtr(WCC->WBuf); count = StrLength(WCC->WBuf); eptr = ptr + count; while ((ptr < eptr) && (WCC->Hdr->http_sock != -1)) { if ((fdflags & O_NONBLOCK) == O_NONBLOCK) { FD_ZERO(&wset); FD_SET(WCC->Hdr->http_sock, &wset); if (select(WCC->Hdr->http_sock + 1, NULL, &wset, NULL, NULL) == -1) { syslog(LOG_INFO, "client_write: Socket select failed (%s)\n", strerror(errno)); return -1; } } if ((WCC->Hdr->http_sock == -1) || (res = write(WCC->Hdr->http_sock, ptr, count)) == -1) { syslog(LOG_INFO, "client_write: Socket write failed (%s)\n", strerror(errno)); wc_backtrace(LOG_INFO); return res; } count -= res; ptr += res; } return StrLength(WCC->WBuf); } /* * lingering_close() a`la Apache. see * http://httpd.apache.org/docs/2.0/misc/fin_wait_2.html for rationale */ int lingering_close(int fd) { char buf[SIZ]; int i; fd_set set; struct timeval tv, start; gettimeofday(&start, NULL); if (fd == -1) return -1; shutdown(fd, 1); do { do { gettimeofday(&tv, NULL); tv.tv_sec = SLEEPING - (tv.tv_sec - start.tv_sec); tv.tv_usec = start.tv_usec - tv.tv_usec; if (tv.tv_usec < 0) { tv.tv_sec--; tv.tv_usec += 1000000; } FD_ZERO(&set); FD_SET(fd, &set); i = select(fd + 1, &set, NULL, NULL, &tv); } while (i == -1 && errno == EINTR); if (i <= 0) break; i = read(fd, buf, sizeof buf); } while (i != 0 && (i != -1 || errno == EINTR)); return close(fd); } void HttpNewModule_TCPSOCKETS (ParsedHttpHdrs *httpreq) { httpreq->ReadBuf = NewStrBufPlain(NULL, SIZ * 4); } void HttpDetachModule_TCPSOCKETS (ParsedHttpHdrs *httpreq) { FlushStrBuf(httpreq->ReadBuf); ReAdjustEmptyBuf(httpreq->ReadBuf, 4 * SIZ, SIZ); } void HttpDestroyModule_TCPSOCKETS (ParsedHttpHdrs *httpreq) { FreeStrBuf(&httpreq->ReadBuf); } void SessionNewModule_TCPSOCKETS (wcsession *sess) { sess->CLineBuf = NewStrBuf(); sess->MigrateReadLineBuf = NewStrBuf(); } void SessionDestroyModule_TCPSOCKETS (wcsession *sess) { FreeStrBuf(&sess->CLineBuf); FreeStrBuf(&sess->ReadBuf); sess->connected = 0; sess->ReadPos = NULL; FreeStrBuf(&sess->MigrateReadLineBuf); if (sess->serv_sock > 0) { syslog(LOG_DEBUG, "Closing socket %d", sess->serv_sock); close(sess->serv_sock); } sess->serv_sock = -1; } webcit-dfsg.orig/icontheme.c0000644000175000017500000001021613223341037016116 0ustar michaelmichael/* * Displays and customizes the iconbar. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include #include #include #include #include #include #include #include #include "webcit.h" #include "webserver.h" HashList *AvailableThemes = NULL; const StrBuf *DefaultTheme = NULL; void LoadIconthemeSettings(StrBuf *icontheme, long lvalue) { wcsession *WCC = WC; void *vTheme; const StrBuf *theme; if (GetHash(AvailableThemes, SKEY(icontheme), &vTheme)) theme = (StrBuf*)vTheme; else theme = DefaultTheme; if (WCC->IconTheme != NULL) StrBufPlain(WCC->IconTheme, SKEY(theme)); else WCC->IconTheme = NewStrBufDup(theme); } void tmplput_icontheme(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if ( (WCC != NULL) && (WCC->IconTheme != NULL)) { StrBufAppendTemplate(Target, TP, WCC->IconTheme, 0); } else { StrBufAppendTemplate(Target, TP, DefaultTheme, 0); } } int LoadThemeDir(const char *DirName) { StrBuf *Dir = NULL; DIR *filedir = NULL; struct dirent *d; struct dirent *filedir_entry; int d_type = 0; int d_namelen; filedir = opendir (DirName); if (filedir == NULL) { return 0; } d = (struct dirent *)malloc(offsetof(struct dirent, d_name) + PATH_MAX + 1); if (d == NULL) { return 0; } while ((readdir_r(filedir, d, &filedir_entry) == 0) && (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMELEN d_namelen = filedir_entry->d_namlen; d_type = filedir_entry->d_type; #else #ifndef DT_UNKNOWN #define DT_UNKNOWN 0 #define DT_DIR 4 #define DT_REG 8 #define DT_LNK 10 #define IFTODT(mode) (((mode) & 0170000) >> 12) #define DTTOIF(dirtype) ((dirtype) << 12) #endif d_namelen = strlen(filedir_entry->d_name); d_type = DT_UNKNOWN; #endif if ((d_namelen > 1) && filedir_entry->d_name[d_namelen - 1] == '~') continue; /* Ignore backup files... */ if ((d_namelen == 1) && (filedir_entry->d_name[0] == '.')) continue; if ((d_namelen == 2) && (filedir_entry->d_name[0] == '.') && (filedir_entry->d_name[1] == '.')) continue; if (d_type == DT_UNKNOWN) { struct stat s; char path[PATH_MAX]; snprintf(path, PATH_MAX, "%s/%s", DirName, filedir_entry->d_name); if (stat(path, &s) == 0) { d_type = IFTODT(s.st_mode); } } switch (d_type) { case DT_LNK: /* TODO: check whether its a file or a directory */ case DT_DIR: /* Skip directories we are not interested in... */ if ((strcmp(filedir_entry->d_name, ".svn") == 0) || (strcmp(filedir_entry->d_name, "t") == 0)) break; Dir = NewStrBufPlain (filedir_entry->d_name, d_namelen); if (DefaultTheme == NULL) DefaultTheme = Dir; Put(AvailableThemes, SKEY(Dir), Dir, HFreeStrBuf); break; case DT_REG: default: break; } } free(d); closedir(filedir); return 1; } HashList *GetValidThemeHash(StrBuf *Target, WCTemplputParams *TP) { return AvailableThemes; } void ServerStartModule_ICONTHEME (void) { AvailableThemes = NewHash(1, NULL); } void InitModule_ICONTHEME (void) { StrBuf *Themes = NewStrBufPlain(static_dirs[0], -1); StrBufAppendBufPlain(Themes, HKEY("/"), 0); StrBufAppendBufPlain(Themes, HKEY("webcit_icons"), 0); LoadThemeDir(ChrPtr(Themes)); FreeStrBuf(&Themes); RegisterPreference("icontheme", _("Icon Theme"), PRF_STRING, LoadIconthemeSettings); RegisterNamespace("ICONTHEME", 0, 0, tmplput_icontheme, NULL, CTX_NONE); RegisterIterator("PREF:VALID:THEME", 0, NULL, GetValidThemeHash, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); } void ServerShutdownModule_ICONTHEME (void) { DeleteHash(&AvailableThemes); } void SessionDestroyModule_ICONTHEME (wcsession *sess) { FreeStrBuf(&sess->IconTheme); } webcit-dfsg.orig/siteconfig.c0000644000175000017500000003601613223341037016303 0ustar michaelmichael/* * Administrative screen for site-wide configuration * * Copyright (c) 1996-2014 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" /* * Expiry policy for the autopurger */ #define EXPIRE_NEXTLEVEL 0 /* Inherit expiration policy */ #define EXPIRE_MANUAL 1 /* Don't expire messages at all */ #define EXPIRE_NUMMSGS 2 /* Keep only latest n messages */ #define EXPIRE_AGE 3 /* Expire messages after n days */ CtxType CTX_SRVLOG = CTX_NONE; HashList *ZoneHash = NULL; ConstStr ExpirePolicyString = {CStrOf(roompolicy) }; ConstStr ExpirePolicyStrings[][2] = { { { CStrOf(roompolicy) } , { strof(roompolicy) "_value", sizeof(strof(roompolicy) "_value") - 1 } }, { { CStrOf(floorpolicy) } , { strof(floorpolicy) "_value", sizeof(strof(floorpolicy) "_value") - 1 } }, { { CStrOf(sitepolicy) } , { strof(sitepolicy) "_value", sizeof(strof(sitepolicy) "_value") - 1 } }, { { CStrOf(mailboxespolicy)} , { strof(mailboxespolicy)"_value", sizeof(strof(mailboxespolicy)"_value") - 1 } } }; void LoadExpirePolicy(GPEXWhichPolicy which) { StrBuf *Buf; wcsession *WCC = WC; long State; const char *Pos = NULL; serv_printf("GPEX %s", ExpirePolicyStrings[which][0].Key); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, &State) == 2) { Pos = ChrPtr(Buf) + 4; WCC->Policy[which].expire_mode = StrBufExtractNext_long(Buf, &Pos, '|'); WCC->Policy[which].expire_value = StrBufExtractNext_long(Buf, &Pos, '|'); } else if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); FreeStrBuf(&Buf); } void SaveExpirePolicyFromHTTP(GPEXWhichPolicy which) { StrBuf *Buf; long State; serv_printf("SPEX %s|%d|%d", ExpirePolicyStrings[which][0].Key, ibcstr( ExpirePolicyStrings[which][1] ), ibcstr( ExpirePolicyStrings[which][1] ) ); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); GetServerStatus(Buf, &State); if (State == 550) AppendImportantMessage(_("Higher access is required to access this function."), -1); FreeStrBuf(&Buf); } int ConditionalExpire(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; GPEXWhichPolicy which; int CompareWith; which = GetTemplateTokenNumber(Target, TP, 2, 0); CompareWith = GetTemplateTokenNumber(Target, TP, 3, 0); LoadExpirePolicy(which); return WCC->Policy[which].expire_mode == CompareWith; } void tmplput_ExpireValue(StrBuf *Target, WCTemplputParams *TP) { GPEXWhichPolicy which; wcsession *WCC = WC; which = GetTemplateTokenNumber(Target, TP, 0, 0); LoadExpirePolicy(which); StrBufAppendPrintf(Target, "%d", WCC->Policy[which].expire_value); } void tmplput_ExpireMode(StrBuf *Target, WCTemplputParams *TP) { GPEXWhichPolicy which; wcsession *WCC = WC; which = GetTemplateTokenNumber(Target, TP, 2, 0); LoadExpirePolicy(which); StrBufAppendPrintf(Target, "%d", WCC->Policy[which].expire_mode); } void LoadZoneFiles(void) { icalarray *zones; int z; long len; const char *this_zone; StrBuf *ZName; ZoneHash = NewHash(1, NULL); ZName = NewStrBufPlain(HKEY("UTC")); Put(ZoneHash, HKEY("UTC"), ZName, HFreeStrBuf); zones = icaltimezone_get_builtin_timezones(); for (z = 0; z < zones->num_elements; ++z) { /* syslog(LOG_DEBUG, "Location: %-40s tzid: %s\n", icaltimezone_get_location(icalarray_element_at(zones, z)), icaltimezone_get_tzid(icalarray_element_at(zones, z)) ); */ this_zone = icaltimezone_get_location(icalarray_element_at(zones, z)); len = strlen(this_zone); ZName = NewStrBufPlain(this_zone, len); Put(ZoneHash, this_zone, len, ZName, HFreeStrBuf); } SortByHashKey(ZoneHash, 0); } typedef struct _CfgMapping { int type; int min; int max; const char *defval; const char *Key; long len; } CfgMapping; #define CFG_STR 1 #define CFG_YES 2 #define CFG_NO 3 #define CFG_INT 4 CfgMapping ServerConfig[] = { {CFG_STR, 0, 0, "", HKEY("c_nodename")}, {CFG_STR, 0, 0, "", HKEY("c_fqdn")}, {CFG_STR, 0, 0, "", HKEY("c_humannode")}, {CFG_STR, 0, 0, "", HKEY("c_phonenum")}, {CFG_YES, 0, 0, "", HKEY("c_creataide")}, {CFG_STR, 0, 0, "", HKEY("c_sleeping")}, {CFG_STR, 0, 0, "", HKEY("c_initax")}, {CFG_YES, 0, 0, "", HKEY("c_regiscall")}, {CFG_YES, 0, 0, "", HKEY("c_twitdetect")}, {CFG_STR, 0, 0, "", HKEY("c_twitroom")}, {CFG_STR, 0, 0, "", HKEY("c_moreprompt")}, {CFG_YES, 0, 0, "", HKEY("c_restrict")}, {CFG_STR, 0, 0, "", HKEY("c_bbs_city")}, {CFG_STR, 0, 0, "", HKEY("c_sysadm")}, {CFG_STR, 0, 0, "", HKEY("c_maxsessions")}, {CFG_STR, 0, 0, "", HKEY("reserved1")}, {CFG_STR, 0, 0, "", HKEY("c_userpurge")}, {CFG_STR, 0, 0, "", HKEY("c_roompurge")}, {CFG_STR, 0, 0, "", HKEY("c_logpages")}, {CFG_STR, 0, 0, "", HKEY("c_createax")}, {CFG_STR, 0, 0, "", HKEY("c_maxmsglen")}, {CFG_STR, 0, 0, "", HKEY("c_min_workers")}, {CFG_STR, 0, 0, "", HKEY("c_max_workers")}, {CFG_STR, 0, 0, "", HKEY("c_pop3_port")}, {CFG_STR, 0, 0, "", HKEY("c_smtp_port")}, {CFG_INT, CFG_SMTP_FROM_FILTERALL, CFG_SMTP_FROM_REJECT, "0", HKEY("c_rfc822_strict_from")}, {CFG_YES, 0, 0, "", HKEY("c_aide_zap")}, {CFG_STR, 0, 0, "", HKEY("c_imap_port")}, {CFG_STR, 0, 0, "", HKEY("c_net_freq")}, {CFG_YES, 0, 0, "", HKEY("c_disable_newu")}, {CFG_STR, 0, 0, "", HKEY("reserved2")}, {CFG_STR, 0, 0, "", HKEY("c_purge_hour")}, {CFG_STR, 0, 0, "", HKEY("c_ldap_host")}, {CFG_STR, 0, 0, "", HKEY("c_ldap_port")}, {CFG_STR, 0, 0, "", HKEY("c_ldap_base_dn")}, {CFG_STR, 0, 0, "", HKEY("c_ldap_bind_dn")}, {CFG_STR, 0, 0, "", HKEY("c_ldap_bind_pw")}, {CFG_STR, 0, 0, "", HKEY("c_ip_addr")}, {CFG_STR, 0, 0, "", HKEY("c_msa_port")}, {CFG_STR, 0, 0, "", HKEY("c_imaps_port")}, {CFG_STR, 0, 0, "", HKEY("c_pop3s_port")}, {CFG_STR, 0, 0, "", HKEY("c_smtps_port")}, {CFG_YES, 0, 0, "", HKEY("c_enable_fulltext")}, {CFG_YES, 0, 0, "", HKEY("c_auto_cull")}, {CFG_YES, 0, 0, "", HKEY("reserved3")}, {CFG_YES, 0, 0, "", HKEY("c_allow_spoofing")}, {CFG_YES, 0, 0, "", HKEY("c_journal_email")}, {CFG_YES, 0, 0, "", HKEY("c_journal_pubmsgs")}, {CFG_STR, 0, 0, "", HKEY("c_journal_dest")}, {CFG_STR, 0, 0, "", HKEY("c_default_cal_zone")}, {CFG_STR, 0, 0, "", HKEY("c_pftcpdict_port")}, {CFG_STR, 0, 0, "", HKEY("c_mgesve_port")}, {CFG_STR, 0, 0, "", HKEY("c_auth_mode")}, {CFG_STR, 0, 0, "", HKEY("c_funambol_host")}, {CFG_STR, 0, 0, "", HKEY("c_funambol_port")}, {CFG_STR, 0, 0, "", HKEY("c_funambol_source")}, {CFG_STR, 0, 0, "", HKEY("c_funambol_auth")}, {CFG_YES, 0, 0, "", HKEY("c_rbl_at_greeting")}, {CFG_STR, 0, 0, "", HKEY("c_master_user")}, {CFG_STR, 0, 0, "", HKEY("c_master_pass")}, {CFG_STR, 0, 0, "", HKEY("c_pager_program")}, {CFG_YES, 0, 0, "", HKEY("c_imap_keep_from")}, {CFG_STR, 0, 0, "", HKEY("c_xmpp_c2s_port")}, {CFG_STR, 0, 0, "", HKEY("c_xmpp_s2s_port")}, {CFG_STR, 0, 0, "", HKEY("c_pop3_fetch")}, {CFG_STR, 0, 0, "", HKEY("c_pop3_fastest")}, {CFG_YES, 0, 0, "", HKEY("c_spam_flag_only")}, {CFG_YES, 0, 0, "", HKEY("c_guest_logins")}, {CFG_STR, 0, 0, "", HKEY("c_port_number")}, {CFG_STR, 0, 0, "", HKEY("c_ctdluid")}, {CFG_STR, 0, 0, "", HKEY("c_nntp_port")}, {CFG_STR, 0, 0, "", HKEY("c_nntps_port")} }; /* * display all configuration items */ void load_siteconfig(void) { wcsession *WCC = WC; StrBuf *Buf; HashList *Cfg; long len; int i, j; if (WCC->ServCfg == NULL) WCC->ServCfg = NewHash(1, NULL); Cfg = WCC->ServCfg; Buf = NewStrBuf(); serv_printf("CONF get"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) != 1) { StrBufCutLeft(Buf, 4); AppendImportantMessage(SKEY(Buf)); FreeStrBuf(&Buf); return; } j = i = 0; while (len = StrBuf_ServGetln(Buf), (len >= 0) && ((len != 3) || strcmp(ChrPtr(Buf), "000"))) { if (i < (sizeof(ServerConfig) / sizeof(CfgMapping))) { Put(Cfg, ServerConfig[i].Key, ServerConfig[i].len, Buf, HFreeStrBuf); i++; Buf = NewStrBuf(); } else { if (j == 0) { syslog(LOG_WARNING, "The server sent more configuration data than this version of webcit is capable of changing. Unknown configuration values will remain unchanged."); } j++; } } FreeStrBuf(&Buf); LoadExpirePolicy(roompolicy); LoadExpirePolicy(floorpolicy); LoadExpirePolicy(mailboxespolicy); LoadExpirePolicy(sitepolicy); } /* * parse siteconfig changes */ void siteconfig(void) { wcsession *WCC = WC; int i, value; StrBuf *Line; if (strlen(bstr("ok_button")) == 0) { display_aide_menu(); return; } Line = NewStrBuf(); serv_printf("CONF set"); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 4) != 4) { display_aide_menu(); FreeStrBuf(&Line); return; } FreeStrBuf(&Line); for (i=0; i < (sizeof(ServerConfig) / sizeof(CfgMapping)); i ++) { switch (ServerConfig[i].type) { default: case CFG_STR: serv_putbuf(SBstr(ServerConfig[i].Key, ServerConfig[i].len)); break; case CFG_YES: serv_puts(YesBstr(ServerConfig[i].Key, ServerConfig[i].len) ? "1" : "0"); break; case CFG_NO: serv_puts(YesBstr(ServerConfig[i].Key, ServerConfig[i].len) ? "0" : "1"); break; case CFG_INT: value = IBstr(ServerConfig[i].Key, ServerConfig[i].len); if ((value < ServerConfig[i].min) || (value > ServerConfig[i].max)) value = atol(ServerConfig[i].defval); serv_printf("%d", value); break; } } serv_puts("000"); SaveExpirePolicyFromHTTP(sitepolicy); SaveExpirePolicyFromHTTP(mailboxespolicy); FreeStrBuf(&WCC->serv_info->serv_default_cal_zone); WCC->serv_info->serv_default_cal_zone = NewStrBufDup(sbstr("c_default_cal_zone")); AppendImportantMessage(_("Your system configuration has been updated."), -1); DeleteHash(&WCC->ServCfg); display_aide_menu(); } void tmplput_servcfg(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; void *vBuf; StrBuf *Buf; if (WCC->is_aide) { if (WCC->ServCfg == NULL) load_siteconfig(); GetHash(WCC->ServCfg, TKEY(0), &vBuf); Buf = (StrBuf*) vBuf; StrBufAppendTemplate(Target, TP, Buf, 1); } } int ConditionalServCfg(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; void *vBuf; StrBuf *Buf; if (WCC->is_aide) { if (WCC->ServCfg == NULL) load_siteconfig(); GetHash(WCC->ServCfg, TKEY(2), &vBuf); if (vBuf == NULL) return 0; Buf = (StrBuf*) vBuf; if (TP->Tokens->nParameters == 3) { return 1; } else if (IS_NUMBER(TP->Tokens->Params[3]->Type)) return (StrTol(Buf) == GetTemplateTokenNumber (Target, TP, 3, 0)); else { const char *pch; long len; GetTemplateTokenString(Target, TP, 3, &pch, &len); return ((len == StrLength(Buf)) && (strcmp(pch, ChrPtr(Buf)) == 0)); } } else return 0; } int ConditionalServCfgCTXStrBuf(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; void *vBuf; StrBuf *Buf; StrBuf *ZoneToCheck = (StrBuf*) CTX(CTX_STRBUF); if ((WCC->is_aide) || (ZoneToCheck == NULL)) { if (WCC->ServCfg == NULL) load_siteconfig(); GetHash(WCC->ServCfg, TKEY(2), &vBuf); if (vBuf == NULL) return 0; Buf = (StrBuf*) vBuf; return strcmp(ChrPtr(Buf), ChrPtr(ZoneToCheck)) == 0; } else return 0; } /*----------------------------------------------------------------------------* * Displaying Logging * *----------------------------------------------------------------------------*/ typedef struct __LogStatusStruct { int Enable; StrBuf *Name; }LogStatusStruct; void DeleteLogStatusStruct(void *v) { LogStatusStruct *Stat = (LogStatusStruct*)v; FreeStrBuf(&Stat->Name); free(Stat); } void tmplput_servcfg_LogName(StrBuf *Target, WCTemplputParams *TP) { LogStatusStruct *Stat = (LogStatusStruct*) CTX(CTX_SRVLOG); StrBufAppendTemplate(Target, TP, Stat->Name, 1); } int ConditionalServCfgThisLogEnabled(StrBuf *Target, WCTemplputParams *TP) { LogStatusStruct *Stat = (LogStatusStruct*) CTX(CTX_SRVLOG); return Stat->Enable; } HashList *iterate_GetSrvLogEnable(StrBuf *Target, WCTemplputParams *TP) { HashList *Hash = NULL; StrBuf *Buf; LogStatusStruct *Stat; const char *Pos; int Done = 0; long len; int num_logs = 0; serv_puts("LOGP"); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { Hash = NewHash(1, Flathash); while (!Done) { len = StrBuf_ServGetln(Buf); if ((len <0) || ((len == 3) && !strcmp(ChrPtr(Buf), "000"))) { Done = 1; break; } Stat = (LogStatusStruct*) malloc (sizeof(LogStatusStruct)); Pos = NULL; Stat->Name = NewStrBufPlain(NULL, len); StrBufExtract_NextToken(Stat->Name, Buf, &Pos, '|'); Stat->Enable = StrBufExtractNext_int(Buf, &Pos, '|'); Put(Hash, IKEY(num_logs), Stat, DeleteLogStatusStruct); num_logs++; } } FreeStrBuf(&Buf); return Hash; } void InitModule_SITECONFIG (void) { RegisterCTX(CTX_SRVLOG); WebcitAddUrlHandler(HKEY("siteconfig"), "", 0, siteconfig, CTX_NONE); RegisterNamespace("SERV:CFG", 1, 2, tmplput_servcfg, NULL, CTX_NONE); RegisterConditional("COND:SERVCFG", 3, ConditionalServCfg, CTX_NONE); RegisterConditional("COND:SERVCFG:CTXSTRBUF", 4, ConditionalServCfgCTXStrBuf, CTX_STRBUF); RegisterIterator("PREF:ZONE", 0, ZoneHash, NULL, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); REGISTERTokenParamDefine(roompolicy); REGISTERTokenParamDefine(floorpolicy); REGISTERTokenParamDefine(sitepolicy); REGISTERTokenParamDefine(mailboxespolicy); REGISTERTokenParamDefine(EXPIRE_NEXTLEVEL); REGISTERTokenParamDefine(EXPIRE_MANUAL); REGISTERTokenParamDefine(EXPIRE_NUMMSGS); REGISTERTokenParamDefine(EXPIRE_AGE); REGISTERTokenParamDefine(CFG_SMTP_FROM_FILTERALL); REGISTERTokenParamDefine(CFG_SMTP_FROM_NOFILTER); REGISTERTokenParamDefine(CFG_SMTP_FROM_CORRECT); REGISTERTokenParamDefine(CFG_SMTP_FROM_REJECT); RegisterConditional("COND:EXPIRE:MODE", 2, ConditionalExpire, CTX_NONE); RegisterNamespace("EXPIRE:VALUE", 1, 2, tmplput_ExpireValue, NULL, CTX_NONE); RegisterNamespace("EXPIRE:MODE", 1, 2, tmplput_ExpireMode, NULL, CTX_NONE); RegisterConditional("COND:SERVCFG:THISLOGENABLE", 4, ConditionalServCfgThisLogEnabled, CTX_SRVLOG); RegisterIterator("SERVCFG:LOGENABLE", 0, NULL, iterate_GetSrvLogEnable, NULL, DeleteHash, CTX_SRVLOG, CTX_NONE, IT_NOFLAG); RegisterNamespace("SERVCFG:LOGNAME", 0, 1, tmplput_servcfg_LogName, NULL, CTX_SRVLOG); } void ServerStartModule_SITECONFIG (void) { LoadZoneFiles(); } void ServerShutdownModule_SITECONFIG (void) { DeleteHash(&ZoneHash); } void SessionDestroyModule_SITECONFIG (wcsession *sess) { DeleteHash(&sess->ServCfg); } webcit-dfsg.orig/selenium/0000755000175000017500000000000013223341037015620 5ustar michaelmichaelwebcit-dfsg.orig/selenium/LoginEditcontactLogout0000644000175000017500000000641713223341037022177 0ustar michaelmichael LoginEditcontactLogout
    LoginEditcontactLogout
    open /
    type uname testuser
    type pname testpass
    select lname label=C
    clickAndWait login_action
    clickAndWait link=Summary
    clickAndWait link=testuser
    clickAndWait //ul[@id='button']/li[2]/a/img
    clickAndWait //div[@id='msg_inner']/table/tbody/tr[1]/td[1]/a
    clickAndWait //div[@id='navbar']/ul/li[3]/a/span
    type subject_id hallo
    clickAndWait send_button
    clickAndWait //ul[@id='button']/li[4]/a/img
    clickAndWait link=17
    clickAndWait link=exact:12:00
    type summary testevent
    type location testcity
    type description testing events
    click tabtd1
    type attendees_box testtest@outgesourced.org
    click tabtd2
    click tabtd1
    clickAndWait save_button
    clickAndWait link=testevent
    clickAndWait save_button
    clickAndWait link=testevent
    clickAndWait delete_button
    clickAndWait //ul[@id='button']/li[5]/a/img
    clickAndWait link=Add new contact
    type firstname testcontact
    type lastname testname
    type primary_inetemail testtest@outgesourced.org
    clickAndWait ok_button
    clickAndWait link=testname, testcontact
    clickAndWait link=[edit]
    type extadr testroad
    clickAndWait ok_button
    click link=Log off
    assertConfirmation Log off now?
    webcit-dfsg.orig/selenium/login_out0000644000175000017500000000174013223341037017544 0ustar michaelmichael login_out
    login_out
    open /
    type uname testuser
    type pname testpass
    clickAndWait login_action
    click link=Abmelden
    assertConfirmation Jetzt abmelden?
    webcit-dfsg.orig/selenium/LoginLogOut0000644000175000017500000000203313223341037017743 0ustar michaelmichael LoginLogOut
    LoginLogOut
    open /
    type uname testuser
    type pname testpass
    select lname label=C
    clickAndWait login_action
    click //ul[@id='button']/li[12]/a/img
    assertConfirmation Log off now?
    webcit-dfsg.orig/selenium/LoginNoteseditingLogout0000644000175000017500000000376113223341037022371 0ustar michaelmichael LoginNoteseditingLogout
    LoginNoteseditingLogout
    open /
    type uname testuser
    type pname testpass
    select lname label=C
    clickAndWait login_action
    clickAndWait //ul[@id='button']/li[6]/a/img
    clickAndWait link=Add new note
    click class=stickynote_body
    type value testnote
    click //input[@value='Save']
    clickAndWait //ul[@id='button']/li[6]/a/img
    click class=stickynote_body
    type value testnote edited
    click //input[@value='Save']
    clickAndWait //ul[@id='button']/li[6]/a/img
    click class=stickynote_body
    type value testnote edited not saving
    click link=Cancel
    clickAndWait //ul[@id='button']/li[12]/a/img
    assertConfirmation Log off now?
    webcit-dfsg.orig/selenium/webcit0000644000175000017500000000146313223341037017024 0ustar michaelmichael Test Suite
    Test Suite
    LoginLogOut
    LoginEditcontactLogout
    LoginNoteseditingLogout
    Tasks
    ChangeIdentity
    webcit-dfsg.orig/selenium/ChangeIdentity0000644000175000017500000000354513223341037020451 0ustar michaelmichael ChangeIdentity
    ChangeIdentity
    open /
    type uname testuser
    type pname testpass
    select lname label=C
    clickAndWait login_action
    clickAndWait //ul[@id='button']/li[9]/a/img
    clickAndWait link=(edit)
    type fake_roomname test fake room
    click change_room_name_button
    clickAndWait //ul[@id='button']/li[9]/a/img
    clickAndWait link=(edit)
    type fake_hostname test fake host
    clickAndWait change_host_name_button
    clickAndWait //ul[@id='button']/li[9]/a/img
    clickAndWait link=(edit)
    clickAndWait cancel_button
    clickAndWait //ul[@id='button']/li[12]/a/img
    assertConfirmation Log off now?
    webcit-dfsg.orig/selenium/Tasks0000644000175000017500000000415013223341037016630 0ustar michaelmichael Tasks
    Tasks
    open /
    type uname testuser
    type pname testpass
    select lname label=C
    clickAndWait login_action
    clickAndWait //ul[@id='button']/li[7]/a/img
    clickAndWait //div[@id='navbar']/ul/li[3]/a/span
    clickAndWait link=Add new task
    type summary testtask
    type category testcategory
    type description test description
    clickAndWait save_button
    clickAndWait link=testtask
    type description test description edited
    clickAndWait save_button
    clickAndWait link=testtask
    type description test description edited cancel
    clickAndWait cancel_button
    clickAndWait link=testtask
    clickAndWait delete_button
    clickAndWait //ul[@id='button']/li[12]/a/img
    assertConfirmation Log off now?
    webcit-dfsg.orig/autom4te.cache/0000755000175000017500000000000013223341055016603 5ustar michaelmichaelwebcit-dfsg.orig/autom4te.cache/traces.00000644000175000017500000011473713223341055020162 0ustar michaelmichaelm4trace:aclocal.m4:106: -1- m4_include([acinclude.m4]) m4trace:configure.ac:3: -1- AC_INIT([WebCit], [917], [http://uncensored.citadel.org]) m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:3: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:3: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) m4trace:configure.ac:3: -1- m4_pattern_allow([^AS_FLAGS$]) m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?m4_]) m4trace:configure.ac:3: -1- m4_pattern_forbid([^dnl$]) m4trace:configure.ac:3: -1- m4_pattern_forbid([^_?AS_]) m4trace:configure.ac:3: -1- AC_SUBST([SHELL]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([SHELL]) m4trace:configure.ac:3: -1- m4_pattern_allow([^SHELL$]) m4trace:configure.ac:3: -1- AC_SUBST([PATH_SEPARATOR]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PATH_SEPARATOR$]) m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_NAME]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_STRING]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:3: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([PACKAGE_URL]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:3: -1- AC_SUBST([exec_prefix], [NONE]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([exec_prefix]) m4trace:configure.ac:3: -1- m4_pattern_allow([^exec_prefix$]) m4trace:configure.ac:3: -1- AC_SUBST([prefix], [NONE]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([prefix]) m4trace:configure.ac:3: -1- m4_pattern_allow([^prefix$]) m4trace:configure.ac:3: -1- AC_SUBST([program_transform_name], [s,x,x,]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([program_transform_name]) m4trace:configure.ac:3: -1- m4_pattern_allow([^program_transform_name$]) m4trace:configure.ac:3: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([bindir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^bindir$]) m4trace:configure.ac:3: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([sbindir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^sbindir$]) m4trace:configure.ac:3: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([libexecdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^libexecdir$]) m4trace:configure.ac:3: -1- AC_SUBST([datarootdir], ['${prefix}/share']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([datarootdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^datarootdir$]) m4trace:configure.ac:3: -1- AC_SUBST([datadir], ['${datarootdir}']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([datadir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^datadir$]) m4trace:configure.ac:3: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([sysconfdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^sysconfdir$]) m4trace:configure.ac:3: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([sharedstatedir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:3: -1- AC_SUBST([localstatedir], ['${prefix}/var']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([localstatedir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^localstatedir$]) m4trace:configure.ac:3: -1- AC_SUBST([includedir], ['${prefix}/include']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([includedir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^includedir$]) m4trace:configure.ac:3: -1- AC_SUBST([oldincludedir], ['/usr/include']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([oldincludedir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^oldincludedir$]) m4trace:configure.ac:3: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], ['${datarootdir}/doc/${PACKAGE_TARNAME}'], ['${datarootdir}/doc/${PACKAGE}'])]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([docdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^docdir$]) m4trace:configure.ac:3: -1- AC_SUBST([infodir], ['${datarootdir}/info']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([infodir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^infodir$]) m4trace:configure.ac:3: -1- AC_SUBST([htmldir], ['${docdir}']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([htmldir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^htmldir$]) m4trace:configure.ac:3: -1- AC_SUBST([dvidir], ['${docdir}']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([dvidir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^dvidir$]) m4trace:configure.ac:3: -1- AC_SUBST([pdfdir], ['${docdir}']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([pdfdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^pdfdir$]) m4trace:configure.ac:3: -1- AC_SUBST([psdir], ['${docdir}']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([psdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^psdir$]) m4trace:configure.ac:3: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([libdir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^libdir$]) m4trace:configure.ac:3: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([localedir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^localedir$]) m4trace:configure.ac:3: -1- AC_SUBST([mandir], ['${datarootdir}/man']) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([mandir]) m4trace:configure.ac:3: -1- m4_pattern_allow([^mandir$]) m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ @%:@undef PACKAGE_NAME]) m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ @%:@undef PACKAGE_TARNAME]) m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ @%:@undef PACKAGE_VERSION]) m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ @%:@undef PACKAGE_STRING]) m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ @%:@undef PACKAGE_BUGREPORT]) m4trace:configure.ac:3: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) m4trace:configure.ac:3: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:3: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ @%:@undef PACKAGE_URL]) m4trace:configure.ac:3: -1- AC_SUBST([DEFS]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([DEFS]) m4trace:configure.ac:3: -1- m4_pattern_allow([^DEFS$]) m4trace:configure.ac:3: -1- AC_SUBST([ECHO_C]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ECHO_C]) m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_C$]) m4trace:configure.ac:3: -1- AC_SUBST([ECHO_N]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ECHO_N]) m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_N$]) m4trace:configure.ac:3: -1- AC_SUBST([ECHO_T]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([ECHO_T]) m4trace:configure.ac:3: -1- m4_pattern_allow([^ECHO_T$]) m4trace:configure.ac:3: -1- AC_SUBST([LIBS]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:3: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:3: -1- AC_SUBST([build_alias]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([build_alias]) m4trace:configure.ac:3: -1- m4_pattern_allow([^build_alias$]) m4trace:configure.ac:3: -1- AC_SUBST([host_alias]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([host_alias]) m4trace:configure.ac:3: -1- m4_pattern_allow([^host_alias$]) m4trace:configure.ac:3: -1- AC_SUBST([target_alias]) m4trace:configure.ac:3: -1- AC_SUBST_TRACE([target_alias]) m4trace:configure.ac:3: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:5: -1- AC_SUBST([PROG_SUBDIRS]) m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PROG_SUBDIRS]) m4trace:configure.ac:5: -1- m4_pattern_allow([^PROG_SUBDIRS$]) m4trace:configure.ac:6: -1- AC_DEFINE_TRACE_LITERAL([PROG_SUBDIRS]) m4trace:configure.ac:6: -1- m4_pattern_allow([^PROG_SUBDIRS$]) m4trace:configure.ac:6: -1- AH_OUTPUT([PROG_SUBDIRS], [/* Program dirs */ @%:@undef PROG_SUBDIRS]) m4trace:configure.ac:7: -1- AC_CANONICAL_HOST m4trace:configure.ac:7: -1- AC_CANONICAL_BUILD m4trace:configure.ac:7: -1- AC_REQUIRE_AUX_FILE([config.sub]) m4trace:configure.ac:7: -1- AC_REQUIRE_AUX_FILE([config.guess]) m4trace:configure.ac:7: -1- AC_SUBST([build], [$ac_cv_build]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([build]) m4trace:configure.ac:7: -1- m4_pattern_allow([^build$]) m4trace:configure.ac:7: -1- AC_SUBST([build_cpu], [$[1]]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([build_cpu]) m4trace:configure.ac:7: -1- m4_pattern_allow([^build_cpu$]) m4trace:configure.ac:7: -1- AC_SUBST([build_vendor], [$[2]]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([build_vendor]) m4trace:configure.ac:7: -1- m4_pattern_allow([^build_vendor$]) m4trace:configure.ac:7: -1- AC_SUBST([build_os]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([build_os]) m4trace:configure.ac:7: -1- m4_pattern_allow([^build_os$]) m4trace:configure.ac:7: -1- AC_SUBST([host], [$ac_cv_host]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([host]) m4trace:configure.ac:7: -1- m4_pattern_allow([^host$]) m4trace:configure.ac:7: -1- AC_SUBST([host_cpu], [$[1]]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([host_cpu]) m4trace:configure.ac:7: -1- m4_pattern_allow([^host_cpu$]) m4trace:configure.ac:7: -1- AC_SUBST([host_vendor], [$[2]]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([host_vendor]) m4trace:configure.ac:7: -1- m4_pattern_allow([^host_vendor$]) m4trace:configure.ac:7: -1- AC_SUBST([host_os]) m4trace:configure.ac:7: -1- AC_SUBST_TRACE([host_os]) m4trace:configure.ac:7: -1- m4_pattern_allow([^host_os$]) m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([install-sh]) m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_PROGRAM]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_SCRIPT]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_DATA]) m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_DATA]) m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_DATA$]) m4trace:configure.ac:10: -1- AC_REQUIRE_AUX_FILE([missing]) m4trace:configure.ac:10: -1- AC_SUBST([AUTOCONF]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AUTOCONF]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOCONF$]) m4trace:configure.ac:11: -1- AC_SUBST([ACLOCAL]) m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ACLOCAL]) m4trace:configure.ac:11: -1- m4_pattern_allow([^ACLOCAL$]) m4trace:configure.ac:14: -1- _m4_warn([obsolete], [The macro `AC_GNU_SOURCE' is obsolete. You should run autoupdate.], [../../lib/autoconf/specific.m4:314: AC_GNU_SOURCE is expanded from... configure.ac:14: the top level]) m4trace:configure.ac:14: -1- AC_SUBST([CC]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:14: -1- AC_SUBST([CFLAGS]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CFLAGS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:14: -1- AC_SUBST([LDFLAGS]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LDFLAGS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:14: -1- AC_SUBST([LIBS]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:14: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:14: -1- AC_SUBST([CC]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:14: -1- AC_SUBST([CC]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:14: -1- AC_SUBST([CC]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:14: -1- AC_SUBST([CC]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:14: -1- AC_SUBST([ac_ct_CC]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([ac_ct_CC]) m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CC$]) m4trace:configure.ac:14: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([EXEEXT]) m4trace:configure.ac:14: -1- m4_pattern_allow([^EXEEXT$]) m4trace:configure.ac:14: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([OBJEXT]) m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJEXT$]) m4trace:configure.ac:14: -1- AC_SUBST([CPP]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPP]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:14: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:14: -1- AC_SUBST([CPP]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPP]) m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:14: -1- AC_SUBST([GREP]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([GREP]) m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:14: -1- AC_SUBST([EGREP]) m4trace:configure.ac:14: -1- AC_SUBST_TRACE([EGREP]) m4trace:configure.ac:14: -1- m4_pattern_allow([^EGREP$]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^STDC_HEADERS$]) m4trace:configure.ac:14: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ @%:@undef STDC_HEADERS]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_TYPES_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_STAT_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDLIB_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STRING_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_MEMORY_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STRINGS_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_INTTYPES_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDINT_H]) m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_UNISTD_H]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_POSIX_SOURCE$]) m4trace:configure.ac:14: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ @%:@undef _POSIX_SOURCE]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) m4trace:configure.ac:14: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ @%:@undef _POSIX_1_SOURCE]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_MINIX$]) m4trace:configure.ac:14: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ @%:@undef _MINIX]) m4trace:configure.ac:14: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif ]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__]) m4trace:configure.ac:14: -1- m4_pattern_allow([^__EXTENSIONS__$]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_ALL_SOURCE$]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_GNU_SOURCE$]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE]) m4trace:configure.ac:14: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) m4trace:configure.ac:16: -1- AC_SUBST([SED]) m4trace:configure.ac:16: -1- AC_SUBST_TRACE([SED]) m4trace:configure.ac:16: -1- m4_pattern_allow([^SED$]) m4trace:configure.ac:19: -1- AC_DEFINE_TRACE_LITERAL([WEBCITDIR]) m4trace:configure.ac:19: -1- m4_pattern_allow([^WEBCITDIR$]) m4trace:configure.ac:19: -1- AH_OUTPUT([WEBCITDIR], [/* define this to the Citadel home directory */ @%:@undef WEBCITDIR]) m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([WEBCITDIR]) m4trace:configure.ac:22: -1- m4_pattern_allow([^WEBCITDIR$]) m4trace:configure.ac:22: -1- AH_OUTPUT([WEBCITDIR], [/* define this to the Citadel home directory */ @%:@undef WEBCITDIR]) m4trace:configure.ac:56: -1- AC_SUBST([PTHREAD_DEFS]) m4trace:configure.ac:56: -1- AC_SUBST_TRACE([PTHREAD_DEFS]) m4trace:configure.ac:56: -1- m4_pattern_allow([^PTHREAD_DEFS$]) m4trace:configure.ac:59: -1- AC_SUBST([CC]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:59: -1- AC_SUBST([CFLAGS]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CFLAGS]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:59: -1- AC_SUBST([LDFLAGS]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([LDFLAGS]) m4trace:configure.ac:59: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:59: -1- AC_SUBST([LIBS]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:59: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:59: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:59: -1- AC_SUBST([CC]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:59: -1- AC_SUBST([CC]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:59: -1- AC_SUBST([CC]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:59: -1- AC_SUBST([CC]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:59: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:59: -1- AC_SUBST([ac_ct_CC]) m4trace:configure.ac:59: -1- AC_SUBST_TRACE([ac_ct_CC]) m4trace:configure.ac:59: -1- m4_pattern_allow([^ac_ct_CC$]) m4trace:configure.ac:80: -1- AH_OUTPUT([HAVE_LIBPTHREAD], [/* Define to 1 if you have the `pthread\' library (-lpthread). */ @%:@undef HAVE_LIBPTHREAD]) m4trace:configure.ac:80: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBPTHREAD]) m4trace:configure.ac:80: -1- m4_pattern_allow([^HAVE_LIBPTHREAD$]) m4trace:configure.ac:81: -1- AH_OUTPUT([HAVE_LIBPTHREADS], [/* Define to 1 if you have the `pthreads\' library (-lpthreads). */ @%:@undef HAVE_LIBPTHREADS]) m4trace:configure.ac:81: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBPTHREADS]) m4trace:configure.ac:81: -1- m4_pattern_allow([^HAVE_LIBPTHREADS$]) m4trace:configure.ac:87: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) m4trace:configure.ac:87: -1- m4_pattern_allow([^STDC_HEADERS$]) m4trace:configure.ac:87: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ @%:@undef STDC_HEADERS]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_CRYPT], [/* Define to 1 if you have the `crypt\' function. */ @%:@undef HAVE_CRYPT]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ @%:@undef HAVE_GETHOSTBYNAME]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_CONNECT], [/* Define to 1 if you have the `connect\' function. */ @%:@undef HAVE_CONNECT]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_FLOCK], [/* Define to 1 if you have the `flock\' function. */ @%:@undef HAVE_FLOCK]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_GETPWNAM_R], [/* Define to 1 if you have the `getpwnam_r\' function. */ @%:@undef HAVE_GETPWNAM_R]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_GETPWUID_R], [/* Define to 1 if you have the `getpwuid_r\' function. */ @%:@undef HAVE_GETPWUID_R]) m4trace:configure.ac:90: -1- AH_OUTPUT([HAVE_GETLOADAVG], [/* Define to 1 if you have the `getloadavg\' function. */ @%:@undef HAVE_GETLOADAVG]) m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:2614: AC_TRY_COMPILE is expanded from... ../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... ../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... configure.ac:91: the top level]) m4trace:configure.ac:108: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS_GETPWUID]) m4trace:configure.ac:108: -1- m4_pattern_allow([^SOLARIS_GETPWUID$]) m4trace:configure.ac:108: -1- AH_OUTPUT([SOLARIS_GETPWUID], [/* do we need to use solaris call syntax? */ @%:@undef SOLARIS_GETPWUID]) m4trace:configure.ac:109: -1- AC_DEFINE_TRACE_LITERAL([SOLARIS_LOCALTIME_R]) m4trace:configure.ac:109: -1- m4_pattern_allow([^SOLARIS_LOCALTIME_R$]) m4trace:configure.ac:109: -1- AH_OUTPUT([SOLARIS_LOCALTIME_R], [/* do we need to use soralis call syntax? */ @%:@undef SOLARIS_LOCALTIME_R]) m4trace:configure.ac:110: -1- AC_DEFINE_TRACE_LITERAL([F_UID_T]) m4trace:configure.ac:110: -1- m4_pattern_allow([^F_UID_T$]) m4trace:configure.ac:110: -1- AH_OUTPUT([F_UID_T], [/* whats the matching format string for uid_t? */ @%:@undef F_UID_T]) m4trace:configure.ac:111: -1- AC_DEFINE_TRACE_LITERAL([F_PID_T]) m4trace:configure.ac:111: -1- m4_pattern_allow([^F_PID_T$]) m4trace:configure.ac:111: -1- AH_OUTPUT([F_PID_T], [/* whats the matching format string for pid_t? */ @%:@undef F_PID_T]) m4trace:configure.ac:112: -1- AC_DEFINE_TRACE_LITERAL([F_XPID_T]) m4trace:configure.ac:112: -1- m4_pattern_allow([^F_XPID_T$]) m4trace:configure.ac:112: -1- AH_OUTPUT([F_XPID_T], [/* whats the matching format string for xpid_t? */ @%:@undef F_XPID_T]) m4trace:configure.ac:114: -1- AC_DEFINE_TRACE_LITERAL([F_UID_T]) m4trace:configure.ac:114: -1- m4_pattern_allow([^F_UID_T$]) m4trace:configure.ac:114: -1- AH_OUTPUT([F_UID_T], [/* whats the matching format string for uid_t? */ @%:@undef F_UID_T]) m4trace:configure.ac:115: -1- AC_DEFINE_TRACE_LITERAL([F_PID_T]) m4trace:configure.ac:115: -1- m4_pattern_allow([^F_PID_T$]) m4trace:configure.ac:115: -1- AH_OUTPUT([F_PID_T], [/* whats the matching format string for pid_t? */ @%:@undef F_PID_T]) m4trace:configure.ac:116: -1- AC_DEFINE_TRACE_LITERAL([F_XPID_T]) m4trace:configure.ac:116: -1- m4_pattern_allow([^F_XPID_T$]) m4trace:configure.ac:116: -1- AH_OUTPUT([F_XPID_T], [/* whats the matching format string for xpid_t? */ @%:@undef F_XPID_T]) m4trace:configure.ac:122: -1- AC_DEFINE_TRACE_LITERAL([const]) m4trace:configure.ac:122: -1- m4_pattern_allow([^const$]) m4trace:configure.ac:122: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ @%:@undef const]) m4trace:configure.ac:123: -1- AC_DEFINE_TRACE_LITERAL([off_t]) m4trace:configure.ac:123: -1- m4_pattern_allow([^off_t$]) m4trace:configure.ac:123: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if does not define. */ @%:@undef off_t]) m4trace:configure.ac:124: -1- AC_DEFINE_TRACE_LITERAL([size_t]) m4trace:configure.ac:124: -1- m4_pattern_allow([^size_t$]) m4trace:configure.ac:124: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ @%:@undef size_t]) m4trace:configure.ac:126: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) m4trace:configure.ac:126: -1- m4_pattern_allow([^SIZEOF_CHAR$]) m4trace:configure.ac:126: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of `char\', as computed by sizeof. */ @%:@undef SIZEOF_CHAR]) m4trace:configure.ac:127: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) m4trace:configure.ac:127: -1- m4_pattern_allow([^SIZEOF_SHORT$]) m4trace:configure.ac:127: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of `short\', as computed by sizeof. */ @%:@undef SIZEOF_SHORT]) m4trace:configure.ac:128: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) m4trace:configure.ac:128: -1- m4_pattern_allow([^SIZEOF_INT$]) m4trace:configure.ac:128: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of `int\', as computed by sizeof. */ @%:@undef SIZEOF_INT]) m4trace:configure.ac:129: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) m4trace:configure.ac:129: -1- m4_pattern_allow([^SIZEOF_LONG$]) m4trace:configure.ac:129: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of `long\', as computed by sizeof. */ @%:@undef SIZEOF_LONG]) m4trace:configure.ac:130: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_UNSIGNED_INT]) m4trace:configure.ac:130: -1- m4_pattern_allow([^SIZEOF_LONG_UNSIGNED_INT$]) m4trace:configure.ac:130: -1- AH_OUTPUT([SIZEOF_LONG_UNSIGNED_INT], [/* The size of `long unsigned int\', as computed by sizeof. */ @%:@undef SIZEOF_LONG_UNSIGNED_INT]) m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SIZE_T]) m4trace:configure.ac:131: -1- m4_pattern_allow([^SIZEOF_SIZE_T$]) m4trace:configure.ac:131: -1- AH_OUTPUT([SIZEOF_SIZE_T], [/* The size of `size_t\', as computed by sizeof. */ @%:@undef SIZEOF_SIZE_T]) m4trace:configure.ac:135: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete. You should run autoupdate.], [../../lib/autoconf/types.m4:746: AC_TYPE_SIGNAL is expanded from... configure.ac:135: the top level]) m4trace:configure.ac:135: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) m4trace:configure.ac:135: -1- m4_pattern_allow([^RETSIGTYPE$]) m4trace:configure.ac:135: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ @%:@undef RETSIGTYPE]) m4trace:configure.ac:137: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */ @%:@undef HAVE_SNPRINTF]) m4trace:configure.ac:137: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF]) m4trace:configure.ac:137: -1- m4_pattern_allow([^HAVE_SNPRINTF$]) m4trace:configure.ac:137: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS snprintf.$ac_objext"]) m4trace:configure.ac:137: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:137: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:137: -1- AC_LIBSOURCE([snprintf.c]) m4trace:configure.ac:138: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_TESTS]) m4trace:configure.ac:138: -1- m4_pattern_allow([^ENABLE_TESTS$]) m4trace:configure.ac:138: -1- AH_OUTPUT([ENABLE_TESTS], [/* whether we should compile the test-suite */ @%:@undef ENABLE_TESTS]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_FCNTL_H]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_LIMITS_H]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_UNISTD_H]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_ICONV_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_ICONV_H]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_XLOCALE_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_XLOCALE_H]) m4trace:configure.ac:167: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:2764: AC_TRY_RUN is expanded from... configure.ac:167: the top level]) m4trace:configure.ac:167: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from... ../../lib/autoconf/general.m4:2764: AC_TRY_RUN is expanded from... configure.ac:167: the top level]) m4trace:configure.ac:191: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:2764: AC_TRY_RUN is expanded from... configure.ac:191: the top level]) m4trace:configure.ac:191: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from... ../../lib/autoconf/general.m4:2764: AC_TRY_RUN is expanded from... configure.ac:191: the top level]) m4trace:configure.ac:212: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) m4trace:configure.ac:212: -1- m4_pattern_allow([^HAVE_ICONV$]) m4trace:configure.ac:212: -1- AH_OUTPUT([HAVE_ICONV], [/* whether we have iconv for charset conversion */ @%:@undef HAVE_ICONV]) m4trace:configure.ac:238: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MARKDOWN]) m4trace:configure.ac:238: -1- m4_pattern_allow([^HAVE_MARKDOWN$]) m4trace:configure.ac:238: -1- AH_OUTPUT([HAVE_MARKDOWN], [/* whether we have markdown message rendering */ @%:@undef HAVE_MARKDOWN]) m4trace:configure.ac:263: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:2614: AC_TRY_COMPILE is expanded from... configure.ac:263: the top level]) m4trace:configure.ac:263: -1- AC_DEFINE_TRACE_LITERAL([UNDEF_MEMCPY]) m4trace:configure.ac:263: -1- m4_pattern_allow([^UNDEF_MEMCPY$]) m4trace:configure.ac:263: -1- AH_OUTPUT([UNDEF_MEMCPY], [/* whether we need to undefine memcpy */ @%:@undef UNDEF_MEMCPY]) m4trace:configure.ac:319: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [../../lib/autoconf/general.m4:2764: AC_TRY_RUN is expanded from... ../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... ../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... configure.ac:319: the top level]) m4trace:configure.ac:319: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [../../lib/autoconf/general.m4:2748: AC_RUN_IFELSE is expanded from... ../../lib/autoconf/general.m4:2764: AC_TRY_RUN is expanded from... ../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from... ../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from... configure.ac:319: the top level]) m4trace:configure.ac:392: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OPENSSL]) m4trace:configure.ac:392: -1- m4_pattern_allow([^HAVE_OPENSSL$]) m4trace:configure.ac:392: -1- AH_OUTPUT([HAVE_OPENSSL], [/* whethe we have openssl */ @%:@undef HAVE_OPENSSL]) m4trace:configure.ac:424: -1- AC_SUBST([MAKE_SSL_DIR]) m4trace:configure.ac:424: -1- AC_SUBST_TRACE([MAKE_SSL_DIR]) m4trace:configure.ac:424: -1- m4_pattern_allow([^MAKE_SSL_DIR$]) m4trace:configure.ac:437: -1- AC_DEFINE_TRACE_LITERAL([SSL_DIR]) m4trace:configure.ac:437: -1- m4_pattern_allow([^SSL_DIR$]) m4trace:configure.ac:437: -1- AH_OUTPUT([SSL_DIR], [/* were should we put our keys? */ @%:@undef SSL_DIR]) m4trace:configure.ac:442: -1- AH_OUTPUT([HAVE_STRFTIME_L], [/* Define to 1 if you have the `strftime_l\' function. */ @%:@undef HAVE_STRFTIME_L]) m4trace:configure.ac:442: -1- AH_OUTPUT([HAVE_USELOCALE], [/* Define to 1 if you have the `uselocale\' function. */ @%:@undef HAVE_USELOCALE]) m4trace:configure.ac:442: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define to 1 if you have the `gettext\' function. */ @%:@undef HAVE_GETTEXT]) m4trace:configure.ac:445: -1- AC_SUBST([ok_xgettext]) m4trace:configure.ac:445: -1- AC_SUBST_TRACE([ok_xgettext]) m4trace:configure.ac:445: -1- m4_pattern_allow([^ok_xgettext$]) m4trace:configure.ac:450: -1- AC_SUBST([ok_msgmerge]) m4trace:configure.ac:450: -1- AC_SUBST_TRACE([ok_msgmerge]) m4trace:configure.ac:450: -1- m4_pattern_allow([^ok_msgmerge$]) m4trace:configure.ac:455: -1- AC_SUBST([ok_msgfmt]) m4trace:configure.ac:455: -1- AC_SUBST_TRACE([ok_msgfmt]) m4trace:configure.ac:455: -1- m4_pattern_allow([^ok_msgfmt$]) m4trace:configure.ac:461: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) m4trace:configure.ac:461: -1- m4_pattern_allow([^ENABLE_NLS$]) m4trace:configure.ac:461: -1- AH_OUTPUT([ENABLE_NLS], [/* whether we have NLS support */ @%:@undef ENABLE_NLS]) m4trace:configure.ac:467: -1- AC_SUBST([SETUP_LIBS]) m4trace:configure.ac:467: -1- AC_SUBST_TRACE([SETUP_LIBS]) m4trace:configure.ac:467: -1- m4_pattern_allow([^SETUP_LIBS$]) m4trace:configure.ac:480: -1- AH_OUTPUT([HAVE_BACKTRACE], [/* Define to 1 if you have the `backtrace\' function. */ @%:@undef HAVE_BACKTRACE]) m4trace:configure.ac:480: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BACKTRACE]) m4trace:configure.ac:480: -1- m4_pattern_allow([^HAVE_BACKTRACE$]) m4trace:configure.ac:516: -1- AC_DEFINE_TRACE_LITERAL([LOCALEDIR]) m4trace:configure.ac:516: -1- m4_pattern_allow([^LOCALEDIR$]) m4trace:configure.ac:516: -1- AH_OUTPUT([LOCALEDIR], [/* where to find our pot files */ @%:@undef LOCALEDIR]) m4trace:configure.ac:518: -1- AC_SUBST([LOCALEDIR]) m4trace:configure.ac:518: -1- AC_SUBST_TRACE([LOCALEDIR]) m4trace:configure.ac:518: -1- m4_pattern_allow([^LOCALEDIR$]) m4trace:configure.ac:528: -1- AC_DEFINE_TRACE_LITERAL([WWWDIR]) m4trace:configure.ac:528: -1- m4_pattern_allow([^WWWDIR$]) m4trace:configure.ac:528: -1- AH_OUTPUT([WWWDIR], [/* where to find our templates and pics */ @%:@undef WWWDIR]) m4trace:configure.ac:530: -1- AC_SUBST([WWWDIR]) m4trace:configure.ac:530: -1- AC_SUBST_TRACE([WWWDIR]) m4trace:configure.ac:530: -1- m4_pattern_allow([^WWWDIR$]) m4trace:configure.ac:534: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RUN_DIR]) m4trace:configure.ac:534: -1- m4_pattern_allow([^HAVE_RUN_DIR$]) m4trace:configure.ac:534: -1- AH_OUTPUT([HAVE_RUN_DIR], [/* should we put our non volatile files elsewhere? */ @%:@undef HAVE_RUN_DIR]) m4trace:configure.ac:534: -1- AC_SUBST([MAKE_RUN_DIR]) m4trace:configure.ac:534: -1- AC_SUBST_TRACE([MAKE_RUN_DIR]) m4trace:configure.ac:534: -1- m4_pattern_allow([^MAKE_RUN_DIR$]) m4trace:configure.ac:544: -1- AC_DEFINE_TRACE_LITERAL([RUNDIR]) m4trace:configure.ac:544: -1- m4_pattern_allow([^RUNDIR$]) m4trace:configure.ac:544: -1- AH_OUTPUT([RUNDIR], [/* define, where the config should go in unix style */ @%:@undef RUNDIR]) m4trace:configure.ac:554: -1- AC_DEFINE_TRACE_LITERAL([DATADIR]) m4trace:configure.ac:554: -1- m4_pattern_allow([^DATADIR$]) m4trace:configure.ac:554: -1- AH_OUTPUT([DATADIR], [/* define, if the user suplied a data-directory to use. */ @%:@undef DATADIR]) m4trace:configure.ac:564: -1- AC_DEFINE_TRACE_LITERAL([EDITORDIR]) m4trace:configure.ac:564: -1- m4_pattern_allow([^EDITORDIR$]) m4trace:configure.ac:564: -1- AH_OUTPUT([EDITORDIR], [/* where to find our mail editor */ @%:@undef EDITORDIR]) m4trace:configure.ac:573: -1- AC_DEFINE_TRACE_LITERAL([MARKDOWNEDITORDIR]) m4trace:configure.ac:573: -1- m4_pattern_allow([^MARKDOWNEDITORDIR$]) m4trace:configure.ac:573: -1- AH_OUTPUT([MARKDOWNEDITORDIR], [/* where to find our markdown editor */ @%:@undef MARKDOWNEDITORDIR]) m4trace:configure.ac:583: -1- AC_DEFINE_TRACE_LITERAL([ETCDIR]) m4trace:configure.ac:583: -1- m4_pattern_allow([^ETCDIR$]) m4trace:configure.ac:583: -1- AH_OUTPUT([ETCDIR], [/* where to find our configs */ @%:@undef ETCDIR]) m4trace:configure.ac:585: -1- AC_SUBST([ETCDIR]) m4trace:configure.ac:585: -1- AC_SUBST_TRACE([ETCDIR]) m4trace:configure.ac:585: -1- m4_pattern_allow([^ETCDIR$]) m4trace:configure.ac:592: -1- AC_CONFIG_HEADERS([sysdep.h]) m4trace:configure.ac:593: -1- AC_CONFIG_FILES([Makefile po/webcit/Makefile tests/Makefile]) m4trace:configure.ac:593: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. You should run autoupdate.], []) m4trace:configure.ac:593: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:593: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:593: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([LTLIBOBJS]) m4trace:configure.ac:593: -1- m4_pattern_allow([^LTLIBOBJS$]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([top_builddir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([top_build_prefix]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([srcdir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([abs_srcdir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([top_srcdir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([abs_top_srcdir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([builddir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([abs_builddir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([abs_top_builddir]) m4trace:configure.ac:593: -1- AC_SUBST_TRACE([INSTALL]) webcit-dfsg.orig/autom4te.cache/requests0000644000175000017500000000651113223341055020404 0ustar michaelmichael# This file was generated by Autom4te Sun Aug 31 17:43:43 UTC 2014. # It contains the lists of macros which have been traced. # It can be safely removed. @request = ( bless( [ '0', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', 'configure.ac' ], { '_LT_AC_TAGCONFIG' => 1, 'AM_PROG_F77_C_O' => 1, 'AC_INIT' => 1, 'm4_pattern_forbid' => 1, '_AM_COND_IF' => 1, 'AC_CANONICAL_TARGET' => 1, 'AC_SUBST' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, 'AC_FC_SRCEXT' => 1, 'AC_CANONICAL_HOST' => 1, 'AC_PROG_LIBTOOL' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AM_PATH_GUILE' => 1, 'AC_CONFIG_SUBDIRS' => 1, 'AM_AUTOMAKE_VERSION' => 1, 'LT_CONFIG_LTDL_DIR' => 1, 'AC_REQUIRE_AUX_FILE' => 1, 'AC_CONFIG_LINKS' => 1, 'm4_sinclude' => 1, 'LT_SUPPORTED_TAG' => 1, 'AM_MAINTAINER_MODE' => 1, 'AM_NLS' => 1, 'AC_FC_PP_DEFINE' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, 'AM_MAKEFILE_INCLUDE' => 1, '_m4_warn' => 1, 'AM_PROG_CXX_C_O' => 1, '_AM_COND_ENDIF' => 1, '_AM_MAKEFILE_INCLUDE' => 1, 'AM_ENABLE_MULTILIB' => 1, 'AM_SILENT_RULES' => 1, 'AM_PROG_MOC' => 1, 'AC_CONFIG_FILES' => 1, 'include' => 1, 'LT_INIT' => 1, 'AM_PROG_AR' => 1, 'AM_GNU_GETTEXT' => 1, 'AC_LIBSOURCE' => 1, 'AM_PROG_FC_C_O' => 1, 'AC_CANONICAL_BUILD' => 1, 'AC_FC_FREEFORM' => 1, 'AH_OUTPUT' => 1, 'AC_FC_PP_SRCEXT' => 1, '_AM_SUBST_NOTMAKE' => 1, 'AC_CONFIG_AUX_DIR' => 1, 'sinclude' => 1, 'AM_PROG_CC_C_O' => 1, 'm4_pattern_allow' => 1, 'AM_XGETTEXT_OPTION' => 1, 'AC_CANONICAL_SYSTEM' => 1, 'AM_CONDITIONAL' => 1, 'AC_CONFIG_HEADERS' => 1, 'AM_PROG_LIBTOOL' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, 'AM_POT_TOOLS' => 1, 'm4_include' => 1, '_AM_COND_ELSE' => 1, 'AC_SUBST_TRACE' => 1 } ], 'Autom4te::Request' ) ); webcit-dfsg.orig/autom4te.cache/output.00000644000175000017500000063501613223341055020237 0ustar michaelmichael@%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. @%:@ Generated by GNU Autoconf 2.69 for WebCit 917. @%:@ @%:@ Report bugs to . @%:@ @%:@ @%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @%:@ @%:@ @%:@ This configure script is free software; the Free Software Foundation @%:@ gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in @%:@( *posix*) : set -o posix ;; @%:@( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in @%:@( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in @%:@(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in @%:@( *posix*) : set -o posix ;; @%:@( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in @%:@( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://uncensored.citadel.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## @%:@ as_fn_unset VAR @%:@ --------------- @%:@ Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset @%:@ as_fn_set_status STATUS @%:@ ----------------------- @%:@ Set @S|@? to STATUS, without forking. as_fn_set_status () { return $1 } @%:@ as_fn_set_status @%:@ as_fn_exit STATUS @%:@ ----------------- @%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } @%:@ as_fn_exit @%:@ as_fn_mkdir_p @%:@ ------------- @%:@ Create "@S|@as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } @%:@ as_fn_mkdir_p @%:@ as_fn_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_p @%:@ as_fn_append VAR VALUE @%:@ ---------------------- @%:@ Append the text in VALUE to the end of the definition contained in VAR. Take @%:@ advantage of any shell optimizations that allow amortized linear growth over @%:@ repeated appends, instead of the typical quadratic growth present in naive @%:@ implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append @%:@ as_fn_arith ARG... @%:@ ------------------ @%:@ Perform arithmetic evaluation on the ARGs, and store the result in the @%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith @%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are @%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the @%:@ script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } @%:@ as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in @%:@((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIB@&t@OBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='WebCit' PACKAGE_TARNAME='webcit' PACKAGE_VERSION='917' PACKAGE_STRING='WebCit 917' PACKAGE_BUGREPORT='http://uncensored.citadel.org' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_default_prefix=/usr/local/webcit ac_subst_vars='LTLIBOBJS ETCDIR MAKE_RUN_DIR WWWDIR LOCALEDIR SETUP_LIBS ok_msgfmt ok_msgmerge ok_xgettext MAKE_SSL_DIR LIB@&t@OBJS PTHREAD_DEFS SED EGREP GREP CPP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ACLOCAL AUTOCONF INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM host_os host_vendor host_cpu host build_os build_vendor build_cpu build PROG_SUBDIRS target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_ssl enable_iconv with_ssldir with_gprof with_backtrace with_localedir with_wwwdir with_rundir with_datadir with_editordir with_markdowneditordir with_etcdir ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures WebCit 917 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @<:@@S|@ac_default_prefix@:>@ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX @<:@PREFIX@:>@ By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root @<:@DATAROOTDIR/doc/webcit@:>@ --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of WebCit 917:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-iconv do not use iconv charset conversion Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ssl=PATH Specify path to OpenSSL installation --with-ssldir directory to store the ssl certificates under --with-gprof enable profiling --with-backtrace enable backtrace dumps in the syslog --with-localedir directory to put the locale files to --with-wwwdir directory to put our templates --with-rundir directory to place runtime files (UDS) to? --with-datadir directory to store the databases under --with-editordir directory to put our editor --with-markdowneditordir directory to put our markdown editor --with-etcdir directory to read our configs Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF WebCit configure 917 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## @%:@ ac_fn_c_try_compile LINENO @%:@ -------------------------- @%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_compile @%:@ ac_fn_c_try_cpp LINENO @%:@ ---------------------- @%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_cpp @%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES @%:@ ------------------------------------------------------- @%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using @%:@ the include files in INCLUDES and setting the cache variable VAR @%:@ accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 @%:@include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## -------------------------------------------- ## ## Report this to http://uncensored.citadel.org ## ## -------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_mongrel @%:@ ac_fn_c_try_run LINENO @%:@ ---------------------- @%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes @%:@ that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_run @%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES @%:@ ------------------------------------------------------- @%:@ Tests whether HEADER exists and can be compiled using the include files in @%:@ INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 @%:@include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_compile @%:@ ac_fn_c_try_link LINENO @%:@ ----------------------- @%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_link @%:@ ac_fn_c_check_func LINENO FUNC VAR @%:@ ---------------------------------- @%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_func @%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES @%:@ ------------------------------------------- @%:@ Tests whether TYPE exists after having included INCLUDES, setting cache @%:@ variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_type @%:@ ac_fn_c_compute_int LINENO EXPR VAR INCLUDES @%:@ -------------------------------------------- @%:@ Tries to find the compile-time value of EXPR in a program that includes @%:@ INCLUDES, setting VAR accordingly. Returns whether the value could be @%:@ computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array @<:@1 - 2 * !(($2) >= 0)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array @<:@1 - 2 * !(($2) < 0)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array @<:@1 - 2 * !(($2) >= $ac_mid)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in @%:@(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } @%:@include @%:@include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by WebCit $as_me 917, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF @%:@define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in @%:@(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu $as_echo "@%:@define PROG_SUBDIRS /**/" >>confdefs.h ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in @%:@(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' missing_dir=`cd $ac_aux_dir && pwd` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"} ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $@%:@ != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@ifdef __STDC__ @%:@ include @%:@else @%:@ include @%:@endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@ifdef __STDC__ @%:@ include @%:@else @%:@ include @%:@endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h $as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "@%:@define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_SED+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$SED"; then ac_cv_prog_SED="$SED" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_SED="sed" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_SED" && ac_cv_prog_SED="no" fi fi SED=$ac_cv_prog_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$prefix" = NONE; then cat >>confdefs.h <<_ACEOF @%:@define WEBCITDIR "$ac_default_prefix" _ACEOF ssl_dir="$ac_default_prefix/keys" else cat >>confdefs.h <<_ACEOF @%:@define WEBCITDIR "$prefix" _ACEOF ssl_dir="$prefix/keys" fi @%:@ Check whether --with-ssl was given. if test "${with_ssl+set}" = set; then : withval=$with_ssl; if test "x$withval" != "xno" ; then tryssldir=$withval fi fi PTHREAD_DEFS=-D_REENTRANT case "$host" in alpha*-dec-osf*) test -z "$CC" && CC=cc LIBS=-pthread ;; *-*-freebsd*) LIBS=-pthread PTHREAD_DEFS=-D_THREAD_SAFE ;; *-*-solaris*) PTHREAD_DEFS='-D_REENTRANT -D_PTHREADS' ;; *-*-darwin*) LIBS=-lintl esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $@%:@ != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test "$GCC" = yes; then case "$host" in *-*-solaris*) CFLAGS="$CFLAGS -Wall -Wno-char-subscripts" ;; *) CFLAGS="$CFLAGS -Wall" ;; esac fi # missing_dir=`cd $ac_aux_dir && pwd` # AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) if test "$LIBS" != -pthread; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 $as_echo_n "checking for pthread_create in -lpthreads... " >&6; } if ${ac_cv_lib_pthreads_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthreads_pthread_create=yes else ac_cv_lib_pthreads_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 $as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBPTHREADS 1 _ACEOF LIBS="-lpthreads $LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5 $as_echo_n "checking for library containing connect... " >&6; } if ${ac_cv_search_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_connect=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_connect+:} false; then : break fi done if ${ac_cv_search_connect+:} false; then : else ac_cv_search_connect=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5 $as_echo "$ac_cv_search_connect" >&6; } ac_res=$ac_cv_search_connect if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h fi for ac_func in crypt gethostbyname connect flock getpwnam_r getpwuid_r getloadavg do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for call semantics from getpwuid_r" >&5 $as_echo_n "checking for call semantics from getpwuid_r... " >&6; } if ${ac_cv_call_getpwuid_r+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct passwd pw, *pwp; char pwbuf[64]; uid_t uid; getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_call_getpwuid_r=yes else ac_cv_call_getpwuid_r=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_call_getpwuid_r" >&5 $as_echo "$ac_cv_call_getpwuid_r" >&6; } if test $ac_cv_call_getpwuid_r = no; then $as_echo "@%:@define SOLARIS_GETPWUID /**/" >>confdefs.h $as_echo "@%:@define SOLARIS_LOCALTIME_R /**/" >>confdefs.h $as_echo "@%:@define F_UID_T \"%ld\"" >>confdefs.h $as_echo "@%:@define F_PID_T \"%ld\"" >>confdefs.h $as_echo "@%:@define F_XPID_T \"%lx\"" >>confdefs.h else $as_echo "@%:@define F_UID_T \"%d\"" >>confdefs.h $as_echo "@%:@define F_PID_T \"%d\"" >>confdefs.h $as_echo "@%:@define F_XPID_T \"%x\"" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "@%:@define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define size_t unsigned int _ACEOF fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 $as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF @%:@define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : else if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 $as_echo "$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF @%:@define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 $as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF @%:@define SIZEOF_INT $ac_cv_sizeof_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF @%:@define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long unsigned int" >&5 $as_echo_n "checking size of long unsigned int... " >&6; } if ${ac_cv_sizeof_long_unsigned_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long unsigned int))" "ac_cv_sizeof_long_unsigned_int" "$ac_includes_default"; then : else if test "$ac_cv_type_long_unsigned_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long unsigned int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_unsigned_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_unsigned_int" >&5 $as_echo "$ac_cv_sizeof_long_unsigned_int" >&6; } cat >>confdefs.h <<_ACEOF @%:@define SIZEOF_LONG_UNSIGNED_INT $ac_cv_sizeof_long_unsigned_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : else if test "$ac_cv_type_size_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 $as_echo "$ac_cv_sizeof_size_t" >&6; } cat >>confdefs.h <<_ACEOF @%:@define SIZEOF_SIZE_T $ac_cv_sizeof_size_t _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF @%:@define RETSIGTYPE $ac_cv_type_signal _ACEOF ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes; then : $as_echo "@%:@define HAVE_SNPRINTF 1" >>confdefs.h else case " $LIB@&t@OBJS " in *" snprintf.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS snprintf.$ac_objext" ;; esac fi ac_fn_c_check_header_mongrel "$LINENO" "CUnit/CUnit.h" "ac_cv_header_CUnit_CUnit_h" "$ac_includes_default" if test "x$ac_cv_header_CUnit_CUnit_h" = xyes; then : $as_echo "@%:@define ENABLE_TESTS /**/" >>confdefs.h fi for ac_header in fcntl.h limits.h unistd.h iconv.h xlocale.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $SERVER_LIBS" ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlibVersion in -lz" >&5 $as_echo_n "checking for zlibVersion in -lz... " >&6; } if ${ac_cv_lib_z_zlibVersion+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char zlibVersion (); int main () { return zlibVersion (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_zlibVersion=yes else ac_cv_lib_z_zlibVersion=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_zlibVersion" >&5 $as_echo "$ac_cv_lib_z_zlibVersion" >&6; } if test "x$ac_cv_lib_z_zlibVersion" = xyes; then : LIBS="-lz $LIBS $SERVER_LIBS" else as_fn_error $? "zlib was not found or is not usable. Please install zlib." "$LINENO" 5 fi else as_fn_error $? "zlib.h was not found or is not usable. Please install zlib." "$LINENO" 5 fi CFLAGS="$saved_CFLAGS" @%:@ Check whether --enable-iconv was given. if test "${enable_iconv+set}" = set; then : enableval=$enable_iconv; ok_iconv=no else ok_iconv=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking to see if your system supports iconv" >&5 $as_echo_n "checking Checking to see if your system supports iconv... " >&6; } if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include main() { iconv_t ic = (iconv_t)(-1) ; ic = iconv_open("UTF-8", "us-ascii"); iconv_close(ic); exit(0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ok_iconv=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else ok_iconv=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$ok_iconv" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for an external libiconv" >&5 $as_echo_n "checking Checking for an external libiconv... " >&6; } OLD_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -liconv" if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include main() { iconv_t ic = (iconv_t)(-1) ; ic = iconv_open("UTF-8", "us-ascii"); iconv_close(ic); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ok_iconv=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else ok_iconv=no LDFLAGS="$OLD_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi if test "$ok_iconv" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: webcit will be built with character set conversion." >&5 $as_echo "webcit will be built with character set conversion." >&6; } $as_echo "@%:@define HAVE_ICONV /**/" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: webcit will be built without character set conversion." >&5 $as_echo "webcit will be built without character set conversion." >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libintl_bindtextdomain in -lintl" >&5 $as_echo_n "checking for libintl_bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_libintl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libintl_bindtextdomain (); int main () { return libintl_bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_libintl_bindtextdomain=yes else ac_cv_lib_intl_libintl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_libintl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_libintl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_libintl_bindtextdomain" = xyes; then : LDFLAGS="$LDFLAGS -lintl" fi ac_fn_c_check_header_mongrel "$LINENO" "libical/ical.h" "ac_cv_header_libical_ical_h" "$ac_includes_default" if test "x$ac_cv_header_libical_ical_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icaltimezone_set_tzid_prefix in -lical" >&5 $as_echo_n "checking for icaltimezone_set_tzid_prefix in -lical... " >&6; } if ${ac_cv_lib_ical_icaltimezone_set_tzid_prefix+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lical $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char icaltimezone_set_tzid_prefix (); int main () { return icaltimezone_set_tzid_prefix (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ical_icaltimezone_set_tzid_prefix=yes else ac_cv_lib_ical_icaltimezone_set_tzid_prefix=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ical_icaltimezone_set_tzid_prefix" >&5 $as_echo "$ac_cv_lib_ical_icaltimezone_set_tzid_prefix" >&6; } if test "x$ac_cv_lib_ical_icaltimezone_set_tzid_prefix" = xyes; then : LIBS="-lical $LIBS" else as_fn_error $? "libical was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi else as_fn_error $? "libical/ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for markdown in -lmarkdown" >&5 $as_echo_n "checking for markdown in -lmarkdown... " >&6; } if ${ac_cv_lib_markdown_markdown+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmarkdown $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char markdown (); int main () { return markdown (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_markdown_markdown=yes else ac_cv_lib_markdown_markdown=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_markdown_markdown" >&5 $as_echo "$ac_cv_lib_markdown_markdown" >&6; } if test "x$ac_cv_lib_markdown_markdown" = xyes; then : LIBS="$LIBS -lmarkdown" $as_echo "@%:@define HAVE_MARKDOWN /**/" >>confdefs.h fi ac_fn_c_check_header_mongrel "$LINENO" "libcitadel.h" "ac_cv_header_libcitadel_h" "$ac_includes_default" if test "x$ac_cv_header_libcitadel_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcitadel_version_string in -lcitadel" >&5 $as_echo_n "checking for libcitadel_version_string in -lcitadel... " >&6; } if ${ac_cv_lib_citadel_libcitadel_version_string+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcitadel $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char libcitadel_version_string (); int main () { return libcitadel_version_string (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_citadel_libcitadel_version_string=yes else ac_cv_lib_citadel_libcitadel_version_string=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_citadel_libcitadel_version_string" >&5 $as_echo "$ac_cv_lib_citadel_libcitadel_version_string" >&6; } if test "x$ac_cv_lib_citadel_libcitadel_version_string" = xyes; then : LIBS="-lcitadel $LIBS" SETUP_LIBS="-lcitadel $SETUP_LIBS" else as_fn_error $? "libcitadel was not found or is not usable. Please install libcitadel." "$LINENO" 5 fi else as_fn_error $? "libcitadel.h was not found or is not usable. Please install libcitadel." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether your system likes memcpy + HKEY" >&5 $as_echo_n "checking whether your system likes memcpy + HKEY... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include "lib/libcitadel.h" int main () { char foo[22]; memcpy(foo, HKEY("foo")); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else $as_echo "@%:@define UNDEF_MEMCPY /**/" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default" if test "x$ac_cv_header_expat_h" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML_ParserCreateNS in -lexpat" >&5 $as_echo_n "checking for XML_ParserCreateNS in -lexpat... " >&6; } if ${ac_cv_lib_expat_XML_ParserCreateNS+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lexpat $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XML_ParserCreateNS (); int main () { return XML_ParserCreateNS (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_expat_XML_ParserCreateNS=yes else ac_cv_lib_expat_XML_ParserCreateNS=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_expat_XML_ParserCreateNS" >&5 $as_echo "$ac_cv_lib_expat_XML_ParserCreateNS" >&6; } if test "x$ac_cv_lib_expat_XML_ParserCreateNS" = xyes; then : LIBS="-lexpat $LIBS" else as_fn_error $? "The Expat XML parser was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi else as_fn_error $? "expat.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start" "$LINENO" 5 fi found_ssl=no # The big search for OpenSSL if test "$with_ssl" != "no"; then saved_LIBS="$LIBS" saved_LDFLAGS="$LDFLAGS" saved_CFLAGS="$CFLAGS" if test "x$prefix" != "xNONE"; then tryssldir="$tryssldir $prefix" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL" >&5 $as_echo_n "checking for OpenSSL... " >&6; } if ${ac_cv_openssldir+:} false; then : $as_echo_n "(cached) " >&6 else for ssldir in $tryssldir "" /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do CFLAGS="$saved_CFLAGS" LDFLAGS="$saved_LDFLAGS" LIBS="$saved_LIBS -lssl -lcrypto" # Skip directories if they don't exist if test ! -z "$ssldir" -a ! -d "$ssldir" ; then continue; fi if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then # Try to use $ssldir/lib if it exists, otherwise # $ssldir if test -d "$ssldir/lib" ; then LDFLAGS="-L$ssldir/lib $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir/lib $LDFLAGS" fi else LDFLAGS="-L$ssldir $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir $LDFLAGS" fi fi # Try to use $ssldir/include if it exists, otherwise # $ssldir if test -d "$ssldir/include" ; then CFLAGS="-I$ssldir/include $saved_CFLAGS" else CFLAGS="-I$ssldir $saved_CFLAGS" fi fi # Basic test to check for compatible version and correct linking # *does not* test for RSA - that comes later. if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main(void) { char a[2048]; memset(a, 0, sizeof(a)); RAND_add(a, sizeof(a), sizeof(a)); return(RAND_status() <= 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : found_crypto=1 break; fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test ! -z "$found_crypto" ; then break; fi done if test -z "$ssldir" ; then ssldir="(system)" fi if test ! -z "$found_crypto" ; then ac_cv_openssldir=$ssldir else ac_cv_openssldir="no" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_openssldir" >&5 $as_echo "$ac_cv_openssldir" >&6; } LIBS="$saved_LIBS" LDFLAGS="$saved_LDFLAGS" CFLAGS="$saved_CFLAGS" if test "x$ac_cv_openssldir" != "xno" ; then $as_echo "@%:@define HAVE_OPENSSL /**/" >>confdefs.h found_ssl=yes LIBS="-lssl -lcrypto $LIBS" ssldir=$ac_cv_openssldir if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then # Try to use $ssldir/lib if it exists, otherwise # $ssldir if test -d "$ssldir/lib" ; then LDFLAGS="-L$ssldir/lib $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir/lib $LDFLAGS" fi else LDFLAGS="-L$ssldir $saved_LDFLAGS" if test ! -z "$need_dash_r" ; then LDFLAGS="-R$ssldir $LDFLAGS" fi fi # Try to use $ssldir/include if it exists, otherwise # $ssldir if test -d "$ssldir/include" ; then CFLAGS="-I$ssldir/include $saved_CFLAGS" else CFLAGS="-I$ssldir $saved_CFLAGS" fi fi fi fi @%:@ Check whether --with-ssldir was given. if test "${with_ssldir+set}" = set; then : withval=$with_ssldir; if test "x$withval" != "xno" ; then ssl_dir="$withval" if test "$found_ssl" = "no"; then echo "Your setup was incomplete; ssldir doesn't make sense without openssl" exit fi fi fi cat >>confdefs.h <<_ACEOF @%:@define SSL_DIR "$ssl_dir" _ACEOF for ac_func in strftime_l uselocale gettext do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$ok_nls" != "no"; then # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ok_xgettext+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ok_xgettext"; then ac_cv_prog_ok_xgettext="$ok_xgettext" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ok_xgettext="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ok_xgettext" && ac_cv_prog_ok_xgettext="no" fi fi ok_xgettext=$ac_cv_prog_ok_xgettext if test -n "$ok_xgettext"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ok_xgettext" >&5 $as_echo "$ok_xgettext" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ok_nls=$ok_xgettext fi if test "$ok_nls" != "no"; then # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ok_msgmerge+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ok_msgmerge"; then ac_cv_prog_ok_msgmerge="$ok_msgmerge" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ok_msgmerge="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ok_msgmerge" && ac_cv_prog_ok_msgmerge="no" fi fi ok_msgmerge=$ac_cv_prog_ok_msgmerge if test -n "$ok_msgmerge"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ok_msgmerge" >&5 $as_echo "$ok_msgmerge" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ok_nls=$ok_msgmerge fi if test "$ok_nls" != "no"; then # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ok_msgfmt+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ok_msgfmt"; then ac_cv_prog_ok_msgfmt="$ok_msgfmt" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ok_msgfmt="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ok_msgfmt" && ac_cv_prog_ok_msgfmt="no" fi fi ok_msgfmt=$ac_cv_prog_ok_msgfmt if test -n "$ok_msgfmt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ok_msgfmt" >&5 $as_echo "$ok_msgfmt" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ok_nls=$ok_msgfmt fi if test "$ok_nls" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: WebCit will be built with national language support." >&5 $as_echo "WebCit will be built with national language support." >&6; } $as_echo "@%:@define ENABLE_NLS /**/" >>confdefs.h PROG_SUBDIRS="$PROG_SUBDIRS po/webcit/" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: WebCit will be built without national language support." >&5 $as_echo "WebCit will be built without national language support." >&6; } fi @%:@ Check whether --with-gprof was given. if test "${with_gprof+set}" = set; then : withval=$with_gprof; if test "x$withval" != "xno" ; then CFLAGS="$CFLAGS -pg " LDFLAGS="$LDFLAGS -pg " fi fi @%:@ Check whether --with-backtrace was given. if test "${with_backtrace+set}" = set; then : withval=$with_backtrace; if test "x$withval" != "xno" ; then CFLAGS="$CFLAGS -rdynamic " LDFLAGS="$LDFLAGS -rdynamic " for ac_func in backtrace do : ac_fn_c_check_func "$LINENO" "backtrace" "ac_cv_func_backtrace" if test "x$ac_cv_func_backtrace" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_BACKTRACE 1 _ACEOF fi done fi fi if test "$prefix" = NONE; then datadir=$ac_default_prefix localedir=$ac_default_prefix wwwdir=$ac_default_prefix rundir=$ac_default_prefix editordir=$ac_default_prefix/tiny_mce markdowneditordir=$ac_default_prefix/epic etcdir=$ac_default_prefix else localedir=$prefix wwwdir=$prefix datadir=$prefix rundir=$prefix editordir=$prefix/tiny_mce markdowneditordir=$prefix/epic etcdir=$prefix fi @%:@ Check whether --with-localedir was given. if test "${with_localedir+set}" = set; then : withval=$with_localedir; if test "x$withval" != "xno" ; then localedir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define LOCALEDIR "$localedir" _ACEOF LOCALEDIR=$localedir @%:@ Check whether --with-wwwdir was given. if test "${with_wwwdir+set}" = set; then : withval=$with_wwwdir; if test "x$withval" != "xno" ; then wwwdir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define WWWDIR "$wwwdir" _ACEOF WWWDIR=$wwwdir @%:@ Check whether --with-rundir was given. if test "${with_rundir+set}" = set; then : withval=$with_rundir; if test "x$withval" != "xno" ; then $as_echo "@%:@define HAVE_RUN_DIR /**/" >>confdefs.h rundir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define RUNDIR "$rundir" _ACEOF @%:@ Check whether --with-datadir was given. if test "${with_datadir+set}" = set; then : withval=$with_datadir; if test "x$withval" != "xno" ; then datadir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define DATADIR "$datadir" _ACEOF @%:@ Check whether --with-editordir was given. if test "${with_editordir+set}" = set; then : withval=$with_editordir; if test "x$withval" != "xno" ; then editordir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define EDITORDIR "$editordir" _ACEOF @%:@ Check whether --with-markdowneditordir was given. if test "${with_markdowneditordir+set}" = set; then : withval=$with_markdowneditordir; if test "x$withval" != "xno" ; then markdowneditordir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define MARKDOWNEDITORDIR "$markdowneditordir" _ACEOF @%:@ Check whether --with-etcdir was given. if test "${with_etcdir+set}" = set; then : withval=$with_etcdir; if test "x$withval" != "xno" ; then etcdir=$withval fi fi cat >>confdefs.h <<_ACEOF @%:@define ETCDIR "$etcdir" _ACEOF ETCDIR=$etcdir abs_srcdir="`cd $srcdir && pwd`" abs_builddir="`pwd`" if test "$abs_srcdir" != "$abs_builddir"; then CFLAGS="$CFLAGS -I $abs_builddir" fi ac_config_headers="$ac_config_headers sysdep.h" ac_config_files="$ac_config_files Makefile po/webcit/Makefile tests/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIB@&t@OBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in @%:@( *posix*) : set -o posix ;; @%:@( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in @%:@( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in @%:@(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH @%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are @%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the @%:@ script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } @%:@ as_fn_error @%:@ as_fn_set_status STATUS @%:@ ----------------------- @%:@ Set @S|@? to STATUS, without forking. as_fn_set_status () { return $1 } @%:@ as_fn_set_status @%:@ as_fn_exit STATUS @%:@ ----------------- @%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } @%:@ as_fn_exit @%:@ as_fn_unset VAR @%:@ --------------- @%:@ Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset @%:@ as_fn_append VAR VALUE @%:@ ---------------------- @%:@ Append the text in VALUE to the end of the definition contained in VAR. Take @%:@ advantage of any shell optimizations that allow amortized linear growth over @%:@ repeated appends, instead of the typical quadratic growth present in naive @%:@ implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append @%:@ as_fn_arith ARG... @%:@ ------------------ @%:@ Perform arithmetic evaluation on the ARGs, and store the result in the @%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in @%:@((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @%:@ as_fn_mkdir_p @%:@ ------------- @%:@ Create "@S|@as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } @%:@ as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi @%:@ as_fn_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by WebCit $as_me 917, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ WebCit config.status 917 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX @%:@@%:@ Running $as_me. @%:@@%:@ _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "sysdep.h") CONFIG_HEADERS="$CONFIG_HEADERS sysdep.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/webcit/Makefile") CONFIG_FILES="$CONFIG_FILES po/webcit/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi if test "$abs_srcdir" != "$abs_builddir"; then ln -s $abs_srcdir/static $abs_builddir ln -s $abs_srcdir/tiny_mce $abs_builddir ln -s $abs_srcdir/epic $abs_builddir ln -s $abs_srcdir/*.h $abs_builddir make mkdir-init else if test -d .svn; then ./mk_module_init.sh fi fi if test -n "$srcdir"; then export srcdir=. fi echo ------------------------------------------------------------------------ echo 'Character set conversion support:' $ok_iconv echo 'National language support: ' $ok_nls echo webcit-dfsg.orig/mainmenu.c0000644000175000017500000000700213223341037015753 0ustar michaelmichael#include "webcit.h" /* * The Main Menu */ void display_main_menu(void) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("display_main_menu"), NULL, &NoCtx); end_burst(); } /* * System administration menu */ void display_aide_menu(void) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("aide_display_menu"), NULL, &NoCtx); end_burst(); } /* * Interactive window to perform generic Citadel server commands. */ void do_generic(void) { WCTemplputParams SubTP; int Done = 0; StrBuf *Buf; StrBuf *LineBuf; char *junk; size_t len; if (!havebstr("sc_button")) { display_main_menu(); return; } Buf = NewStrBuf(); serv_puts(bstr("g_cmd")); StrBuf_ServGetln(Buf); switch (GetServerStatus(Buf, NULL)) { case 8: serv_puts("\n\n000"); if ( (StrLength(Buf)==3) && !strcmp(ChrPtr(Buf), "000")) { StrBufAppendBufPlain(Buf, HKEY("\000"), 0); break; } case 1: LineBuf = NewStrBuf(); StrBufAppendBufPlain(Buf, HKEY("\n"), 0); while (!Done) { if (StrBuf_ServGetln(LineBuf) < 0) break; if ( (StrLength(LineBuf)==3) && !strcmp(ChrPtr(LineBuf), "000")) { Done = 1; } StrBufAppendBuf(Buf, LineBuf, 0); StrBufAppendBufPlain(Buf, HKEY("\n"), 0); } FreeStrBuf(&LineBuf); break; case 2: break; case 4: text_to_server(bstr("g_input")); serv_puts("000"); break; case 6: len = atol(&ChrPtr(Buf)[4]); StrBuf_ServGetBLOBBuffered(Buf, len); break; case 7: len = atol(&ChrPtr(Buf)[4]); junk = malloc(len); memset(junk, 0, len); serv_write(junk, len); free(junk); break; } begin_burst(); output_headers(1, 0, 0, 0, 1, 0); StackContext(NULL, &SubTP, Buf, CTX_STRBUF, 0, NULL); { DoTemplate(HKEY("aide_display_generic_result"), NULL, &SubTP); } UnStackContext(&SubTP); wDumpContent(1); FreeStrBuf(&Buf); } /* * Display the wait / input dialog while restarting the server. */ void display_shutdown(void) { StrBuf *Line; char *when; Line = NewStrBuf(); when=bstr("when"); if (strcmp(when, "now") == 0){ serv_printf("DOWN 1"); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 5); begin_burst(); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("aide_display_serverrestart"), NULL, &NoCtx); end_burst(); lingering_close(WC->Hdr->http_sock); sleeeeeeeeeep(10); serv_printf("NOOP"); serv_printf("NOOP"); } else if (strcmp(when, "page") == 0) { char *message; message = bstr("message"); if ((message == NULL) || (IsEmptyStr(message))) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("aide_display_serverrestart_page"), NULL, &NoCtx); end_burst(); } else { serv_printf("SEXP broadcast|%s", message); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 0); begin_burst(); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("aide_display_serverrestart_page"), NULL, &NoCtx); end_burst(); } } else if (!strcmp(when, "idle")) { serv_printf("SCDN 3"); StrBuf_ServGetln(Line); GetServerStatusMsg(Line, NULL, 1, 2); begin_burst(); output_headers(1, 0, 0, 0, 1, 0); DoTemplate(HKEY("aide_display_menu"), NULL, &NoCtx); end_burst(); } FreeStrBuf(&Line); } void InitModule_MAINMENU (void) { WebcitAddUrlHandler(HKEY("display_aide_menu"), "", 0, display_aide_menu, 0); WebcitAddUrlHandler(HKEY("server_shutdown"), "", 0, display_shutdown, 0); WebcitAddUrlHandler(HKEY("display_main_menu"), "", 0, display_main_menu, 0); WebcitAddUrlHandler(HKEY("do_generic"), "", 0, do_generic, 0); } webcit-dfsg.orig/auth.c0000644000175000017500000005542413223341037015116 0ustar michaelmichael/* * These functions handle authentication of users to a Citadel server. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include extern uint32_t hashlittle( const void *key, size_t length, uint32_t initval); /* * Access level definitions. This is initialized from a function rather than a * static array so that the strings may be localized. */ char *axdefs[7]; void initialize_axdefs(void) { /* an erased user */ axdefs[0] = _("Deleted"); /* a new user */ axdefs[1] = _("New User"); /* a trouble maker */ axdefs[2] = _("Problem User"); /* user with normal privileges */ axdefs[3] = _("Local User"); /* a user that may access network resources */ axdefs[4] = _("Network User"); /* a moderator */ axdefs[5] = _("Preferred User"); /* chief */ axdefs[6] = _("Admin"); } /* * Display the login screen * mesg = the error message if last attempt failed. */ void display_login(void) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); do_template("login"); end_burst(); } /* Initialize the session * * This function needs to get called whenever the session changes from * not-logged-in to logged-in, either by an explicit login by the user or * by a timed-out session automatically re-establishing with a little help * from the browser cookie. Either way, we need to load access controls and * preferences from the server. * * user the username * pass his password * serv_response The parameters returned from a Citadel USER or NEWU command */ void become_logged_in(const StrBuf *user, const StrBuf *pass, StrBuf *serv_response) { wcsession *WCC = WC; StrBuf *Buf; StrBuf *FloorDiv; WCC->logged_in = 1; if (WCC->wc_fullname == NULL) WCC->wc_fullname = NewStrBufPlain(NULL, StrLength(serv_response)); StrBufExtract_token(WCC->wc_fullname, serv_response, 0, '|'); StrBufCutLeft(WCC->wc_fullname, 4 ); if (WCC->wc_username == NULL) WCC->wc_username = NewStrBufDup(user); else { FlushStrBuf(WCC->wc_username); StrBufAppendBuf(WCC->wc_username, user, 0); } if (WCC->wc_password == NULL) WCC->wc_password = NewStrBufDup(pass); else { FlushStrBuf(WCC->wc_password); StrBufAppendBuf(WCC->wc_password, pass, 0); } WCC->axlevel = StrBufExtract_int(serv_response, 1, '|'); if (WCC->axlevel >= 6) { WCC->is_aide = 1; } load_preferences(); Buf = NewStrBuf(); serv_puts("CHEK"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { const char *pch; pch = ChrPtr(Buf) + 4; /*WCC->new_mail =*/ StrBufExtractNext_long(Buf, &pch, '|'); WCC->need_regi = StrBufExtractNext_long(Buf, &pch, '|'); WCC->need_vali = StrBufExtractNext_long(Buf, &pch, '|'); if (WCC->cs_inet_email == NULL) WCC->cs_inet_email = NewStrBuf(); StrBufExtract_NextToken(WCC->cs_inet_email, Buf, &pch, '|'); } get_preference("floordiv_expanded", &FloorDiv); WCC->floordiv_expanded = FloorDiv; FreeStrBuf(&Buf); FlushRoomlist(); } /* * modal/ajax version of 'login' (username and password) */ void ajax_login_username_password(void) { StrBuf *Buf = NewStrBuf(); serv_printf("USER %s", bstr("name")); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 3) { serv_printf("PASS %s", bstr("pass")); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { become_logged_in(sbstr("name"), sbstr("pass"), Buf); } } /* The client is expecting to read back a citadel protocol response */ wc_printf("%s", ChrPtr(Buf)); FreeStrBuf(&Buf); } /* * modal/ajax version of 'new user' (username and password) */ void ajax_login_newuser(void) { StrBuf *NBuf = NewStrBuf(); StrBuf *SBuf = NewStrBuf(); serv_printf("NEWU %s", bstr("name")); StrBuf_ServGetln(NBuf); if (GetServerStatus(NBuf, NULL) == 2) { become_logged_in(sbstr("name"), sbstr("pass"), NBuf); serv_printf("SETP %s", bstr("pass")); StrBuf_ServGetln(SBuf); } /* The client is expecting to read back a citadel protocol response */ wc_printf("%s", ChrPtr(NBuf)); FreeStrBuf(&NBuf); FreeStrBuf(&SBuf); } /* * Try to create an account manually after an OpenID was verified */ void openid_manual_create(void) { StrBuf *Buf; /* Did the user change his mind? Pack up and go home. */ if (havebstr("exit_action")) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); do_template("authpopup_finished"); end_burst(); return; } /* Ok, let's give this a try. Can we create the new user? */ Buf = NewStrBuf(); serv_printf("OIDC %s", bstr("name")); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { StrBuf *gpass; gpass = NewStrBuf(); serv_puts("SETP GENERATE_RANDOM_PASSWORD"); StrBuf_ServGetln(gpass); StrBufCutLeft(gpass, 4); become_logged_in(sbstr("name"), gpass, Buf); FreeStrBuf(&gpass); } FreeStrBuf(&Buf); /* Did we manage to log in? If so, continue with the normal flow... */ if (WC->logged_in) { if (WC->logged_in) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); do_template("authpopup_finished"); end_burst(); } } else { /* Still no good! Go back to teh dialog to select a username */ const StrBuf *Buf; putbstr("__claimed_id", NewStrBufDup(sbstr("openid_url"))); Buf = sbstr("name"); if (StrLength(Buf) > 0) putbstr("__username", NewStrBufDup(Buf)); begin_burst(); output_headers(1, 0, 0, 0, 1, 0); wc_printf(""); do_template("openid_manual_create"); wc_printf(""); end_burst(); } } /* * Perform authentication using OpenID * assemble the checkid_setup request and then redirect to the user's identity provider */ void do_openid_login(void) { char buf[4096]; snprintf(buf, sizeof buf, "OIDS %s|%s/finalize_openid_login|%s", bstr("openid_url"), ChrPtr(site_prefix), ChrPtr(site_prefix) ); serv_puts(buf); serv_getln(buf, sizeof buf); if (buf[0] == '2') { syslog(LOG_DEBUG, "OpenID server contacted; redirecting to %s\n", &buf[4]); http_redirect(&buf[4]); return; } begin_burst(); output_headers(1, 0, 0, 0, 1, 0); wc_printf(""); escputs(&buf[4]); wc_printf(""); end_burst(); } /* * Complete the authentication using OpenID * This function handles the positive or negative assertion from the user's Identity Provider */ void finalize_openid_login(void) { StrBuf *Buf; wcsession *WCC = WC; int linecount = 0; StrBuf *result = NULL; StrBuf *username = NULL; StrBuf *password = NULL; StrBuf *logged_in_response = NULL; StrBuf *claimed_id = NULL; if (havebstr("openid.mode")) { if (!strcasecmp(bstr("openid.mode"), "id_res")) { Buf = NewStrBuf(); serv_puts("OIDF"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 8) { urlcontent *u; void *U; long HKLen; const char *HKey; HashPos *Cursor; int len; Cursor = GetNewHashPos (WCC->Hdr->urlstrings, 0); while (GetNextHashPos(WCC->Hdr->urlstrings, Cursor, &HKLen, &HKey, &U)) { u = (urlcontent*) U; if (!strncasecmp(u->url_key, "openid.", 7)) { serv_printf("%s|%s", &u->url_key[7], ChrPtr(u->url_data)); } } serv_puts("000"); linecount = 0; while (len = StrBuf_ServGetln(Buf), ((len >= 0) && ((len != 3) || strcmp(ChrPtr(Buf), "000") ))) { if (linecount == 0) result = NewStrBufDup(Buf); if (!strcasecmp(ChrPtr(result), "authenticate")) { if (linecount == 1) { username = NewStrBufDup(Buf); } else if (linecount == 2) { password = NewStrBufDup(Buf); } else if (linecount == 3) { logged_in_response = NewStrBufDup(Buf); } } else if (!strcasecmp(ChrPtr(result), "verify_only")) { if (linecount == 1) { claimed_id = NewStrBufDup(Buf); } if (linecount == 2) { username = NewStrBufDup(Buf); } } ++linecount; } } FreeStrBuf(&Buf); } } /* * Is this an attempt to associate a new OpenID with an account that is already logged in? */ if ( (WCC->logged_in) && (havebstr("attach_existing")) ) { display_openids(); } /* If this operation logged us in, either by connecting with an existing account or by * auto-creating one using Simple Registration Extension, we're already on our way. */ else if (!strcasecmp(ChrPtr(result), "authenticate")) { become_logged_in(username, password, logged_in_response); /* Did we manage to log in? If so, continue with the normal flow... */ if (WC->logged_in) { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); do_template("authpopup_finished"); end_burst(); } else { begin_burst(); output_headers(1, 0, 0, 0, 1, 0); wc_printf(""); wc_printf(_("An error has occurred.")); wc_printf(""); end_burst(); } } /* The specified OpenID was verified but the desired user name was either not specified via SRE * or conflicts with an existing user. Either way the user will need to specify a new name. */ else if (!strcasecmp(ChrPtr(result), "verify_only")) { putbstr("__claimed_id", claimed_id); claimed_id = NULL; if (StrLength(username) > 0) { putbstr("__username", username); username = NULL; } begin_burst(); output_headers(1, 0, 0, 0, 1, 0); wc_printf(""); do_template("openid_manual_create"); wc_printf(""); end_burst(); } /* Something went VERY wrong if we get to this point */ else { syslog(LOG_DEBUG, "finalize_openid_login() failed to do anything. This is a code problem.\n"); begin_burst(); output_headers(1, 0, 0, 0, 1, 0); wc_printf(""); wc_printf(_("An error has occurred.")); wc_printf(""); end_burst(); } FreeStrBuf(&result); FreeStrBuf(&username); FreeStrBuf(&password); FreeStrBuf(&claimed_id); FreeStrBuf(&logged_in_response); } /* * Display a welcome screen to the user. * * If this is the first time login, and the web based setup is enabled, * lead the user through the setup routines */ void do_welcome(void) { StrBuf *Buf; #ifdef XXX_NOT_FINISHED_YET_XXX FILE *fp; int i; /** * See if we have to run the first-time setup wizard */ if (WC->is_aide) { if (!setup_wizard) { int len; sprintf(wizard_filename, "setupwiz.%s.%s", abs(HashLittle(ctdlhost, strlen(ctdlhost))), abs(HashLittle(ctdlport, strlen(ctdlport))) ); fp = fopen(wizard_filename, "r"); if (fp != NULL) { fgets(buf, sizeof buf, fp); buf[strlen(buf)-1] = 0; fclose(fp); if (atoi(buf) == serv_info.serv_rev_level) { setup_wizard = 1; /* already run */ } } } if (!setup_wizard) { http_redirect("setup_wizard"); } } #endif /* * Go to the user's preferred start page */ if (!get_preference("startpage", &Buf)) { Buf = NewStrBuf (); StrBufPrintf(Buf, "dotskip?room=_BASEROOM_"); set_preference("startpage", Buf, 1); } if (ChrPtr(Buf)[0] == '/') { StrBufCutLeft(Buf, 1); } if (StrLength(Buf) == 0) { StrBufAppendBufPlain(Buf, "dotgoto?room=_BASEROOM_", -1, 0); } syslog(LOG_DEBUG, "Redirecting to user's start page: %s\n", ChrPtr(Buf)); http_redirect(ChrPtr(Buf)); } /* * Disconnect from the Citadel server, and end this WebCit session */ void end_webcit_session(void) { serv_puts("QUIT"); WC->killthis = 1; /* close() of citadel socket will be done by do_housekeeping() */ } /* * Log out the session with the Citadel server */ void do_logout(void) { wcsession *WCC = WC; char buf[SIZ]; FlushStrBuf(WCC->wc_username); FlushStrBuf(WCC->wc_password); FlushStrBuf(WCC->wc_fullname); FlushRoomlist(); serv_puts("LOUT"); serv_getln(buf, sizeof buf); WCC->logged_in = 0; FlushStrBuf(WCC->CurRoom.name); /* Calling output_headers() this way causes the cookies to be un-set */ output_headers(1, 1, 0, 1, 0, 0); do_template("logout"); if ((WCC->serv_info != NULL) && WCC->serv_info->serv_supports_guest) { display_default_landing_page(); return; } wDumpContent(2); end_webcit_session(); } /* * Special page for monitoring scripts etc */ void monitor(void) { output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-type: text/plain\r\n" "Server: " PACKAGE_STRING "\r\n" "Connection: close\r\n" ); begin_burst(); wc_printf("Connection to Citadel server at %s:%s : %s\r\n", ctdlhost, ctdlport, (WC->connected ? "SUCCESS" : "FAIL") ); wDumpContent(0); } /* * validate new users */ void validate(void) { char cmd[SIZ]; char user[SIZ]; char buf[SIZ]; int a; output_headers(1, 1, 1, 0, 0, 0); do_template("box_begin_1"); StrBufAppendBufPlain(WC->WBuf, _("Validate new users"), -1, 0); do_template("box_begin_2"); /* If the user just submitted a validation, process it... */ safestrncpy(buf, bstr("user"), sizeof buf); if (!IsEmptyStr(buf)) { if (havebstr("axlevel")) { serv_printf("VALI %s|%s", buf, bstr("axlevel")); serv_getln(buf, sizeof buf); if (buf[0] != '2') { wc_printf("%s
    \n", &buf[4]); } } } /* Now see if any more users require validation. */ serv_puts("GNUR"); serv_getln(buf, sizeof buf); if (buf[0] == '2') { wc_printf(""); wc_printf(_("No users require validation at this time.")); wc_printf("
    \n"); wDumpContent(1); return; } if (buf[0] != '3') { wc_printf("%s
    \n", &buf[4]); wDumpContent(1); return; } wc_printf("
    \n"); wc_printf("
    "); safestrncpy(user, &buf[4], sizeof user); serv_printf("GREG %s", user); serv_getln(cmd, sizeof cmd); if (cmd[0] == '1') { a = 0; do { serv_getln(buf, sizeof buf); ++a; if (a == 1) wc_printf("#%s

    %s

    ", buf, &cmd[4]); if (a == 2) { char *pch; int haveChar = 0; int haveNum = 0; int haveOther = 0; int haveLong = 0; pch = buf; while (!IsEmptyStr(pch)) { if (isdigit(*pch)) haveNum = 1; else if (isalpha(*pch)) haveChar = 1; else haveOther = 1; pch ++; } if (pch - buf > 7) haveLong = 1; switch (haveLong + haveChar + haveNum + haveOther) { case 0: pch = _("very weak"); break; case 1: pch = _("weak"); break; case 2: pch = _("ok"); break; case 3: default: pch = _("strong"); } wc_printf("PW: %s
    \n", pch); } if (a == 3) wc_printf("%s
    \n", buf); if (a == 4) wc_printf("%s
    \n", buf); if (a == 5) wc_printf("%s, ", buf); if (a == 6) wc_printf("%s ", buf); if (a == 7) wc_printf("%s
    \n", buf); if (a == 8) wc_printf("%s
    \n", buf); if (a == 9) wc_printf(_("Current access level: %d (%s)\n"), atoi(buf), axdefs[atoi(buf)]); } while (strcmp(buf, "000")); } else { wc_printf("

    %s

    %s
    \n", user, &cmd[4]); } wc_printf("
    "); wc_printf(_("Select access level for this user:")); wc_printf("
    \n"); for (a = 0; a <= 6; ++a) { wc_printf("nonce); urlescputs(user); wc_printf("&axlevel=%d\">%s   \n", a, axdefs[a]); } wc_printf("
    \n"); wc_printf("
    \n"); wc_printf("
    \n"); do_template("box_end"); wDumpContent(1); } /* * Display form for registration. * * (Set during_login to 1 if this registration is being performed during * new user login and will require chaining to the proper screen.) */ void display_reg(int during_login) { folder Room; StrBuf *Buf; message_summary *VCMsg = NULL; wc_mime_attachment *VCAtt = NULL; long vcard_msgnum; Buf = NewStrBuf(); memset(&Room, 0, sizeof(folder)); if (goto_config_room(Buf, &Room) != 0) { syslog(LOG_WARNING, "display_reg() exiting because goto_config_room() failed\n"); if (during_login) { pop_destination(); } else { display_main_menu(); } FreeStrBuf(&Buf); FlushFolder(&Room); return; } FlushFolder(&Room); FreeStrBuf(&Buf); vcard_msgnum = locate_user_vcard_in_this_room(&VCMsg, &VCAtt); if (vcard_msgnum < 0L) { syslog(LOG_WARNING, "display_reg() exiting because locate_user_vcard_in_this_room() failed\n"); if (during_login) { pop_destination(); } else { display_main_menu(); } return; } if (during_login) { do_edit_vcard(vcard_msgnum, "1", VCMsg, VCAtt, "pop", USERCONFIGROOM); } else { StrBuf *ReturnTo; ReturnTo = NewStrBufPlain(HKEY("display_main_menu?go=")); StrBufAppendBuf(ReturnTo, WC->CurRoom.name, 0); do_edit_vcard(vcard_msgnum, "1", VCMsg, VCAtt, ChrPtr(ReturnTo), USERCONFIGROOM); FreeStrBuf(&ReturnTo); } } /* * change password * if passwords match, propagate it to citserver. */ void changepw(void) { StrBuf *Line; char newpass1[32], newpass2[32]; if (!havebstr("change_action")) { AppendImportantMessage(_("Cancelled. Password was not changed."), -1); display_main_menu(); return; } safestrncpy(newpass1, bstr("newpass1"), sizeof newpass1); safestrncpy(newpass2, bstr("newpass2"), sizeof newpass2); if (strcasecmp(newpass1, newpass2)) { AppendImportantMessage(_("They don't match. Password was not changed."), -1); do_template("menu_change_pw"); return; } if (IsEmptyStr(newpass1)) { AppendImportantMessage(_("Blank passwords are not allowed."), -1); do_template("menu_change_pw"); return; } Line = NewStrBuf(); serv_printf("SETP %s", newpass1); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 0) == 2) { if (WC->wc_password == NULL) WC->wc_password = NewStrBufPlain( ChrPtr(Line) + 4, StrLength(Line) - 4); else { FlushStrBuf(WC->wc_password); StrBufAppendBufPlain(WC->wc_password, ChrPtr(Line) + 4, StrLength(Line) - 4, 0); } display_main_menu(); } else { do_template("menu_change_pw"); } FreeStrBuf(&Line); } int ConditionalHaveAccessCreateRoom(StrBuf *Target, WCTemplputParams *TP) { StrBuf *Buf; Buf = NewStrBuf(); serv_puts("CRE8 0"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 2) { StrBufCutLeft(Buf, 4); AppendImportantMessage(SKEY(Buf)); FreeStrBuf(&Buf); return 0; } FreeStrBuf(&Buf); return 1; } int ConditionalAide(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; return (WCC != NULL) ? ((WCC->logged_in == 0)||(WC->is_aide == 0)) : 0; } int ConditionalIsLoggedIn(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; return (WCC != NULL) ? (WCC->logged_in == 0) : 0; } /* * toggle the session over to a different language */ void switch_language(void) { set_selected_language(bstr("lang")); pop_destination(); } void _display_reg(void) { display_reg(0); } void Header_HandleAuth(StrBuf *Line, ParsedHttpHdrs *hdr) { if (hdr->HR.got_auth == NO_AUTH) /* don't override cookie auth... */ { if (strncasecmp(ChrPtr(Line), "Basic", 5) == 0) { StrBufCutLeft(Line, 6); StrBufDecodeBase64(Line); hdr->HR.plainauth = Line; hdr->HR.got_auth = AUTH_BASIC; } else syslog(LOG_WARNING, "Authentication scheme not supported! [%s]\n", ChrPtr(Line)); } } void CheckAuthBasic(ParsedHttpHdrs *hdr) { /* todo: enable this if we can have other sessions than authenticated ones. if (hdr->DontNeedAuth) return; */ StrBufAppendBufPlain(hdr->HR.plainauth, HKEY(":"), 0); StrBufAppendBuf(hdr->HR.plainauth, hdr->HR.user_agent, 0); } void GetAuthBasic(ParsedHttpHdrs *hdr) { const char *Pos = NULL; if (hdr->c_username == NULL) hdr->c_username = NewStrBufPlain(HKEY(DEFAULT_HTTPAUTH_USER)); if (hdr->c_password == NULL) hdr->c_password = NewStrBufPlain(HKEY(DEFAULT_HTTPAUTH_PASS)); StrBufExtract_NextToken(hdr->c_username, hdr->HR.plainauth, &Pos, ':'); StrBufExtract_NextToken(hdr->c_password, hdr->HR.plainauth, &Pos, ':'); } void Header_HandleCookie(StrBuf *Line, ParsedHttpHdrs *hdr) { const char *pch; /* todo: enable this if we can have other sessions than authenticated ones. if (hdr->DontNeedAuth) return; */ pch = strstr(ChrPtr(Line), "webcit="); if (pch == NULL) { return; } hdr->HR.RawCookie = Line; StrBufCutLeft(hdr->HR.RawCookie, (pch - ChrPtr(hdr->HR.RawCookie)) + 7); StrBufDecodeHex(hdr->HR.RawCookie); cookie_to_stuff(Line, &hdr->HR.desired_session, hdr->c_username, hdr->c_password, hdr->c_roomname, hdr->c_language ); hdr->HR.got_auth = AUTH_COOKIE; } void HttpNewModule_AUTH (ParsedHttpHdrs *httpreq) { httpreq->c_username = NewStrBufPlain(HKEY(DEFAULT_HTTPAUTH_USER)); httpreq->c_password = NewStrBufPlain(HKEY(DEFAULT_HTTPAUTH_PASS)); httpreq->c_roomname = NewStrBuf(); httpreq->c_language = NewStrBuf(); } void HttpDetachModule_AUTH (ParsedHttpHdrs *httpreq) { FLUSHStrBuf(httpreq->c_username); FLUSHStrBuf(httpreq->c_password); FLUSHStrBuf(httpreq->c_roomname); FLUSHStrBuf(httpreq->c_language); } void HttpDestroyModule_AUTH (ParsedHttpHdrs *httpreq) { FreeStrBuf(&httpreq->c_username); FreeStrBuf(&httpreq->c_password); FreeStrBuf(&httpreq->c_roomname); FreeStrBuf(&httpreq->c_language); } void InitModule_AUTH (void) { initialize_axdefs(); RegisterHeaderHandler(HKEY("COOKIE"), Header_HandleCookie); RegisterHeaderHandler(HKEY("AUTHORIZATION"), Header_HandleAuth); /* no url pattern at all? Show login. */ WebcitAddUrlHandler(HKEY(""), "", 0, do_welcome, ANONYMOUS|COOKIEUNNEEDED); WebcitAddUrlHandler(HKEY("do_welcome"), "", 0, do_welcome, ANONYMOUS|COOKIEUNNEEDED); WebcitAddUrlHandler(HKEY("openid_login"), "", 0, do_openid_login, ANONYMOUS); WebcitAddUrlHandler(HKEY("finalize_openid_login"), "", 0, finalize_openid_login, ANONYMOUS); WebcitAddUrlHandler(HKEY("openid_manual_create"), "", 0, openid_manual_create, ANONYMOUS); WebcitAddUrlHandler(HKEY("validate"), "", 0, validate, 0); WebcitAddUrlHandler(HKEY("do_welcome"), "", 0, do_welcome, 0); WebcitAddUrlHandler(HKEY("display_reg"), "", 0, _display_reg, 0); WebcitAddUrlHandler(HKEY("changepw"), "", 0, changepw, 0); WebcitAddUrlHandler(HKEY("termquit"), "", 0, do_logout, 0); WebcitAddUrlHandler(HKEY("do_logout"), "", 0, do_logout, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE); WebcitAddUrlHandler(HKEY("monitor"), "", 0, monitor, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE); WebcitAddUrlHandler(HKEY("ajax_login_username_password"), "", 0, ajax_login_username_password, AJAX|ANONYMOUS); WebcitAddUrlHandler(HKEY("ajax_login_newuser"), "", 0, ajax_login_newuser, AJAX|ANONYMOUS); WebcitAddUrlHandler(HKEY("switch_language"), "", 0, switch_language, ANONYMOUS); RegisterConditional("COND:AIDE", 2, ConditionalAide, CTX_NONE); RegisterConditional("COND:LOGGEDIN", 2, ConditionalIsLoggedIn, CTX_NONE); RegisterConditional("COND:MAY_CREATE_ROOM", 2, ConditionalHaveAccessCreateRoom, CTX_NONE); return; } void SessionDestroyModule_AUTH (wcsession *sess) { FreeStrBuf(&sess->wc_username); FreeStrBuf(&sess->wc_fullname); FreeStrBuf(&sess->wc_password); FreeStrBuf(&sess->httpauth_pass); FreeStrBuf(&sess->cs_inet_email); } webcit-dfsg.orig/package-version.txt0000644000175000017500000000000413223341060017604 0ustar michaelmichael917 webcit-dfsg.orig/tcp_sockets.h0000644000175000017500000000366713223341037016505 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ int uds_connectsock(char *); int tcp_connectsock(char *, char *); int serv_getln(char *strbuf, int bufsize); int StrBuf_ServGetln(StrBuf *buf); /* * parse & check the server reply * * Line the line containing the server reply * FullState if you need more than just the major number, this is returns it. Ignored if NULL. * PutImportantMessage if you want to forward the text part of the server reply to the user, specify 1; * the result will be put into the 'Important Message' framework. * MajorOK in case of which major number not to put the ImportantMessage? 0 for all. * * returns the most significant digit of the server status */ int GetServerStatusMsg(StrBuf *Line, long* FullState, int PutImportantMessage, int MajorOK); /* * to migrate old calls.... */ #define GetServerStatus(a, b) GetServerStatusMsg(a, b, 0, 0) int serv_puts(const char *string); int serv_write(const char *buf, int nbytes); int serv_putbuf(const StrBuf *string); int serv_printf(const char *format,...)__attribute__((__format__(__printf__,1,2))); int serv_read_binary(StrBuf *Ret, size_t total_len, StrBuf *Buf); void serv_read_binary_to_http(StrBuf *MimeType, size_t total_len, int is_static, int detect_mime); int StrBuf_ServGetBLOB(StrBuf *buf, long BlobSize); int StrBuf_ServGetBLOBBuffered(StrBuf *buf, long BlobSize); int read_server_text(StrBuf *Buf, long *nLines); void text_to_server(char *ptr); void text_to_server_qp(const StrBuf *SendMeEncoded); void server_to_text(void); int lingering_close(int fd); webcit-dfsg.orig/.cvsignore0000644000175000017500000000017413223341037016001 0ustar michaelmichael*.o Makefile config.cache config.log config.status config.h.in configure webcit webserver content autom4te.cache setup keys webcit-dfsg.orig/acinclude.m40000644000175000017500000000301213223341037016164 0ustar michaelmichael# CIT_STRUCT_TM # ------------------ # Figure out how to get the current GMT offset. If `struct tm' has a # `tm_gmtoff' member, define `HAVE_STRUCT_TM_TM_GMTOFF'. Otherwise, if the # external variable `timezone' is found, define `HAVE_TIMEZONE'. AC_DEFUN([CIT_STRUCT_TM], [AC_REQUIRE([AC_STRUCT_TM])dnl AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include #include <$ac_cv_struct_tm> ]) if test "$ac_cv_member_struct_tm_tm_gmtoff" != yes; then AC_CACHE_CHECK(for timezone, ac_cv_var_timezone, [AC_TRY_LINK( [#include ], [printf("%ld", (long)timezone);], ac_cv_var_timezone=yes, ac_cv_var_timezone=no)]) if test $ac_cv_var_timezone = yes; then AC_DEFINE(HAVE_TIMEZONE, 1, [Define if you don't have `tm_gmtoff' but do have the external variable `timezone'.]) fi fi ])# CIT_STRUCT_TM AC_DEFUN([AC_CHECK_DB],[ for lib in $1 do AS_VAR_PUSHDEF([ac_tr_db], [ac_cv_db_lib_${lib}])dnl bogo_saved_LIBS="$LIBS" LIBS="$LIBS -l$lib" AC_CACHE_CHECK([for db_create in -l${lib}], ac_tr_db, [AC_TRY_LINK([#include ], [int foo=db_create((void *)0, (void *) 0, 0 )], [AS_VAR_SET(ac_tr_db, yes)], [AS_VAR_SET(ac_tr_db, no)]) ]) AS_IF([test AS_VAR_GET(ac_tr_db) = yes], [$2 LIBS="$bogo_saved_LIBS" SERVER_LIBS="$SERVER_LIBS -l$lib" db=yes], [LIBS="$bogo_saved_LIBS" db=no]) AS_VAR_POPDEF([ac_tr_db])dnl test "$db" = "yes" && break done if test "$db" = "no"; then $3 fi ])# AC_CHECK_DB webcit-dfsg.orig/event.c0000644000175000017500000010450413223341037015270 0ustar michaelmichael/* * Editing calendar events. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "calendar.h" /* * Display an event by itself (for editing) * supplied_vevent the event to edit * msgnum reference on the citserver */ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum, char *from, int unread, calview *calv) { wcsession *WCC = WC; icalcomponent *vevent; icalproperty *p; icalvalue *v; struct icaltimetype t_start, t_end; time_t now; struct tm tm_now; int created_new_vevent = 0; icalproperty *organizer = NULL; char organizer_string[SIZ]; icalproperty *attendee = NULL; char attendee_string[SIZ]; char buf[SIZ]; int organizer_is_me = 0; int i, j = 0; /************************************************************ * Uncomment this to see the UID in calendar events for debugging int sequence = 0; */ char weekday_labels[7][32]; char month_labels[12][32]; long weekstart = 0; icalproperty *rrule = NULL; struct icalrecurrencetype recur; char weekday_is_selected[7]; int which_rrmonthtype_is_preselected = 0; int rrmday; int rrmweekday; icaltimetype day1; int weekbase; int rrmweek; int rrymweek; int rrymweekday; int rrymonth; int which_rrend_is_preselected; int which_rryeartype_is_preselected; const char *ch; const char *tabnames[3]; const char *frequency_units[8]; const char *ordinals[6]; frequency_units[0] = _("seconds"); frequency_units[1] = _("minutes"); frequency_units[2] = _("hours"); frequency_units[3] = _("days"); frequency_units[4] = _("weeks"); frequency_units[5] = _("months"); frequency_units[6] = _("years"); frequency_units[7] = _("never"); ordinals[0] = "0"; ordinals[1] = _("first"); ordinals[2] = _("second"); ordinals[3] = _("third"); ordinals[4] = _("fourth"); ordinals[5] = _("fifth"); tabnames[0] = _("Event"); tabnames[1] = _("Attendees"); tabnames[2] = _("Recurrence"); get_pref_long("weekstart", &weekstart, 17); if (weekstart > 6) weekstart = 0; syslog(LOG_DEBUG, "display_edit_individual_event(%ld) calview=%s year=%s month=%s day=%s\n", msgnum, bstr("calview"), bstr("year"), bstr("month"), bstr("day") ); /* populate the weekday names - begin */ now = time(NULL); localtime_r(&now, &tm_now); while (tm_now.tm_wday != 0) { now -= 86400L; localtime_r(&now, &tm_now); } for (i=0; i<7; ++i) { localtime_r(&now, &tm_now); wc_strftime(weekday_labels[i], 32, "%A", &tm_now); now += 86400L; } /* populate the weekday names - end */ /* populate the month names - begin */ now = 259200L; /* 1970-jan-04 is the first Sunday ever */ localtime_r(&now, &tm_now); for (i=0; i<12; ++i) { localtime_r(&now, &tm_now); wc_strftime(month_labels[i], 32, "%B", &tm_now); now += 2678400L; } /* populate the month names - end */ now = time(NULL); strcpy(organizer_string, ""); strcpy(attendee_string, ""); if (supplied_vevent != NULL) { vevent = supplied_vevent; /* Convert all timestamps to UTC to make them easier to process. */ ical_dezonify(vevent); /* * If we're looking at a fully encapsulated VCALENDAR * rather than a VEVENT component, attempt to use the first * relevant VEVENT subcomponent. If there is none, the * NULL returned by icalcomponent_get_first_component() will * tell the next iteration of this function to create a * new one. */ if (icalcomponent_isa(vevent) == ICAL_VCALENDAR_COMPONENT) { display_edit_individual_event( icalcomponent_get_first_component( vevent, ICAL_VEVENT_COMPONENT), msgnum, from, unread, NULL ); return; } } else { vevent = icalcomponent_new(ICAL_VEVENT_COMPONENT); created_new_vevent = 1; } /* Learn the sequence */ p = icalcomponent_get_first_property(vevent, ICAL_SEQUENCE_PROPERTY); /************************************************************ * Uncomment this to see the UID in calendar events for debugging if (p != NULL) { sequence = icalproperty_get_sequence(p); } */ /* Begin output */ output_headers(1, 1, 1, 0, 0, 0); wc_printf("
    \n"); wc_printf("

    "); wc_printf(_("Add or edit an event")); wc_printf("

    "); wc_printf("
    \n"); wc_printf("
    \n"); /************************************************************ * Uncomment this to see the UID in calendar events for debugging wc_printf("UID == "); p = icalcomponent_get_first_property(vevent, ICAL_UID_PROPERTY); if (p != NULL) { escputs((char *)icalproperty_get_comment(p)); } wc_printf("
    \n"); wc_printf("SEQUENCE == %d
    \n", sequence); *************************************************************/ wc_printf("
    \n"); wc_printf("\n", WC->nonce); wc_printf("WBuf, WCC->CurRoom.name, NULL, 0, 0); wc_printf("\">\n"); wc_printf("\n", msgnum); wc_printf("\n", bstr("calview")); wc_printf("\n", bstr("year")); wc_printf("\n", bstr("month")); wc_printf("\n", bstr("day")); tabbed_dialog(3, tabnames); begin_tab(0, 3); /* Put it in a borderless table so it lines up nicely */ wc_printf("\n"); wc_printf("\n"); wc_printf("\n"); wc_printf("\n"); wc_printf("\n"); wc_printf(""); /* * For a new event, the user creating the event should be the * organizer. Set this field accordingly. */ if (icalcomponent_get_first_property(vevent, ICAL_ORGANIZER_PROPERTY) == NULL) { sprintf(organizer_string, "mailto:%s", ChrPtr(WC->cs_inet_email)); icalcomponent_add_property(vevent, icalproperty_new_organizer(organizer_string) ); } /* * Determine who is the organizer of this event. * We need to determine "me" or "not me." */ organizer = icalcomponent_get_first_property(vevent, ICAL_ORGANIZER_PROPERTY); if (organizer != NULL) { strcpy(organizer_string, icalproperty_get_organizer(organizer)); if (!strncasecmp(organizer_string, "mailto:", 7)) { strcpy(organizer_string, &organizer_string[7]); striplt(organizer_string); serv_printf("ISME %s", organizer_string); serv_getln(buf, sizeof buf); if (buf[0] == '2') { organizer_is_me = 1; } } } wc_printf("\n"); /* Transparency */ wc_printf("\n"); /* Done with properties. */ wc_printf("
    "); wc_printf(_("Summary")); wc_printf("\n" "
    "); wc_printf(_("Location")); wc_printf("\n" "
    "); wc_printf(_("Start")); wc_printf("\n"); p = icalcomponent_get_first_property(vevent, ICAL_DTSTART_PROPERTY); if (p != NULL) { t_start = icalproperty_get_dtstart(p); if (t_start.is_date) { t_start.hour = 0; t_start.minute = 0; t_start.second = 0; } } else { localtime_r(&now, &tm_now); if (havebstr("year")) { tm_now.tm_year = ibstr("year") - 1900; tm_now.tm_mon = ibstr("month") - 1; tm_now.tm_mday = ibstr("day"); } if (havebstr("hour")) { tm_now.tm_hour = ibstr("hour"); tm_now.tm_min = ibstr("minute"); tm_now.tm_sec = 0; } else { tm_now.tm_hour = 0; tm_now.tm_min = 0; tm_now.tm_sec = 0; } t_start = icaltime_from_timet_with_zone( mktime(&tm_now), ((yesbstr("alldayevent")) ? 1 : 0), icaltimezone_get_utc_timezone() ); t_start.is_utc = 1; } display_icaltimetype_as_webform(&t_start, "dtstart", 0); wc_printf("%s", (t_start.is_date ? "checked=\"checked\"" : "" ), _("All day event") ); wc_printf("
    "); wc_printf(_("End")); wc_printf("\n"); p = icalcomponent_get_first_property(vevent, ICAL_DTEND_PROPERTY); if (p != NULL) { t_end = icalproperty_get_dtend(p); /* * If this is an all-day-event, the end time is set to real end * day + 1, so we have to adjust accordingly. */ if (t_start.is_date) { icaltime_adjust(&t_end, -1, 0, 0, 0); } } else { if (created_new_vevent == 1) { /* set default duration */ if (t_start.is_date) { /* * If this is an all-day-event, set the end time to be identical to * the start time (the hour/minute/second will be set to midnight). */ t_end = t_start; } else { /* * If this is not an all-day event and there is no * end time specified, make the default one hour * from the start time. */ t_end = t_start; t_end.hour += 1; t_end.second = 0; t_end = icaltime_normalize(t_end); /* t_end = icaltime_from_timet(now, 0); */ } } else { /* * If an existing event has no end date/time this is * supposed to mean end = start. */ t_end = t_start; } } display_icaltimetype_as_webform(&t_end, "dtend", 0); wc_printf("
    "); wc_printf(_("Notes")); wc_printf("\n" "
    "); wc_printf(_("Organizer")); wc_printf(""); escputs(organizer_string); if (organizer_is_me) { wc_printf(" "); wc_printf(_("(you are the organizer)")); wc_printf("\n"); } /* * Transmit the organizer as a hidden field. We don't want the user * to be able to change it, but we do want it fed back to the server, * especially if this is a new event and there is no organizer already * in the calendar object. */ wc_printf(""); wc_printf("
    "); wc_printf(_("Show time as:")); wc_printf(""); p = icalcomponent_get_first_property(vevent, ICAL_TRANSP_PROPERTY); if (p == NULL) { /* No transparency found. Default to opaque (busy). */ p = icalproperty_new_transp(ICAL_TRANSP_OPAQUE); if (p != NULL) { icalcomponent_add_property(vevent, p); } } if (p != NULL) { v = icalproperty_get_value(p); } else { v = NULL; } wc_printf(""); wc_printf(_("Free")); wc_printf("  "); wc_printf(""); wc_printf(_("Busy")); wc_printf("
    \n"); end_tab(0, 3); /* Attendees tab (need to move things here) */ begin_tab(1, 3); wc_printf("\n"); /* same table style as the event tab */ wc_printf("\n"); wc_printf("
    "); wc_printf(_("Attendees")); wc_printf("
    " ""); wc_printf(_("(One per line)")); wc_printf("\n"); /* Pop open an address book -- begin */ wc_printf( " " "" "", _("Attendees"), _("Contacts") ); /* Pop open an address book -- end */ wc_printf("
    " "
    \n"); end_tab(1, 3); /* Recurrence tab */ begin_tab(2, 3); rrule = icalcomponent_get_first_property(vevent, ICAL_RRULE_PROPERTY); if (rrule) { recur = icalproperty_get_rrule(rrule); } else { /* blank recurrence with some sensible defaults */ memset(&recur, 0, sizeof(struct icalrecurrencetype)); recur.count = 3; recur.until = icaltime_null_time(); recur.interval = 1; recur.freq = ICAL_WEEKLY_RECURRENCE; } wc_printf("%s", (rrule ? "checked=\"checked\"" : "" ), _("This is a recurring event") ); wc_printf("
    \n"); /* begin 'rrule_div' div */ wc_printf("\n"); wc_printf("\n"); which_rrend_is_preselected = 0; if (!icaltime_is_null_time(recur.until)) which_rrend_is_preselected = 2; if (recur.count > 0) which_rrend_is_preselected = 1; wc_printf("\n"); wc_printf("
    "); wc_printf(_("Recurrence rule")); wc_printf(""); if ((recur.freq < 0) || (recur.freq > 6)) recur.freq = 4; wc_printf("%s ", _("Repeats every")); wc_printf(" ", recur.interval); wc_printf("\n"); wc_printf("
    "); /* begin 'weekday_selector' div */ wc_printf("%s
    ", _("on these weekdays:")); memset(weekday_is_selected, 0, 7); for (i=0; i%s\n", weekday_labels[i]); } wc_printf("
    \n"); /* end 'weekday_selector' div */ wc_printf("
    "); /* begin 'monthday_selector' div */ wc_printf("", ((which_rrmonthtype_is_preselected == 0) ? "checked='checked'" : "") ); rrmday = t_start.day; rrmweekday = icaltime_day_of_week(t_start) - 1; /* Figure out what week of the month we're in */ day1 = t_start; day1.day = 1; weekbase = icaltime_week_number(day1); rrmweek = icaltime_week_number(t_start) - weekbase + 1; /* Are we going by day of the month or week/day? */ if (recur.by_month_day[0] != ICAL_RECURRENCE_ARRAY_MAX) { which_rrmonthtype_is_preselected = 0; rrmday = recur.by_month_day[0]; } else if (recur.by_day[0] != ICAL_RECURRENCE_ARRAY_MAX) { which_rrmonthtype_is_preselected = 1; rrmweek = icalrecurrencetype_day_position(recur.by_day[0]); rrmweekday = icalrecurrencetype_day_day_of_week(recur.by_day[0]) - 1; } wc_printf(_("on day %s%d%s of the month"), "", rrmday, ""); wc_printf("
    \n"); wc_printf("", ((which_rrmonthtype_is_preselected == 1) ? "checked='checked'" : "") ); wc_printf(_("on the ")); wc_printf(" \n"); wc_printf(""); wc_printf(" %s
    \n", _("of the month")); wc_printf("
    \n"); /* end 'monthday_selector' div */ rrymweek = rrmweek; rrymweekday = rrmweekday; rrymonth = t_start.month; which_rryeartype_is_preselected = 0; if ( (recur.by_day[0] != ICAL_RECURRENCE_ARRAY_MAX) && (recur.by_day[0] != 0) && (recur.by_month[0] != ICAL_RECURRENCE_ARRAY_MAX) && (recur.by_month[0] != 0) ) { which_rryeartype_is_preselected = 1; rrymweek = icalrecurrencetype_day_position(recur.by_day[0]); rrymweekday = icalrecurrencetype_day_day_of_week(recur.by_day[0]) - 1; rrymonth = recur.by_month[0]; } wc_printf("
    "); /* begin 'yearday_selector' div */ wc_printf("", ((which_rryeartype_is_preselected == 0) ? "checked='checked'" : "") ); wc_printf(_("every ")); wc_printf("%s
    ", _("year on this date")); wc_printf("", ((which_rryeartype_is_preselected == 1) ? "checked='checked'" : "") ); wc_printf(_("on the ")); wc_printf(" \n"); wc_printf(""); wc_printf(" %s ", _("of")); wc_printf(""); wc_printf("
    \n"); wc_printf("
    \n"); /* end 'yearday_selector' div */ wc_printf("
    "); wc_printf(_("Recurrence range")); wc_printf("\n"); wc_printf("", ((which_rrend_is_preselected == 0) ? "checked='checked'" : "") ); wc_printf("%s
    \n", _("No ending date")); wc_printf("", ((which_rrend_is_preselected == 1) ? "checked='checked'" : "") ); wc_printf(_("Repeat this event")); wc_printf(" ", recur.count); wc_printf(_("times")); wc_printf("
    \n"); wc_printf("", ((which_rrend_is_preselected == 2) ? "checked='checked'" : "") ); wc_printf(_("Repeat this event until ")); if (icaltime_is_null_time(recur.until)) { recur.until = icaltime_add(t_start, icaldurationtype_from_int(604800)); } display_icaltimetype_as_webform(&recur.until, "rruntil", 1); wc_printf("
    \n"); wc_printf("
    \n"); wc_printf("
    \n"); /* end 'rrule' div */ end_tab(2, 3); /* submit buttons (common area beneath the tabs) */ begin_tab(3, 3); wc_printf("
    " "" "  " "\n" "  " "\n" "  " "\n" "
    \n", _("Save"), _("Delete"), _("Check attendee availability"), _("Cancel") ); end_tab(3, 3); wc_printf("
    \n"); StrBufAppendPrintf(WC->trailing_javascript, "eventEditAllDay(); \n" "RecurrenceShowHide(); \n" "EnableOrDisableCheckButton(); \n" ); do_template("addressbook_popup"); wDumpContent(1); if (created_new_vevent) { icalcomponent_free(vevent); } } /* * Save an edited event * * supplied_vevent: the event to save * msgnum: the index on the citserver */ void save_individual_event(icalcomponent *supplied_vevent, long msgnum, char *from, int unread, calview *calv) { StrBuf *Buf; char buf[SIZ]; icalproperty *prop; icalcomponent *vevent, *encaps; int created_new_vevent = 0; int all_day_event = 0; struct icaltimetype event_start, t; icalproperty *attendee = NULL; char attendee_string[SIZ]; int i, j; int foundit; char form_attendees[SIZ]; char organizer_string[SIZ]; int sequence = 0; enum icalproperty_transp formtransp = ICAL_TRANSP_NONE; const char *ch; if (supplied_vevent != NULL) { vevent = supplied_vevent; /* Convert all timestamps to UTC to make them easier to process. */ ical_dezonify(vevent); /* * If we're looking at a fully encapsulated VCALENDAR * rather than a VEVENT component, attempt to use the first * relevant VEVENT subcomponent. If there is none, the * NULL returned by icalcomponent_get_first_component() will * tell the next iteration of this function to create a * new one. */ if (icalcomponent_isa(vevent) == ICAL_VCALENDAR_COMPONENT) { save_individual_event( icalcomponent_get_first_component( vevent, ICAL_VEVENT_COMPONENT), msgnum, from, unread, NULL ); return; } } else { vevent = icalcomponent_new(ICAL_VEVENT_COMPONENT); created_new_vevent = 1; } if ( (havebstr("save_button")) || (havebstr("check_button")) ) { /* Replace values in the component with ones from the form */ while (prop = icalcomponent_get_first_property(vevent, ICAL_SUMMARY_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } /* Add NOW() to the calendar object... */ icalcomponent_set_dtstamp(vevent, icaltime_from_timet( time(NULL), 0)); if (havebstr("summary")) { icalcomponent_add_property(vevent, icalproperty_new_summary(bstr("summary"))); } else { icalcomponent_add_property(vevent, icalproperty_new_summary(_("Untitled Event"))); } while (prop = icalcomponent_get_first_property(vevent, ICAL_LOCATION_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } if (havebstr("location")) { icalcomponent_add_property(vevent, icalproperty_new_location(bstr("location"))); } while (prop = icalcomponent_get_first_property(vevent, ICAL_DESCRIPTION_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } if (havebstr("description")) { icalcomponent_add_property(vevent, icalproperty_new_description(bstr("description"))); } while (prop = icalcomponent_get_first_property(vevent, ICAL_DTSTART_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } if (yesbstr("alldayevent")) { all_day_event = 1; } else { all_day_event = 0; } if (all_day_event) { icaltime_from_webform_dateonly(&event_start, "dtstart"); } else { icaltime_from_webform(&event_start, "dtstart"); } prop = icalproperty_new_dtstart(event_start); if (all_day_event) { /* Force it to serialize as a date-only rather than date/time */ icalproperty_set_value(prop, icalvalue_new_date(event_start)); } if (prop) icalcomponent_add_property(vevent, prop); else icalproperty_free(prop); while (prop = icalcomponent_get_first_property(vevent, ICAL_DTEND_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } while (prop = icalcomponent_get_first_property(vevent, ICAL_DURATION_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } if (all_day_event) { icaltime_from_webform_dateonly(&t, "dtend"); /* with this field supposed to be non-inclusive we have to add one day */ icaltime_adjust(&t, 1, 0, 0, 0); } else { icaltime_from_webform(&t, "dtend"); } icalcomponent_add_property(vevent, icalproperty_new_dtend(icaltime_normalize(t) ) ); /* recurrence rules -- begin */ /* remove any existing rule */ while (prop = icalcomponent_get_first_property(vevent, ICAL_RRULE_PROPERTY), prop != NULL) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } if (yesbstr("is_recur")) { struct icalrecurrencetype recur; icalrecurrencetype_clear(&recur); recur.interval = atoi(bstr("interval")); recur.freq = atoi(bstr("freq")); switch(recur.freq) { /* These can't happen; they're disabled. */ case ICAL_SECONDLY_RECURRENCE: break; case ICAL_MINUTELY_RECURRENCE: break; case ICAL_HOURLY_RECURRENCE: break; /* Daily is valid but there are no further inputs. */ case ICAL_DAILY_RECURRENCE: break; /* These are the real options. */ case ICAL_WEEKLY_RECURRENCE: j=0; for (i=0; i<7; ++i) { snprintf(buf, sizeof buf, "weekday%d", i); if (YESBSTR(buf)) recur.by_day[j++] = icalrecurrencetype_day_day_of_week(i+1); } recur.by_day[j++] = ICAL_RECURRENCE_ARRAY_MAX; break; case ICAL_MONTHLY_RECURRENCE: if (!strcasecmp(bstr("rrmonthtype"), "rrmonthtype_mday")) { recur.by_month_day[0] = event_start.day; recur.by_month_day[1] = ICAL_RECURRENCE_ARRAY_MAX; } else if (!strcasecmp(bstr("rrmonthtype"), "rrmonthtype_wday")) { recur.by_day[0] = (atoi(bstr("rrmweek")) * 8) + atoi(bstr("rrmweekday")) + 1; recur.by_day[1] = ICAL_RECURRENCE_ARRAY_MAX; } break; case ICAL_YEARLY_RECURRENCE: if (!strcasecmp(bstr("rryeartype"), "rryeartype_ymday")) { /* no further action is needed here */ } else if (!strcasecmp(bstr("rryeartype"), "rryeartype_ywday")) { recur.by_month[0] = atoi(bstr("rrymonth")); recur.by_month[1] = ICAL_RECURRENCE_ARRAY_MAX; recur.by_day[0] = (atoi(bstr("rrymweek")) * 8) + atoi(bstr("rrymweekday")) + 1; recur.by_day[1] = ICAL_RECURRENCE_ARRAY_MAX; } break; /* This one can't happen either. */ case ICAL_NO_RECURRENCE: break; } if (!strcasecmp(bstr("rrend"), "rrend_count")) { recur.count = atoi(bstr("rrcount")); } else if (!strcasecmp(bstr("rrend"), "rrend_until")) { icaltime_from_webform_dateonly(&recur.until, "rruntil"); } icalcomponent_add_property(vevent, icalproperty_new_rrule(recur)); } /* recurrence rules -- end */ /* See if transparency is indicated */ if (havebstr("transp")) { if (!strcasecmp(bstr("transp"), "opaque")) { formtransp = ICAL_TRANSP_OPAQUE; } else if (!strcasecmp(bstr("transp"), "transparent")) { formtransp = ICAL_TRANSP_TRANSPARENT; } while (prop = icalcomponent_get_first_property(vevent, ICAL_TRANSP_PROPERTY), (prop != NULL)) { icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } icalcomponent_add_property(vevent, icalproperty_new_transp(formtransp)); } /* Give this event a UID if it doesn't have one. */ if (icalcomponent_get_first_property(vevent, ICAL_UID_PROPERTY) == NULL) { generate_uuid(buf); icalcomponent_add_property(vevent, icalproperty_new_uid(buf)); } /* Increment the sequence ID */ while (prop = icalcomponent_get_first_property(vevent, ICAL_SEQUENCE_PROPERTY), (prop != NULL) ) { i = icalproperty_get_sequence(prop); if (i > sequence) sequence = i; icalcomponent_remove_property(vevent, prop); icalproperty_free(prop); } ++sequence; icalcomponent_add_property(vevent, icalproperty_new_sequence(sequence) ); /* * Set the organizer, only if one does not already exist *and* * the form is supplying one */ strcpy(buf, bstr("organizer")); if ( (icalcomponent_get_first_property(vevent, ICAL_ORGANIZER_PROPERTY) == NULL) && (!IsEmptyStr(buf)) ) { /* set new organizer */ sprintf(organizer_string, "MAILTO:%s", buf); icalcomponent_add_property(vevent, icalproperty_new_organizer(organizer_string) ); } /* * Add any new attendees listed in the web form */ /* First, strip out the parenthesized partstats. */ strcpy(form_attendees, bstr("attendees")); while ( stripout(form_attendees, '(', ')') != 0); /* Next, change any commas to newlines, because we want newline-separated attendees. */ j = strlen(form_attendees); for (i=0; i 0L) ) { serv_printf("DELE %ld", lbstr("msgnum")); serv_getln(buf, sizeof buf); } if (created_new_vevent) { icalcomponent_free(vevent); } /* If this was a save or delete, go back to the calendar or summary view. */ if (!havebstr("check_button")) { if (!strcasecmp(bstr("calview"), "summary")) { display_summary_page(); } else { readloop(readfwd, eUseDefault); } } } webcit-dfsg.orig/blogview_renderer.c0000644000175000017500000003173213223341037017655 0ustar michaelmichael/* * Blog view renderer module for WebCit * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" CtxType CTX_BLOGPOST = CTX_NONE; typedef struct __BLOG { HashList *BLOGPOSTS; long p; int gotonext; long firstp; long maxp; StrBuf *Charset; StrBuf *Buf; const StrBuf *FilterTag; } BLOG; /* * Array type for a blog post. The first message is the post; the rest are comments */ typedef struct _blogpost { int top_level_id; long *msgs; /* Array of msgnums for messages we are displaying */ int num_msgs; /* Number of msgnums stored in 'msgs' */ int alloc_msgs; /* Currently allocated size of array */ int unread_oments; }blogpost; /* * XML sitemap generator -- go through the message list for a Blog room */ void sitemap_do_blog(void) { wcsession *WCC = WC; blogpost oneBP; int num_msgs = 0; int i; SharedMessageStatus Stat; message_summary *Msg = NULL; StrBuf *Buf = NewStrBuf(); StrBuf *FoundCharset = NewStrBuf(); WCTemplputParams SubTP; memset(&Stat, 0, sizeof Stat); memset(&oneBP, 0, sizeof(blogpost)); memset(&SubTP, 0, sizeof(WCTemplputParams)); StackContext(NULL, &SubTP, &oneBP, CTX_BLOGPOST, 0, NULL); Stat.maxload = INT_MAX; Stat.lowest_found = (-1); Stat.highest_found = (-1); num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0); if (num_msgs < 1) return; for (i=0; isumm); if (Msg != NULL) { ReadOneMessageSummary(Msg, FoundCharset, Buf); /* Show only top level posts, not comments */ if ((Msg->reply_inreplyto_hash != 0) && (Msg->reply_references_hash == 0)) { oneBP.top_level_id = Msg->reply_inreplyto_hash; DoTemplate(HKEY("view_blog_sitemap"), WCC->WBuf, &SubTP); } } } UnStackContext(&SubTP); FreeStrBuf(&Buf); FreeStrBuf(&FoundCharset); } /* * Generate a permalink for a post * (Call with NULL arguments to make this function wcprintf() the permalink * instead of writing it to the template) */ void tmplput_blog_toplevel_id(StrBuf *Target, WCTemplputParams *TP) { blogpost *bp = (blogpost*) CTX(CTX_BLOGPOST); char buf[SIZ]; snprintf(buf, SIZ, "%d", bp->top_level_id); StrBufAppendTemplateStr(Target, TP, buf, 0); } void tmplput_blog_comment_count(StrBuf *Target, WCTemplputParams *TP) { blogpost *bp = (blogpost*) CTX(CTX_BLOGPOST); char buf[SIZ]; snprintf(buf, SIZ, "%d", bp->num_msgs -1); StrBufAppendTemplateStr(Target, TP, buf, 0); } void tmplput_blog_comment_unread_count(StrBuf *Target, WCTemplputParams *TP) { blogpost *bp = (blogpost*) CTX(CTX_BLOGPOST); char buf[SIZ]; snprintf(buf, SIZ, "%d", bp->unread_oments); StrBufAppendTemplateStr(Target, TP, buf, 0); } /* * Render a single blog post and (optionally) its comments */ void blogpost_render(blogpost *bp, int with_comments, WCTemplputParams *TP) { wcsession *WCC = WC; WCTemplputParams SubTP; const StrBuf *Mime; int i; memset(&SubTP, 0, sizeof(WCTemplputParams)); StackContext(TP, &SubTP, bp, CTX_BLOGPOST, 0, NULL); /* Always show the top level post, unless we somehow ended up with an empty list */ if (bp->num_msgs > 0) { read_message(WC->WBuf, HKEY("view_blog_post"), bp->msgs[0], NULL, &Mime, TP); } if (with_comments) { /* Show any existing comments, then offer the comment box */ DoTemplate(HKEY("view_blog_show_commentlink"), WCC->WBuf, &SubTP); for (i=1; inum_msgs; ++i) { read_message(WC->WBuf, HKEY("view_blog_comment"), bp->msgs[i], NULL, &Mime, &SubTP); } DoTemplate(HKEY("view_blog_comment_box"), WCC->WBuf, &SubTP); } else { /* Show only the number of comments */ DoTemplate(HKEY("view_blog_show_no_comments"), WCC->WBuf, &SubTP); } UnStackContext(&SubTP); } /* * Destructor for "blogpost" */ void blogpost_destroy(blogpost *bp) { if (bp->alloc_msgs > 0) { free(bp->msgs); } free(bp); } /* * Entry point for message read operations. */ int blogview_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { BLOG *BL = (BLOG*) malloc(sizeof(BLOG)); BL->BLOGPOSTS = NewHash(1, lFlathash); /* are we looking for a specific post? */ BL->p = lbstr("p"); BL->gotonext = havebstr("gotonext"); BL->Charset = NewStrBuf(); BL->Buf = NewStrBuf(); BL->FilterTag = sbstr("FilterTag"); BL->firstp = lbstr("firstp"); /* start reading at... */ BL->maxp = lbstr("maxp"); /* max posts to show... */ if (BL->maxp < 1) BL->maxp = 5; /* default; move somewhere else? */ putlbstr("maxp", BL->maxp); *ViewSpecific = BL; Stat->startmsg = (-1); /* not used here */ Stat->sortit = 1; /* not used here */ Stat->num_displayed = DEFAULT_MAXMSGS; /* not used here */ if (Stat->maxmsgs == 0) Stat->maxmsgs = DEFAULT_MAXMSGS; /* perform a "read all" call to fetch the message list -- we'll cut it down later */ snprintf(cmd, len, "MSGS ALL||2|8\n"); if (BL->gotonext) Stat->load_seen = 1; return 200; } int blogview_IdentifyBlogposts (StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer, void **ViewSpecific) { BLOG *BL = (BLOG*) *ViewSpecific; blogpost *bp = NULL; /* Stop processing if the viewer is only interested in a single post and * that message ID is neither the id nor the refs. */ if ((BL->p != 0) && (BL->p != Msg->reply_inreplyto_hash) && (BL->p != Msg->reply_references_hash)) { return 0; } if ((Msg->reply_references_hash == 0) && (BL->FilterTag != NULL) && (strstr(ChrPtr(Msg->EnvTo) , ChrPtr(BL->FilterTag)) == NULL)) { /* filtering for tags, blogpost doesn't fit. */ return 0; } /* * build up a hashtable of the blogposts. */ if (Msg->reply_references_hash == 0) { bp = malloc(sizeof(blogpost)); if (bp == NULL) return 0; memset(bp, 0, sizeof (blogpost)); bp->top_level_id = Msg->reply_inreplyto_hash; bp->alloc_msgs = 1000; bp->msgs = malloc(bp->alloc_msgs * sizeof(long)); memset(bp->msgs, 0, (bp->alloc_msgs * sizeof(long)) ); /* the first one is the blogpost itself, all subequent are comments. */ bp->msgs[0] = Msg->msgnum; bp->num_msgs = 1; Put(BL->BLOGPOSTS, LKEY(Msg->reply_inreplyto_hash), bp, (DeleteHashDataFunc)blogpost_destroy); } /* * Comments will be handled on the next iteration. */ return 1; } /* * This function is called for every message in the list. */ int blogview_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i) { blogpost *bp = NULL; BLOG *BL = (BLOG*) *ViewSpecific; if (Msg->reply_references_hash != 0) { /* * this is a comment. try to assign it to a blogpost. */ GetHash(BL->BLOGPOSTS, LKEY(Msg->reply_references_hash), (void *)&bp); /* * Now we have a 'blogpost' to which we can add the comment. It's either the * blog post itself or a comment attached to it; either way, the code is the same from * this point onward. */ if (bp != NULL) { if (bp->num_msgs >= bp->alloc_msgs) { bp->alloc_msgs *= 2; bp->msgs = realloc(bp->msgs, (bp->alloc_msgs * sizeof(long))); memset(&bp->msgs[bp->num_msgs], 0, ((bp->alloc_msgs - bp->num_msgs) * sizeof(long)) ); } bp->msgs[bp->num_msgs++] = Msg->msgnum; if ((Msg->Flags & MSGFLAG_READ) != 0) { bp->unread_oments++; } } else { /* * Ok, this comment probably belongs to one of the blogposts * we ruled out by filters. don't load it. */ return 200; } } return 200; } /* * Sort a list of 'struct blogpost' pointers by newest-to-oldest msgnum. * With big thanks to whoever wrote http://www.c.happycodings.com/Sorting_Searching/code14.html */ static int blogview_sortfunc(const void *a, const void *b) { blogpost const *one = GetSearchPayload(a); blogpost const *two = GetSearchPayload(b); if ( one->msgs[0] > two->msgs[0] ) return(-1); if ( one->msgs[0] < two->msgs[0] ) return(+1); return(0); } /* * All blogpost entries are now in the hash list. * Sort them, select the desired range, and render what we want to see. */ int blogview_render(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { wcsession *WCC = WC; BLOG *BL = (BLOG*) *ViewSpecific; HashPos *it; const char *Key; blogpost *thisBlogpost; void *Data; long len; int num_blogposts = 0; int with_comments = 0; WCTemplputParams SubTP; WCTemplputParams StopSubTP; blogpost oneBP; long firstPOffset = 0; int count = 0; int totalCount = 0; StrBuf *PrevNext = NULL; num_blogposts = GetCount(BL->BLOGPOSTS); if (num_blogposts == 0) { /* Nothing to do... */ return 0; } memset(&SubTP, 0, sizeof(WCTemplputParams)); memset(&StopSubTP, 0, sizeof(WCTemplputParams)); memset(&oneBP, 0, sizeof(blogpost)); /* Comments are shown if we are only viewing a single blog post */ with_comments = (BL->p != 0); it = GetNewHashPos(BL->BLOGPOSTS, 0); if ((BL->gotonext) && (BL->p == 0)) { /* did we come here via gotonext? lets find out whether * this blog has just one blogpost with new comments just display * this one. */ blogpost *unread_bp = NULL; int unread_count = 0; while (GetNextHashPos(BL->BLOGPOSTS, it, &len, &Key, &Data)) { blogpost *one_bp = (blogpost *) Data; if (one_bp->unread_oments > 0) { unread_bp = one_bp; unread_count++; } } if (unread_count == 1) { blogpost_render(unread_bp, 1, NULL);/// TODO other than null? DeleteHashPos(&it); return 0; } } /* Now we have our array. It is ONLY an array of pointers. The objects to * which they point are still owned by the hash list. */ /* get it into the right sort of order - blogposts may have been edited */ SortByPayload(BL->BLOGPOSTS, blogview_sortfunc); /* Find the start post to display: */ if (BL->firstp != 0) { /* Translate the firstpost id into an offset */ RewindHashPos(BL->BLOGPOSTS, it, 0); while (GetNextHashPos(BL->BLOGPOSTS, it, &len, &Key, &Data)) { thisBlogpost = (blogpost *) Data; if (thisBlogpost->top_level_id == BL->firstp) { firstPOffset = count; break; } count ++; } } if ((num_blogposts > BL->maxp) || (firstPOffset != 0)){ PrevNext = NewStrBuf(); if (firstPOffset > 0) { const char *k; long len; long posPrev = 0; /* we now need to go up to maxp items back */ if (firstPOffset > BL->maxp) { posPrev = firstPOffset - BL->maxp; } GetHashAt(BL->BLOGPOSTS, posPrev, &len, &k, &Data); thisBlogpost = (blogpost *) Data; StackContext(NULL, &SubTP, thisBlogpost, CTX_BLOGPOST, 0, NULL); DoTemplate(HKEY("view_blog_newer_posts"), PrevNext, &SubTP); } if (firstPOffset + BL->maxp <= num_blogposts) { const char *k; long len; long posNext = firstPOffset + BL->maxp; GetHashAt(BL->BLOGPOSTS, posNext, &len, &k, &Data); thisBlogpost = (blogpost *) Data; StackContext(NULL, &SubTP, thisBlogpost, CTX_BLOGPOST, 0, NULL); DoTemplate(HKEY("view_blog_older_posts"), PrevNext, &SubTP); } } StrBufAppendBuf(WCC->WBuf, PrevNext, 0); count = totalCount = 0; RewindHashPos(BL->BLOGPOSTS, it, 0); /* FIXME -- allow the user (or a default setting) to select a maximum number of posts to display */ while (GetNextHashPos(BL->BLOGPOSTS, it, &len, &Key, &Data)) { thisBlogpost = (blogpost *) Data; /* allow the user to select a starting point in the list */ if (totalCount < firstPOffset) { /* skip all till we found the first valid: */ totalCount ++; continue; } if (count >= BL->maxp) { /* enough is enough. */ break; } StackContext(NULL, &SubTP, thisBlogpost, CTX_BLOGPOST, 0, NULL); blogpost_render(thisBlogpost, with_comments, &SubTP); UnStackContext(&SubTP); count ++; totalCount ++; } StrBufAppendBuf(WCC->WBuf, PrevNext, 0); FreeStrBuf(&PrevNext); DeleteHashPos(&it); return(0); } int blogview_Cleanup(void **ViewSpecific) { BLOG *BL = (BLOG*) *ViewSpecific; FreeStrBuf(&BL->Buf); FreeStrBuf(&BL->Charset); DeleteHash(&BL->BLOGPOSTS); free(BL); wDumpContent(1); return 0; } void InitModule_BLOGVIEWRENDERERS (void) { const char* browseListFields[] = { "msgn", "nvto", "wefw", NULL }; RegisterCTX(CTX_BLOGPOST); RegisterReadLoopHandlerset( VIEW_BLOG, blogview_GetParamsGetServerCall, NULL, NULL, blogview_IdentifyBlogposts, blogview_LoadMsgFromServer, blogview_render, blogview_Cleanup, browseListFields ); RegisterNamespace("BLOG:TOPLEVEL:MSGID", 0, 0, tmplput_blog_toplevel_id, NULL, CTX_BLOGPOST); RegisterNamespace("BLOG:COMMENTS:COUNT", 0, 0, tmplput_blog_comment_count, NULL, CTX_BLOGPOST); RegisterNamespace("BLOG:COMMENTS:UNREAD:COUNT", 0, 0, tmplput_blog_comment_unread_count, NULL, CTX_BLOGPOST); } webcit-dfsg.orig/messages.h0000644000175000017500000002333313223341037015763 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef MESSAGES_H #define MESSAGES_H extern CtxType CTX_MAILSUM; extern CtxType CTX_MIME_ATACH; extern HashList *MimeRenderHandler; extern HashList *ReadLoopHandler; typedef struct wc_mime_attachment wc_mime_attachment; typedef void (*RenderMimeFunc)(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset); typedef struct _RenderMimeFuncStruct { RenderMimeFunc f; } RenderMimeFuncStruct; struct wc_mime_attachment { int level; StrBuf *Name; StrBuf *FileName; StrBuf *PartNum; StrBuf *Disposition; StrBuf *ContentType; StrBuf *Charset; StrBuf *Data; size_t length; /* length of the mimeattachment */ long size_known; long lvalue; /* if we put a long... */ long msgnum; /* the message number on the citadel server derived from message_summary */ const RenderMimeFuncStruct *Renderer; }; void DestroyMime(void *vMime); #define MSGFLAG_READ (1<<0) typedef struct _message_summary { long msgnum; /* the message number on the citadel server */ int Flags; time_t date; /* its creation date */ int nhdr; int format_type; StrBuf *euid; StrBuf *from; /* the author */ StrBuf *to; /* the recipient */ StrBuf *subj; /* the title / subject */ StrBuf *reply_inreplyto; long reply_inreplyto_hash; StrBuf *reply_references; long reply_references_hash; StrBuf *ReplyTo; StrBuf *cccc; StrBuf *hnod; StrBuf *AllRcpt; StrBuf *Room; StrBuf *Rfca; StrBuf *EnvTo; StrBuf *OtherNode; const StrBuf *PartNum; HashList *Attachments; /* list of attachments */ HashList *Submessages; HashList *AttachLinks; HashList *AllAttach; int hasattachments; /* The mime part of the message */ wc_mime_attachment *MsgBody; } message_summary; void DestroyMessageSummary(void *vMsg); /* Maps to msgkeys[] in msgbase.c: */ typedef enum _eMessageField { eAuthor, eXclusivID, erFc822Addr, eHumanNode, emessageId, eJournal, eReplyTo, eListID, eMesageText, eNodeName, eOriginalRoom, eMessagePath, eRecipient, eSpecialField, eTimestamp, eMsgSubject, eenVelopeTo, eWeferences, eCarbonCopY, eHeaderOnly, eFormatType, eMessagePart, ePevious, eSubFolder, eLastHeader }eMessageField; extern const char* fieldMnemonics[]; int GetFieldFromMnemonic(eMessageField *f, const char* c); int EvaluateMsgHdr(const char *HeaderName, long HdrNLen, message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset); int EvaluateMsgHdrEnum(eMessageField f, message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset); static inline message_summary* GetMessagePtrAt(int n, HashList *Summ) { const char *Key; long HKLen; void *vMsg; if (Summ == NULL) return NULL; GetHashAt(Summ, n, &HKLen, &Key, &vMsg); return (message_summary*) vMsg; } typedef void (*ExamineMsgHeaderFunc)(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset); void evaluate_mime_part(StrBuf *Target, WCTemplputParams *TP); typedef enum _eCustomRoomRenderer { eUseDefault = VIEW_JOURNAL + 100, eReadEUIDS }eCustomRoomRenderer; enum { do_search, headers, readfwd, readnew, readold, readgt, readlt }; /** * @brief function to parse the | separated message headers list * @param Line the raw line with your message data * @param Msg put your parser results here... * @param ConversionBuffer if you need some workbuffer, don't free me! * @param ViewSpecific your view specific context data * @returns 0: failure, trash this message. 1: all right, store it */ typedef int (*load_msg_ptrs_detailheaders) (StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer, void **ViewSpecific); typedef void (*readloop_servcmd)(char *buf, long bufsize); typedef struct _readloopstruct { ConstStr name; readloop_servcmd cmd; } readloop_struct; extern readloop_struct rlid[]; void readloop(long oper, eCustomRoomRenderer ForceRenderer); int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, const StrBuf *section, const StrBuf **OutMime, WCTemplputParams *TP); int load_message(message_summary *Msg, StrBuf *FoundCharset, StrBuf **Error); typedef struct _SharedMessageStatus { long load_seen; /* should read information be loaded */ long sortit; /* should we sort it using the standard sort API? */ long defaultsortorder; /* if we should sort it, which direction should be the default? */ long maxload; /* how many headers should we accept from the server? defaults to 10k */ long maxmsgs; /* how many message bodies do you want to load at most?*/ long startmsg; /* which is the start message? */ long nummsgs; /* How many messages are available to your view? */ long numNewmsgs; /* if you load the seen-status, this is the count of them. */ long num_displayed; /* counted up for LoadMsgFromServer */ /* TODO: unclear who should access this and why */ long lowest_found; /* smallest Message ID found; */ long highest_found; /* highest Message ID found; */ } SharedMessageStatus; int load_msg_ptrs(const char *servcmd, const char *filter, StrBuf *FoundCharset, SharedMessageStatus *Stat, void **ViewSpecific, load_msg_ptrs_detailheaders LH, StrBuf *FetchMessageList, eMessageField *MessageFieldList, long HeaderCount); typedef int (*GetParamsGetServerCall_func)(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen); typedef int (*PrintViewHeader_func)(SharedMessageStatus *Stat, void **ViewSpecific); typedef int (*LoadMsgFromServer_func)(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i); typedef int (*RenderView_or_Tail_func)(SharedMessageStatus *Stat, void **ViewSpecific, long oper); typedef int (*View_Cleanup_func)(void **ViewSpecific); void RegisterReadLoopHandlerset( /** * RoomType: which View definition are you going to be called for */ int RoomType, /** * GetParamsGetServerCall should do the following: * * allocate your private context structure * * evaluate your commandline arguments, put results to your private struct. * * fill cmd with the command to load the message pointer list: * * might depend on bstr/oper depending on your needs * * might stay empty if no list should loaded and LoadMsgFromServer * is skipped. * * influence the behaviour by presetting values on SharedMessageStatus */ GetParamsGetServerCall_func GetParamsGetServerCall, /** * PrintpageHeader prints the surrounding information like iconbar, header etc. * by default, output_headers() is called. * */ PrintViewHeader_func PrintPageHeader, /** * PrintViewHeader is here to print informations infront of your messages. * The message list is already loaded & sorted (if) so you can evaluate * its result on the SharedMessageStatus struct. */ PrintViewHeader_func PrintViewHeader, /** * LH is the function, you specify if you want to load more than just message * numbers from the server during the listing fetch operation. */ load_msg_ptrs_detailheaders LH, /** * LoadMsgFromServer is called for every message in the message list: * * which is * * after 'startmsg' * * up to 'maxmsgs' after your 'startmsg' * * it should load and parse messages from citserer. * * depending on your needs you might want to print your message here... * * if cmd was empty, its skipped alltogether. */ LoadMsgFromServer_func LoadMsgFromServer, /** * RenderView_or_Tail is called last; * * if you used PrintViewHeader to print messages, you might want to print * trailing information here * * if you just pre-loaded your messages, put your render code here. */ RenderView_or_Tail_func RenderView_or_Tail, /** * ViewCleanup should just clear your private data so all your mem can go back to * VALgrindHALLA. * it also should release the content for delivery via end_burst() or wDumpContent(1); */ View_Cleanup_func ViewCleanup, /** * brofwseListFields schould be a NULL-terminated list of message field mnemonics * that will be the browse vector for the message header list. */ const char **browseListFields ); /* GetParamsGetServerCall PrintViewHeader LoadMsgFromServer RenderView_or_Tail */ int ParseMessageListHeaders_Detail(StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer, void **ViewSpecific); /** * @brief function to register the availability to render a specific message * @param HeaderName Mimetype we know howto display * @param HdrNLen length... * @param InlineRenderable Should we announce to citserver that we want to receive these mimeparts immediately? * @param Priority if multipart/alternative; which mimepart/Renderer should be prefered? (only applies if InlineRenderable) */ void RegisterMimeRenderer(const char *HeaderName, long HdrNLen, RenderMimeFunc MimeRenderer, int InlineRenderable, int Priority); /** * @brief fill the header parts of Msg with the headers loaded by MSG0 * @param Msg empty message struct, only preinitialized with the msgid * @param FoundCharset buffer with the prefered charset of the headers * @param buf linebuffer used to buffer citserver replies */ int ReadOneMessageSummary(message_summary *Msg, StrBuf *FoundCharset, StrBuf *Buf); #endif webcit-dfsg.orig/README.txt0000644000175000017500000003272313223341037015504 0ustar michaelmichael WEBCIT for the Citadel System Copyright (C) 1996-2012 by the authors. Portions written by: Art Cancro Wilfried Goesgens Dave West Thierry Pasquier Nathan Bryant Nick Grossman Andru Luvisi Alessandro Fulciniti Dave Lindquist Matt Pfleger Martin Mouritzen Stefan Garthe This program is open source software released under the terms of the GNU General Public License, version 3. Please read COPYING.txt for more licensing information. WebCit bundles the Prototype JavaScript Framework, writen by Sam Stephenson [http://prototype.conio.net]. These components are licensed to you under the terms of an MIT-style license. WebCit bundles the script.aculo.us JavaScript library, written by Thomas Fuchs [http://script.aculo.us, http://mir.aculo.us]. These components are licensed to you under the terms of an MIT-style license. WebCit bundles the TinyMCE text editor, written by Moxiecode Systems AB (http://tinymce.moxiecode.com/tinymce/docs/credits.html). This component is licensed to you under the terms of the GNU Lesser General Public License. Most of our Icons are taken from the "Essen" set by the people on http://pc.de/icons/. We like to thank them for their astonishing work! Their site explicitly states: "Free for commercial use as well." One or more icons are from Milosz Wlazlo [http://miloszwl.deviantart.com] whose license explicitly allows inclusion in open source projects on the condition of this attribution. WebCit bundles the CSS3PIE library [http://css3pie.com] which is offered under both the Apache license and the GNU General Public License. The Citadel logo was designed by Lisa Aurigemma. INTRODUCTION ------------ Citadel is a sophisticated groupware platform which allows multiple users to simultaneously access the system using a variety of user interfaces. This package (WebCit) is a web based front end and user interface to the Citadel system. What this means in practice is that after you've installed WebCit, users can access all functions of your system using any web browser. Since this may be the first Citadel experience for many new users, the screens have been designed to be attractive and easy to navigate. INSTALLATION ------------ Unlike some web-based packages, WebCit contains its own standalone HTTP engine. As a result, you can get it running quickly without all that tedious mucking about with Apache configuration files and directories. WebCit is not intended to be a general-purpose web server, however -- it *only* provides a front end to Citadel. If you do not have another web server running, you may run WebCit on port 80; however, if you have Apache or some other web server listening on port 80, you must run WebCit on another port. If you do not specify a port number, WebCit will bind to port 2000. To compile from source, enter the usual commands: ./configure --prefix=/usr/local/webcit [or whatever directory you prefer] make make install Package/Ports Maintainers: to make webcit fit smart into LHFS-ified systems read on at the end of this file, Advanced configure options. Then to initialize it: cd /usr/local/webcit ./setup After running setup, you just point your web browser to whatever port you specified, such as: http://your.host.name (or if you specified some other port, such as 2000 in this example...) http://your.host.name:2000 ...and log in. The included "setup" program is basically just an installation helper that asks a series of questions and then adds the appropriate init files to start WebCit. For most installations, this will do just fine. If you have special circumstances, or if you'd prefer to configure WebCit manually, you may skip the setup program. Instead, open /etc/inittab and add an entry something like this: wc:2345:respawn:/usr/local/webcit/webcit Several command-line options are also available. Here's the usage for the "webcit" program: webcit [-i ip_addr] [-p http_port] [-s] [-S cipher_suite] [-g guest_landing_page] [-c] [-f] [remotehost [remoteport]] *or* webcit [-i ip_addr] [-p http_port] [-s] [-S cipher_suite] [-g guest_landing_page] [-c] [-f] uds /your/citadel/directory Explained: -> ip_addr: the IP address on which you wish your WebCit server to run. You can leave this out, in which case WebCit will listen on all available network interfaces. Normally this will be the case, but if you are running multiple Citadel systems on one host, it can be useful. You can also use this option to run Apache and WebCit on different IP addresses instead of different ports, if you have them available. -> http_port: the TCP port on which you wish your WebCit server to run. If you are installing WebCit on a dedicated server, you can use the standard port 80. Otherwise, if port 80 is already occupied by some other web service (probably Apache), then you'll need to select a different port. If you do not specify a port number, WebCit will attempt to use port 80. -> The "guest landing page" is a location on your WebCit installation where unauthenticated guest users are taken when they first enter the root of your site. If guest mode is not enabled on your Citadel server, they will be taken to a login page instead. If guest mode is enabled but no landing page is defined, they will be taken to the Lobby. -> The "-c" option causes WebCit to output an extra cookie containing the identity of the WebCit server. The cookie will look like this: Set-cookie: wcserver=your.host.name This is useful if you have a cluster of WebCit servers sitting behind a load balancer, and the load balancer has the ability to use cookies to keep track of which server to send HTTP requests to. -> The "-s" option causes WebCit to present an HTTPS (SSL-encrypted) web service. If you want to do both HTTP and HTTPS, you can simply run two instances of WebCit on two different ports. -> The "-S" option also enables HTTPS, but must be followed by a list of cipher suites you wish to enable. Please see http://openssl.org/docs/apps/ciphers.html for a list of cipher strings. -> The "-f" option tells WebCit that it is allowed to follow the "X-Forwarded-For:" HTTP headers which may be added if your WebCit service is sitting behind a front end proxy. This will allow users in your "Who is online?" list to appear as connecting from their actual host address instead of the address of the proxy. In addition, the "X-Forwarded-Host:" header from the front end proxy will also be honored, which will help to make automatically generated absolute URL's (for things like GroupDAV and mailing list subscriptions) correct. -> remotehost: the name or IP address of the host on which your Citadel server is running. The default is "localhost". -> remoteport: the port number on which your Citadel server is running. The default is port 504, the IANA-designated standard port for Citadel. -> "uds" is a keyword which tells WebCit that you wish to connect to a Citadel server running on the same computer, rather than using a TCP/IP socket. /your/citadel/directory should be set to the actual name of the directory in which you have Citadel installed (such as /usr/local/citadel). If you run Citadel and WebCit on the same computer, this is recommended, as it will run much faster. GRAPHICS -------- WebCit contains graphics, templates, JavaScript code, etc. which are kept in its "static" subdirectory. All site-specific graphics, however, are fetched from the Citadel server. The "images" directory on a Citadel system contains these graphics. The ones which you may be interested in are: -> background.gif: a background texture displayed under all web pages -> hello.gif: your system's logo. It is displayed along with the logon banner, and on the top left corner of each page. If you would like to deploy a "favicon.ico" graphic, please put it in the static/ directory. WebCit will properly serve it from there. CUSTOMIZATION ------------- The default WebCit installation will create an empty directory called "static.local". In this directory you may place a file called "webcit.css" into the "styles" directory which, if present, is referenced *after* the default stylesheet. If you know CSS and wish to customize your WebCit installation, any styles you declare in static.local/styles/webcit.css will override the styles found in static/styles/webcit.css -- and your customizations will not be overwritten when you upgrade WebCit later. You may also place other files, such as images, in static.local for further customization. CALENDAR SERVICE ---------------- WebCit contains support for calendaring and scheduling. In order to use it you must have libical v0.26 (or newer) on your system. WebCit also provides iCalendar format free/busy data for calendar clients. Unlike with some other servers, there is no need for each user to "publish" free/busy data -- it is generated on-the-fly from the server-side calendar of the user being queried. HTTPS (encryption) SUPPORT -------------------------- WebCit now supports HTTPS for encrypted connections. When a secure server port is specified via the "-s" flag, an HTTPS service is enabled. The service will look in the "keys" directory for the following files: citadel.key (your server's private key) citadel.csr (a certificate signing request) citadel.cer (your server's public certificate) If any of these files are not found, WebCit will first attempt to link to the SSL files in the Citadel service's directory (if Citadel is running on the same host as WebCit), and if that does not succeed, it will automatically generate a key and certificate. It is up to you to decide whether to use an automatically generated, self-signed certificate, or purchase a certificate signed by a well known authority. INTEGRATING INTO APACHE ----------------------- It is best to run WebCit natively on its own HTTP port. If, however, you wish to have WebCit run as part of an Apache web server installation (for example, you only have one IP address and you need to stay on port 80 or 443 in order to maintain compatibility with corporate firewall policy), you can do this with the "mod_proxy" Apache module. The preferred way to do this is to configure a NameVirtualHost for your WebCit installation (for example, http://webcit.example.com) and then proxy that virtual host through to WebCit. The alternative way, which does work but is not quite as robust, is to "mount" the WebCit paths as directory aliases to your main document root. Here is how to configure the NameVirtualHost method (recommended) : #here some of your config stuff like logging, serveradmin... NameVirtualHost www.mydomain.com allow from all ProxyPass / http://127.0.0.1:2000/ ProxyPassReverse / http://127.0.0.1:2000/ # The following line is optional. It allows WebCit's static content # such as images to be served directly by Apache. alias /static /var/lib/citadel/www/static Here is how to configure the "subdirectory" method (not recommended) : #here some of your config stuff like logging, serveradmin... NameVirtualHost www.mydomain.com allow from all allow from all allow from all allow from all ProxyPass /webcit/ http://127.0.0.1:2000/webcit/ ProxyPassReverse /webcit/ http://127.0.0.1:2000/webcit/ ProxyPass /listsub/ http://127.0.0.1:2000/listsub/ ProxyPassReverse /listsub/ http://127.0.0.1:2000/listsub/ ProxyPass /groupdav/ http://127.0.0.1:2000/groupdav/ ProxyPassReverse /groupdav/ http://127.0.0.1:2000/groupdav/ ProxyPass /who_inner_html http://127.0.0.1:2000/who_inner_html ProxyPassReverse /who_inner_html http://127.0.0.1:2000/who_inner_html ADVANCED CONFIGURATION OPTIONS ------------------------------ If you are building packages and prefer not to have WebCit reside entirely in a single directory, there are several compile-time options available. --with-wwwdir defines where webcit should locate and search its templates and images. --with-localedir defines where to put webcits locale files. Also, there are possibilities to load the TinyMCE editor into a system-wide location. WebCit uses this standard component to compose its messages for messages and postings. Several WebCit installations that may differ in design but use the same TinyMCE (which is the default that WebCit ships with) (set --with-editordir for that, it defaults to the dir the templates go) Install targets have diversified to reflect these changes too: (make install-.....) locale: the webcit .mo files for gettext & locales. tinymce: the editor. if your system brings one, just ommit this. wwwdata: our templates. setupbin: if you want to use webcits setup facility... but isn't needed in case you provide own init & config scripts. bin: the binaries. CONCLUSION ---------- That's all you need to know to get started. If you have any questions or comments, visit the Citadel Support room on UNCENSORED! BBS, the home of Citadel: http://uncensored.citadel.org/dotgoto?room=Citadel%20Support webcit-dfsg.orig/webserver.h0000644000175000017500000000151613223341037016157 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ extern char *static_dirs[PATH_MAX]; /**< Web representation */ extern int ndirs; extern char socket_dir[PATH_MAX]; extern char *default_landing_page; int ClientGetLine(ParsedHttpHdrs *Hdr, StrBuf *Target); int client_read_to(ParsedHttpHdrs *Hdr, StrBuf *Target, int bytes, int timeout); void wc_backtrace(long LogLevel); void ShutDownWebcit(void); void shutdown_ssl(void); webcit-dfsg.orig/ical_maps.c0000644000175000017500000012107313223341053016075 0ustar michaelmichael#include "webcit.h" typedef struct _Ical_icalproperty_kind { const char *Name; long NameLen; icalproperty_kind map; } Ical_icalproperty_kind; typedef struct _Ical_icalcomponent_kind { const char *Name; long NameLen; icalcomponent_kind map; } Ical_icalcomponent_kind; typedef struct _Ical_icalrequeststatus { const char *Name; long NameLen; icalrequeststatus map; } Ical_icalrequeststatus; typedef struct _Ical_ical_unknown_token_handling { const char *Name; long NameLen; ical_unknown_token_handling map; } Ical_ical_unknown_token_handling; typedef struct _Ical_icalrecurrencetype_frequency { const char *Name; long NameLen; icalrecurrencetype_frequency map; } Ical_icalrecurrencetype_frequency; typedef struct _Ical_icalrecurrencetype_weekday { const char *Name; long NameLen; icalrecurrencetype_weekday map; } Ical_icalrecurrencetype_weekday; typedef struct _Ical_icalvalue_kind { const char *Name; long NameLen; icalvalue_kind map; } Ical_icalvalue_kind; typedef struct _Ical_icalproperty_action { const char *Name; long NameLen; icalproperty_action map; } Ical_icalproperty_action; typedef struct _Ical_icalproperty_carlevel { const char *Name; long NameLen; icalproperty_carlevel map; } Ical_icalproperty_carlevel; typedef struct _Ical_icalproperty_class { const char *Name; long NameLen; icalproperty_class map; } Ical_icalproperty_class; typedef struct _Ical_icalproperty_cmd { const char *Name; long NameLen; icalproperty_cmd map; } Ical_icalproperty_cmd; typedef struct _Ical_icalproperty_method { const char *Name; long NameLen; icalproperty_method map; } Ical_icalproperty_method; typedef struct _Ical_icalproperty_querylevel { const char *Name; long NameLen; icalproperty_querylevel map; } Ical_icalproperty_querylevel; typedef struct _Ical_icalproperty_status { const char *Name; long NameLen; icalproperty_status map; } Ical_icalproperty_status; typedef struct _Ical_icalproperty_transp { const char *Name; long NameLen; icalproperty_transp map; } Ical_icalproperty_transp; typedef struct _Ical_icalproperty_xlicclass { const char *Name; long NameLen; icalproperty_xlicclass map; } Ical_icalproperty_xlicclass; typedef struct _Ical_icalparameter_kind { const char *Name; long NameLen; icalparameter_kind map; } Ical_icalparameter_kind; typedef struct _Ical_icalparameter_action { const char *Name; long NameLen; icalparameter_action map; } Ical_icalparameter_action; typedef struct _Ical_icalparameter_cutype { const char *Name; long NameLen; icalparameter_cutype map; } Ical_icalparameter_cutype; typedef struct _Ical_icalparameter_enable { const char *Name; long NameLen; icalparameter_enable map; } Ical_icalparameter_enable; typedef struct _Ical_icalparameter_encoding { const char *Name; long NameLen; icalparameter_encoding map; } Ical_icalparameter_encoding; typedef struct _Ical_icalparameter_fbtype { const char *Name; long NameLen; icalparameter_fbtype map; } Ical_icalparameter_fbtype; typedef struct _Ical_icalparameter_local { const char *Name; long NameLen; icalparameter_local map; } Ical_icalparameter_local; typedef struct _Ical_icalparameter_partstat { const char *Name; long NameLen; icalparameter_partstat map; } Ical_icalparameter_partstat; typedef struct _Ical_icalparameter_range { const char *Name; long NameLen; icalparameter_range map; } Ical_icalparameter_range; typedef struct _Ical_icalparameter_related { const char *Name; long NameLen; icalparameter_related map; } Ical_icalparameter_related; typedef struct _Ical_icalparameter_reltype { const char *Name; long NameLen; icalparameter_reltype map; } Ical_icalparameter_reltype; typedef struct _Ical_icalparameter_role { const char *Name; long NameLen; icalparameter_role map; } Ical_icalparameter_role; typedef struct _Ical_icalparameter_rsvp { const char *Name; long NameLen; icalparameter_rsvp map; } Ical_icalparameter_rsvp; typedef struct _Ical_icalparameter_value { const char *Name; long NameLen; icalparameter_value map; } Ical_icalparameter_value; typedef struct _Ical_icalparameter_xliccomparetype { const char *Name; long NameLen; icalparameter_xliccomparetype map; } Ical_icalparameter_xliccomparetype; typedef struct _Ical_icalparameter_xlicerrortype { const char *Name; long NameLen; icalparameter_xlicerrortype map; } Ical_icalparameter_xlicerrortype; typedef struct _Ical_icalparser_state { const char *Name; long NameLen; icalparser_state map; } Ical_icalparser_state; typedef struct _Ical_icalerrorenum { const char *Name; long NameLen; icalerrorenum map; } Ical_icalerrorenum; typedef struct _Ical_icalerrorstate { const char *Name; long NameLen; icalerrorstate map; } Ical_icalerrorstate; typedef struct _Ical_icalrestriction_kind { const char *Name; long NameLen; icalrestriction_kind map; } Ical_icalrestriction_kind; Ical_icalproperty_kind icalproperty_kind_map[] = { {HKEY("ICAL_ANY_PROPERTY"), ICAL_ANY_PROPERTY}, {HKEY("ICAL_ACTION_PROPERTY"), ICAL_ACTION_PROPERTY}, {HKEY("ICAL_ALLOWCONFLICT_PROPERTY"), ICAL_ALLOWCONFLICT_PROPERTY}, {HKEY("ICAL_ATTACH_PROPERTY"), ICAL_ATTACH_PROPERTY}, {HKEY("ICAL_ATTENDEE_PROPERTY"), ICAL_ATTENDEE_PROPERTY}, {HKEY("ICAL_CALID_PROPERTY"), ICAL_CALID_PROPERTY}, {HKEY("ICAL_CALMASTER_PROPERTY"), ICAL_CALMASTER_PROPERTY}, {HKEY("ICAL_CALSCALE_PROPERTY"), ICAL_CALSCALE_PROPERTY}, {HKEY("ICAL_CAPVERSION_PROPERTY"), ICAL_CAPVERSION_PROPERTY}, {HKEY("ICAL_CARLEVEL_PROPERTY"), ICAL_CARLEVEL_PROPERTY}, {HKEY("ICAL_CARID_PROPERTY"), ICAL_CARID_PROPERTY}, {HKEY("ICAL_CATEGORIES_PROPERTY"), ICAL_CATEGORIES_PROPERTY}, {HKEY("ICAL_CLASS_PROPERTY"), ICAL_CLASS_PROPERTY}, {HKEY("ICAL_CMD_PROPERTY"), ICAL_CMD_PROPERTY}, {HKEY("ICAL_COMMENT_PROPERTY"), ICAL_COMMENT_PROPERTY}, {HKEY("ICAL_COMPLETED_PROPERTY"), ICAL_COMPLETED_PROPERTY}, {HKEY("ICAL_COMPONENTS_PROPERTY"), ICAL_COMPONENTS_PROPERTY}, {HKEY("ICAL_CONTACT_PROPERTY"), ICAL_CONTACT_PROPERTY}, {HKEY("ICAL_CREATED_PROPERTY"), ICAL_CREATED_PROPERTY}, {HKEY("ICAL_CSID_PROPERTY"), ICAL_CSID_PROPERTY}, {HKEY("ICAL_DATEMAX_PROPERTY"), ICAL_DATEMAX_PROPERTY}, {HKEY("ICAL_DATEMIN_PROPERTY"), ICAL_DATEMIN_PROPERTY}, {HKEY("ICAL_DECREED_PROPERTY"), ICAL_DECREED_PROPERTY}, {HKEY("ICAL_DEFAULTCHARSET_PROPERTY"), ICAL_DEFAULTCHARSET_PROPERTY}, {HKEY("ICAL_DEFAULTLOCALE_PROPERTY"), ICAL_DEFAULTLOCALE_PROPERTY}, {HKEY("ICAL_DEFAULTTZID_PROPERTY"), ICAL_DEFAULTTZID_PROPERTY}, {HKEY("ICAL_DEFAULTVCARS_PROPERTY"), ICAL_DEFAULTVCARS_PROPERTY}, {HKEY("ICAL_DENY_PROPERTY"), ICAL_DENY_PROPERTY}, {HKEY("ICAL_DESCRIPTION_PROPERTY"), ICAL_DESCRIPTION_PROPERTY}, {HKEY("ICAL_DTEND_PROPERTY"), ICAL_DTEND_PROPERTY}, {HKEY("ICAL_DTSTAMP_PROPERTY"), ICAL_DTSTAMP_PROPERTY}, {HKEY("ICAL_DTSTART_PROPERTY"), ICAL_DTSTART_PROPERTY}, {HKEY("ICAL_DUE_PROPERTY"), ICAL_DUE_PROPERTY}, {HKEY("ICAL_DURATION_PROPERTY"), ICAL_DURATION_PROPERTY}, {HKEY("ICAL_EXDATE_PROPERTY"), ICAL_EXDATE_PROPERTY}, {HKEY("ICAL_EXPAND_PROPERTY"), ICAL_EXPAND_PROPERTY}, {HKEY("ICAL_EXRULE_PROPERTY"), ICAL_EXRULE_PROPERTY}, {HKEY("ICAL_FREEBUSY_PROPERTY"), ICAL_FREEBUSY_PROPERTY}, {HKEY("ICAL_GEO_PROPERTY"), ICAL_GEO_PROPERTY}, {HKEY("ICAL_GRANT_PROPERTY"), ICAL_GRANT_PROPERTY}, {HKEY("ICAL_ITIPVERSION_PROPERTY"), ICAL_ITIPVERSION_PROPERTY}, {HKEY("ICAL_LASTMODIFIED_PROPERTY"), ICAL_LASTMODIFIED_PROPERTY}, {HKEY("ICAL_LOCATION_PROPERTY"), ICAL_LOCATION_PROPERTY}, {HKEY("ICAL_MAXCOMPONENTSIZE_PROPERTY"), ICAL_MAXCOMPONENTSIZE_PROPERTY}, {HKEY("ICAL_MAXDATE_PROPERTY"), ICAL_MAXDATE_PROPERTY}, {HKEY("ICAL_MAXRESULTS_PROPERTY"), ICAL_MAXRESULTS_PROPERTY}, {HKEY("ICAL_MAXRESULTSSIZE_PROPERTY"), ICAL_MAXRESULTSSIZE_PROPERTY}, {HKEY("ICAL_METHOD_PROPERTY"), ICAL_METHOD_PROPERTY}, {HKEY("ICAL_MINDATE_PROPERTY"), ICAL_MINDATE_PROPERTY}, {HKEY("ICAL_MULTIPART_PROPERTY"), ICAL_MULTIPART_PROPERTY}, {HKEY("ICAL_NAME_PROPERTY"), ICAL_NAME_PROPERTY}, {HKEY("ICAL_ORGANIZER_PROPERTY"), ICAL_ORGANIZER_PROPERTY}, {HKEY("ICAL_OWNER_PROPERTY"), ICAL_OWNER_PROPERTY}, {HKEY("ICAL_PERCENTCOMPLETE_PROPERTY"), ICAL_PERCENTCOMPLETE_PROPERTY}, {HKEY("ICAL_PERMISSION_PROPERTY"), ICAL_PERMISSION_PROPERTY}, {HKEY("ICAL_PRIORITY_PROPERTY"), ICAL_PRIORITY_PROPERTY}, {HKEY("ICAL_PRODID_PROPERTY"), ICAL_PRODID_PROPERTY}, {HKEY("ICAL_QUERY_PROPERTY"), ICAL_QUERY_PROPERTY}, {HKEY("ICAL_QUERYLEVEL_PROPERTY"), ICAL_QUERYLEVEL_PROPERTY}, {HKEY("ICAL_QUERYID_PROPERTY"), ICAL_QUERYID_PROPERTY}, {HKEY("ICAL_QUERYNAME_PROPERTY"), ICAL_QUERYNAME_PROPERTY}, {HKEY("ICAL_RDATE_PROPERTY"), ICAL_RDATE_PROPERTY}, {HKEY("ICAL_RECURACCEPTED_PROPERTY"), ICAL_RECURACCEPTED_PROPERTY}, {HKEY("ICAL_RECUREXPAND_PROPERTY"), ICAL_RECUREXPAND_PROPERTY}, {HKEY("ICAL_RECURLIMIT_PROPERTY"), ICAL_RECURLIMIT_PROPERTY}, {HKEY("ICAL_RECURRENCEID_PROPERTY"), ICAL_RECURRENCEID_PROPERTY}, {HKEY("ICAL_RELATEDTO_PROPERTY"), ICAL_RELATEDTO_PROPERTY}, {HKEY("ICAL_RELCALID_PROPERTY"), ICAL_RELCALID_PROPERTY}, {HKEY("ICAL_REPEAT_PROPERTY"), ICAL_REPEAT_PROPERTY}, {HKEY("ICAL_REQUESTSTATUS_PROPERTY"), ICAL_REQUESTSTATUS_PROPERTY}, {HKEY("ICAL_RESOURCES_PROPERTY"), ICAL_RESOURCES_PROPERTY}, {HKEY("ICAL_RESTRICTION_PROPERTY"), ICAL_RESTRICTION_PROPERTY}, {HKEY("ICAL_RRULE_PROPERTY"), ICAL_RRULE_PROPERTY}, {HKEY("ICAL_SCOPE_PROPERTY"), ICAL_SCOPE_PROPERTY}, {HKEY("ICAL_SEQUENCE_PROPERTY"), ICAL_SEQUENCE_PROPERTY}, {HKEY("ICAL_STATUS_PROPERTY"), ICAL_STATUS_PROPERTY}, {HKEY("ICAL_STORESEXPANDED_PROPERTY"), ICAL_STORESEXPANDED_PROPERTY}, {HKEY("ICAL_SUMMARY_PROPERTY"), ICAL_SUMMARY_PROPERTY}, {HKEY("ICAL_TARGET_PROPERTY"), ICAL_TARGET_PROPERTY}, {HKEY("ICAL_TRANSP_PROPERTY"), ICAL_TRANSP_PROPERTY}, {HKEY("ICAL_TRIGGER_PROPERTY"), ICAL_TRIGGER_PROPERTY}, {HKEY("ICAL_TZID_PROPERTY"), ICAL_TZID_PROPERTY}, {HKEY("ICAL_TZNAME_PROPERTY"), ICAL_TZNAME_PROPERTY}, {HKEY("ICAL_TZOFFSETFROM_PROPERTY"), ICAL_TZOFFSETFROM_PROPERTY}, {HKEY("ICAL_TZOFFSETTO_PROPERTY"), ICAL_TZOFFSETTO_PROPERTY}, {HKEY("ICAL_TZURL_PROPERTY"), ICAL_TZURL_PROPERTY}, {HKEY("ICAL_UID_PROPERTY"), ICAL_UID_PROPERTY}, {HKEY("ICAL_URL_PROPERTY"), ICAL_URL_PROPERTY}, {HKEY("ICAL_VERSION_PROPERTY"), ICAL_VERSION_PROPERTY}, {HKEY("ICAL_X_PROPERTY"), ICAL_X_PROPERTY}, {HKEY("ICAL_XLICCLASS_PROPERTY"), ICAL_XLICCLASS_PROPERTY}, {HKEY("ICAL_XLICCLUSTERCOUNT_PROPERTY"), ICAL_XLICCLUSTERCOUNT_PROPERTY}, {HKEY("ICAL_XLICERROR_PROPERTY"), ICAL_XLICERROR_PROPERTY}, {HKEY("ICAL_XLICMIMECHARSET_PROPERTY"), ICAL_XLICMIMECHARSET_PROPERTY}, {HKEY("ICAL_XLICMIMECID_PROPERTY"), ICAL_XLICMIMECID_PROPERTY}, {HKEY("ICAL_XLICMIMECONTENTTYPE_PROPERTY"), ICAL_XLICMIMECONTENTTYPE_PROPERTY}, {HKEY("ICAL_XLICMIMEENCODING_PROPERTY"), ICAL_XLICMIMEENCODING_PROPERTY}, {HKEY("ICAL_XLICMIMEFILENAME_PROPERTY"), ICAL_XLICMIMEFILENAME_PROPERTY}, {HKEY("ICAL_XLICMIMEOPTINFO_PROPERTY"), ICAL_XLICMIMEOPTINFO_PROPERTY}, {HKEY("ICAL_NO_PROPERTY"), ICAL_NO_PROPERTY}, {"", 0, 0} }; Ical_icalcomponent_kind icalcomponent_kind_map[] = { {HKEY("ICAL_NO_COMPONENT"), ICAL_NO_COMPONENT}, {HKEY("ICAL_ANY_COMPONENT"), ICAL_ANY_COMPONENT}, {HKEY("ICAL_XROOT_COMPONENT"), ICAL_XROOT_COMPONENT}, {HKEY("ICAL_XATTACH_COMPONENT"), ICAL_XATTACH_COMPONENT}, {HKEY("ICAL_VEVENT_COMPONENT"), ICAL_VEVENT_COMPONENT}, {HKEY("ICAL_VTODO_COMPONENT"), ICAL_VTODO_COMPONENT}, {HKEY("ICAL_VJOURNAL_COMPONENT"), ICAL_VJOURNAL_COMPONENT}, {HKEY("ICAL_VCALENDAR_COMPONENT"), ICAL_VCALENDAR_COMPONENT}, {HKEY("ICAL_VAGENDA_COMPONENT"), ICAL_VAGENDA_COMPONENT}, {HKEY("ICAL_VFREEBUSY_COMPONENT"), ICAL_VFREEBUSY_COMPONENT}, {HKEY("ICAL_VALARM_COMPONENT"), ICAL_VALARM_COMPONENT}, {HKEY("ICAL_XAUDIOALARM_COMPONENT"), ICAL_XAUDIOALARM_COMPONENT}, {HKEY("ICAL_XDISPLAYALARM_COMPONENT"), ICAL_XDISPLAYALARM_COMPONENT}, {HKEY("ICAL_XEMAILALARM_COMPONENT"), ICAL_XEMAILALARM_COMPONENT}, {HKEY("ICAL_XPROCEDUREALARM_COMPONENT"), ICAL_XPROCEDUREALARM_COMPONENT}, {HKEY("ICAL_VTIMEZONE_COMPONENT"), ICAL_VTIMEZONE_COMPONENT}, {HKEY("ICAL_XSTANDARD_COMPONENT"), ICAL_XSTANDARD_COMPONENT}, {HKEY("ICAL_XDAYLIGHT_COMPONENT"), ICAL_XDAYLIGHT_COMPONENT}, {HKEY("ICAL_X_COMPONENT"), ICAL_X_COMPONENT}, {HKEY("ICAL_VSCHEDULE_COMPONENT"), ICAL_VSCHEDULE_COMPONENT}, {HKEY("ICAL_VQUERY_COMPONENT"), ICAL_VQUERY_COMPONENT}, {HKEY("ICAL_VREPLY_COMPONENT"), ICAL_VREPLY_COMPONENT}, {HKEY("ICAL_VCAR_COMPONENT"), ICAL_VCAR_COMPONENT}, {HKEY("ICAL_VCOMMAND_COMPONENT"), ICAL_VCOMMAND_COMPONENT}, {HKEY("ICAL_XLICINVALID_COMPONENT"), ICAL_XLICINVALID_COMPONENT}, {HKEY("ICAL_XLICMIMEPART_COMPONENT"), ICAL_XLICMIMEPART_COMPONENT}, {"", 0, 0} }; Ical_icalrequeststatus icalrequeststatus_map[] = { {HKEY("ICAL_UNKNOWN_STATUS"), ICAL_UNKNOWN_STATUS}, {HKEY("ICAL_2_0_SUCCESS_STATUS"), ICAL_2_0_SUCCESS_STATUS}, {HKEY("ICAL_2_1_FALLBACK_STATUS"), ICAL_2_1_FALLBACK_STATUS}, {HKEY("ICAL_2_2_IGPROP_STATUS"), ICAL_2_2_IGPROP_STATUS}, {HKEY("ICAL_2_3_IGPARAM_STATUS"), ICAL_2_3_IGPARAM_STATUS}, {HKEY("ICAL_2_4_IGXPROP_STATUS"), ICAL_2_4_IGXPROP_STATUS}, {HKEY("ICAL_2_5_IGXPARAM_STATUS"), ICAL_2_5_IGXPARAM_STATUS}, {HKEY("ICAL_2_6_IGCOMP_STATUS"), ICAL_2_6_IGCOMP_STATUS}, {HKEY("ICAL_2_7_FORWARD_STATUS"), ICAL_2_7_FORWARD_STATUS}, {HKEY("ICAL_2_8_ONEEVENT_STATUS"), ICAL_2_8_ONEEVENT_STATUS}, {HKEY("ICAL_2_9_TRUNC_STATUS"), ICAL_2_9_TRUNC_STATUS}, {HKEY("ICAL_2_10_ONETODO_STATUS"), ICAL_2_10_ONETODO_STATUS}, {HKEY("ICAL_2_11_TRUNCRRULE_STATUS"), ICAL_2_11_TRUNCRRULE_STATUS}, {HKEY("ICAL_3_0_INVPROPNAME_STATUS"), ICAL_3_0_INVPROPNAME_STATUS}, {HKEY("ICAL_3_1_INVPROPVAL_STATUS"), ICAL_3_1_INVPROPVAL_STATUS}, {HKEY("ICAL_3_2_INVPARAM_STATUS"), ICAL_3_2_INVPARAM_STATUS}, {HKEY("ICAL_3_3_INVPARAMVAL_STATUS"), ICAL_3_3_INVPARAMVAL_STATUS}, {HKEY("ICAL_3_4_INVCOMP_STATUS"), ICAL_3_4_INVCOMP_STATUS}, {HKEY("ICAL_3_5_INVTIME_STATUS"), ICAL_3_5_INVTIME_STATUS}, {HKEY("ICAL_3_6_INVRULE_STATUS"), ICAL_3_6_INVRULE_STATUS}, {HKEY("ICAL_3_7_INVCU_STATUS"), ICAL_3_7_INVCU_STATUS}, {HKEY("ICAL_3_8_NOAUTH_STATUS"), ICAL_3_8_NOAUTH_STATUS}, {HKEY("ICAL_3_9_BADVERSION_STATUS"), ICAL_3_9_BADVERSION_STATUS}, {HKEY("ICAL_3_10_TOOBIG_STATUS"), ICAL_3_10_TOOBIG_STATUS}, {HKEY("ICAL_3_11_MISSREQCOMP_STATUS"), ICAL_3_11_MISSREQCOMP_STATUS}, {HKEY("ICAL_3_12_UNKCOMP_STATUS"), ICAL_3_12_UNKCOMP_STATUS}, {HKEY("ICAL_3_13_BADCOMP_STATUS"), ICAL_3_13_BADCOMP_STATUS}, {HKEY("ICAL_3_14_NOCAP_STATUS"), ICAL_3_14_NOCAP_STATUS}, {HKEY("ICAL_3_15_INVCOMMAND"), ICAL_3_15_INVCOMMAND}, {HKEY("ICAL_4_0_BUSY_STATUS"), ICAL_4_0_BUSY_STATUS}, {HKEY("ICAL_4_1_STORE_ACCESS_DENIED"), ICAL_4_1_STORE_ACCESS_DENIED}, {HKEY("ICAL_4_2_STORE_FAILED"), ICAL_4_2_STORE_FAILED}, {HKEY("ICAL_4_3_STORE_NOT_FOUND"), ICAL_4_3_STORE_NOT_FOUND}, {HKEY("ICAL_5_0_MAYBE_STATUS"), ICAL_5_0_MAYBE_STATUS}, {HKEY("ICAL_5_1_UNAVAIL_STATUS"), ICAL_5_1_UNAVAIL_STATUS}, {HKEY("ICAL_5_2_NOSERVICE_STATUS"), ICAL_5_2_NOSERVICE_STATUS}, {HKEY("ICAL_5_3_NOSCHED_STATUS"), ICAL_5_3_NOSCHED_STATUS}, {HKEY("ICAL_6_1_CONTAINER_NOT_FOUND"), ICAL_6_1_CONTAINER_NOT_FOUND}, {HKEY("ICAL_9_0_UNRECOGNIZED_COMMAND"), ICAL_9_0_UNRECOGNIZED_COMMAND}, {"", 0, 0} }; Ical_ical_unknown_token_handling ical_unknown_token_handling_map[] = { {HKEY("ICAL_ASSUME_IANA_TOKEN"), ICAL_ASSUME_IANA_TOKEN}, {HKEY("ICAL_DISCARD_TOKEN"), ICAL_DISCARD_TOKEN}, {HKEY("ICAL_TREAT_AS_ERROR"), ICAL_TREAT_AS_ERROR}, {"", 0, 0} }; Ical_icalrecurrencetype_frequency icalrecurrencetype_frequency_map[] = { {HKEY("ICAL_SECONDLY_RECURRENCE"), ICAL_SECONDLY_RECURRENCE}, {HKEY("ICAL_MINUTELY_RECURRENCE"), ICAL_MINUTELY_RECURRENCE}, {HKEY("ICAL_HOURLY_RECURRENCE"), ICAL_HOURLY_RECURRENCE}, {HKEY("ICAL_DAILY_RECURRENCE"), ICAL_DAILY_RECURRENCE}, {HKEY("ICAL_WEEKLY_RECURRENCE"), ICAL_WEEKLY_RECURRENCE}, {HKEY("ICAL_MONTHLY_RECURRENCE"), ICAL_MONTHLY_RECURRENCE}, {HKEY("ICAL_YEARLY_RECURRENCE"), ICAL_YEARLY_RECURRENCE}, {HKEY("ICAL_NO_RECURRENCE"), ICAL_NO_RECURRENCE}, {"", 0, 0} }; Ical_icalrecurrencetype_weekday icalrecurrencetype_weekday_map[] = { {HKEY("ICAL_NO_WEEKDAY"), ICAL_NO_WEEKDAY}, {HKEY("ICAL_SUNDAY_WEEKDAY"), ICAL_SUNDAY_WEEKDAY}, {HKEY("ICAL_MONDAY_WEEKDAY"), ICAL_MONDAY_WEEKDAY}, {HKEY("ICAL_TUESDAY_WEEKDAY"), ICAL_TUESDAY_WEEKDAY}, {HKEY("ICAL_WEDNESDAY_WEEKDAY"), ICAL_WEDNESDAY_WEEKDAY}, {HKEY("ICAL_THURSDAY_WEEKDAY"), ICAL_THURSDAY_WEEKDAY}, {HKEY("ICAL_FRIDAY_WEEKDAY"), ICAL_FRIDAY_WEEKDAY}, {HKEY("ICAL_SATURDAY_WEEKDAY"), ICAL_SATURDAY_WEEKDAY}, {"", 0, 0} }; Ical_icalvalue_kind icalvalue_kind_map[] = { {HKEY("ICAL_ANY_VALUE"), ICAL_ANY_VALUE}, {HKEY("ICAL_QUERY_VALUE"), ICAL_QUERY_VALUE}, {HKEY("ICAL_DATE_VALUE"), ICAL_DATE_VALUE}, {HKEY("ICAL_ATTACH_VALUE"), ICAL_ATTACH_VALUE}, {HKEY("ICAL_GEO_VALUE"), ICAL_GEO_VALUE}, {HKEY("ICAL_STATUS_VALUE"), ICAL_STATUS_VALUE}, {HKEY("ICAL_TRANSP_VALUE"), ICAL_TRANSP_VALUE}, {HKEY("ICAL_STRING_VALUE"), ICAL_STRING_VALUE}, {HKEY("ICAL_TEXT_VALUE"), ICAL_TEXT_VALUE}, {HKEY("ICAL_REQUESTSTATUS_VALUE"), ICAL_REQUESTSTATUS_VALUE}, {HKEY("ICAL_CMD_VALUE"), ICAL_CMD_VALUE}, {HKEY("ICAL_BINARY_VALUE"), ICAL_BINARY_VALUE}, {HKEY("ICAL_QUERYLEVEL_VALUE"), ICAL_QUERYLEVEL_VALUE}, {HKEY("ICAL_PERIOD_VALUE"), ICAL_PERIOD_VALUE}, {HKEY("ICAL_FLOAT_VALUE"), ICAL_FLOAT_VALUE}, {HKEY("ICAL_DATETIMEPERIOD_VALUE"), ICAL_DATETIMEPERIOD_VALUE}, {HKEY("ICAL_CARLEVEL_VALUE"), ICAL_CARLEVEL_VALUE}, {HKEY("ICAL_INTEGER_VALUE"), ICAL_INTEGER_VALUE}, {HKEY("ICAL_CLASS_VALUE"), ICAL_CLASS_VALUE}, {HKEY("ICAL_URI_VALUE"), ICAL_URI_VALUE}, {HKEY("ICAL_DURATION_VALUE"), ICAL_DURATION_VALUE}, {HKEY("ICAL_BOOLEAN_VALUE"), ICAL_BOOLEAN_VALUE}, {HKEY("ICAL_X_VALUE"), ICAL_X_VALUE}, {HKEY("ICAL_CALADDRESS_VALUE"), ICAL_CALADDRESS_VALUE}, {HKEY("ICAL_TRIGGER_VALUE"), ICAL_TRIGGER_VALUE}, {HKEY("ICAL_XLICCLASS_VALUE"), ICAL_XLICCLASS_VALUE}, {HKEY("ICAL_RECUR_VALUE"), ICAL_RECUR_VALUE}, {HKEY("ICAL_ACTION_VALUE"), ICAL_ACTION_VALUE}, {HKEY("ICAL_DATETIME_VALUE"), ICAL_DATETIME_VALUE}, {HKEY("ICAL_UTCOFFSET_VALUE"), ICAL_UTCOFFSET_VALUE}, {HKEY("ICAL_METHOD_VALUE"), ICAL_METHOD_VALUE}, {HKEY("ICAL_NO_VALUE"), ICAL_NO_VALUE}, {"", 0, 0} }; Ical_icalproperty_action icalproperty_action_map[] = { {HKEY("ICAL_ACTION_X"), ICAL_ACTION_X}, {HKEY("ICAL_ACTION_AUDIO"), ICAL_ACTION_AUDIO}, {HKEY("ICAL_ACTION_DISPLAY"), ICAL_ACTION_DISPLAY}, {HKEY("ICAL_ACTION_EMAIL"), ICAL_ACTION_EMAIL}, {HKEY("ICAL_ACTION_PROCEDURE"), ICAL_ACTION_PROCEDURE}, {HKEY("ICAL_ACTION_NONE"), ICAL_ACTION_NONE}, {"", 0, 0} }; Ical_icalproperty_carlevel icalproperty_carlevel_map[] = { {HKEY("ICAL_CARLEVEL_X"), ICAL_CARLEVEL_X}, {HKEY("ICAL_CARLEVEL_CARNONE"), ICAL_CARLEVEL_CARNONE}, {HKEY("ICAL_CARLEVEL_CARMIN"), ICAL_CARLEVEL_CARMIN}, {HKEY("ICAL_CARLEVEL_CARFULL1"), ICAL_CARLEVEL_CARFULL1}, {HKEY("ICAL_CARLEVEL_NONE"), ICAL_CARLEVEL_NONE}, {"", 0, 0} }; Ical_icalproperty_class icalproperty_class_map[] = { {HKEY("ICAL_CLASS_X"), ICAL_CLASS_X}, {HKEY("ICAL_CLASS_PUBLIC"), ICAL_CLASS_PUBLIC}, {HKEY("ICAL_CLASS_PRIVATE"), ICAL_CLASS_PRIVATE}, {HKEY("ICAL_CLASS_CONFIDENTIAL"), ICAL_CLASS_CONFIDENTIAL}, {HKEY("ICAL_CLASS_NONE"), ICAL_CLASS_NONE}, {"", 0, 0} }; Ical_icalproperty_cmd icalproperty_cmd_map[] = { {HKEY("ICAL_CMD_X"), ICAL_CMD_X}, {HKEY("ICAL_CMD_ABORT"), ICAL_CMD_ABORT}, {HKEY("ICAL_CMD_CONTINUE"), ICAL_CMD_CONTINUE}, {HKEY("ICAL_CMD_CREATE"), ICAL_CMD_CREATE}, {HKEY("ICAL_CMD_DELETE"), ICAL_CMD_DELETE}, {HKEY("ICAL_CMD_GENERATEUID"), ICAL_CMD_GENERATEUID}, {HKEY("ICAL_CMD_GETCAPABILITY"), ICAL_CMD_GETCAPABILITY}, {HKEY("ICAL_CMD_IDENTIFY"), ICAL_CMD_IDENTIFY}, {HKEY("ICAL_CMD_MODIFY"), ICAL_CMD_MODIFY}, {HKEY("ICAL_CMD_MOVE"), ICAL_CMD_MOVE}, {HKEY("ICAL_CMD_REPLY"), ICAL_CMD_REPLY}, {HKEY("ICAL_CMD_SEARCH"), ICAL_CMD_SEARCH}, {HKEY("ICAL_CMD_SETLOCALE"), ICAL_CMD_SETLOCALE}, {HKEY("ICAL_CMD_NONE"), ICAL_CMD_NONE}, {"", 0, 0} }; Ical_icalproperty_method icalproperty_method_map[] = { {HKEY("ICAL_METHOD_X"), ICAL_METHOD_X}, {HKEY("ICAL_METHOD_PUBLISH"), ICAL_METHOD_PUBLISH}, {HKEY("ICAL_METHOD_REQUEST"), ICAL_METHOD_REQUEST}, {HKEY("ICAL_METHOD_REPLY"), ICAL_METHOD_REPLY}, {HKEY("ICAL_METHOD_ADD"), ICAL_METHOD_ADD}, {HKEY("ICAL_METHOD_CANCEL"), ICAL_METHOD_CANCEL}, {HKEY("ICAL_METHOD_REFRESH"), ICAL_METHOD_REFRESH}, {HKEY("ICAL_METHOD_COUNTER"), ICAL_METHOD_COUNTER}, {HKEY("ICAL_METHOD_DECLINECOUNTER"), ICAL_METHOD_DECLINECOUNTER}, {HKEY("ICAL_METHOD_CREATE"), ICAL_METHOD_CREATE}, {HKEY("ICAL_METHOD_READ"), ICAL_METHOD_READ}, {HKEY("ICAL_METHOD_RESPONSE"), ICAL_METHOD_RESPONSE}, {HKEY("ICAL_METHOD_MOVE"), ICAL_METHOD_MOVE}, {HKEY("ICAL_METHOD_MODIFY"), ICAL_METHOD_MODIFY}, {HKEY("ICAL_METHOD_GENERATEUID"), ICAL_METHOD_GENERATEUID}, {HKEY("ICAL_METHOD_DELETE"), ICAL_METHOD_DELETE}, {HKEY("ICAL_METHOD_NONE"), ICAL_METHOD_NONE}, {"", 0, 0} }; Ical_icalproperty_querylevel icalproperty_querylevel_map[] = { {HKEY("ICAL_QUERYLEVEL_X"), ICAL_QUERYLEVEL_X}, {HKEY("ICAL_QUERYLEVEL_CALQL1"), ICAL_QUERYLEVEL_CALQL1}, {HKEY("ICAL_QUERYLEVEL_CALQLNONE"), ICAL_QUERYLEVEL_CALQLNONE}, {HKEY("ICAL_QUERYLEVEL_NONE"), ICAL_QUERYLEVEL_NONE}, {"", 0, 0} }; Ical_icalproperty_status icalproperty_status_map[] = { {HKEY("ICAL_STATUS_X"), ICAL_STATUS_X}, {HKEY("ICAL_STATUS_TENTATIVE"), ICAL_STATUS_TENTATIVE}, {HKEY("ICAL_STATUS_CONFIRMED"), ICAL_STATUS_CONFIRMED}, {HKEY("ICAL_STATUS_COMPLETED"), ICAL_STATUS_COMPLETED}, {HKEY("ICAL_STATUS_NEEDSACTION"), ICAL_STATUS_NEEDSACTION}, {HKEY("ICAL_STATUS_CANCELLED"), ICAL_STATUS_CANCELLED}, {HKEY("ICAL_STATUS_INPROCESS"), ICAL_STATUS_INPROCESS}, {HKEY("ICAL_STATUS_DRAFT"), ICAL_STATUS_DRAFT}, {HKEY("ICAL_STATUS_FINAL"), ICAL_STATUS_FINAL}, {HKEY("ICAL_STATUS_NONE"), ICAL_STATUS_NONE}, {"", 0, 0} }; Ical_icalproperty_transp icalproperty_transp_map[] = { {HKEY("ICAL_TRANSP_X"), ICAL_TRANSP_X}, {HKEY("ICAL_TRANSP_OPAQUE"), ICAL_TRANSP_OPAQUE}, {HKEY("ICAL_TRANSP_OPAQUENOCONFLICT"), ICAL_TRANSP_OPAQUENOCONFLICT}, {HKEY("ICAL_TRANSP_TRANSPARENT"), ICAL_TRANSP_TRANSPARENT}, {HKEY("ICAL_TRANSP_TRANSPARENTNOCONFLICT"), ICAL_TRANSP_TRANSPARENTNOCONFLICT}, {HKEY("ICAL_TRANSP_NONE"), ICAL_TRANSP_NONE}, {"", 0, 0} }; Ical_icalproperty_xlicclass icalproperty_xlicclass_map[] = { {HKEY("ICAL_XLICCLASS_X"), ICAL_XLICCLASS_X}, {HKEY("ICAL_XLICCLASS_PUBLISHNEW"), ICAL_XLICCLASS_PUBLISHNEW}, {HKEY("ICAL_XLICCLASS_PUBLISHUPDATE"), ICAL_XLICCLASS_PUBLISHUPDATE}, {HKEY("ICAL_XLICCLASS_PUBLISHFREEBUSY"), ICAL_XLICCLASS_PUBLISHFREEBUSY}, {HKEY("ICAL_XLICCLASS_REQUESTNEW"), ICAL_XLICCLASS_REQUESTNEW}, {HKEY("ICAL_XLICCLASS_REQUESTUPDATE"), ICAL_XLICCLASS_REQUESTUPDATE}, {HKEY("ICAL_XLICCLASS_REQUESTRESCHEDULE"), ICAL_XLICCLASS_REQUESTRESCHEDULE}, {HKEY("ICAL_XLICCLASS_REQUESTDELEGATE"), ICAL_XLICCLASS_REQUESTDELEGATE}, {HKEY("ICAL_XLICCLASS_REQUESTNEWORGANIZER"), ICAL_XLICCLASS_REQUESTNEWORGANIZER}, {HKEY("ICAL_XLICCLASS_REQUESTFORWARD"), ICAL_XLICCLASS_REQUESTFORWARD}, {HKEY("ICAL_XLICCLASS_REQUESTSTATUS"), ICAL_XLICCLASS_REQUESTSTATUS}, {HKEY("ICAL_XLICCLASS_REQUESTFREEBUSY"), ICAL_XLICCLASS_REQUESTFREEBUSY}, {HKEY("ICAL_XLICCLASS_REPLYACCEPT"), ICAL_XLICCLASS_REPLYACCEPT}, {HKEY("ICAL_XLICCLASS_REPLYDECLINE"), ICAL_XLICCLASS_REPLYDECLINE}, {HKEY("ICAL_XLICCLASS_REPLYDELEGATE"), ICAL_XLICCLASS_REPLYDELEGATE}, {HKEY("ICAL_XLICCLASS_REPLYCRASHERACCEPT"), ICAL_XLICCLASS_REPLYCRASHERACCEPT}, {HKEY("ICAL_XLICCLASS_REPLYCRASHERDECLINE"), ICAL_XLICCLASS_REPLYCRASHERDECLINE}, {HKEY("ICAL_XLICCLASS_ADDINSTANCE"), ICAL_XLICCLASS_ADDINSTANCE}, {HKEY("ICAL_XLICCLASS_CANCELEVENT"), ICAL_XLICCLASS_CANCELEVENT}, {HKEY("ICAL_XLICCLASS_CANCELINSTANCE"), ICAL_XLICCLASS_CANCELINSTANCE}, {HKEY("ICAL_XLICCLASS_CANCELALL"), ICAL_XLICCLASS_CANCELALL}, {HKEY("ICAL_XLICCLASS_REFRESH"), ICAL_XLICCLASS_REFRESH}, {HKEY("ICAL_XLICCLASS_COUNTER"), ICAL_XLICCLASS_COUNTER}, {HKEY("ICAL_XLICCLASS_DECLINECOUNTER"), ICAL_XLICCLASS_DECLINECOUNTER}, {HKEY("ICAL_XLICCLASS_MALFORMED"), ICAL_XLICCLASS_MALFORMED}, {HKEY("ICAL_XLICCLASS_OBSOLETE"), ICAL_XLICCLASS_OBSOLETE}, {HKEY("ICAL_XLICCLASS_MISSEQUENCED"), ICAL_XLICCLASS_MISSEQUENCED}, {HKEY("ICAL_XLICCLASS_UNKNOWN"), ICAL_XLICCLASS_UNKNOWN}, {HKEY("ICAL_XLICCLASS_NONE"), ICAL_XLICCLASS_NONE}, {"", 0, 0} }; Ical_icalparameter_kind icalparameter_kind_map[] = { {HKEY("ICAL_ANY_PARAMETER"), ICAL_ANY_PARAMETER}, {HKEY("ICAL_ACTIONPARAM_PARAMETER"), ICAL_ACTIONPARAM_PARAMETER}, {HKEY("ICAL_ALTREP_PARAMETER"), ICAL_ALTREP_PARAMETER}, {HKEY("ICAL_CHARSET_PARAMETER"), ICAL_CHARSET_PARAMETER}, {HKEY("ICAL_CN_PARAMETER"), ICAL_CN_PARAMETER}, {HKEY("ICAL_CUTYPE_PARAMETER"), ICAL_CUTYPE_PARAMETER}, {HKEY("ICAL_DELEGATEDFROM_PARAMETER"), ICAL_DELEGATEDFROM_PARAMETER}, {HKEY("ICAL_DELEGATEDTO_PARAMETER"), ICAL_DELEGATEDTO_PARAMETER}, {HKEY("ICAL_DIR_PARAMETER"), ICAL_DIR_PARAMETER}, {HKEY("ICAL_ENABLE_PARAMETER"), ICAL_ENABLE_PARAMETER}, {HKEY("ICAL_ENCODING_PARAMETER"), ICAL_ENCODING_PARAMETER}, {HKEY("ICAL_FBTYPE_PARAMETER"), ICAL_FBTYPE_PARAMETER}, {HKEY("ICAL_FMTTYPE_PARAMETER"), ICAL_FMTTYPE_PARAMETER}, {HKEY("ICAL_IANA_PARAMETER"), ICAL_IANA_PARAMETER}, {HKEY("ICAL_ID_PARAMETER"), ICAL_ID_PARAMETER}, {HKEY("ICAL_LANGUAGE_PARAMETER"), ICAL_LANGUAGE_PARAMETER}, {HKEY("ICAL_LATENCY_PARAMETER"), ICAL_LATENCY_PARAMETER}, {HKEY("ICAL_LOCAL_PARAMETER"), ICAL_LOCAL_PARAMETER}, {HKEY("ICAL_LOCALIZE_PARAMETER"), ICAL_LOCALIZE_PARAMETER}, {HKEY("ICAL_MEMBER_PARAMETER"), ICAL_MEMBER_PARAMETER}, {HKEY("ICAL_OPTIONS_PARAMETER"), ICAL_OPTIONS_PARAMETER}, {HKEY("ICAL_PARTSTAT_PARAMETER"), ICAL_PARTSTAT_PARAMETER}, {HKEY("ICAL_RANGE_PARAMETER"), ICAL_RANGE_PARAMETER}, {HKEY("ICAL_RELATED_PARAMETER"), ICAL_RELATED_PARAMETER}, {HKEY("ICAL_RELTYPE_PARAMETER"), ICAL_RELTYPE_PARAMETER}, {HKEY("ICAL_ROLE_PARAMETER"), ICAL_ROLE_PARAMETER}, {HKEY("ICAL_RSVP_PARAMETER"), ICAL_RSVP_PARAMETER}, {HKEY("ICAL_SENTBY_PARAMETER"), ICAL_SENTBY_PARAMETER}, {HKEY("ICAL_TZID_PARAMETER"), ICAL_TZID_PARAMETER}, {HKEY("ICAL_VALUE_PARAMETER"), ICAL_VALUE_PARAMETER}, {HKEY("ICAL_X_PARAMETER"), ICAL_X_PARAMETER}, {HKEY("ICAL_XLICCOMPARETYPE_PARAMETER"), ICAL_XLICCOMPARETYPE_PARAMETER}, {HKEY("ICAL_XLICERRORTYPE_PARAMETER"), ICAL_XLICERRORTYPE_PARAMETER}, {HKEY("ICAL_NO_PARAMETER"), ICAL_NO_PARAMETER}, {"", 0, 0} }; Ical_icalparameter_action icalparameter_action_map[] = { {HKEY("ICAL_ACTIONPARAM_X"), ICAL_ACTIONPARAM_X}, {HKEY("ICAL_ACTIONPARAM_ASK"), ICAL_ACTIONPARAM_ASK}, {HKEY("ICAL_ACTIONPARAM_ABORT"), ICAL_ACTIONPARAM_ABORT}, {HKEY("ICAL_ACTIONPARAM_NONE"), ICAL_ACTIONPARAM_NONE}, {"", 0, 0} }; Ical_icalparameter_cutype icalparameter_cutype_map[] = { {HKEY("ICAL_CUTYPE_X"), ICAL_CUTYPE_X}, {HKEY("ICAL_CUTYPE_INDIVIDUAL"), ICAL_CUTYPE_INDIVIDUAL}, {HKEY("ICAL_CUTYPE_GROUP"), ICAL_CUTYPE_GROUP}, {HKEY("ICAL_CUTYPE_RESOURCE"), ICAL_CUTYPE_RESOURCE}, {HKEY("ICAL_CUTYPE_ROOM"), ICAL_CUTYPE_ROOM}, {HKEY("ICAL_CUTYPE_UNKNOWN"), ICAL_CUTYPE_UNKNOWN}, {HKEY("ICAL_CUTYPE_NONE"), ICAL_CUTYPE_NONE}, {"", 0, 0} }; Ical_icalparameter_enable icalparameter_enable_map[] = { {HKEY("ICAL_ENABLE_X"), ICAL_ENABLE_X}, {HKEY("ICAL_ENABLE_TRUE"), ICAL_ENABLE_TRUE}, {HKEY("ICAL_ENABLE_FALSE"), ICAL_ENABLE_FALSE}, {HKEY("ICAL_ENABLE_NONE"), ICAL_ENABLE_NONE}, {"", 0, 0} }; Ical_icalparameter_encoding icalparameter_encoding_map[] = { {HKEY("ICAL_ENCODING_X"), ICAL_ENCODING_X}, {HKEY("ICAL_ENCODING_8BIT"), ICAL_ENCODING_8BIT}, {HKEY("ICAL_ENCODING_BASE64"), ICAL_ENCODING_BASE64}, {HKEY("ICAL_ENCODING_NONE"), ICAL_ENCODING_NONE}, {"", 0, 0} }; Ical_icalparameter_fbtype icalparameter_fbtype_map[] = { {HKEY("ICAL_FBTYPE_X"), ICAL_FBTYPE_X}, {HKEY("ICAL_FBTYPE_FREE"), ICAL_FBTYPE_FREE}, {HKEY("ICAL_FBTYPE_BUSY"), ICAL_FBTYPE_BUSY}, {HKEY("ICAL_FBTYPE_BUSYUNAVAILABLE"), ICAL_FBTYPE_BUSYUNAVAILABLE}, {HKEY("ICAL_FBTYPE_BUSYTENTATIVE"), ICAL_FBTYPE_BUSYTENTATIVE}, {HKEY("ICAL_FBTYPE_NONE"), ICAL_FBTYPE_NONE}, {"", 0, 0} }; Ical_icalparameter_local icalparameter_local_map[] = { {HKEY("ICAL_LOCAL_X"), ICAL_LOCAL_X}, {HKEY("ICAL_LOCAL_TRUE"), ICAL_LOCAL_TRUE}, {HKEY("ICAL_LOCAL_FALSE"), ICAL_LOCAL_FALSE}, {HKEY("ICAL_LOCAL_NONE"), ICAL_LOCAL_NONE}, {"", 0, 0} }; Ical_icalparameter_partstat icalparameter_partstat_map[] = { {HKEY("ICAL_PARTSTAT_X"), ICAL_PARTSTAT_X}, {HKEY("ICAL_PARTSTAT_NEEDSACTION"), ICAL_PARTSTAT_NEEDSACTION}, {HKEY("ICAL_PARTSTAT_ACCEPTED"), ICAL_PARTSTAT_ACCEPTED}, {HKEY("ICAL_PARTSTAT_DECLINED"), ICAL_PARTSTAT_DECLINED}, {HKEY("ICAL_PARTSTAT_TENTATIVE"), ICAL_PARTSTAT_TENTATIVE}, {HKEY("ICAL_PARTSTAT_DELEGATED"), ICAL_PARTSTAT_DELEGATED}, {HKEY("ICAL_PARTSTAT_COMPLETED"), ICAL_PARTSTAT_COMPLETED}, {HKEY("ICAL_PARTSTAT_INPROCESS"), ICAL_PARTSTAT_INPROCESS}, {HKEY("ICAL_PARTSTAT_NONE"), ICAL_PARTSTAT_NONE}, {"", 0, 0} }; Ical_icalparameter_range icalparameter_range_map[] = { {HKEY("ICAL_RANGE_X"), ICAL_RANGE_X}, {HKEY("ICAL_RANGE_THISANDPRIOR"), ICAL_RANGE_THISANDPRIOR}, {HKEY("ICAL_RANGE_THISANDFUTURE"), ICAL_RANGE_THISANDFUTURE}, {HKEY("ICAL_RANGE_NONE"), ICAL_RANGE_NONE}, {"", 0, 0} }; Ical_icalparameter_related icalparameter_related_map[] = { {HKEY("ICAL_RELATED_X"), ICAL_RELATED_X}, {HKEY("ICAL_RELATED_START"), ICAL_RELATED_START}, {HKEY("ICAL_RELATED_END"), ICAL_RELATED_END}, {HKEY("ICAL_RELATED_NONE"), ICAL_RELATED_NONE}, {"", 0, 0} }; Ical_icalparameter_reltype icalparameter_reltype_map[] = { {HKEY("ICAL_RELTYPE_X"), ICAL_RELTYPE_X}, {HKEY("ICAL_RELTYPE_PARENT"), ICAL_RELTYPE_PARENT}, {HKEY("ICAL_RELTYPE_CHILD"), ICAL_RELTYPE_CHILD}, {HKEY("ICAL_RELTYPE_SIBLING"), ICAL_RELTYPE_SIBLING}, {HKEY("ICAL_RELTYPE_NONE"), ICAL_RELTYPE_NONE}, {"", 0, 0} }; Ical_icalparameter_role icalparameter_role_map[] = { {HKEY("ICAL_ROLE_X"), ICAL_ROLE_X}, {HKEY("ICAL_ROLE_CHAIR"), ICAL_ROLE_CHAIR}, {HKEY("ICAL_ROLE_REQPARTICIPANT"), ICAL_ROLE_REQPARTICIPANT}, {HKEY("ICAL_ROLE_OPTPARTICIPANT"), ICAL_ROLE_OPTPARTICIPANT}, {HKEY("ICAL_ROLE_NONPARTICIPANT"), ICAL_ROLE_NONPARTICIPANT}, {HKEY("ICAL_ROLE_NONE"), ICAL_ROLE_NONE}, {"", 0, 0} }; Ical_icalparameter_rsvp icalparameter_rsvp_map[] = { {HKEY("ICAL_RSVP_X"), ICAL_RSVP_X}, {HKEY("ICAL_RSVP_TRUE"), ICAL_RSVP_TRUE}, {HKEY("ICAL_RSVP_FALSE"), ICAL_RSVP_FALSE}, {HKEY("ICAL_RSVP_NONE"), ICAL_RSVP_NONE}, {"", 0, 0} }; Ical_icalparameter_value icalparameter_value_map[] = { {HKEY("ICAL_VALUE_X"), ICAL_VALUE_X}, {HKEY("ICAL_VALUE_BINARY"), ICAL_VALUE_BINARY}, {HKEY("ICAL_VALUE_BOOLEAN"), ICAL_VALUE_BOOLEAN}, {HKEY("ICAL_VALUE_DATE"), ICAL_VALUE_DATE}, {HKEY("ICAL_VALUE_DURATION"), ICAL_VALUE_DURATION}, {HKEY("ICAL_VALUE_FLOAT"), ICAL_VALUE_FLOAT}, {HKEY("ICAL_VALUE_INTEGER"), ICAL_VALUE_INTEGER}, {HKEY("ICAL_VALUE_PERIOD"), ICAL_VALUE_PERIOD}, {HKEY("ICAL_VALUE_RECUR"), ICAL_VALUE_RECUR}, {HKEY("ICAL_VALUE_TEXT"), ICAL_VALUE_TEXT}, {HKEY("ICAL_VALUE_URI"), ICAL_VALUE_URI}, {HKEY("ICAL_VALUE_ERROR"), ICAL_VALUE_ERROR}, {HKEY("ICAL_VALUE_DATETIME"), ICAL_VALUE_DATETIME}, {HKEY("ICAL_VALUE_UTCOFFSET"), ICAL_VALUE_UTCOFFSET}, {HKEY("ICAL_VALUE_CALADDRESS"), ICAL_VALUE_CALADDRESS}, {HKEY("ICAL_VALUE_NONE"), ICAL_VALUE_NONE}, {"", 0, 0} }; Ical_icalparameter_xliccomparetype icalparameter_xliccomparetype_map[] = { {HKEY("ICAL_XLICCOMPARETYPE_X"), ICAL_XLICCOMPARETYPE_X}, {HKEY("ICAL_XLICCOMPARETYPE_EQUAL"), ICAL_XLICCOMPARETYPE_EQUAL}, {HKEY("ICAL_XLICCOMPARETYPE_NOTEQUAL"), ICAL_XLICCOMPARETYPE_NOTEQUAL}, {HKEY("ICAL_XLICCOMPARETYPE_LESS"), ICAL_XLICCOMPARETYPE_LESS}, {HKEY("ICAL_XLICCOMPARETYPE_GREATER"), ICAL_XLICCOMPARETYPE_GREATER}, {HKEY("ICAL_XLICCOMPARETYPE_LESSEQUAL"), ICAL_XLICCOMPARETYPE_LESSEQUAL}, {HKEY("ICAL_XLICCOMPARETYPE_GREATEREQUAL"), ICAL_XLICCOMPARETYPE_GREATEREQUAL}, {HKEY("ICAL_XLICCOMPARETYPE_REGEX"), ICAL_XLICCOMPARETYPE_REGEX}, {HKEY("ICAL_XLICCOMPARETYPE_ISNULL"), ICAL_XLICCOMPARETYPE_ISNULL}, {HKEY("ICAL_XLICCOMPARETYPE_ISNOTNULL"), ICAL_XLICCOMPARETYPE_ISNOTNULL}, {HKEY("ICAL_XLICCOMPARETYPE_NONE"), ICAL_XLICCOMPARETYPE_NONE}, {"", 0, 0} }; Ical_icalparameter_xlicerrortype icalparameter_xlicerrortype_map[] = { {HKEY("ICAL_XLICERRORTYPE_X"), ICAL_XLICERRORTYPE_X}, {HKEY("ICAL_XLICERRORTYPE_COMPONENTPARSEERROR"), ICAL_XLICERRORTYPE_COMPONENTPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_PROPERTYPARSEERROR"), ICAL_XLICERRORTYPE_PROPERTYPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR"), ICAL_XLICERRORTYPE_PARAMETERNAMEPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR"), ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_VALUEPARSEERROR"), ICAL_XLICERRORTYPE_VALUEPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_INVALIDITIP"), ICAL_XLICERRORTYPE_INVALIDITIP}, {HKEY("ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR"), ICAL_XLICERRORTYPE_UNKNOWNVCALPROPERROR}, {HKEY("ICAL_XLICERRORTYPE_MIMEPARSEERROR"), ICAL_XLICERRORTYPE_MIMEPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_VCALPROPPARSEERROR"), ICAL_XLICERRORTYPE_VCALPROPPARSEERROR}, {HKEY("ICAL_XLICERRORTYPE_NONE"), ICAL_XLICERRORTYPE_NONE}, {"", 0, 0} }; Ical_icalparser_state icalparser_state_map[] = { {HKEY("ICALPARSER_ERROR"), ICALPARSER_ERROR}, {HKEY("ICALPARSER_SUCCESS"), ICALPARSER_SUCCESS}, {HKEY("ICALPARSER_BEGIN_COMP"), ICALPARSER_BEGIN_COMP}, {HKEY("ICALPARSER_END_COMP"), ICALPARSER_END_COMP}, {HKEY("ICALPARSER_IN_PROGRESS"), ICALPARSER_IN_PROGRESS}, {"", 0, 0} }; Ical_icalerrorenum icalerrorenum_map[] = { {HKEY("ICAL_NO_ERROR"), ICAL_NO_ERROR}, {HKEY("ICAL_BADARG_ERROR"), ICAL_BADARG_ERROR}, {HKEY("ICAL_NEWFAILED_ERROR"), ICAL_NEWFAILED_ERROR}, {HKEY("ICAL_ALLOCATION_ERROR"), ICAL_ALLOCATION_ERROR}, {HKEY("ICAL_MALFORMEDDATA_ERROR"), ICAL_MALFORMEDDATA_ERROR}, {HKEY("ICAL_PARSE_ERROR"), ICAL_PARSE_ERROR}, {HKEY("ICAL_INTERNAL_ERROR"), ICAL_INTERNAL_ERROR}, {HKEY("ICAL_FILE_ERROR"), ICAL_FILE_ERROR}, {HKEY("ICAL_USAGE_ERROR"), ICAL_USAGE_ERROR}, {HKEY("ICAL_UNIMPLEMENTED_ERROR"), ICAL_UNIMPLEMENTED_ERROR}, {HKEY("ICAL_UNKNOWN_ERROR"), ICAL_UNKNOWN_ERROR}, {"", 0, 0} }; Ical_icalerrorstate icalerrorstate_map[] = { {HKEY("ICAL_ERROR_FATAL"), ICAL_ERROR_FATAL}, {HKEY("ICAL_ERROR_NONFATAL"), ICAL_ERROR_NONFATAL}, {HKEY("ICAL_ERROR_DEFAULT"), ICAL_ERROR_DEFAULT}, {HKEY("ICAL_ERROR_UNKNOWN"), ICAL_ERROR_UNKNOWN}, {"", 0, 0} }; Ical_icalrestriction_kind icalrestriction_kind_map[] = { {HKEY("ICAL_RESTRICTION_NONE"), ICAL_RESTRICTION_NONE}, {HKEY("ICAL_RESTRICTION_ZERO"), ICAL_RESTRICTION_ZERO}, {HKEY("ICAL_RESTRICTION_ONE"), ICAL_RESTRICTION_ONE}, {HKEY("ICAL_RESTRICTION_ZEROPLUS"), ICAL_RESTRICTION_ZEROPLUS}, {HKEY("ICAL_RESTRICTION_ONEPLUS"), ICAL_RESTRICTION_ONEPLUS}, {HKEY("ICAL_RESTRICTION_ZEROORONE"), ICAL_RESTRICTION_ZEROORONE}, {HKEY("ICAL_RESTRICTION_ONEEXCLUSIVE"), ICAL_RESTRICTION_ONEEXCLUSIVE}, {HKEY("ICAL_RESTRICTION_ONEMUTUAL"), ICAL_RESTRICTION_ONEMUTUAL}, {HKEY("ICAL_RESTRICTION_UNKNOWN"), ICAL_RESTRICTION_UNKNOWN}, {"", 0, 0} }; void InitModule_ICAL_MAPS (void) { int i; for (i=0; icalproperty_kind_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_kind_map[i].Name, icalproperty_kind_map[i].NameLen, icalproperty_kind_map[i].map); for (i=0; icalcomponent_kind_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalcomponent_kind_map[i].Name, icalcomponent_kind_map[i].NameLen, icalcomponent_kind_map[i].map); for (i=0; icalrequeststatus_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalrequeststatus_map[i].Name, icalrequeststatus_map[i].NameLen, icalrequeststatus_map[i].map); for (i=0; ical_unknown_token_handling_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( ical_unknown_token_handling_map[i].Name, ical_unknown_token_handling_map[i].NameLen, ical_unknown_token_handling_map[i].map); for (i=0; icalrecurrencetype_frequency_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalrecurrencetype_frequency_map[i].Name, icalrecurrencetype_frequency_map[i].NameLen, icalrecurrencetype_frequency_map[i].map); for (i=0; icalrecurrencetype_weekday_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalrecurrencetype_weekday_map[i].Name, icalrecurrencetype_weekday_map[i].NameLen, icalrecurrencetype_weekday_map[i].map); for (i=0; icalvalue_kind_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalvalue_kind_map[i].Name, icalvalue_kind_map[i].NameLen, icalvalue_kind_map[i].map); for (i=0; icalproperty_action_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_action_map[i].Name, icalproperty_action_map[i].NameLen, icalproperty_action_map[i].map); for (i=0; icalproperty_carlevel_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_carlevel_map[i].Name, icalproperty_carlevel_map[i].NameLen, icalproperty_carlevel_map[i].map); for (i=0; icalproperty_class_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_class_map[i].Name, icalproperty_class_map[i].NameLen, icalproperty_class_map[i].map); for (i=0; icalproperty_cmd_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_cmd_map[i].Name, icalproperty_cmd_map[i].NameLen, icalproperty_cmd_map[i].map); for (i=0; icalproperty_method_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_method_map[i].Name, icalproperty_method_map[i].NameLen, icalproperty_method_map[i].map); for (i=0; icalproperty_querylevel_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_querylevel_map[i].Name, icalproperty_querylevel_map[i].NameLen, icalproperty_querylevel_map[i].map); for (i=0; icalproperty_status_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_status_map[i].Name, icalproperty_status_map[i].NameLen, icalproperty_status_map[i].map); for (i=0; icalproperty_transp_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_transp_map[i].Name, icalproperty_transp_map[i].NameLen, icalproperty_transp_map[i].map); for (i=0; icalproperty_xlicclass_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalproperty_xlicclass_map[i].Name, icalproperty_xlicclass_map[i].NameLen, icalproperty_xlicclass_map[i].map); for (i=0; icalparameter_kind_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_kind_map[i].Name, icalparameter_kind_map[i].NameLen, icalparameter_kind_map[i].map); for (i=0; icalparameter_action_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_action_map[i].Name, icalparameter_action_map[i].NameLen, icalparameter_action_map[i].map); for (i=0; icalparameter_cutype_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_cutype_map[i].Name, icalparameter_cutype_map[i].NameLen, icalparameter_cutype_map[i].map); for (i=0; icalparameter_enable_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_enable_map[i].Name, icalparameter_enable_map[i].NameLen, icalparameter_enable_map[i].map); for (i=0; icalparameter_encoding_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_encoding_map[i].Name, icalparameter_encoding_map[i].NameLen, icalparameter_encoding_map[i].map); for (i=0; icalparameter_fbtype_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_fbtype_map[i].Name, icalparameter_fbtype_map[i].NameLen, icalparameter_fbtype_map[i].map); for (i=0; icalparameter_local_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_local_map[i].Name, icalparameter_local_map[i].NameLen, icalparameter_local_map[i].map); for (i=0; icalparameter_partstat_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_partstat_map[i].Name, icalparameter_partstat_map[i].NameLen, icalparameter_partstat_map[i].map); for (i=0; icalparameter_range_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_range_map[i].Name, icalparameter_range_map[i].NameLen, icalparameter_range_map[i].map); for (i=0; icalparameter_related_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_related_map[i].Name, icalparameter_related_map[i].NameLen, icalparameter_related_map[i].map); for (i=0; icalparameter_reltype_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_reltype_map[i].Name, icalparameter_reltype_map[i].NameLen, icalparameter_reltype_map[i].map); for (i=0; icalparameter_role_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_role_map[i].Name, icalparameter_role_map[i].NameLen, icalparameter_role_map[i].map); for (i=0; icalparameter_rsvp_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_rsvp_map[i].Name, icalparameter_rsvp_map[i].NameLen, icalparameter_rsvp_map[i].map); for (i=0; icalparameter_value_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_value_map[i].Name, icalparameter_value_map[i].NameLen, icalparameter_value_map[i].map); for (i=0; icalparameter_xliccomparetype_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_xliccomparetype_map[i].Name, icalparameter_xliccomparetype_map[i].NameLen, icalparameter_xliccomparetype_map[i].map); for (i=0; icalparameter_xlicerrortype_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparameter_xlicerrortype_map[i].Name, icalparameter_xlicerrortype_map[i].NameLen, icalparameter_xlicerrortype_map[i].map); for (i=0; icalparser_state_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalparser_state_map[i].Name, icalparser_state_map[i].NameLen, icalparser_state_map[i].map); for (i=0; icalerrorenum_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalerrorenum_map[i].Name, icalerrorenum_map[i].NameLen, icalerrorenum_map[i].map); for (i=0; icalerrorstate_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalerrorstate_map[i].Name, icalerrorstate_map[i].NameLen, icalerrorstate_map[i].map); for (i=0; icalrestriction_kind_map[i].NameLen > 0; i++) RegisterTokenParamDefine ( icalrestriction_kind_map[i].Name, icalrestriction_kind_map[i].NameLen, icalrestriction_kind_map[i].map); } webcit-dfsg.orig/config.sub0000755000175000017500000010577513223341037016001 0ustar michaelmichael#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-09-11' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: webcit-dfsg.orig/Makefile.in0000644000175000017500000001530413223341037016047 0ustar michaelmichaelprefix=@prefix@ srcdir=@srcdir@ VPATH=$(srcdir) AUTOCONF=@AUTOCONF@ CC=@CC@ CFLAGS=@CFLAGS@ DEFS=@DEFS@ INSTALL=@INSTALL@ LIBOBJS=@LIBOBJS@ LIBS=@LIBS@ LDFLAGS=@LDFLAGS@ SED=@SED@ SETUP_LIBS=@SETUP_LIBS@ PTHREAD_DEFS=@PTHREAD_DEFS@ LIB_SUBDIRS= PROG_SUBDIRS=@PROG_SUBDIRS@ SUBDIRS=$(LIB_SUBDIRS) $(PROG_SUBDIRS) LOCALEDIR=@LOCALEDIR@ WWWDIR=@WWWDIR@ ETCDIR=@ETCDIR@ HEADERS=calendar.h dav.h messages.h modules_init.h paramhandling.h preferences.h roomops.h subst.h sysdep.h tcp_sockets.h utils.h webcit.h webserver.h # End of configuration section all: buildinfo all-progs-recursive webcit setup buildinfo: echo echo Compiler: $(CC) $(CFLAGS) $(DEFS) $(PTHREAD_DEFS) -c -o $@ echo Linker: $(CC) $(LDFLAGS) $(LIBOBJS) $(LIBS) echo # for VPATH builds (invoked by configure) mkdir-init: mkdir locale .SILENT: .SUFFIXES: .cpp .c .o clean: rm -f *.o webcit webcit setup rm -fr locale/* distclean: clean rm -f Makefile config.cache config.log config.status \ po/webcit/Makefile \ $(srcdir)/TAGS setup: setup.o gettext.o $(CC) $(LDFLAGS) $(LIBOBJS) gettext.o setup.o -o setup \ $(LIBS) $(SETUP_LIBS) webcit: webserver.o context_loop.o ical_dezonify.o \ cookie_conversion.o locate_host.o summary.o \ webcit.o auth.o tcp_sockets.o mainmenu.o serv_func.o who.o marchlist.o \ roomops.o roomlist.o roomtokens.o roomviews.o \ blogview_renderer.o msg_renderers.o jsonview_renderer.o mailview_renderer.o bbsview_renderer.o \ messages.o paging.o sysmsgs.o \ useredit.o vcard_edit.o preferences.o html2html.o listsub.o roomchat.o \ graphics.o netconf.o siteconfig.o subst.o \ calendar.o calendar_tools.o calendar_view.o tasks.o event.o smtpqueue.o \ availability.o iconbar.o icontheme.o crypto.o inetconf.o notes.o wiki.o \ dav_main.o dav_get.o dav_propfind.o dav_report.o fmt_date.o \ dav_options.o autocompletion.o gettext.o tabs.o sieve.o sitemap.o \ dav_delete.o dav_put.o http_datestring.o setup_wizard.o \ downloads.o addressbook_popup.o pushemail.o sysdep.o openid.o \ decode.o modules_init.o paramhandling.o utils.o \ ical_maps.o ical_subst.o static.o feed_generator.o \ $(LIBOBJS) echo LD: webcit $(CC) $(LDFLAGS) -o webcit $(LIBOBJS) \ webserver.o context_loop.o cookie_conversion.o marchlist.o \ webcit.o auth.o tcp_sockets.o mainmenu.o serv_func.o who.o listsub.o \ roomops.o roomlist.o roomtokens.o roomviews.o \ messages.o msg_renderers.o paging.o sysmsgs.o \ blogview_renderer.o jsonview_renderer.o mailview_renderer.o bbsview_renderer.o \ useredit.o locate_host.o siteconfig.o subst.o vcard_edit.o roomchat.o \ graphics.o netconf.o preferences.o html2html.o openid.o \ summary.o calendar.o calendar_tools.o calendar_view.o tasks.o event.o wiki.o \ availability.o ical_dezonify.o iconbar.o icontheme.o crypto.o inetconf.o notes.o \ dav_main.o dav_get.o dav_propfind.o dav_report.o dav_delete.o \ dav_options.o autocompletion.o tabs.o smtpqueue.o sieve.o sitemap.o \ dav_put.o http_datestring.o setup_wizard.o fmt_date.o modules_init.o \ gettext.o downloads.o addressbook_popup.o pushemail.o sysdep.o decode.o \ paramhandling.o utils.o ical_maps.o ical_subst.o static.o feed_generator.o \ $(LIBS) %.o: %.c ${HEADERS} echo "CC $<" $(CC) $(CFLAGS) $(DEFS) $(PTHREAD_DEFS) -c -o $@ $< %.o: %.cpp ${HEADERS} echo "CC+ $<" $(CC) $(CFLAGS) $(DEFS) $(PTHREAD_DEFS) -c -o $@ $< Makefile: $(srcdir)/Makefile.in config.status CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status config.status: $(srcdir)/configure $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.ac $(srcdir)/aclocal.m4 cd $(srcdir) && $(AUTOCONF) $(srcdir)/aclocal.m4: $(srcdir)/acinclude.m4 cd $(srcdir) && $(ACLOCAL) install: install-bin install-setupbin install-wwwdata install-tinymce install-locale install-cfg install-epic install-bin: test -d $(DESTDIR)$(prefix) || mkdir -p $(DESTDIR)$(prefix) $(INSTALL) webcit $(DESTDIR)$(prefix)/webcit if test -f $(DESTDIR)$(prefix)/webserver; then \ rm -f $(DESTDIR)$(prefix)/webserver; \ ln -s $(DESTDIR)$(prefix)/webcit $(DESTDIR)$(prefix)/webserver; \ fi install-cfg: test -d $(DESTDIR)$(ETCDIR) || mkdir -p $(DESTDIR)$(ETCDIR) $(INSTALL) nogz-mimetypes.txt $(DESTDIR)/$(ETCDIR)/nogz-mimetypes.txt install-setupbin: install-bin $(INSTALL) setup $(DESTDIR)$(prefix)/setup install-wwwdata: test -d $(DESTDIR)$(WWWDIR)/static.local/t || mkdir -p $(DESTDIR)$(WWWDIR)/static.local/t test -d $(DESTDIR)$(WWWDIR)/static/t || mkdir -p $(DESTDIR)$(WWWDIR)/static/t for i in `find static -type d | grep -v .svn` \ ; do \ test -d $(DESTDIR)$(WWWDIR)/$$i || mkdir -p $(DESTDIR)$(WWWDIR)/$$i; \ done for i in `find static -type f | grep -v .svn`; do \ $(INSTALL) $$i $(DESTDIR)$(WWWDIR)/$$i; \ done install-tinymce: test -d $(DESTDIR)$(WWWDIR)/static || mkdir -p $(DESTDIR)$(WWWDIR)/static for i in `find tiny_mce -type d | grep -v .svn` \ ; do \ test -d $(DESTDIR)$(WWWDIR)/$$i || mkdir -p $(DESTDIR)$(WWWDIR)/$$i; \ done for i in \ `find tiny_mce -type f | grep -v .svn` \ ; do \ $(INSTALL) $$i $(DESTDIR)$(WWWDIR)/$$i; \ done install-epic: test -d $(DESTDIR)$(WWWDIR)/static || mkdir -p $(DESTDIR)$(WWWDIR)/static for i in `find epic -type d | grep -v .svn` \ ; do \ test -d $(DESTDIR)$(WWWDIR)/$$i || mkdir -p $(DESTDIR)$(WWWDIR)/$$i; \ done for i in \ `find epic -type f | grep -v .svn` \ ; do \ $(INSTALL) $$i $(DESTDIR)$(WWWDIR)/$$i; \ done install-locale: cd po/webcit/; $(MAKE) for i in `find locale -type d | grep -v .svn` \ ; do \ test -d $(DESTDIR)$(LOCALEDIR)/$$i || mkdir -p $(DESTDIR)$(LOCALEDIR)/$$i; \ done for i in `find locale -type f | grep -v .svn`; do \ $(INSTALL) $$i $(DESTDIR)$(LOCALEDIR)/$$i; \ done TAGS clean-recursive distclean-recursive depend-recursive check-recursive \ mostlyclean-recursive realclean-recursive: @for subdir in $(SUBDIRS); do \ if test -d $$subdir ; then \ target=`echo $@|$(SED) 's/-recursive//'`; \ echo making $$target in $$subdir; \ (cd $$subdir && $(MAKE) $$target) || exit 1; \ fi ; \ done all-progs-recursive install-progs-recursive install-strip-progs-recursive \ uninstall-progs-recursive: # @for subdir in $(PROG_SUBDIRS); do \ # if test -d $$subdir ; then \ # target=`echo $@|$(SED) 's/-progs-recursive//'`; \ # echo making $$target in $$subdir; \ # (cd $$subdir && $(MAKE) $$target) || exit 1; \ # fi ; \ # done all-libs-recursive install-libs-recursive install-strip-libs-recursive \ uninstall-libs-recursive install-shlibs-libs-recursive \ install-shlibs-strip-libs-recursive uninstall-shlibs-libs-recursive: # @for subdir in $(LIB_SUBDIRS); do \ # if test -d $$subdir ; then \ # target=`echo $@|$(SED) 's/-libs-recursive//'`; \ # echo making $$target in $$subdir; \ # (cd $$subdir && $(MAKE) $$target) || exit 1; \ # fi ; \ # done webcit-dfsg.orig/tasks.c0000644000175000017500000005017713223341037015302 0ustar michaelmichael#include "webcit.h" #include "calendar.h" #include "webserver.h" /* * qsort filter to move completed tasks to bottom of task list */ int task_completed_cmp(const void *vtask1, const void *vtask2) { disp_cal * Task1 = (disp_cal *)GetSearchPayload(vtask1); /* disp_cal * Task2 = (disp_cal *)GetSearchPayload(vtask2); */ icalproperty_status t1 = icalcomponent_get_status((Task1)->cal); /* icalproperty_status t2 = icalcomponent_get_status(((struct disp_cal *)task2)->cal); */ if (t1 == ICAL_STATUS_COMPLETED) return 1; return 0; } /* * Helper function for do_tasks_view(). Returns the due date/time of a vtodo. */ time_t get_task_due_date(icalcomponent *vtodo, int *is_date) { icalproperty *p; if (vtodo == NULL) { return(0L); } /* * If we're looking at a fully encapsulated VCALENDAR * rather than a VTODO component, recurse into the data * structure until we get a VTODO. */ if (icalcomponent_isa(vtodo) == ICAL_VCALENDAR_COMPONENT) { return get_task_due_date( icalcomponent_get_first_component( vtodo, ICAL_VTODO_COMPONENT ), is_date ); } p = icalcomponent_get_first_property(vtodo, ICAL_DUE_PROPERTY); if (p != NULL) { struct icaltimetype t = icalproperty_get_due(p); if (is_date) *is_date = t.is_date; return(icaltime_as_timet(t)); } else { return(0L); } } /* * Compare the due dates of two tasks (this is for sorting) */ int task_due_cmp(const void *vtask1, const void *vtask2) { disp_cal * Task1 = (disp_cal *)GetSearchPayload(vtask1); disp_cal * Task2 = (disp_cal *)GetSearchPayload(vtask2); time_t t1; time_t t2; t1 = get_task_due_date(Task1->cal, NULL); t2 = get_task_due_date(Task2->cal, NULL); if (t1 < t2) return(-1); if (t1 > t2) return(1); return(0); } /* * do the whole task view stuff */ int tasks_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { long hklen; const char *HashKey; void *vCal; disp_cal *Cal; HashPos *Pos; int nItems; time_t due; char buf[SIZ]; icalproperty *p; wcsession *WCC = WC; wc_printf("\n\n\n", _("Show All")); nItems = GetCount(WC->disp_cal_items); /* Sort them if necessary if (nItems > 1) { SortByPayload(WC->disp_cal_items, task_due_cmp); } * this shouldn't be neccessary, since we sort by the start time. */ /* And then again, by completed */ if (nItems > 1) { SortByPayload(WC->disp_cal_items, task_completed_cmp); } Pos = GetNewHashPos(WCC->disp_cal_items, 0); while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { icalproperty_status todoStatus; int is_date; Cal = (disp_cal*)vCal; wc_printf("\n"); due = get_task_due_date(Cal->cal, &is_date); wc_printf(""); wc_printf(""); wc_printf(""); } wc_printf("
    "); wc_printf(_("Completed?")); wc_printf(""); wc_printf(_("Name of task")); wc_printf(""); wc_printf(_("Date due")); wc_printf(""); wc_printf(_("Category")); wc_printf(" ()
    "); todoStatus = icalcomponent_get_status(Cal->cal); wc_printf("\n"); p = icalcomponent_get_first_property(Cal->cal, ICAL_SUMMARY_PROPERTY); wc_printf("cal_msgnum); urlescputs(ChrPtr(WC->CurRoom.name)); wc_printf("\">"); /* wc_printf(" "); */ if (p != NULL) { escputs((char *)icalproperty_get_comment(p)); } wc_printf("\n"); wc_printf(" 0) { webcit_fmt_date(buf, SIZ, due, is_date ? DATEFMT_RAWDATE : DATEFMT_FULL); wc_printf(">%s",buf); } else { wc_printf(">"); } wc_printf(""); p = icalcomponent_get_first_property(Cal->cal, ICAL_CATEGORIES_PROPERTY); if (p != NULL) { escputs((char *)icalproperty_get_categories(p)); } wc_printf("
    \n"); /* Free the list */ DeleteHash(&WC->disp_cal_items); DeleteHashPos(&Pos); return 0; } /* * Display a task by itself (for editing) */ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, char *from, int unread, calview *calv) { wcsession *WCC = WC; icalcomponent *vtodo; icalproperty *p; struct icaltimetype IcalTime; int created_new_vtodo = 0; icalproperty_status todoStatus; if (supplied_vtodo != NULL) { vtodo = supplied_vtodo; /* * It's safe to convert to UTC here because there are no recurrences to worry about. */ ical_dezonify(vtodo); /* * If we're looking at a fully encapsulated VCALENDAR * rather than a VTODO component, attempt to use the first * relevant VTODO subcomponent. If there is none, the * NULL returned by icalcomponent_get_first_component() will * tell the next iteration of this function to create a * new one. */ if (icalcomponent_isa(vtodo) == ICAL_VCALENDAR_COMPONENT) { display_edit_individual_task( icalcomponent_get_first_component( vtodo, ICAL_VTODO_COMPONENT ), msgnum, from, unread, calv ); return; } } else { vtodo = icalcomponent_new(ICAL_VTODO_COMPONENT); created_new_vtodo = 1; } /* TODO: Can we take all this and move it into a template? */ output_headers(1, 1, 1, 0, 0, 0); wc_printf(""); p = icalcomponent_get_first_property(vtodo, ICAL_SUMMARY_PROPERTY); /* Get summary early for title */ wc_printf("
    \n"); wc_printf("
    "); wc_printf(_("Edit task")); wc_printf("- "); if (p != NULL) { escputs((char *)icalproperty_get_comment(p)); } wc_printf("
    "); wc_printf("
    \n"); wc_printf("
    \n"); wc_printf("
    \n "); wc_printf("WBuf, WCC->CurRoom.name, NULL, 0, 0); wc_printf("\">\n"); wc_printf("\n", WC->nonce); wc_printf("\n", msgnum); wc_printf("\n", ibstr("return_to_summary")); wc_printf("
    "); wc_printf("
    "); wc_printf("\n"); wc_printf("\n"); wc_printf("\n"); wc_printf("\n"); todoStatus = icalcomponent_get_status(vtodo); wc_printf(""); /* start category field */ p = icalcomponent_get_first_property(vtodo, ICAL_CATEGORIES_PROPERTY); wc_printf("\n "); /* end category field */ wc_printf("
    "); wc_printf(_("Summary:")); wc_printf("" "
    "); wc_printf(_("Start date:")); wc_printf(""); p = icalcomponent_get_first_property(vtodo, ICAL_DTSTART_PROPERTY); wc_printf(""); wc_printf(_("No date")); wc_printf(" "); wc_printf(""); wc_printf(_("or")); wc_printf(" "); if (p != NULL) { IcalTime = icalproperty_get_dtstart(p); } else IcalTime = icaltime_current_time_with_zone(get_default_icaltimezone()); display_icaltimetype_as_webform(&IcalTime, "dtstart", 0); wc_printf(""); wc_printf(_("Time associated")); wc_printf("
    "); wc_printf(_("Due date:")); wc_printf(""); p = icalcomponent_get_first_property(vtodo, ICAL_DUE_PROPERTY); wc_printf(""); wc_printf(_("No date")); wc_printf(" "); wc_printf("\n"); wc_printf(_("or")); wc_printf(" "); if (p != NULL) { IcalTime = icalproperty_get_due(p); } else IcalTime = icaltime_current_time_with_zone(get_default_icaltimezone()); display_icaltimetype_as_webform(&IcalTime, "due", 0); wc_printf(""); wc_printf(_("Time associated")); wc_printf("
    \n"); wc_printf(_("Completed:")); wc_printf(""); wc_printf(""); wc_printf("
    "); wc_printf(_("Category:")); wc_printf(""); wc_printf(""); wc_printf("
    "); wc_printf(_("Description:")); wc_printf(""); wc_printf("
    \n"); wc_printf("" "" "  " "\n" "  " "\n" "\n", _("Save"), _("Delete"), _("Cancel") ); wc_printf("
    "); wc_printf("
    \n"); wc_printf("
    \n"); wc_printf(""); wDumpContent(1); if (created_new_vtodo) { icalcomponent_free(vtodo); } } /* * Save an edited task * * supplied_vtodo the task to save * msgnum number of the mesage in our db */ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from, int unread, calview *calv) { char buf[SIZ]; int delete_existing = 0; icalproperty *prop; icalcomponent *vtodo, *encaps; int created_new_vtodo = 0; int i; int sequence = 0; struct icaltimetype t; if (supplied_vtodo != NULL) { vtodo = supplied_vtodo; /** * If we're looking at a fully encapsulated VCALENDAR * rather than a VTODO component, attempt to use the first * relevant VTODO subcomponent. If there is none, the * NULL returned by icalcomponent_get_first_component() will * tell the next iteration of this function to create a * new one. */ if (icalcomponent_isa(vtodo) == ICAL_VCALENDAR_COMPONENT) { save_individual_task( icalcomponent_get_first_component( vtodo, ICAL_VTODO_COMPONENT), msgnum, from, unread, calv ); return; } } else { vtodo = icalcomponent_new(ICAL_VTODO_COMPONENT); created_new_vtodo = 1; } if (havebstr("save_button")) { /** Replace values in the component with ones from the form */ while (prop = icalcomponent_get_first_property(vtodo, ICAL_SUMMARY_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (havebstr("summary")) { icalcomponent_add_property(vtodo, icalproperty_new_summary(bstr("summary"))); } else { icalcomponent_add_property(vtodo, icalproperty_new_summary(_("Untitled Task"))); } while (prop = icalcomponent_get_first_property(vtodo, ICAL_DESCRIPTION_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (havebstr("description")) { icalcomponent_add_property(vtodo, icalproperty_new_description(bstr("description"))); } while (prop = icalcomponent_get_first_property(vtodo, ICAL_DTSTART_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (IsEmptyStr(bstr("nodtstart"))) { if (yesbstr("dtstart_time")) { icaltime_from_webform(&t, "dtstart"); } else { icaltime_from_webform_dateonly(&t, "dtstart"); } icalcomponent_add_property(vtodo, icalproperty_new_dtstart(t) ); } while(prop = icalcomponent_get_first_property(vtodo, ICAL_STATUS_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo,prop); icalproperty_free(prop); } while(prop = icalcomponent_get_first_property(vtodo, ICAL_PERCENTCOMPLETE_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo,prop); icalproperty_free(prop); } if (havebstr("status")) { icalproperty_status taskStatus = icalproperty_string_to_status(bstr("status")); icalcomponent_set_status(vtodo, taskStatus); icalcomponent_add_property(vtodo, icalproperty_new_percentcomplete( (strcasecmp(bstr("status"), "completed") ? 0 : 100) ) ); } else { icalcomponent_add_property(vtodo, icalproperty_new_percentcomplete(0)); } while (prop = icalcomponent_get_first_property(vtodo, ICAL_CATEGORIES_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo,prop); icalproperty_free(prop); } if (!IsEmptyStr(bstr("category"))) { prop = icalproperty_new_categories(bstr("category")); icalcomponent_add_property(vtodo,prop); } while (prop = icalcomponent_get_first_property(vtodo, ICAL_DUE_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (IsEmptyStr(bstr("nodue"))) { if (yesbstr("due_time")) { icaltime_from_webform(&t, "due"); } else { icaltime_from_webform_dateonly(&t, "due"); } icalcomponent_add_property(vtodo, icalproperty_new_due(t) ); } /** Give this task a UID if it doesn't have one. */ syslog(LOG_DEBUG, "Give this task a UID if it doesn't have one.\n"); if (icalcomponent_get_first_property(vtodo, ICAL_UID_PROPERTY) == NULL) { generate_uuid(buf); icalcomponent_add_property(vtodo, icalproperty_new_uid(buf) ); } /* Increment the sequence ID */ syslog(LOG_DEBUG, "Increment the sequence ID\n"); while (prop = icalcomponent_get_first_property(vtodo, ICAL_SEQUENCE_PROPERTY), (prop != NULL) ) { i = icalproperty_get_sequence(prop); syslog(LOG_DEBUG, "Sequence was %d\n", i); if (i > sequence) sequence = i; icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } ++sequence; syslog(LOG_DEBUG, "New sequence is %d. Adding...\n", sequence); icalcomponent_add_property(vtodo, icalproperty_new_sequence(sequence) ); /* * Encapsulate event into full VCALENDAR component. Clone it first, * for two reasons: one, it's easier to just free the whole thing * when we're done instead of unbundling, but more importantly, we * can't encapsulate something that may already be encapsulated * somewhere else. */ syslog(LOG_DEBUG, "Encapsulating into a full VCALENDAR component\n"); encaps = ical_encapsulate_subcomponent(icalcomponent_new_clone(vtodo)); /* Serialize it and save it to the message base */ serv_puts("ENT0 1|||4"); serv_getln(buf, sizeof buf); if (buf[0] == '4') { serv_puts("Content-type: text/calendar"); serv_puts(""); serv_puts(icalcomponent_as_ical_string(encaps)); serv_puts("000"); /* * Probably not necessary; the server will see the UID * of the object and delete the old one anyway, but * just in case... */ delete_existing = 1; } icalcomponent_free(encaps); } /** * If the user clicked 'Delete' then explicitly delete the message. */ if (havebstr("delete_button")) { delete_existing = 1; } if ( (delete_existing) && (msgnum > 0L) ) { serv_printf("DELE %ld", lbstr("msgnum")); serv_getln(buf, sizeof buf); } if (created_new_vtodo) { icalcomponent_free(vtodo); } /* Go back to wherever we came from */ if (ibstr("return_to_summary") == 1) { display_summary_page(); } else { readloop(readfwd, eUseDefault); } } /* * free memory allocated using libical */ void delete_task(void *vCal) { disp_cal *Cal = (disp_cal*) vCal; icalcomponent_free(Cal->cal); free(Cal->from); free(Cal); } /* * Load a Task into a hash table for later display. */ void load_task(icalcomponent *event, long msgnum, char *from, int unread, calview *calv) { icalproperty *ps = NULL; struct icaltimetype dtstart, dtend; wcsession *WCC = WC; disp_cal *Cal; size_t len; icalcomponent *cptr = NULL; dtstart = icaltime_null_time(); dtend = icaltime_null_time(); if (WCC->disp_cal_items == NULL) { WCC->disp_cal_items = NewHash(0, Flathash); } Cal = (disp_cal*) malloc(sizeof(disp_cal)); memset(Cal, 0, sizeof(disp_cal)); Cal->cal = icalcomponent_new_clone(event); /* Dezonify and decapsulate at the very last moment */ ical_dezonify(Cal->cal); if (icalcomponent_isa(Cal->cal) != ICAL_VTODO_COMPONENT) { cptr = icalcomponent_get_first_component(Cal->cal, ICAL_VTODO_COMPONENT); if (cptr) { cptr = icalcomponent_new_clone(cptr); icalcomponent_free(Cal->cal); Cal->cal = cptr; } } Cal->unread = unread; len = strlen(from); Cal->from = (char*)malloc(len+ 1); memcpy(Cal->from, from, len + 1); Cal->cal_msgnum = msgnum; /* Precalculate the starting date and time of this event, and store it in our top-level * structure. Later, when we are rendering the calendar, we can just peek at these values * without having to break apart every calendar item. */ ps = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY); if (ps != NULL) { dtstart = icalproperty_get_dtstart(ps); Cal->event_start = icaltime_as_timet(dtstart); } /* Do the same for the ending date and time. It makes the day view much easier to render. */ ps = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY); if (ps != NULL) { dtend = icalproperty_get_dtend(ps); Cal->event_end = icaltime_as_timet(dtend); } /* Store it in the hash list. */ /* syslog(LOG_DEBUG, "INITIAL: %s", ctime(&Cal->event_start)); */ Put(WCC->disp_cal_items, (char*) &Cal->event_start, sizeof(Cal->event_start), Cal, delete_task ); } /* * Display task view */ int tasks_LoadMsgFromServer(SharedMessageStatus *Stat, void **ViewSpecific, message_summary* Msg, int is_new, int i) { /* Not (yet?) needed here? calview *c = (calview *) *ViewSpecific; */ load_ical_object(Msg->msgnum, is_new, ICAL_VTODO_COMPONENT, load_task, NULL, 0); return 0; } /* * Display the editor component for a task */ void display_edit_task(void) { long msgnum = 0L; /* Force change the room if we have to */ if (havebstr("taskrm")) { gotoroom(sbstr("taskrm")); } msgnum = lbstr("msgnum"); if (msgnum > 0L) { /* existing task */ load_ical_object(msgnum, 0, ICAL_VTODO_COMPONENT, display_edit_individual_task, NULL, 0 ); } else { /* new task */ display_edit_individual_task(NULL, 0L, "", 0, NULL); } } /* * save an edited task */ void save_task(void) { long msgnum = 0L; msgnum = lbstr("msgnum"); if (msgnum > 0L) { load_ical_object(msgnum, 0, ICAL_VTODO_COMPONENT, save_individual_task, NULL, 0); } else { save_individual_task(NULL, 0L, "", 0, NULL); } } int tasks_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { strcpy(cmd, "MSGS ALL"); Stat->maxmsgs = 32767; return 200; } int tasks_Cleanup(void **ViewSpecific) { wDumpContent(1); /* Tasks doesn't need the calview struct... free (*ViewSpecific); *ViewSpecific = NULL; */ return 0; } void InitModule_TASKS (void) { RegisterReadLoopHandlerset( VIEW_TASKS, tasks_GetParamsGetServerCall, NULL, NULL, NULL, tasks_LoadMsgFromServer, tasks_RenderView_or_Tail, tasks_Cleanup, NULL); WebcitAddUrlHandler(HKEY("save_task"), "", 0, save_task, 0); } webcit-dfsg.orig/addressbook_popup.c0000644000175000017500000000361413223341037017672 0ustar michaelmichael/* * AJAX-powered auto-completion * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /* * Address book popup results */ HashList* GetAddressbookList() { HashList *List = NULL; const StrBuf *WhichAddrBook; StrBuf *saved_roomname; StrBuf *Name; StrBuf *Line; long BufLen; int IsLocalAddrBook; WhichAddrBook = sbstr("which_addr_book"); IsLocalAddrBook = strcasecmp(ChrPtr(WhichAddrBook), "__LOCAL_USERS__") == 1; if (IsLocalAddrBook) { serv_puts("LIST"); } else { /* remember the default addressbook for this room */ set_room_pref("defaddrbook", NewStrBufDup(WhichAddrBook), 0); saved_roomname = NewStrBufDup(WC->CurRoom.name); gotoroom(WhichAddrBook); serv_puts("DVCA"); } Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { List = NewHash(1, NULL); while (BufLen = StrBuf_ServGetln(Line), ((BufLen >= 0) && ((BufLen != 3) || strcmp(ChrPtr(Line), "000")))) { if (IsLocalAddrBook && (BufLen > 5) && (strncmp(ChrPtr(Line), "SYS_", 4) == 0)) { continue; } Name = NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_token(Name, Line, 0, '|'); Put(List, SKEY(Name), Name, HFreeStrBuf); } SortByHashKey(List, 1); } if (!IsLocalAddrBook) { gotoroom(saved_roomname); FreeStrBuf(&saved_roomname); } return List; } void InitModule_ADDRBOOK_POPUP (void) { RegisterIterator("ITERATE:ABNAMES", 0, NULL, GetAddressbookList, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG); } webcit-dfsg.orig/graphics.c0000644000175000017500000001364513223341037015754 0ustar michaelmichael/* * Handles HTTP upload of graphics files into the system. * * Copyright (c) 1996-2016 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" extern void output_static(const char* What); // display the picture (icon, photo, whatever) associated with the current room void display_roompic(void) { off_t bytes; StrBuf *Buf = NewStrBuf(); serv_printf("DLRI"); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 6) { StrBufCutLeft(Buf, 4); bytes = StrBufExtract_long(Buf, 0, '|'); StrBuf *content_type = NewStrBuf(); StrBufExtract_token(content_type, Buf, 3, '|'); WC->WBuf = NewStrBuf(); StrBuf_ServGetBLOBBuffered(WC->WBuf, bytes); http_transmit_thing(ChrPtr(content_type), 0); FreeStrBuf(&content_type); } else { output_error_pic("", ""); } FreeStrBuf(&Buf); } // upload the picture (icon, photo, whatever) associated with the current room void common_code_for_editroompic_and_editpic(char *servcmd) { if (havebstr("cancel_button")) { AppendImportantMessage(_("Graphics upload has been cancelled."), -1); display_main_menu(); return; } if (WC->upload_length == 0) { AppendImportantMessage(_("You didn't upload a file."), -1); display_main_menu(); return; } serv_printf("%s %ld|%s", servcmd, (long)WC->upload_length, GuessMimeType(ChrPtr(WC->upload), WC->upload_length)); StrBuf *Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 0, 0) == 7) { serv_write(ChrPtr(WC->upload), WC->upload_length); display_success(ChrPtr(Line) + 4); } else { AppendImportantMessage((ChrPtr(Line) + 4), -1); display_main_menu(); } FreeStrBuf(&Line); } // upload the picture (icon, photo, whatever) associated with the current room void editroompic(void) { common_code_for_editroompic_and_editpic("ULRI"); } // upload the picture (icon, photo, whatever) associated with the current user void editpic(void) { common_code_for_editroompic_and_editpic("ULUI"); } // display the screen for uploading graphics to the server void display_graphics_upload(char *filename) { StrBuf *Line; Line = NewStrBuf(); serv_printf("UIMG 0||%s", filename); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) { display_main_menu(); return; } else { output_headers(1, 0, 0, 0, 1, 0); do_template("files_graphicsupload"); end_burst(); } FreeStrBuf(&Line); } void do_graphics_upload(char *filename) { StrBuf *Line; const char *MimeType; wcsession *WCC = WC; int bytes_remaining; int pos = 0; int thisblock; bytes_remaining = WCC->upload_length; if (havebstr("cancel_button")) { AppendImportantMessage(_("Graphics upload has been cancelled."), -1); display_main_menu(); return; } if (WCC->upload_length == 0) { AppendImportantMessage(_("You didn't upload a file."), -1); display_main_menu(); return; } MimeType = GuessMimeType(ChrPtr(WCC->upload), bytes_remaining); serv_printf("UIMG 1|%s|%s", MimeType, filename); Line = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 2) != 2) { display_main_menu(); FreeStrBuf(&Line); return; } while (bytes_remaining) { thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining); serv_printf("WRIT %d", thisblock); StrBuf_ServGetln(Line); if (GetServerStatusMsg(Line, NULL, 1, 7) != 7) { serv_puts("UCLS 0"); StrBuf_ServGetln(Line); display_main_menu(); FreeStrBuf(&Line); return; } thisblock = extract_int(ChrPtr(Line) +4, 0); serv_write(&ChrPtr(WCC->upload)[pos], thisblock); pos += thisblock; bytes_remaining -= thisblock; } serv_puts("UCLS 1"); StrBuf_ServGetln(Line); if (*ChrPtr(Line) != 'x') { display_success(ChrPtr(Line) + 4); } FreeStrBuf(&Line); } void edithellopic(void) { do_graphics_upload("hello"); } void editgoodbuyepic(void) { do_graphics_upload("UIMG 1|%s|goodbuye"); } /* The users photo display / upload facility */ void display_editpic(void) { putbstr("__PICDESC", NewStrBufPlain(_("your photo"), -1)); putbstr("__UPLURL", NewStrBufPlain(HKEY("editpic"))); display_graphics_upload("editpic"); } /* room picture dispay / upload facility */ void display_editroompic(void) { putbstr("__PICDESC", NewStrBufPlain(_("the icon for this room"), -1)); putbstr("__UPLURL", NewStrBufPlain(HKEY("editroompic"))); display_graphics_upload("editroompic"); } /* the greetingpage hello pic */ void display_edithello(void) { putbstr("__WHICHPIC", NewStrBufPlain(HKEY("hello"))); putbstr("__PICDESC", NewStrBufPlain(_("the Greetingpicture for the login prompt"), -1)); putbstr("__UPLURL", NewStrBufPlain(HKEY("edithellopic"))); display_graphics_upload("edithellopic"); } /* the logoff banner */ void display_editgoodbyepic(void) { putbstr("__WHICHPIC", NewStrBufPlain(HKEY("UIMG 0|%s|goodbuye"))); putbstr("__PICDESC", NewStrBufPlain(_("the Logoff banner picture"), -1)); putbstr("__UPLURL", NewStrBufPlain(HKEY("editgoodbuyepic"))); display_graphics_upload("editgoodbuyepic"); } void InitModule_GRAPHICS (void) { WebcitAddUrlHandler(HKEY("display_editpic"), "", 0, display_editpic, 0); WebcitAddUrlHandler(HKEY("editpic"), "", 0, editpic, 0); WebcitAddUrlHandler(HKEY("display_editroompic"), "", 0, display_editroompic, 0); WebcitAddUrlHandler(HKEY("editroompic"), "", 0, editroompic, 0); WebcitAddUrlHandler(HKEY("display_edithello"), "", 0, display_edithello, 0); WebcitAddUrlHandler(HKEY("edithellopic"), "", 0, edithellopic, 0); WebcitAddUrlHandler(HKEY("display_editgoodbuye"), "", 0, display_editgoodbyepic, 0); WebcitAddUrlHandler(HKEY("editgoodbuyepic"), "", 0, editgoodbuyepic, 0); WebcitAddUrlHandler(HKEY("roompic"), "", 0, display_roompic, 0); } webcit-dfsg.orig/COPYING0000644000175000017500000010402413223341037015033 0ustar michaelmichaelWebcit Core is Copyright by the Citadel Development Team 1998 - 2012 Webcit contains components under different Licenses, here their authors and list: Scriptaculous:Copyright (c) 2005-2007 Thomas Fuchs, Marty Haught, Ivan Krstic, Jon Tirsen, Sammi Williams (http://script.aculo.us, http://mir.aculo.us, http://blogs.law.harvard.edu/ivan, http://www.tirsen.com, http://www.oriontransfer.co.nz) MIT-style license. PrototypeJS: Copyright (c) 2005-2008 Sam Stephenson; http://www.prototypejs.org/; MIT License (http://dev.rubyonrails.org/browser/spinoffs/prototype/trunk/LICENSE?format=raw) strcmp: http://kevin.vanzonneveld.net; original by: Waldo Malqui Silva input by: Steve Hilder improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) http://kevin.vanzonneveld.net DatePicker: widget using Prototype and Scriptaculous. (c) 2007 Mathieu Jondet Eulerian Technologies DatePicker is freely distributable under the same terms as Prototype. -> NanoTree: Martin Mouritzen. (martin@nano.dk) LGPL V3 Bubble Tooltips: Alessandro Fulciniti (http://web-graphics.com) Public Domain, GPL V3 by Art Cancro StdExt: Copyright (c) 2005 Michael Schuerig http://www.schuerig.de/michael/javascript/stdext.js LGPL V2.1 or later CSS3PIE: both the Apache license and the GNU General Public License. TinyMCE: Moxiecode tinymce.org LGPL V2.1 or later fineuploader: fineuploader.com GPL V3 * In addition, as a special exception, we hereby declare that our favorite type of software is called "open source" -- NOT "free software" -- and that our favorite operating system is called "Linux" -- NOT "GNU/Linux." We officially reject and denounce Richard Stallman's linguistic fascism. * In addition, as a special exception, the copyright holders give * permission to link the code of portions of this program with the * OpenSSL library under certain conditions as described in each * individual source file, and distribute linked combinations * including the two. * You must obey the GNU General Public License in all respects * for all of the code used other than OpenSSL. If you modify * file(s) with this exception, you may extend this exception to your * version of the file(s), but you are not obligated to do so. If you * do not wish to do so, delete this exception statement from your * version. If you delete this exception statement from all source * files in the program, then also delete it here. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Preamble The GNU General Public License is an open source "copyleft" license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS webcit-dfsg.orig/modules_init.h0000644000175000017500000001523013223341060016640 0ustar michaelmichael/* * /var/www/easyinstall/citadel/webcit/modules_init.h * Auto generated by mk_modules_init.sh DO NOT EDIT THIS FILE */ #ifndef MODULES_INIT_H #define MODULES_INIT_H extern size_t nSizErrmsg; /* * server lifetime: */ void initialise_modules (void); void initialise2_modules (void); void start_modules (void); void shutdown_modules (void); /* * Session lifetime: */ void session_new_modules (wcsession *sess); void session_attach_modules (wcsession *sess); void session_detach_modules (wcsession *sess); void session_destroy_modules (wcsession **sess); void http_new_modules (ParsedHttpHdrs *httpreq); void http_detach_modules (ParsedHttpHdrs *httpreq); void http_destroy_modules (ParsedHttpHdrs *httpreq); /* * forwards... */ /* Server Start Hooks: */ extern void ServerStartModule_CONTEXT(void); extern void ServerStartModule_DAV(void); extern void ServerStartModule_ICONBAR(void); extern void ServerStartModule_ICONTHEME(void); extern void ServerStartModule_MSGRENDERERS(void); extern void ServerStartModule_PREFERENCES(void); extern void ServerStartModule_SERV_FUNC(void); extern void ServerStartModule_SITECONFIG(void); extern void ServerStartModule_SMTP_QUEUE(void); extern void ServerStartModule_STATIC(void); extern void ServerStartModule_SUBST(void); extern void ServerStartModule_VCARD(void); extern void ServerStartModule_WEBCIT(void); /* Server Init Hooks: */ extern void InitModule_ADDRBOOK_POPUP(void); extern void InitModule_AUTH(void); extern void InitModule_AUTO_COMPLETE(void); extern void InitModule_BBSVIEWRENDERERS(void); extern void InitModule_BLOGVIEWRENDERERS(void); extern void InitModule_CALENDAR(void); extern void InitModule_CALENDAR_VIEW(void); extern void InitModule_CONTEXT(void); extern void InitModule_DATE(void); extern void InitModule_DATETIME(void); extern void InitModule_DOWNLOAD(void); extern void InitModule_GETTEXT(void); extern void InitModule_GRAPHICS(void); extern void InitModule_GROUPDAV(void); extern void InitModule_ICAL_MAPS(void); extern void InitModule_ICAL_SUBST(void); extern void InitModule_ICONBAR(void); extern void InitModule_ICONTHEME(void); extern void InitModule_INETCONF(void); extern void InitModule_JSONRENDERER(void); extern void InitModule_LISTSUB(void); extern void InitModule_MAILVIEW_RENDERERS(void); extern void InitModule_MAINMENU(void); extern void InitModule_MARCHLIST(void); extern void InitModule_MSG(void); extern void InitModule_MSGRENDERERS(void); extern void InitModule_NETCONF(void); extern void InitModule_NOTES(void); extern void InitModule_OPENID(void); extern void InitModule_PAGING(void); extern void InitModule_PARAMHANDLING(void); extern void InitModule_PREFERENCES(void); extern void InitModule_PROPFIND(void); extern void InitModule_PUSHMAIL(void); extern void InitModule_REPORT(void); extern void InitModule_ROOMCHAT(void); extern void InitModule_ROOMLIST(void); extern void InitModule_ROOMOPS(void); extern void InitModule_ROOMTOKENS(void); extern void InitModule_ROOMVIEWS(void); extern void InitModule_RSS(void); extern void InitModule_SERVFUNC(void); extern void InitModule_SETUP_WIZARD(void); extern void InitModule_SIEVE(void); extern void InitModule_SITECONFIG(void); extern void InitModule_SITEMAP(void); extern void InitModule_SMTP_QUEUE(void); extern void InitModule_STATIC(void); extern void InitModule_SUBST(void); extern void InitModule_SUMMARY(void); extern void InitModule_SYSMSG(void); extern void InitModule_TASKS(void); extern void InitModule_USEREDIT(void); extern void InitModule_VCARD(void); extern void InitModule_WEBCIT(void); extern void InitModule_WHO(void); extern void InitModule_WIKI(void); /* Server Init Hooks: */ extern void InitModule2_MSGRENDERERS(void); /* Server shutdown Hooks: */ extern void ServerShutdownModule_CONTEXT(void); extern void ServerShutdownModule_DAV(void); extern void ServerShutdownModule_GETTEXT(void); extern void ServerShutdownModule_ICAL(void); extern void ServerShutdownModule_ICONBAR(void); extern void ServerShutdownModule_ICONTHEME(void); extern void ServerShutdownModule_MSGRENDERERS(void); extern void ServerShutdownModule_PREFERENCES(void); extern void ServerShutdownModule_SERV_FUNC(void); extern void ServerShutdownModule_SITECONFIG(void); extern void ServerShutdownModule_SMTP_QUEUE(void); extern void ServerShutdownModule_STATIC(void); extern void ServerShutdownModule_SUBST(void); extern void ServerShutdownModule_VCARD(void); extern void ServerShutdownModule_WEBCIT(void); /* Session New Hooks: */ extern void SessionNewModule_GETTEXT(wcsession *sess); extern void SessionNewModule_PREFERENCES(wcsession *sess); extern void SessionNewModule_SUBST(wcsession *sess); extern void SessionNewModule_TCPSOCKETS(wcsession *sess); extern void SessionNewModule_WEBCIT(wcsession *sess); /* Session Attach Hooks: */ extern void SessionAttachModule_GETTEXT(wcsession *sess); extern void SessionAttachModule_PARAMHANDLING(wcsession *sess); extern void SessionAttachModule_SUBST(wcsession *sess); /* Session detach Hooks: */ extern void SessionDetachModule_MSG(wcsession *sess); extern void SessionDetachModule_PARAMHANDLING(wcsession *sess); extern void SessionDetachModule__PREFERENCES(wcsession *sess); extern void SessionDetachModule_SIEVE(wcsession *sess); extern void SessionDetachModule_SUBST(wcsession *sess); extern void SessionDetachModule_WEBCIT(wcsession *sess); /* Session destroy Hooks: */ extern void SessionDestroyModule_AUTH(wcsession *sess); extern void SessionDestroyModule_GETTEXT(wcsession *sess); extern void SessionDestroyModule_ICONBAR(wcsession *sess); extern void SessionDestroyModule_ICONTHEME(wcsession *sess); extern void SessionDestroyModule_MSGRENDERERS(wcsession *sess); extern void SessionDestroyModule_PAGING(wcsession *sess); extern void SessionDestroyModule_PREFERENCES(wcsession *sess); extern void SessionDestroyModule_ROOMCHAT(wcsession *sess); extern void SessionDestroyModule_ROOMOPS(wcsession *sess); extern void SessionDestroyModule_SERVFUNC(wcsession *sess); extern void SessionDestroyModule_SITECONFIG(wcsession *sess); extern void SessionDestroyModule_SUBST(wcsession *sess); extern void SessionDestroyModule_TCPSOCKETS(wcsession *sess); extern void SessionDestroyModule_WEBCIT(wcsession *sess); extern void HttpNewModule_AUTH(ParsedHttpHdrs *httpreq); extern void HttpNewModule_CONTEXT(ParsedHttpHdrs *httpreq); extern void HttpNewModule_TCPSOCKETS(ParsedHttpHdrs *httpreq); extern void HttpDetachModule_AUTH(ParsedHttpHdrs *httpreq); extern void HttpDetachModule_CONTEXT(ParsedHttpHdrs *httpreq); extern void HttpDetachModule_TCPSOCKETS(ParsedHttpHdrs *httpreq); extern void HttpDestroyModule_AUTH(ParsedHttpHdrs *httpreq); extern void HttpDestroyModule_CONTEXT(ParsedHttpHdrs *httpreq); extern void HttpDestroyModule_TCPSOCKETS(ParsedHttpHdrs *httpreq); #endif /* MODULES_INIT_H */ webcit-dfsg.orig/Make_sources0000644000175000017500000000027113223341055016342 0ustar michaelmichael# # Make_sources # This file is to be included by Makefile to dynamically add modules to the build process # THIS FILE WAS AUTO GENERATED BY mk_modules_init.sh DO NOT EDIT THIS FILE # webcit-dfsg.orig/static.c0000644000175000017500000002314413223341037015436 0ustar michaelmichael/* * This is the main transaction loop of the web service. It maintains a * persistent session to the Citadel server, handling HTTP WebCit requests as * they arrive and presenting a user interface. */ #include #include #include #include #include #include #include #include #include "webcit.h" #include "webserver.h" unsigned char OnePixelGif[37] = { 0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b }; HashList *StaticFilemappings[5] = {NULL, NULL, NULL, NULL, NULL}; /* { syslog(LOG_DEBUG, "Suspicious request. Ignoring."); hprintf("HTTP/1.1 404 Security check failed\r\n"); hprintf("Content-Type: text/plain\r\n\r\n"); wc_printf("You have sent a malformed or invalid request.\r\n"); end_burst(); } */ void output_error_pic(const char *ErrMsg1, const char *ErrMsg2) { hprintf("HTTP/1.1 200 %s\r\n", ErrMsg1); hprintf("Content-Type: image/gif\r\n"); hprintf("x-webcit-errormessage: %s\r\n", ErrMsg2); begin_burst(); StrBufPlain(WC->WBuf, (const char *)OnePixelGif, sizeof(OnePixelGif)); end_burst(); } /* * dump out static pages from disk */ void output_static(const char *what) { int fd; struct stat statbuf; off_t bytes; const char *content_type; int len; const char *Err; len = strlen (what); content_type = GuessMimeByFilename(what, len); fd = open(what, O_RDONLY); if (fd <= 0) { syslog(LOG_INFO, "output_static('%s') [%s] -- NOT FOUND --\n", what, ChrPtr(WC->Hdr->this_page)); if (strstr(content_type, "image/") != NULL) { output_error_pic("the file you requsted is gone.", strerror(errno)); } else { hprintf("HTTP/1.1 404 %s\r\n", strerror(errno)); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("Cannot open %s: %s\r\n", what, strerror(errno)); end_burst(); } } else { if (fstat(fd, &statbuf) == -1) { syslog(LOG_INFO, "output_static('%s') -- FSTAT FAILED --\n", what); if (strstr(content_type, "image/") != NULL) { output_error_pic("Stat failed!", strerror(errno)); } else { hprintf("HTTP/1.1 404 %s\r\n", strerror(errno)); hprintf("Content-Type: text/plain\r\n"); begin_burst(); wc_printf("Cannot fstat %s: %s\n", what, strerror(errno)); end_burst(); } if (fd > 0) close(fd); return; } bytes = statbuf.st_size; if (StrBufReadBLOB(WC->WBuf, &fd, 1, bytes, &Err) < 0) { if (fd > 0) close(fd); syslog(LOG_INFO, "output_static('%s') -- FREAD FAILED (%s) --\n", what, strerror(errno)); hprintf("HTTP/1.1 500 internal server error \r\n"); hprintf("Content-Type: text/plain\r\n"); end_burst(); return; } close(fd); http_transmit_thing(content_type, 2); } if (yesbstr("force_close_session")) { end_webcit_session(); } } int LoadStaticDir(const char *DirName, HashList *DirList, const char *RelDir) { char dirname[PATH_MAX]; char reldir[PATH_MAX]; StrBuf *FileName = NULL; StrBuf *Dir = NULL; StrBuf *WebDir = NULL; StrBuf *OneWebName = NULL; DIR *filedir = NULL; struct dirent *d; struct dirent *filedir_entry; int d_type = 0; int d_namelen; int istoplevel; filedir = opendir (DirName); if (filedir == NULL) { return 0; } d = (struct dirent *)malloc(offsetof(struct dirent, d_name) + PATH_MAX + 1); if (d == NULL) { closedir(filedir); return 0; } Dir = NewStrBufPlain(DirName, -1); WebDir = NewStrBufPlain(RelDir, -1); istoplevel = IsEmptyStr(RelDir); OneWebName = NewStrBuf(); while ((readdir_r(filedir, d, &filedir_entry) == 0) && (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMLEN d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); #endif #ifdef _DIRENT_HAVE_D_TYPE d_type = filedir_entry->d_type; #else #ifndef DT_UNKNOWN #define DT_UNKNOWN 0 #define DT_DIR 4 #define DT_REG 8 #define DT_LNK 10 #define IFTODT(mode) (((mode) & 0170000) >> 12) #define DTTOIF(dirtype) ((dirtype) << 12) #endif d_type = DT_UNKNOWN; #endif if ((d_namelen > 1) && filedir_entry->d_name[d_namelen - 1] == '~') continue; /* Ignore backup files... */ if ((d_namelen == 1) && (filedir_entry->d_name[0] == '.')) continue; if ((d_namelen == 2) && (filedir_entry->d_name[0] == '.') && (filedir_entry->d_name[1] == '.')) continue; if (d_type == DT_UNKNOWN) { struct stat s; char path[PATH_MAX]; snprintf(path, PATH_MAX, "%s/%s", DirName, filedir_entry->d_name); if (lstat(path, &s) == 0) { d_type = IFTODT(s.st_mode); } } switch (d_type) { case DT_DIR: /* Skip directories we are not interested in... */ if ((strcmp(filedir_entry->d_name, ".svn") == 0) || (strcmp(filedir_entry->d_name, "t") == 0)) break; snprintf(dirname, PATH_MAX, "%s/%s/", DirName, filedir_entry->d_name); if (istoplevel) snprintf(reldir, PATH_MAX, "%s/", filedir_entry->d_name); else snprintf(reldir, PATH_MAX, "%s/%s/", RelDir, filedir_entry->d_name); StripSlashes(dirname, 1); StripSlashes(reldir, 1); LoadStaticDir(dirname, DirList, reldir); break; case DT_LNK: /* TODO: check whether its a file or a directory */ case DT_REG: FileName = NewStrBufDup(Dir); if (ChrPtr(FileName) [ StrLength(FileName) - 1] != '/') StrBufAppendBufPlain(FileName, "/", 1, 0); StrBufAppendBufPlain(FileName, filedir_entry->d_name, d_namelen, 0); FlushStrBuf(OneWebName); StrBufAppendBuf(OneWebName, WebDir, 0); if ((StrLength(OneWebName) != 0) && (ChrPtr(OneWebName) [ StrLength(OneWebName) - 1] != '/')) StrBufAppendBufPlain(OneWebName, "/", 1, 0); StrBufAppendBufPlain(OneWebName, filedir_entry->d_name, d_namelen, 0); Put(DirList, SKEY(OneWebName), FileName, HFreeStrBuf); /* syslog(LOG_DEBUG, "[%s | %s]\n", ChrPtr(OneWebName), ChrPtr(FileName)); */ break; default: break; } } free(d); closedir(filedir); FreeStrBuf(&Dir); FreeStrBuf(&WebDir); FreeStrBuf(&OneWebName); return 1; } void output_flat_static(void) { wcsession *WCC = WC; void *vFile; StrBuf *File; if (WCC->Hdr->HR.Handler == NULL) return; if (GetHash(StaticFilemappings[0], SKEY(WCC->Hdr->HR.Handler->Name), &vFile) && (vFile != NULL)) { File = (StrBuf*) vFile; output_static(ChrPtr(File)); } } void output_static_safe(HashList *DirList) { wcsession *WCC = WC; void *vFile; StrBuf *File; const char *MimeType; if (GetHash(DirList, SKEY(WCC->Hdr->HR.ReqLine), &vFile) && (vFile != NULL)) { File = (StrBuf*) vFile; output_static(ChrPtr(File)); } else { syslog(LOG_INFO, "output_static_safe() file %s not found. \n", ChrPtr(WCC->Hdr->HR.ReqLine)); MimeType = GuessMimeByFilename(SKEY(WCC->Hdr->HR.ReqLine)); if (strstr(MimeType, "image/") != NULL) { output_error_pic("the file you requested isn't known to our cache", "maybe reload webcit?"); } else { do_404(); } } } void output_static_0(void) { output_static_safe(StaticFilemappings[0]); } void output_static_1(void) { output_static_safe(StaticFilemappings[1]); } void output_static_2(void) { output_static_safe(StaticFilemappings[2]); } void output_static_3(void) { output_static_safe(StaticFilemappings[4]); } /* * robots.txt */ void robots_txt(void) { output_headers(0, 0, 0, 0, 0, 0); hprintf("Content-type: text/plain\r\n" "Server: %s\r\n" "Connection: close\r\n", PACKAGE_STRING); begin_burst(); wc_printf("User-agent: *\r\n" "Disallow: /printmsg\r\n" "Disallow: /msgheaders\r\n" "Disallow: /groupdav\r\n" "Disallow: /do_template\r\n" "Disallow: /static\r\n" "Disallow: /display_page\r\n" "Disallow: /readnew\r\n" "Disallow: /display_enter\r\n" "Disallow: /skip\r\n" "Disallow: /ungoto\r\n" "Sitemap: %s/sitemap.xml\r\n" "\r\n" , ChrPtr(site_prefix) ); wDumpContent(0); } void ServerStartModule_STATIC (void) { StaticFilemappings[0] = NewHash(1, NULL); StaticFilemappings[1] = NewHash(1, NULL); StaticFilemappings[2] = NewHash(1, NULL); StaticFilemappings[3] = NewHash(1, NULL); StaticFilemappings[4] = NewHash(1, NULL); } void ServerShutdownModule_STATIC (void) { DeleteHash(&StaticFilemappings[0]); DeleteHash(&StaticFilemappings[1]); DeleteHash(&StaticFilemappings[2]); DeleteHash(&StaticFilemappings[3]); DeleteHash(&StaticFilemappings[4]); } void InitModule_STATIC (void) { LoadStaticDir(static_dirs[0], StaticFilemappings[0], ""); LoadStaticDir(static_dirs[1], StaticFilemappings[1], ""); LoadStaticDir(static_dirs[2], StaticFilemappings[2], ""); LoadStaticDir(static_dirs[3], StaticFilemappings[3], ""); LoadStaticDir(static_dirs[4], StaticFilemappings[4], ""); WebcitAddUrlHandler(HKEY("robots.txt"), "", 0, robots_txt, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("favicon.ico"), "", 0, output_flat_static, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("static"), "", 0, output_static_0, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("static.local"), "", 0, output_static_1, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("tinymce"), "", 0, output_static_2, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("tiny_mce"), "", 0, output_static_2, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("markdown"), "", 0, output_static_3, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); WebcitAddUrlHandler(HKEY("epiceditor"), "", 0, output_static_3, ANONYMOUS|COOKIEUNNEEDED|ISSTATIC|LOGCHATTY); } webcit-dfsg.orig/nogz-mimetypes.txt0000644000175000017500000000653313223341037017536 0ustar michaelmichael# all mimetypes enlisted in this file won't be gzipped on the fly. application/gzip application/java-archive application/java-serialized-object application/java-vm application/ogg application/zip application/vnd.android.package-archive application/vnd.audiograph application/vnd.debian.binary-package application/vnd.google-earth.kmz application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.graphics-template application/vnd.oasis.opendocument.image application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.presentation-template application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.spreadsheet-template application/vnd.oasis.opendocument.text application/vnd.oasis.opendocument.text-master application/vnd.oasis.opendocument.text-template application/vnd.oasis.opendocument.text-web application/vnd.openxmlformats-officedocument.presentationml.presentation application/vnd.openxmlformats-officedocument.presentationml.slide application/vnd.openxmlformats-officedocument.presentationml.slideshow application/vnd.openxmlformats-officedocument.presentationml.template application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.openxmlformats-officedocument.spreadsheetml.template application/vnd.openxmlformats-officedocument.wordprocessingml.document application/vnd.openxmlformats-officedocument.wordprocessingml.template application/zlib application/x-7z-compressed application/x-cab application/x-debian-package application/x-gtar-compressed application/x-iso9660-image application/x-java-applet application/x-java-bean application/x-lha application/x-lzh application/x-lzx application/x-redhat-package-manager application/x-tar application/x-videolan application/x-wingz application/x-xpinstall application/x-xz audio/32kadpcm audio/3gpp audio/amr audio/amr-wb audio/annodex audio/basic audio/csound audio/flac audio/g.722.1 audio/l16 audio/midi audio/mp4a-latm audio/mpa-robust audio/mpeg audio/mpegurl audio/ogg audio/parityfec audio/prs.sid audio/telephone-event audio/tone audio/vnd.cisco.nse audio/vnd.cns.anp1 audio/vnd.cns.inf1 audio/vnd.digital-winds audio/vnd.everad.plj audio/vnd.lucent.voice audio/vnd.nortel.vbk audio/vnd.nuera.ecelp4800 audio/vnd.nuera.ecelp7470 audio/vnd.nuera.ecelp9600 audio/vnd.octel.sbc audio/vnd.qcelp audio/vnd.rhetorex.32kadpcm audio/vnd.vmx.cvsd audio/x-aiff audio/x-gsm audio/x-mpegurl audio/x-ms-wma audio/x-ms-wax audio/x-pn-realaudio-plugin audio/x-pn-realaudio audio/x-realaudio audio/x-scpls audio/x-sd2 audio/x-wav image/cgm image/g3fax image/jp2 image/jpeg image/jpm image/jpx image/naplps image/png image/prs.btif image/prs.pti image/vnd.cns.inf2 image/vnd.djvu image/vnd.fastbidsheet image/vnd.fpx image/vnd.fst image/x-jng text/h323 video/3gpp video/annodex video/dl video/dv video/fli video/gl video/mpeg video/MP2T video/mp4 video/quicktime video/mkv video/mp4v-es video/ogg video/parityfec video/pointer video/webm video/vnd.fvt video/vnd.motorola.video video/vnd.motorola.videop video/vnd.mpegurl video/vnd.mts video/vnd.nokia.interleaved-multimedia video/vnd.vivo video/x-flv video/x-la-asf video/x-mng video/x-ms-asf video/x-ms-wm video/x-ms-wmv video/x-ms-wmx video/x-ms-wvx video/x-msvideo video/x-sgi-movie video/x-matroska webcit-dfsg.orig/sysdep.h.in0000644000175000017500000001307713223341055016074 0ustar michaelmichael/* sysdep.h.in. Generated from configure.ac by autoheader. */ /* define, if the user suplied a data-directory to use. */ #undef DATADIR /* where to find our mail editor */ #undef EDITORDIR /* whether we have NLS support */ #undef ENABLE_NLS /* whether we should compile the test-suite */ #undef ENABLE_TESTS /* where to find our configs */ #undef ETCDIR /* whats the matching format string for pid_t? */ #undef F_PID_T /* whats the matching format string for uid_t? */ #undef F_UID_T /* whats the matching format string for xpid_t? */ #undef F_XPID_T /* Define to 1 if you have the `backtrace' function. */ #undef HAVE_BACKTRACE /* Define to 1 if you have the `connect' function. */ #undef HAVE_CONNECT /* Define to 1 if you have the `crypt' function. */ #undef HAVE_CRYPT /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `flock' function. */ #undef HAVE_FLOCK /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME /* Define to 1 if you have the `getloadavg' function. */ #undef HAVE_GETLOADAVG /* Define to 1 if you have the `getpwnam_r' function. */ #undef HAVE_GETPWNAM_R /* Define to 1 if you have the `getpwuid_r' function. */ #undef HAVE_GETPWUID_R /* Define to 1 if you have the `gettext' function. */ #undef HAVE_GETTEXT /* whether we have iconv for charset conversion */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `pthreads' library (-lpthreads). */ #undef HAVE_LIBPTHREADS /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* whether we have markdown message rendering */ #undef HAVE_MARKDOWN /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* whethe we have openssl */ #undef HAVE_OPENSSL /* should we put our non volatile files elsewhere? */ #undef HAVE_RUN_DIR /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strftime_l' function. */ #undef HAVE_STRFTIME_L /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H /* where to find our pot files */ #undef LOCALEDIR /* where to find our markdown editor */ #undef MARKDOWNEDITORDIR /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Program dirs */ #undef PROG_SUBDIRS /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* define, where the config should go in unix style */ #undef RUNDIR /* The size of `char', as computed by sizeof. */ #undef SIZEOF_CHAR /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG /* The size of `long unsigned int', as computed by sizeof. */ #undef SIZEOF_LONG_UNSIGNED_INT /* The size of `short', as computed by sizeof. */ #undef SIZEOF_SHORT /* The size of `size_t', as computed by sizeof. */ #undef SIZEOF_SIZE_T /* do we need to use solaris call syntax? */ #undef SOLARIS_GETPWUID /* do we need to use soralis call syntax? */ #undef SOLARIS_LOCALTIME_R /* were should we put our keys? */ #undef SSL_DIR /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* whether we need to undefine memcpy */ #undef UNDEF_MEMCPY /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* define this to the Citadel home directory */ #undef WEBCITDIR /* where to find our templates and pics */ #undef WWWDIR /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t webcit-dfsg.orig/html2html.c0000644000175000017500000004501013223341037016056 0ustar michaelmichael/* * Output an HTML message, modifying it slightly to make sure it plays nice * with the rest of our web framework. * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" /* * Strip surrounding single or double quotes from a string. */ void stripquotes(char *s) { int len; if (!s) return; len = strlen(s); if (len < 2) return; if ( ( (s[0] == '\"') && (s[len-1] == '\"') ) || ( (s[0] == '\'') && (s[len-1] == '\'') ) ) { s[len-1] = 0; strcpy(s, &s[1]); } } /* * Check to see if a META tag has overridden the declared MIME character set. * * charset Character set name (left unchanged if we don't do anything) * meta_http_equiv Content of the "http-equiv" portion of the META tag * meta_content Content of the "content" portion of the META tag */ void extract_charset_from_meta(char *charset, char *meta_http_equiv, char *meta_content) { char *ptr; char buf[64]; if (!charset) return; if (!meta_http_equiv) return; if (!meta_content) return; if (strcasecmp(meta_http_equiv, "Content-type")) return; ptr = strchr(meta_content, ';'); if (!ptr) return; safestrncpy(buf, ++ptr, sizeof buf); striplt(buf); if (!strncasecmp(buf, "charset=", 8)) { strcpy(charset, &buf[8]); /* * The brain-damaged webmail program in Microsoft Exchange declares * a charset of "unicode" when they really mean "UTF-8". GNU iconv * treats "unicode" as an alias for "UTF-16" so we have to manually * fix this here, otherwise messages generated in Exchange webmail * show up as a big pile of weird characters. */ if (!strcasecmp(charset, "unicode")) { strcpy(charset, "UTF-8"); } /* Remove wandering punctuation */ if ((ptr=strchr(charset, '\"'))) *ptr = 0; striplt(charset); } } /* * Sanitize and enhance an HTML message for display. * Also convert weird character sets to UTF-8 if necessary. * Also fixup img src="cid:..." type inline images to fetch the image * */ void output_html(const char *supplied_charset, int treat_as_wiki, int msgnum, StrBuf *Source, StrBuf *Target) { char buf[SIZ]; char *msg; char *ptr; char *msgstart; char *msgend; StrBuf *converted_msg; int buffer_length = 1; int line_length = 0; int content_length = 0; char new_window[SIZ]; int brak = 0; int alevel = 0; int scriptlevel = 0; int script_start_pos = (-1); int i; int linklen; char charset[128]; StrBuf *BodyArea = NULL; #ifdef HAVE_ICONV iconv_t ic = (iconv_t)(-1) ; char *ibuf; /* Buffer of characters to be converted */ char *obuf; /* Buffer for converted characters */ size_t ibuflen; /* Length of input buffer */ size_t obuflen; /* Length of output buffer */ char *osav; /* Saved pointer to output buffer */ #endif if (Target == NULL) Target = WC->WBuf; safestrncpy(charset, supplied_charset, sizeof charset); msg = strdup(""); sprintf(new_window, ""); StrBufAppendPrintf(Target, _("realloc() error! couldn't get %d bytes: %s"), buffer_length + 1, strerror(errno)); StrBufAppendPrintf(Target, "


    \n"); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { /** flush */ } free(msg); return; } msg = ptr; strcpy(&msg[content_length], buf); content_length += line_length; strcpy(&msg[content_length], "\n"); content_length += 1; } else { content_length = StrLength(Source); free(msg); msg = (char*) ChrPtr(Source);/* TODO: remove cast */ buffer_length = content_length; } /** Do a first pass to isolate the message body */ ptr = msg + 1; msgstart = msg; msgend = &msg[content_length]; while (ptr < msgend) { /** Advance to next tag */ ptr = strchr(ptr, '<'); if ((ptr == NULL) || (ptr >= msgend)) break; ++ptr; if ((ptr == NULL) || (ptr >= msgend)) break; /* * Look for META tags. Some messages (particularly in * Asian locales) illegally declare a message's character * set in the HTML instead of in the MIME headers. This * is wrong but we have to work around it anyway. */ if (!strncasecmp(ptr, "META", 4)) { char *meta_start; char *meta_end; int meta_length; char *meta; char *meta_http_equiv; char *meta_content; char *spaceptr; meta_start = &ptr[4]; meta_end = strchr(ptr, '>'); if ((meta_end != NULL) && (meta_end <= msgend)) { meta_length = meta_end - meta_start + 1; meta = malloc(meta_length + 1); safestrncpy(meta, meta_start, meta_length); meta[meta_length] = 0; striplt(meta); if (!strncasecmp(meta, "HTTP-EQUIV=", 11)) { meta_http_equiv = strdup(&meta[11]); spaceptr = strchr(meta_http_equiv, ' '); if (spaceptr != NULL) { *spaceptr = 0; meta_content = strdup(++spaceptr); if (!strncasecmp(meta_content, "content=", 8)) { strcpy(meta_content, &meta_content[8]); stripquotes(meta_http_equiv); stripquotes(meta_content); extract_charset_from_meta(charset, meta_http_equiv, meta_content); } free(meta_content); } free(meta_http_equiv); } free(meta); } } /* * Any of these tags cause everything up to and including * the tag to be removed. */ if ( (!strncasecmp(ptr, "HTML", 4)) ||(!strncasecmp(ptr, "HEAD", 4)) ||(!strncasecmp(ptr, "/HEAD", 5)) ||(!strncasecmp(ptr, "BODY", 4)) ) { char *pBody = NULL; if (!strncasecmp(ptr, "BODY", 4)) { pBody = ptr; } ptr = strchr(ptr, '>'); if ((ptr == NULL) || (ptr >= msgend)) break; if ((pBody != NULL) && (ptr - pBody > 4)) { char* src; char *cid_start, *cid_end; *ptr = '\0'; pBody += 4; while ((isspace(*pBody)) && (pBody < ptr)) pBody ++; BodyArea = NewStrBufPlain(NULL, ptr - pBody); if (pBody < ptr) { src = strstr(pBody, "cid:"); if (src) { cid_start = src + 4; cid_end = cid_start; while ((*cid_end != '"') && !isspace(*cid_end) && (cid_end < ptr)) cid_end ++; /* copy tag and attributes up to src="cid: */ StrBufAppendBufPlain(BodyArea, pBody, src - pBody, 0); /* add in /webcit/mimepart//CID/ trailing / stops dumb URL filters getting excited */ StrBufAppendPrintf(BodyArea, "/webcit/mimepart/%d/",msgnum); StrBufAppendBufPlain(BodyArea, cid_start, cid_end - cid_start, 0); if (ptr - cid_end > 0) StrBufAppendBufPlain(BodyArea, cid_end + 1, ptr - cid_end, 0); } else StrBufAppendBufPlain(BodyArea, pBody, ptr - pBody, 0); } *ptr = '>'; } ++ptr; if ((ptr == NULL) || (ptr >= msgend)) break; msgstart = ptr; } /* * Any of these tags cause everything including and following * the tag to be removed. */ if ( (!strncasecmp(ptr, "/HTML", 5)) ||(!strncasecmp(ptr, "/BODY", 5)) ) { --ptr; msgend = ptr; strcpy(ptr, ""); } ++ptr; } if (msgstart > msg) { strcpy(msg, msgstart); } /* Now go through the message, parsing tags as necessary. */ converted_msg = NewStrBufPlain(NULL, content_length + 8192); /** Convert foreign character sets to UTF-8 if necessary. */ #ifdef HAVE_ICONV if ( (strcasecmp(charset, "us-ascii")) && (strcasecmp(charset, "UTF-8")) && (strcasecmp(charset, "")) ) { syslog(LOG_DEBUG, "Converting %s to UTF-8\n", charset); ctdl_iconv_open("UTF-8", charset, &ic); if (ic == (iconv_t)(-1) ) { syslog(LOG_WARNING, "%s:%d iconv_open() failed: %s\n", __FILE__, __LINE__, strerror(errno)); } } if (Source == NULL) { if (ic != (iconv_t)(-1) ) { ibuf = msg; ibuflen = content_length; obuflen = content_length + (content_length / 2) ; obuf = (char *) malloc(obuflen); osav = obuf; iconv(ic, &ibuf, &ibuflen, &obuf, &obuflen); content_length = content_length + (content_length / 2) - obuflen; osav[content_length] = 0; free(msg); msg = osav; iconv_close(ic); } } else { if (ic != (iconv_t)(-1) ) { StrBuf *Buf = NewStrBufPlain(NULL, StrLength(Source) + 8096);; StrBufConvert(Source, Buf, &ic); FreeStrBuf(&Buf); iconv_close(ic); msg = (char*)ChrPtr(Source); /* TODO: get rid of this. */ } } #endif /* * At this point, the message has been stripped down to * only the content inside the tags, and has * been converted to UTF-8 if it was originally in a foreign * character set. The text is also guaranteed to be null * terminated now. */ if (converted_msg == NULL) { StrBufAppendPrintf(Target, "Error %d: %s
    %s:%d", errno, strerror(errno), __FILE__, __LINE__); goto BAIL; } if (BodyArea != NULL) { StrBufAppendBufPlain(converted_msg, HKEY("
    "), 0); } ptr = msg; msgend = strchr(msg, 0); while (ptr < msgend) { /** Try to sanitize the html of any rogue scripts */ if (!strncasecmp(ptr, "'))) ) { /* open external links to new window */ StrBufAppendPrintf(converted_msg, new_window); ptr = &ptr[8]; } else if ( (treat_as_wiki) && (strncasecmp(ptr, "CurRoom.name, NULL); StrBufAppendPrintf(converted_msg, "?page="); ptr = &ptr[9]; } else { StrBufAppendPrintf(converted_msg, "'); char* src; /* FIXME - handle this situation (maybe someone opened an ') ||(ptr[i]=='[') ||(ptr[i]==']') ||(ptr[i]=='"') ||(ptr[i]=='\'') ) linklen = i; /* did s.b. send us an entity? */ if (ptr[i] == '&') { if ((ptr[i+2] ==';') || (ptr[i+3] ==';') || (ptr[i+5] ==';') || (ptr[i+6] ==';') || (ptr[i+7] ==';')) linklen = i; } if (linklen > 0) break; } if (linklen > 0) { char *ltreviewptr; char *nbspreviewptr; char linkedchar; int len; len = linklen; linkedchar = ptr[len]; ptr[len] = '\0'; /* spot for some subject strings tinymce tends to give us. */ ltreviewptr = strchr(ptr, '<'); if (ltreviewptr != NULL) { *ltreviewptr = '\0'; linklen = ltreviewptr - ptr; } nbspreviewptr = strstr(ptr, " "); if (nbspreviewptr != NULL) { /* nbspreviewptr = '\0'; */ linklen = nbspreviewptr - ptr; } if (ltreviewptr != 0) *ltreviewptr = '<'; ptr[len] = linkedchar; content_length += (32 + linklen); StrBufAppendPrintf(converted_msg, "%s\"", new_window); StrBufAppendBufPlain(converted_msg, ptr, linklen, 0); StrBufAppendPrintf(converted_msg, "\">"); StrBufAppendBufPlain(converted_msg, ptr, linklen, 0); ptr += linklen; StrBufAppendPrintf(converted_msg, ""); } } else { StrBufAppendBufPlain(converted_msg, ptr, 1, 0); ptr++; } if ((ptr >= msg) && (ptr <= msgend)) { /* * We need to know when we're inside a tag, * so we don't turn things that look like URL's into * links, when they're already links - or image sources. */ if ((ptr > msg) && (*(ptr-1) == '<')) { ++brak; } if ((ptr > msg) && (*(ptr-1) == '>')) { --brak; if ((scriptlevel == 0) && (script_start_pos >= 0)) { StrBufCutRight(converted_msg, StrLength(converted_msg) - script_start_pos); script_start_pos = (-1); } } if (!strncasecmp(ptr, "", 3)) --alevel; } } if (BodyArea != NULL) { StrBufAppendBufPlain(converted_msg, HKEY("
    "), 0); FreeStrBuf(&BodyArea); } /** uncomment these two lines to override conversion */ /** memcpy(converted_msg, msg, content_length); */ /** output_length = content_length; */ /** Output our big pile of markup */ StrBufAppendBuf(Target, converted_msg, 0); BAIL: /** A little trailing vertical whitespace... */ StrBufAppendPrintf(Target, "

    \n"); /** Now give back the memory */ FreeStrBuf(&converted_msg); if ((msg != NULL) && (Source == NULL)) free(msg); } /* * Look for URL's embedded in a buffer and make them linkable. We use a * target window in order to keep the Citadel session in its own window. */ void UrlizeText(StrBuf* Target, StrBuf *Source, StrBuf *WrkBuf) { int len, UrlLen, Offset, TrailerLen; const char *start, *end, *pos; FlushStrBuf(Target); start = NULL; len = StrLength(Source); end = ChrPtr(Source) + len; for (pos = ChrPtr(Source); (pos < end) && (start == NULL); ++pos) { if (!strncasecmp(pos, "http://", 7)) start = pos; else if (!strncasecmp(pos, "ftp://", 6)) start = pos; } if (start == NULL) { StrBufAppendBuf(Target, Source, 0); return; } FlushStrBuf(WrkBuf); for (pos = ChrPtr(Source) + len; pos > start; --pos) { if ( (!isprint(*pos)) || (isspace(*pos)) || (*pos == '{') || (*pos == '}') || (*pos == '|') || (*pos == '\\') || (*pos == '^') || (*pos == '[') || (*pos == ']') || (*pos == '`') || (*pos == '<') || (*pos == '>') || (*pos == '(') || (*pos == ')') ) { end = pos; } } UrlLen = end - start; StrBufAppendBufPlain(WrkBuf, start, UrlLen, 0); Offset = start - ChrPtr(Source); if (Offset != 0) StrBufAppendBufPlain(Target, ChrPtr(Source), Offset, 0); StrBufAppendPrintf(Target, "%ca href=%c%s%c TARGET=%c%s%c%c%s%c/A%c", LB, QU, ChrPtr(WrkBuf), QU, QU, TARGET, QU, RB, ChrPtr(WrkBuf), LB, RB); TrailerLen = StrLength(Source) - (end - ChrPtr(Source)); if (TrailerLen > 0) StrBufAppendBufPlain(Target, end, TrailerLen, 0); } void url(char *buf, size_t bufsize) { int len, UrlLen, Offset, TrailerLen, outpos; char *start, *end, *pos; char urlbuf[SIZ]; char outbuf[SIZ]; start = NULL; len = strlen(buf); if (len > bufsize) { syslog(LOG_WARNING, "URL: content longer than buffer!"); return; } end = buf + len; for (pos = buf; (pos < end) && (start == NULL); ++pos) { if (!strncasecmp(pos, "http://", 7)) start = pos; if (!strncasecmp(pos, "ftp://", 6)) start = pos; } if (start == NULL) return; for (pos = buf+len; pos > start; --pos) { if ( (!isprint(*pos)) || (isspace(*pos)) || (*pos == '{') || (*pos == '}') || (*pos == '|') || (*pos == '\\') || (*pos == '^') || (*pos == '[') || (*pos == ']') || (*pos == '`') || (*pos == '<') || (*pos == '>') || (*pos == '(') || (*pos == ')') ) { end = pos; } } UrlLen = end - start; if (UrlLen > sizeof(urlbuf)){ syslog(LOG_WARNING, "URL: content longer than buffer!"); return; } memcpy(urlbuf, start, UrlLen); urlbuf[UrlLen] = '\0'; Offset = start - buf; if ((Offset != 0) && (Offset < sizeof(outbuf))) memcpy(outbuf, buf, Offset); outpos = snprintf(&outbuf[Offset], sizeof(outbuf) - Offset, "%ca href=%c%s%c TARGET=%c%s%c%c%s%c/A%c", LB, QU, urlbuf, QU, QU, TARGET, QU, RB, urlbuf, LB, RB); if (outpos >= sizeof(outbuf) - Offset) { syslog(LOG_WARNING, "URL: content longer than buffer!"); return; } TrailerLen = len - (end - start); if (TrailerLen > 0) memcpy(outbuf + Offset + outpos, end, TrailerLen); if (Offset + outpos + TrailerLen > bufsize) { syslog(LOG_WARNING, "URL: content longer than buffer!"); return; } memcpy (buf, outbuf, Offset + outpos + TrailerLen); *(buf + Offset + outpos + TrailerLen) = '\0'; } webcit-dfsg.orig/tabs.c0000644000175000017500000001145513223341037015102 0ustar michaelmichael#include #define SHOW_ME_VAPPEND_PRINTF #include "webcit.h" /* * print tabbed dialog */ void tabbed_dialog(int num_tabs, const char *tabnames[]) { int i; StrBufAppendPrintf(WC->trailing_javascript, "var previously_selected_tab = '0'; \n" "function tabsel(which_tab) { \n" " if (which_tab == previously_selected_tab) { \n" " return; \n" " } \n" " $('tabdiv'+previously_selected_tab).style.display = 'none'; \n" " $('tabdiv'+which_tab).style.display = 'block'; \n" " $('tabtd'+previously_selected_tab).className = 'tab_cell_edit'; \n" " $('tabtd'+which_tab).className = 'tab_cell_label'; \n" " previously_selected_tab = which_tab; \n" "} \n" ); wc_printf("" "" ); for (i=0; i", i, ( (i==0) ? "tab_cell_label" : "tab_cell_edit" ), i ); wc_printf("%s", tabnames[i]); wc_printf(""); wc_printf("\n"); } wc_printf("
      
    \n"); } /* * print the tab-header * * tabnum: number of the tab to print * num_tabs: total number oftabs to be printed * */ void begin_tab(int tabnum, int num_tabs) { if (tabnum == num_tabs) { wc_printf("\n"); wc_printf("
    "); } else { wc_printf("\n", tabnum, num_tabs); wc_printf("
    ", tabnum, ( (tabnum == 0) ? "block" : "none" ) ); } } /* * print the tab-footer * tabnum: number of the tab to print * num_tabs: total number of tabs to be printed * */ void end_tab(int tabnum, int num_tabs) { if (tabnum == num_tabs) { wc_printf("
    \n"); wc_printf("\n"); } else { wc_printf("
    \n"); wc_printf("\n", tabnum, num_tabs); } } /* * print tabbed dialog */ void StrTabbedDialog(StrBuf *Target, int num_tabs, StrBuf *tabnames[]) { int i; StrBufAppendBufPlain( Target, HKEY( " \n" ), 0); StrBufAppendBufPlain( Target, HKEY( "" "" ), 0); for (i=0; i", i, ( (i==0) ? "tab_cell_label" : "tab_cell_edit" ), i ); StrEscAppend(Target, tabnames[i], NULL, 0, 0); StrBufAppendBufPlain( Target, HKEY( "" "\n"), 0); } StrBufAppendBufPlain( Target, HKEY("
      
    \n"), 0); } /* * print the tab-header * * tabnum: number of the tab to print * num_tabs: total number oftabs to be printed * */ void StrBeginTab(StrBuf *Target, int tabnum, int num_tabs, StrBuf **Names) { if (tabnum == num_tabs) { StrBufAppendBufPlain( Target, HKEY("\n
    "), 0); } else { StrBufAppendBufPlain( Target, HKEY("\n
    ", tabnum, ( (tabnum == 0) ? "block" : "none" ) ); } } /* * print the tab-footer * tabnum: number of the tab to print * num_tabs: total number of tabs to be printed * */ void StrEndTab(StrBuf *Target, int tabnum, int num_tabs) { if (tabnum == num_tabs) { StrBufAppendBufPlain( Target, HKEY( "
    \n" "\n"), 0); } else { StrBufAppendPrintf( Target, "
    \n", "\n", tabnum, num_tabs ); } if (havebstr("last_tabsel")) { StrBufAppendPrintf(Target, "", BSTR("last_tabsel")); } } webcit-dfsg.orig/iconbar.c0000644000175000017500000001712113223341037015562 0ustar michaelmichael/* * Displays and customizes the iconbar. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /* Values for ib_displayas ... don't change these or you will break the templates */ #define IB_PICTEXT 0 /* picture and text */ #define IB_PICONLY 1 /* just a picture */ #define IB_TEXTONLY 2 /* just text */ void DontDeleteThis(void *Data){} #define IconbarIsEnabled(a, b) IconbarIsENABLED(a, sizeof(a) - 1, b) HashList *IB_Seeting_Order = NULL; typedef struct _dflt_IB_Setting { int DefVal; /* default value for non-set users */ long n; /* counter for internal purposes */ const char *Key; /* Stringvalue */ long len; /* Length... */ }dflt_IB_Setting; long nIBV = 0; dflt_IB_Setting IconbarDefaults[] = { {0, 0, HKEY("unused")}, {0, 1, HKEY("ib_displayas")}, {0, 2, HKEY("ib_logo")}, {1, 3, HKEY("ib_summary")}, {1, 4, HKEY("ib_inbox")}, {1, 5, HKEY("ib_calendar")}, {1, 6, HKEY("ib_contacts")}, {1, 7, HKEY("ib_notes")}, {1, 8, HKEY("ib_tasks")}, {1, 9, HKEY("ib_rooms")}, {1, 10, HKEY("ib_users")}, {1, 11, HKEY("ib_chat")}, {1, 12, HKEY("ib_advanced")}, {1, 13, HKEY("ib_logoff")}, {1, 14, HKEY("ib_citadel")}, {0, 15, HKEY("")} }; HashList *IBDfl = NULL; long IconbarIsENABLED(long val, const char *key, size_t keylen) { void *vIBDfl = NULL; wcsession *WCC = WC; if ((WCC != NULL) && (WCC->IBSettingsVec != NULL) && (val < nIBV)) { return WCC->IBSettingsVec[val]; } if (GetHash(IBDfl, key, keylen, &vIBDfl)) { dflt_IB_Setting *Set = (dflt_IB_Setting*)vIBDfl; return Set->DefVal; } else return 1; } #ifdef DBG_ICONBAR_HASH static char nbuf[32]; inline const char *PrintInt(void *Prefstr) { snprintf(nbuf, sizeof(nbuf), "%ld", (long)Prefstr); return nbuf; } #endif /* hprintf("Cache-Control: private\r\n"); */ int ConditionalIsActiveStylesheet(StrBuf *Target, WCTemplputParams *TP) { long testFor; long lookAt; long ib_displayas; lookAt = GetTemplateTokenNumber(Target, TP, 3, IB_PICTEXT); testFor = GetTemplateTokenNumber(Target, TP, 2, IB_PICTEXT); ib_displayas = IconbarIsENABLED(lookAt, TKEY(3)); /* printf ("%ld == %ld ? %s : %s\n", testFor, ib_displayas, IconbarDefaults[lookAt ].Key, ChrPtr(TP->Tokens->FlatToken)); */ return (testFor == ib_displayas); } void LoadIconSettings(StrBuf *iconbar, long lvalue) { void *vIBDfl; dflt_IB_Setting *Set; const char *pCh = NULL; wcsession *WCC = WC; StrBuf *buf; StrBuf *key; long val; buf = NewStrBuf(); key = NewStrBuf(); if (WCC->IBSettingsVec == NULL) { WCC->IBSettingsVec = (long*) malloc (nIBV * sizeof(long)); } /* * The initialized values of these variables also happen to * specify the default values for users who haven't customized * their iconbars. These should probably be set in a master * configuration somewhere. */ while (StrBufExtract_NextToken(buf, iconbar, &pCh, ',') >= 0) { StrBufExtract_token(key, buf, 0, '='); val = StrBufExtract_long(buf, 1, '='); if (!GetHash(IBDfl, SKEY(key), &vIBDfl)) continue; Set = (dflt_IB_Setting*)vIBDfl; WCC->IBSettingsVec[Set->n] = val; /* printf("%ld %s %s -> %ld \n", Set->n, Set->Key, IconbarDefaults[Set->n].Key, val);*/ } #ifdef DBG_ICONBAR_HASH dbg_PrintHash(WCC->IconBarSetttings, PrintInt, NULL); #endif FreeStrBuf(&key); FreeStrBuf(&buf); } /* * save changes to iconbar settings */ void commit_iconbar(void) { const StrBuf *MimeType; StrBuf *iconbar; StrBuf *buf; int i; if (!havebstr("ok_button")) { display_main_menu(); return; } iconbar = NewStrBuf(); buf = NewStrBuf(); StrBufPrintf(iconbar, "ib_displayas=%d", ibstr("ib_displayas")); for (i=0; i<(sizeof(IconbarDefaults)/sizeof(dflt_IB_Setting )); ++i) { char *Val; if (!strcasecmp(Bstr(IconbarDefaults[i].Key, IconbarDefaults[i].len), "yes")) { Val = "1"; } else if (!strcasecmp(Bstr(IconbarDefaults[i].Key, IconbarDefaults[i].len), "yeslist")) { Val = "2"; } else { Val = "0"; } StrBufPrintf(buf, ",%s=%s", IconbarDefaults[i].Key, Val); StrBufAppendBuf(iconbar, buf, 0); } FreeStrBuf(&buf); set_preference("iconbar", iconbar, 1); begin_burst(); MimeType = DoTemplate(HKEY("iconbar_save"), NULL, &NoCtx); http_transmit_thing(ChrPtr(MimeType), 0); #ifdef DBG_ICONBAR_HASH dbg_PrintHash(WC->IconBarSetttings, PrintInt, NULL); #endif } /* * Display the icon bar as long as we have an active session, * and either the user is logged in or the server allows guest mode. */ void tmplput_iconbar(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; if ( (WCC != NULL) && ((WCC->logged_in) || ((WCC->serv_info != NULL) && (WCC->serv_info->serv_supports_guest)) ) ) { DoTemplate(HKEY("iconbar"), NULL, &NoCtx); } } void ServerShutdownModule_ICONBAR (void) { DeleteHash(&IBDfl); } void ServerStartModule_ICONBAR (void) { int i = 1; IBDfl = NewHash(1, NULL); while (IconbarDefaults[i].len != 0) { Put(IBDfl, IconbarDefaults[i].Key, IconbarDefaults[i].len, &IconbarDefaults[i], reference_free_handler); i++; } } int ConditionalWholistExpanded(StrBuf *Target, WCTemplputParams *TP) { int r = 0; if (WC) r = WC->ib_wholist_expanded; syslog(LOG_DEBUG, "ConditionalWholistExpanded() returns %d", r); return(r); } int ConditionalRoomlistExpanded(StrBuf *Target, WCTemplputParams *TP) { if (WC) return(WC->ib_roomlist_expanded); return(0); } /* * Toggle the roomlist expanded state in session memory */ void toggle_roomlist_expanded_state(void) { wcsession *WCC = WC; if (!WCC) { wc_printf("no session"); return; } WCC->ib_roomlist_expanded = IBSTR("wstate"); wc_printf("%d", WCC->ib_roomlist_expanded); syslog(LOG_DEBUG, "ib_roomlist_expanded set to %d", WCC->ib_roomlist_expanded); } /* * Toggle the wholist expanded state in session memory */ void toggle_wholist_expanded_state(void) { wcsession *WCC = WC; if (!WCC) { wc_printf("no session"); return; } WCC->ib_wholist_expanded = IBSTR("wstate"); wc_printf("%d", WCC->ib_wholist_expanded); syslog(LOG_DEBUG, "ib_wholist_expanded set to %d", WCC->ib_wholist_expanded); } void InitModule_ICONBAR (void) { long l; /*WebcitAddUrlHandler(HKEY("user_iconbar"), "", 0, doUserIconStylesheet, 0); */ WebcitAddUrlHandler(HKEY("commit_iconbar"), "", 0, commit_iconbar, 0); WebcitAddUrlHandler(HKEY("toggle_wholist_expanded_state"), "", 0, toggle_wholist_expanded_state, AJAX); WebcitAddUrlHandler(HKEY("toggle_roomlist_expanded_state"), "", 0, toggle_roomlist_expanded_state, AJAX); RegisterConditional("COND:ICONBAR:ACTIVE", 3, ConditionalIsActiveStylesheet, CTX_NONE); RegisterNamespace("ICONBAR", 0, 0, tmplput_iconbar, NULL, CTX_NONE); RegisterConditional("COND:ICONBAR:WHOLISTEXPANDED", 0, ConditionalWholistExpanded, CTX_NONE); RegisterConditional("COND:ICONBAR:ROOMLISTEXPANDED", 0, ConditionalRoomlistExpanded, CTX_NONE); RegisterPreference("iconbar", _("Iconbar Setting"), PRF_STRING, LoadIconSettings); l = 1; while (IconbarDefaults[l].len != 0) { RegisterTokenParamDefine(IconbarDefaults[l].Key, IconbarDefaults[l].len, l); l ++; } nIBV = l; } void SessionDestroyModule_ICONBAR (wcsession *sess) { if (sess->IBSettingsVec != NULL) free(sess->IBSettingsVec); } webcit-dfsg.orig/ical_dezonify.c0000644000175000017500000001432013223341037016762 0ustar michaelmichael/* * Function to go through an ical component set and convert all non-UTC * date/time properties to UTC. It also strips out any VTIMEZONE * subcomponents afterwards, because they're irrelevant. * * Everything here will work on both a fully encapsulated VCALENDAR component * or any type of subcomponent. */ #include "webcit.h" #include "webserver.h" /* * Figure out which time zone needs to be used for timestamps that are * not UTC and do not have a time zone specified. * */ icaltimezone *get_default_icaltimezone(void) { icaltimezone *zone = NULL; const char *default_zone_name = ChrPtr(WC->serv_info->serv_default_cal_zone); if (!zone) { zone = icaltimezone_get_builtin_timezone(default_zone_name); } if (!zone) { syslog(LOG_WARNING, "Unable to load '%s' time zone. Defaulting to UTC.\n", default_zone_name); zone = icaltimezone_get_utc_timezone(); } if (!zone) { syslog(LOG_ERR, "Unable to load UTC time zone!\n"); } return zone; } /* * Back end function for ical_dezonify() * * We supply this with the master component, the relevant component, * and the property (which will be a DTSTART, DTEND, etc.) * which we want to convert to UTC. */ void ical_dezonify_backend(icalcomponent *cal, icalcomponent *rcal, icalproperty *prop) { icaltimezone *t = NULL; icalparameter *param; const char *tzid = NULL; struct icaltimetype TheTime; int utc_declared_as_tzid = 0; /* Component declared 'TZID=GMT' instead of using Z syntax */ /* Give me nothing and I will give you nothing in return. */ if (cal == NULL) return; /* Hunt for a TZID parameter in this property. */ param = icalproperty_get_first_parameter(prop, ICAL_TZID_PARAMETER); /* Get the stringish name of this TZID. */ if (param != NULL) { tzid = icalparameter_get_tzid(param); /* Convert it to an icaltimezone type. */ if (tzid != NULL) { #ifdef DBG_ICAL syslog(LOG_DEBUG, " * Stringy supplied timezone is: '%s'\n", tzid); #endif if ( (!strcasecmp(tzid, "UTC")) || (!strcasecmp(tzid, "GMT")) ) { utc_declared_as_tzid = 1; #ifdef DBG_ICAL syslog(LOG_DEBUG, " * ...and we handle that internally.\n"); #endif } else { /* try attached first */ t = icalcomponent_get_timezone(cal, tzid); #ifdef DBG_ICAL syslog(LOG_DEBUG, " * ...and I %s have tzdata for that zone.\n", (t ? "DO" : "DO NOT") ); #endif /* then try built-in timezones */ if (!t) { t = icaltimezone_get_builtin_timezone(tzid); #ifdef DBG_ICAL if (t) { syslog(LOG_DEBUG, " * Using system tzdata!\n"); } #endif } } } } /* Now we know the timezone. Convert to UTC. */ if (icalproperty_isa(prop) == ICAL_DTSTART_PROPERTY) { TheTime = icalproperty_get_dtstart(prop); } else if (icalproperty_isa(prop) == ICAL_DTEND_PROPERTY) { TheTime = icalproperty_get_dtend(prop); } else if (icalproperty_isa(prop) == ICAL_DUE_PROPERTY) { TheTime = icalproperty_get_due(prop); } else if (icalproperty_isa(prop) == ICAL_EXDATE_PROPERTY) { TheTime = icalproperty_get_exdate(prop); } else { return; } #ifdef DBG_ICAL syslog(LOG_DEBUG, " * Was: %s\n", icaltime_as_ical_string(TheTime)); #endif if (TheTime.is_utc) { #ifdef DBG_ICAL syslog(LOG_DEBUG, " * This property is ALREADY UTC.\n"); #endif } else if (utc_declared_as_tzid) { #ifdef DBG_ICAL syslog(LOG_DEBUG, " * Replacing '%s' TZID with 'Z' suffix.\n", tzid); #endif TheTime.is_utc = 1; } else { /* Do the conversion. */ if (t != NULL) { #ifdef DBG_ICAL syslog(LOG_DEBUG, " * Timezone prop found. Converting to UTC.\n"); #endif } else { #ifdef DBG_ICAL syslog(LOG_DEBUG, " * Converting default timezone to UTC.\n"); #endif } if (t == NULL) { t = get_default_icaltimezone(); } icaltimezone_convert_time(&TheTime, t, icaltimezone_get_utc_timezone()); TheTime.is_utc = 1; } icalproperty_remove_parameter_by_kind(prop, ICAL_TZID_PARAMETER); #ifdef DBG_ICAL syslog(LOG_DEBUG, " * Now: %s\n", icaltime_as_ical_string(TheTime)); #endif /* Now add the converted property back in. */ if (icalproperty_isa(prop) == ICAL_DTSTART_PROPERTY) { icalproperty_set_dtstart(prop, TheTime); } else if (icalproperty_isa(prop) == ICAL_DTEND_PROPERTY) { icalproperty_set_dtend(prop, TheTime); } else if (icalproperty_isa(prop) == ICAL_DUE_PROPERTY) { icalproperty_set_due(prop, TheTime); } else if (icalproperty_isa(prop) == ICAL_EXDATE_PROPERTY) { icalproperty_set_exdate(prop, TheTime); } } /* * Recursive portion of ical_dezonify() */ void ical_dezonify_recurse(icalcomponent *cal, icalcomponent *rcal) { icalcomponent *c; icalproperty *p; /* * Recurse through all subcomponents *except* VTIMEZONE ones. */ for (c=icalcomponent_get_first_component( rcal, ICAL_ANY_COMPONENT); c != NULL; c = icalcomponent_get_next_component( rcal, ICAL_ANY_COMPONENT) ) { if (icalcomponent_isa(c) != ICAL_VTIMEZONE_COMPONENT) { ical_dezonify_recurse(cal, c); } } /* * Now look for DTSTART and DTEND properties */ for (p=icalcomponent_get_first_property(rcal, ICAL_ANY_PROPERTY); p != NULL; p = icalcomponent_get_next_property(rcal, ICAL_ANY_PROPERTY) ) { if ( (icalproperty_isa(p) == ICAL_DTSTART_PROPERTY) || (icalproperty_isa(p) == ICAL_DTEND_PROPERTY) || (icalproperty_isa(p) == ICAL_DUE_PROPERTY) || (icalproperty_isa(p) == ICAL_EXDATE_PROPERTY) ) { ical_dezonify_backend(cal, rcal, p); } } } /* * Convert all DTSTART and DTEND properties in all subcomponents to UTC. * This function will search any VTIMEZONE subcomponents to learn the * relevant timezone information. */ void ical_dezonify(icalcomponent *cal) { icalcomponent *vt = NULL; #ifdef DBG_ICAL syslog(LOG_DEBUG, "ical_dezonify() started\n"); #endif /* Convert all times to UTC */ ical_dezonify_recurse(cal, cal); /* Strip out VTIMEZONE subcomponents -- we don't need them anymore */ while (vt = icalcomponent_get_first_component( cal, ICAL_VTIMEZONE_COMPONENT), vt != NULL) { icalcomponent_remove_component(cal, vt); icalcomponent_free(vt); } #ifdef DBG_ICAL syslog(LOG_DEBUG, "ical_dezonify() completed\n"); #endif } webcit-dfsg.orig/gettext.c0000644000175000017500000002651213223341037015635 0ustar michaelmichael/* * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #define SEARCH_LANG 20 /* how many langs should we parse? */ #ifdef ENABLE_NLS /* actual supported locales */ const char *AvailLang[] = { "en_US", "ar_AE", "bg_BG", "cs_CZ", "en_US", "da_DK", "de_DE", "el_GR", "en_GB", "es_ES", "et_EE", "fi_FI", "fr_FR", "hu_HU", "it_IT", "ko_KO", "nl_NL", "pl_PL", "pt_BR", "ru_RU", "zh_CN", "he_IL", "kk_KK", "ro_RO", "sl_SL", "tr_TR", "" }; const char **AvailLangLoaded; long nLocalesLoaded = 0; #ifdef HAVE_USELOCALE locale_t *wc_locales; /* here we keep the parsed stuff */ #endif /* Keep information about one locale */ typedef struct _lang_pref { char lang[16]; /* the language locale string */ char region[16]; /* the region locale string */ long priority; /* which priority does it have */ int availability; /* do we know it? */ int selectedlang; /* is this the selected language? */ } LangStruct; /* parse browser locale header * * seems as most browsers just do a one after comma value even if more than 10 locales are available. Sample strings: * opera: * Accept-Language: sq;q=1.0,de;q=0.9,as;q=0.8,ar;q=0.7,bn;q=0.6,zh-cn;q=0.5,kn;q=0.4,ch;q=0.3,fo;q=0.2,gn;q=0.1,ce;q=0.1,ie;q=0.1 * Firefox * Accept-Language: 'de-de,en-us;q=0.7,en;q=0.3' * Accept-Language: de,en-ph;q=0.8,en-us;q=0.5,de-at;q=0.3 * Accept-Language: de,en-us;q=0.9,it;q=0.9,de-de;q=0.8,en-ph;q=0.7,de-at;q=0.7,zh-cn;q=0.6,cy;q=0.5,ar-om;q=0.5,en-tt;q=0.4,xh;q=0.3,nl-be;q=0.3,cs;q=0.2,sv;q=0.1,tk;q=0.1 */ void httplang_to_locale(StrBuf *LocaleString, wcsession *sess) { LangStruct wanted_locales[SEARCH_LANG]; LangStruct *ls; long len; int i = 0; int j = 0; /* size_t len = strlen(LocaleString); */ long prio; int av; int nBest; int nParts; StrBuf *Buf = NULL; StrBuf *SBuf = NULL; nParts = StrBufNum_tokens(LocaleString, ','); for (i=0; ((ipriority = StrTol(SBuf); } else { ls->priority = 1000; } /* get the locale part */ StrBufExtract_token(SBuf, Buf, 0, ';'); /* get the lang part, which should be allways there */ extract_token(ls->lang, ChrPtr(SBuf), 0, '-', sizeof(ls->lang)); /* get the area code if any. */ if (StrBufNum_tokens(SBuf, '-') > 1) { extract_token(ls->region, ChrPtr(SBuf), 1, '-', sizeof(ls->region) ); } else { /* no ara code? use lang code */ blen = strlen(ls->lang); memcpy(ls->region, ls->lang, blen); ls->region[blen] = '\0'; } /* area codes are uppercase */ blen = strlen(&ls->region[0]); for (j = 0; j < blen; j++) { int chars; chars = toupper(ls->region[j]); ls->region[j] = (char)chars; /* todo ? */ } snprintf(lbuf, sizeof(lbuf), "%s_%s", ls->lang, ls->region); /* check if we have this lang */ ls->availability = 1; ls->selectedlang = -1; len = strlen(ls->lang); for (j = 0; j < nLocalesLoaded; j++) { int result; /* match against the LANG part */ result = strncasecmp(ls->lang, AvailLangLoaded[j], len); if ((result == 0) && (result < ls->availability)){ ls->availability = result; ls->selectedlang = j; } /* match against lang and locale */ if (0 == strcasecmp(lbuf, AvailLangLoaded[j])){ ls->availability = 0; ls->selectedlang = j; j = nLocalesLoaded; } } } prio = 0; av = -1000; nBest = -1; for (i = 0; ((i < nParts) && (iavailability <= 0) && (av < ls->availability) && (prio < ls->priority) && (ls->selectedlang != -1) ) { nBest = ls->selectedlang; av = ls->availability; prio = ls->priority; } } if (nBest == -1) { /* fall back to C */ nBest=0; } sess->selected_language = nBest; syslog(LOG_DEBUG, "language found: %s", AvailLangLoaded[sess->selected_language]); FreeStrBuf(&Buf); FreeStrBuf(&SBuf); } /* * show the language chooser on the login dialog * depending on the browser locale change the sequence of the * language chooser. */ void tmplput_offer_languages(StrBuf *Target, WCTemplputParams *TP) { int i; #ifndef HAVE_USELOCALE char *Lang = getenv("LANG"); if (Lang == NULL) Lang = "C"; #endif if (nLocalesLoaded == 1) { wc_printf("

    %s

    ", AvailLangLoaded[0]); return; } wc_printf("\n"); } /* * Set the selected language for this session. */ void set_selected_language(const char *lang) { #ifdef HAVE_USELOCALE int i; for (i = 0; iselected_language = i; break; } } #endif } /* * Activate the selected language for this session. */ void go_selected_language(void) { #ifdef HAVE_USELOCALE wcsession *WCC = WC; if (WCC->selected_language < 0) { httplang_to_locale(WCC->Hdr->HR.browser_language, WCC); if (WCC->selected_language < 0) return; } uselocale(wc_locales[WCC->selected_language]); /* switch locales */ textdomain(textdomain(NULL)); /* clear the cache */ #else char *language; language = getenv("LANG"); setlocale(LC_MESSAGES, language); #endif } /* * Deactivate the selected language for this session. */ void stop_selected_language(void) { #ifdef HAVE_USELOCALE uselocale(LC_GLOBAL_LOCALE); /* switch locales */ textdomain(textdomain(NULL)); /* clear the cache */ #endif } #ifdef HAVE_USELOCALE locale_t Empty_Locale; #endif /* * Create a locale_t for each available language */ void initialize_locales(void) { int nLocales; int i; char buf[32]; char *language = NULL; nLocales = 0; while (!IsEmptyStr(AvailLang[nLocales])) nLocales++; language = getenv("WEBCIT_LANG"); if ((language) && (!IsEmptyStr(language)) && (strcmp(language, "UNLIMITED") != 0)) { syslog(LOG_INFO, "Nailing locale to %s", language); } else language = NULL; AvailLangLoaded = malloc (sizeof(char*) * nLocales); memset(AvailLangLoaded, 0, sizeof(char*) * nLocales); #ifdef HAVE_USELOCALE wc_locales = malloc (sizeof(locale_t) * nLocales); memset(wc_locales,0, sizeof(locale_t) * nLocales); /* create default locale */ Empty_Locale = newlocale(LC_ALL_MASK, NULL, NULL); #endif for (i = 0; i < nLocales; ++i) { if ((language != NULL) && (strcmp(AvailLang[i], language) != 0)) continue; if (i == 0) { sprintf(buf, "C"); /* locale 0 (C) is ascii, not utf-8 */ } else { sprintf(buf, "%s.UTF8", AvailLang[i]); } #ifdef HAVE_USELOCALE wc_locales[nLocalesLoaded] = newlocale( (LC_MESSAGES_MASK|LC_TIME_MASK), buf, (((i > 0) && (wc_locales[0] != NULL)) ? wc_locales[0] : Empty_Locale) ); if (wc_locales[nLocalesLoaded] == NULL) { syslog(LOG_NOTICE, "locale for %s disabled: %s", buf, strerror(errno)); } else { syslog(LOG_INFO, "Found locale: %s - %s", buf, AvailLang[i]); AvailLangLoaded[nLocalesLoaded] = AvailLang[i]; nLocalesLoaded++; } #else if ((language != NULL) && (strcmp(language, AvailLang[i]) == 0)) { setenv("LANG", buf, 1); AvailLangLoaded[nLocalesLoaded] = AvailLang[i]; setlocale(LC_MESSAGES, AvailLang[i]); nLocalesLoaded++; } else if (nLocalesLoaded == 0) { setenv("LANG", buf, 1); AvailLangLoaded[nLocalesLoaded] = AvailLang[i]; nLocalesLoaded++; } #endif } if ((language != NULL) && (nLocalesLoaded == 0)) { syslog(LOG_WARNING, "Your selected locale [%s] isn't available on your system. falling back to C", language); #ifdef HAVE_USELOCALE wc_locales[0] = newlocale( (LC_MESSAGES_MASK|LC_TIME_MASK), AvailLang[0], Empty_Locale ); #else setlocale(LC_MESSAGES, AvailLang[0]); setenv("LANG", AvailLang[0], 1); #endif AvailLangLoaded[0] = AvailLang[0]; nLocalesLoaded = 1; } #ifdef ENABLE_NLS setlocale(LC_ALL, ""); syslog(LOG_DEBUG, "Text domain: %s", textdomain("webcit")); syslog(LOG_DEBUG, "Text domain Charset: %s", bind_textdomain_codeset("webcit", "UTF8")); syslog(LOG_DEBUG, "Message catalog directory: %s", bindtextdomain(textdomain(NULL), LOCALEDIR"/locale")); #endif } void ServerShutdownModule_GETTEXT (void) { #ifdef HAVE_USELOCALE int i; for (i = 0; i < nLocalesLoaded; ++i) { if (Empty_Locale != wc_locales[i]) { freelocale(wc_locales[i]); } } free(wc_locales); #endif free(AvailLangLoaded); } #else /* ENABLE_NLS */ const char *AvailLang[] = { "C", "" }; /* dummy for non NLS enabled systems */ void ServerShutdownModule_GETTEXT (void) { } void tmplput_offer_languages(StrBuf *Target, WCTemplputParams *TP) { wc_printf("English (US)"); } /* dummy for non NLS enabled systems */ void set_selected_language(const char *lang) { } /* dummy for non NLS enabled systems */ void go_selected_language(void) { } /* dummy for non NLS enabled systems */ void stop_selected_language(void) { } void initialize_locales(void) { } #endif /* ENABLE_NLS */ void TmplGettext(StrBuf *Target, WCTemplputParams *TP) { const char *Text = _(TP->Tokens->Params[0]->Start); StrBufAppendTemplateStr(Target, TP, Text, 1); } /* * Returns the language currently in use. * This function returns a static string, so don't do anything stupid please. */ const char *get_selected_language(void) { #ifdef ENABLE_NLS #ifdef HAVE_USELOCALE return AvailLangLoaded[WC->selected_language]; #else return "en"; #endif #else return "en"; #endif } void Header_HandleAcceptLanguage(StrBuf *Line, ParsedHttpHdrs *hdr) { hdr->HR.browser_language = Line; } void InitModule_GETTEXT (void) { initialize_locales(); RegisterHeaderHandler(HKEY("ACCEPT-LANGUAGE"), Header_HandleAcceptLanguage); RegisterNamespace("LANG:SELECT", 0, 0, tmplput_offer_languages, NULL, CTX_NONE); } void SessionNewModule_GETTEXT (wcsession *sess) { #ifdef ENABLE_NLS if ( (sess != NULL) && (!sess->Hdr->HR.Static) && (sess->Hdr->HR.browser_language != NULL) ) { httplang_to_locale(sess->Hdr->HR.browser_language, sess); } #endif } void SessionAttachModule_GETTEXT (wcsession *sess) { #ifdef ENABLE_NLS go_selected_language(); /* set locale */ #endif } void SessionDestroyModule_GETTEXT (wcsession *sess) { #ifdef ENABLE_NLS stop_selected_language(); /* unset locale */ #endif } webcit-dfsg.orig/buildpackages0000755000175000017500000000441313223341037016525 0ustar michaelmichael#!/bin/bash if test -x Makefile; then make clean fi ./bootstrap export `grep PACKAGE_VERSION= configure |sed -e "s;';;g" -e "s;PACKAGE;WEBCIT;"` PACKAGE_VERSION=`cat packageversion` DATE=`date '+%a, %d %b %Y %H:%I:00 %z'` ACTUAL_DIR=`pwd` rm -rf debian/citadel-webcit debian/tmp/ if echo "$ACTUAL_DIR" |grep -q "$WEBCIT_VERSION"; then echo "directory ($ACTUAL_DIR) naming scheme seems right. nothing done." else done=false if test -L "$ACTUAL_DIR"; then SYMLINK_=`pwd` SYMLINK=`ls -l $SYMLINK_|sed "s;.*-> ;;"` if ls -l $SYMLINK_|grep -q "$WEBCIT_VERSION"; then done=true fi else SYMLINK=`pwd|sed "s;.*/;;"` fi if test "$done" = "false"; then cd .. ln -sf webcit "webcit-$WEBCIT_VERSION" cd "webcit-$WEBCIT_VERSION" else cd "../webcit-$WEBCIT_VERSION" fi fi case $1 in debian) if grep -q "($WEBCIT_VERSION" debian/changelog; then echo rebuilding package. else echo "Upstream Version higher than local." fi if test "$2" == "src"; then cd .. rm -rf tmp mkdir tmp cp -rL webcit-$WEBCIT_VERSION tmp cd tmp/webcit-$WEBCIT_VERSION rm -rf `find -name .svn ` svn*tmp* build-stamp configure-stamp *~ config.guess config.log config.status autom4te.cache Makefile find -type f -exec chmod a-x {} \; chmod a+x configure debian/rules po/create-pot.sh mk_module_init.sh cd .. tar -chzf webcit_${WEBCIT_VERSION}.orig.tar.gz webcit-${WEBCIT_VERSION}/ --exclude "debian/*" pwd cd webcit-${WEBCIT_VERSION}; debuild -S -sa -kw.goesgens@outgesourced.org else fakeroot dpkg-buildpackage fi ;; sourcedist) if test "$2" == "dfsg"; then NONDFSG=-"-exclude static/webcit_icons/openid-small.gif" fi cd ..; tar \ --exclude ".gitignore" \ --exclude "*.lo" \ --exclude "*.o" \ --exclude "*.d" \ --exclude "autom4te.cache/*" \ --exclude "debian/*" \ --exclude "sysdep.h" \ \ $NONDFSG \ \ -cvhzf webcit-${WEBCIT_VERSION}.tar.gz webcit-${WEBCIT_VERSION}/ ;; i18n) ./webcit -G `pwd`/i18n_templatelist.c cd po/webcit; ./create-pot.sh ;; version) echo This would build webcit-${WEBCIT_VERSION} ;; *) echo "Not yet implemented. we have: debian, sourcedist, i18n (needs ready compiled & installed webcit in your system)" ;; esac webcit-dfsg.orig/preferences.h0000644000175000017500000000544113223341037016455 0ustar michaelmichael/* * Copyright (c) 1996-2013 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ typedef enum _ePrefType{ PRF_UNSET = 0, PRF_STRING = 1, PRF_INT = 2, PRF_QP_STRING = 3, PRF_YESNO = 4 } ePrefType; typedef void (*PrefEvalFunc)(StrBuf *Preference, long lvalue); void _RegisterPreference(const char *Setting, long SettingLen, const char *PrefStr, ePrefType Type, PrefEvalFunc OnLoad, const char *OnLoadName); #define RegisterPreference(a, b, c, d) _RegisterPreference(a, sizeof(a) -1, b, c, d, #d) void load_preferences(void); void save_preferences(void); #define get_preference(a, b) get_PREFERENCE(a, sizeof(a) - 1, b) #define get_pref(a, b) get_PREFERENCE(SKEY(a), b) int get_PREFERENCE(const char *key, size_t keylen, StrBuf **value); #define set_preference(a, b, c) set_PREFERENCE(a, sizeof(a) - 1, b, c) #define set_pref(a, b, c) set_PREFERENCE(SKEY(a), b, c) void set_PREFERENCE(const char *key, size_t keylen, StrBuf *value, int save_to_server); #define get_pref_long(a, b, c) get_PREF_LONG(a, sizeof(a) - 1, b, c) int get_PREF_LONG(const char *key, size_t keylen, long *value, long Default); #define set_pref_long(a, b, c) set_PREF_LONG(a, sizeof(a) - 1, b, c) void set_PREF_LONG(const char *key, size_t keylen, long value, int save_to_server); #define get_pref_yesno(a, b, c) get_PREF_YESNO(a, sizeof(a) - 1, b, c) int get_PREF_YESNO(const char *key, size_t keylen, int *value, int Default); #define set_pref_yesno(a, b, c) set_PREF_YESNO(a, sizeof(a) - 1, b, c) void set_PREF_YESNO(const char *key, size_t keylen, long value, int save_to_server); #define get_room_pref(a) get_ROOM_PREFS(a, sizeof(a) - 1) StrBuf *get_ROOM_PREFS(const char *key, size_t keylen); #define set_room_pref(a, b, c) set_ROOM_PREFS(a, sizeof(a) - 1, b, c) void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_server); #define get_room_pref_long(a, b, c) get_ROOM_PREFS_LONG(a, sizeof(a) - 1, b, c) long get_ROOM_PREFS_LONG(const char *key, size_t keylen, long *value, long Default); #define get_x_pref(a, b) get_ROOM_PREFS(a, sizeof(a) - 1, b, sizeof(b) - 1) const StrBuf *get_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen); #define set_x_pref(a, b, c) set_ROOM_PREFS(a, sizeof(a) - 1, b, sizeof(b) - 1, c, d) void set_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen, StrBuf *value, int save_to_server); int goto_config_room(StrBuf *Buf, folder *room); webcit-dfsg.orig/listsub.c0000644000175000017500000000753513223341037015642 0ustar michaelmichael/* * Web forms for handling mailing list subscribe/unsubscribe requests. * * Copyright (c) 1996-2012 by the citadel.org team * * This program is open source software. You can redistribute it and/or * modify it under the terms of the GNU General Public License, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" /* * List subscription handling */ int Conditional_LISTSUB_EXECUTE_SUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) { int rc; StrBuf *Line; const char *ImpMsg; const StrBuf *Room, *Email, *SubType; if (strcmp(bstr("cmd"), "subscribe")) { return 0; } Room = sbstr("room"); if (Room == NULL) { ImpMsg = _("You need to specify the mailinglist to subscribe to."); AppendImportantMessage(ImpMsg, -1); return 0; } Email = sbstr("email"); if (Email == NULL) { ImpMsg = _("You need to specify the email address you'd like to subscribe with."); AppendImportantMessage(ImpMsg, -1); return 0; } SubType = sbstr("subtype"); Line = NewStrBuf(); serv_printf("SUBS subscribe|%s|%s|%s|%s/listsub", ChrPtr(Room), ChrPtr(Email), ChrPtr(SubType), ChrPtr(site_prefix) ); StrBuf_ServGetln(Line); rc = GetServerStatusMsg(Line, NULL, 1, 2); FreeStrBuf(&Line); if (rc == 2) putbstr("__FAIL", NewStrBufPlain(HKEY("1"))); return rc == 2; } int Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) { int rc; StrBuf *Line; const char *ImpMsg; const StrBuf *Room, *Email; if (strcmp(bstr("cmd"), "unsubscribe")) { return 0; } Room = sbstr("room"); if (Room == NULL) { ImpMsg = _("You need to specify the mailinglist to subscribe to."); AppendImportantMessage(ImpMsg, -1); return 0; } Email = sbstr("email"); if (Email == NULL) { ImpMsg = _("You need to specify the email address you'd like to subscribe with."); AppendImportantMessage(ImpMsg, -1); return 0; } serv_printf("SUBS unsubscribe|%s|%s|%s/listsub", ChrPtr(Room), ChrPtr(Email), ChrPtr(site_prefix) ); Line = NewStrBuf(); StrBuf_ServGetln(Line); rc = GetServerStatusMsg(Line, NULL, 1, 2); FreeStrBuf(&Line); if (rc == 2) putbstr("__FAIL", NewStrBufPlain(HKEY("1"))); return rc == 2; } int Conditional_LISTSUB_EXECUTE_CONFIRM_SUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) { int rc; StrBuf *Line; const char *ImpMsg; const StrBuf *Room, *Token; if (strcmp(bstr("cmd"), "confirm")) { return 0; } Room = sbstr("room"); if (Room == NULL) { ImpMsg = _("You need to specify the mailinglist to subscribe to."); AppendImportantMessage(ImpMsg, -1); return 0; } Token = sbstr("token"); if (Room == NULL) { ImpMsg = _("You need to specify the mailinglist to subscribe to."); AppendImportantMessage(ImpMsg, -1); return 0; } Line = NewStrBuf(); serv_printf("SUBS confirm|%s|%s", ChrPtr(Room), ChrPtr(Token) ); StrBuf_ServGetln(Line); rc = GetServerStatusMsg(Line, NULL, 1, 2); FreeStrBuf(&Line); if (rc == 2) putbstr("__FAIL", NewStrBufPlain(HKEY("1"))); return rc == 2; } void do_listsub(void) { if (!havebstr("cmd")) { putbstr("cmd", NewStrBufPlain(HKEY("choose"))); } output_headers(1, 0, 0, 0, 1, 0); do_template("listsub_display"); end_burst(); } void InitModule_LISTSUB (void) { RegisterConditional("COND:LISTSUB:EXECUTE:SUBSCRIBE", 0, Conditional_LISTSUB_EXECUTE_SUBSCRIBE, CTX_NONE); RegisterConditional("COND:LISTSUB:EXECUTE:UNSUBSCRIBE", 0, Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE, CTX_NONE); RegisterConditional("COND:LISTSUB:EXECUTE:CONFIRM:SUBSCRIBE", 0, Conditional_LISTSUB_EXECUTE_CONFIRM_SUBSCRIBE, CTX_NONE); WebcitAddUrlHandler(HKEY("listsub"), "", 0, do_listsub, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE); } webcit-dfsg.orig/dav_report.c0000644000175000017500000000520613223341037016313 0ustar michaelmichael/* * Handles GroupDAV REPORT requests. * * Copyright (c) 2005-2012 by the citadel.org team * * This program is open source software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* SAMPLE QUERIES TO WORK WITH * REPORT /groupdav/calendar/ HTTP/1.1 Content-type: application/xml Content-length: 349 REPORT /groupdav/calendar/ HTTP/1.1 Content-type: application/xml Content-length: 255 */ #include "webcit.h" #include "webserver.h" #include "dav.h" /* * The pathname is always going to be /groupdav/room_name/msg_num */ void dav_report(void) { char datestring[256]; time_t now = time(NULL); http_datestring(datestring, sizeof datestring, now); const char *req = ChrPtr(WC->upload); syslog(LOG_DEBUG, "REPORT: \033[31m%s\033[0m", req); hprintf("HTTP/1.1 500 Internal Server Error\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("Content-Type: text/plain\r\n"); wc_printf("An internal error has occurred at %s:%d.\r\n", __FILE__ , __LINE__ ); end_burst(); return; } extern int ParseMessageListHeaders_EUID(StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer, void **ViewSpecific); extern int DavUIDL_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen); extern int DavUIDL_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper); extern int DavUIDL_Cleanup(void **ViewSpecific); void InitModule_REPORT (void) { RegisterReadLoopHandlerset( eReadEUIDS, DavUIDL_GetParamsGetServerCall, NULL, NULL, ParseMessageListHeaders_EUID, NULL, DavUIDL_RenderView_or_Tail, DavUIDL_Cleanup, NULL ); } webcit-dfsg.orig/dav_propfind.c0000644000175000017500000005166513223341037016633 0ustar michaelmichael/* * Handles GroupDAV and CalDAV PROPFIND requests. * * A few notes about our XML output: * * --> Yes, we are spewing tags directly instead of using an XML library. * Whining about it will be summarily ignored. * * --> XML is deliberately output with no whitespace/newlines between tags. * This makes it difficult to read, but we have discovered clients which * crash when you try to pretty it up. * * References: * http://www.ietf.org/rfc/rfc4791.txt * http://blogs.nologin.es/rickyepoderi/index.php?/archives/14-Introducing-CalDAV-Part-I.html * https://msdn.microsoft.com/en-us/library/aa142960(v=exchg.65).aspx * * Copyright (c) 2005-2017 by the citadel.org team * * This program is open source software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "webcit.h" #include "webserver.h" #include "dav.h" /* * Given an encoded UID, translate that to an unencoded Citadel EUID and * then search for it in the current room. Return a message number or -1 * if not found. * */ long locate_message_by_uid(const char *uid) { char buf[256]; char decoded_uid[1024]; long retval = (-1L); /* decode the UID */ euid_unescapize(decoded_uid, uid); /* ask Citadel if we have this one */ serv_printf("EUID %s", decoded_uid); serv_getln(buf, sizeof buf); if (buf[0] == '2') { retval = atol(&buf[4]); } return(retval); } /* * IgnoreFloor: set to 0 or 1 _nothing else_ * Subfolders: direct child floors will be put here. */ const folder *GetRESTFolder(int IgnoreFloor, HashList *Subfolders) { wcsession *WCC = WC; void *vFolder; const folder *ThisFolder = NULL; const folder *FoundFolder = NULL; const folder *BestGuess = NULL; int nBestGuess = 0; HashPos *itd, *itfl; StrBuf * Dir; void *vDir; long len; const char *Key; int iRoom, jURL, urlp; int delta; /* * Guess room: if the full URL matches a room, list thats it. We also need to remember direct sub rooms. * if the URL is longer, we need to find the "best guess" so we can find the room we're in, and the rest * of the URL will be uids and so on. */ itfl = GetNewHashPos(WCC->Floors, 0); urlp = GetCount(WCC->Directory); while (GetNextHashPos(WCC->Floors, itfl, &len, &Key, &vFolder) && (ThisFolder == NULL)) { ThisFolder = vFolder; if (!IgnoreFloor && /* so we can handle legacy URLS... */ (ThisFolder->Floor != WCC->CurrentFloor)) continue; if (ThisFolder->nRoomNameParts > 1) { /*TODO: is that number all right? */ // if (urlp - ThisFolder->nRoomNameParts != 2) { // if (BestGuess != NULL) // continue; //ThisFolder->name // itd = GetNewHashPos(WCC->Directory, 0); // GetNextHashPos(WCC->Directory, itd, &len, &Key, &vDir); //TODO: how many to fast forward? // } itd = GetNewHashPos(WCC->Directory, 0); GetNextHashPos(WCC->Directory, itd, &len, &Key, &vDir); //TODO: how many to fast forward? for (iRoom = 0, /* Fast forward the floorname as we checked it above: */ jURL = IgnoreFloor; (iRoom <= ThisFolder->nRoomNameParts) && (jURL <= urlp); iRoom++, jURL++, GetNextHashPos(WCC->Directory, itd, &len, &Key, &vDir)) { Dir = (StrBuf*)vDir; if (strcmp(ChrPtr(ThisFolder->RoomNameParts[iRoom]), ChrPtr(Dir)) != 0) { DeleteHashPos(&itd); continue; } } DeleteHashPos(&itd); /* Gotcha? */ if ((iRoom == ThisFolder->nRoomNameParts) && (jURL == urlp)) { FoundFolder = ThisFolder; } /* URL got more parts then this room, so we remember it for the best guess*/ else if ((jURL <= urlp) && (ThisFolder->nRoomNameParts <= nBestGuess)) { BestGuess = ThisFolder; nBestGuess = jURL - 1; } /* Room has more parts than the URL, it might be a sub-room? */ else if (iRoom nRoomNameParts) {//// TODO: ThisFolder->nRoomNameParts == urlp - IgnoreFloor??? Put(Subfolders, SKEY(ThisFolder->name), /* Cast away const, its a reference. */ (void*)ThisFolder, reference_free_handler); } } else { delta = GetCount(WCC->Directory) - ThisFolder->nRoomNameParts; if ((delta != 2) && (nBestGuess > 1)) continue; itd = GetNewHashPos(WCC->Directory, 0); if (!GetNextHashPos(WCC->Directory, itd, &len, &Key, &vDir) || (vDir == NULL)) { DeleteHashPos(&itd); syslog(LOG_DEBUG, "5\n"); continue; } DeleteHashPos(&itd); Dir = (StrBuf*) vDir; if (strcmp(ChrPtr(ThisFolder->name), ChrPtr(Dir)) != 0) { DeleteHashPos(&itd); syslog(LOG_DEBUG, "5\n"); continue; } DeleteHashPos(&itfl); DeleteHashPos(&itd); if (delta != 2) { nBestGuess = 1; BestGuess = ThisFolder; } else FoundFolder = ThisFolder; } } /* TODO: Subfolders: remove patterns not matching the best guess or thisfolder */ DeleteHashPos(&itfl); if (FoundFolder != NULL) return FoundFolder; else return BestGuess; } long GotoRestRoom(HashList *SubRooms) { int IgnoreFloor = 0; /* deprecated... */ wcsession *WCC = WC; long Count; long State; const folder *ThisFolder; State = REST_TOPLEVEL; if (WCC->Hdr->HR.Handler != NULL) State |= REST_IN_NAMESPACE; Count = GetCount(WCC->Directory); if (Count == 0) return State; if (Count >= 1) State |=REST_IN_FLOOR; if (Count == 1) return State; /* * More than 3 params and no floor found? * -> fall back to old non-floored notation */ if ((Count >= 3) && (WCC->CurrentFloor == NULL)) IgnoreFloor = 1; if (Count >= 3) { IgnoreFloor = 0; State |= REST_IN_FLOOR; ThisFolder = GetRESTFolder(IgnoreFloor, SubRooms); if (ThisFolder != NULL) { if (WCC->ThisRoom != NULL) if (CompareRooms(WCC->ThisRoom, ThisFolder) != 0) gotoroom(ThisFolder->name); State |= REST_IN_ROOM; } if (GetCount(SubRooms) > 0) State |= REST_HAVE_SUB_ROOMS; } if ((WCC->ThisRoom != NULL) && (Count + IgnoreFloor > 3)) { if (WCC->Hdr->HR.Handler->RID(ExistsID, IgnoreFloor)) { State |= REST_GOT_LOCAL_PART; } else { /// WHOOPS, not there??? State |= REST_NONEXIST; } } return State; } /* * List rooms (or "collections" in DAV terminology) which contain * interesting groupware objects. */ void dav_collection_list(void) { wcsession *WCC = WC; char buf[256]; char roomname[256]; int view; char datestring[256]; time_t now; time_t mtime; int is_groupware_collection = 0; int starting_point = 1; /**< 0 for /, 1 for /groupdav/ */ if (WCC->Hdr->HR.Handler == NULL) { starting_point = 0; } else if (StrLength(WCC->Hdr->HR.ReqLine) == 0) { starting_point = 1; } else { starting_point = 2; } now = time(NULL); http_datestring(datestring, sizeof datestring, now); /* * Be rude. Completely ignore the XML request and simply send them * everything we know about. Let the client sort it out. */ hprintf("HTTP/1.0 207 Multi-Status\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("Content-type: text/xml\r\n"); if (DisableGzip || (!WCC->Hdr->HR.gzip_ok)) hprintf("Content-encoding: identity\r\n"); begin_burst(); wc_printf("" "" ); /* * If the client is requesting the root, show a root node. */ if (starting_point == 0) { wc_printf(""); wc_printf(""); dav_identify_host(); wc_printf("/"); wc_printf(""); wc_printf(""); wc_printf("HTTP/1.1 200 OK"); wc_printf(""); wc_printf("/"); wc_printf(""); wc_printf(""); escputs(datestring); wc_printf(""); wc_printf(""); wc_printf(""); wc_printf(""); } /* * If the client is requesting "/groupdav", show a /groupdav subdirectory. */ if ((starting_point + WCC->Hdr->HR.dav_depth) >= 1) { wc_printf(""); wc_printf(""); dav_identify_host(); wc_printf("/groupdav"); wc_printf(""); wc_printf(""); wc_printf("HTTP/1.1 200 OK"); wc_printf(""); wc_printf("GroupDAV"); wc_printf(""); wc_printf(""); escputs(datestring); wc_printf(""); wc_printf(""); wc_printf(""); wc_printf(""); } /* * Now go through the list and make it look like a DAV collection */ serv_puts("LKRA"); serv_getln(buf, sizeof buf); if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { extract_token(roomname, buf, 0, '|', sizeof roomname); view = extract_int(buf, 7); mtime = extract_long(buf, 8); http_datestring(datestring, sizeof datestring, mtime); /* * For now, only list rooms that we know a GroupDAV client * might be interested in. In the future we may add * the rest. * * We determine the type of objects which are stored in each * room by looking at the *default* view for the room. This * allows, for example, a Calendar room to appear as a * GroupDAV calendar even if the user has switched it to a * Calendar List view. */ if ( (view == VIEW_CALENDAR) || (view == VIEW_TASKS) || (view == VIEW_ADDRESSBOOK) || (view == VIEW_NOTES) || (view == VIEW_JOURNAL) || (view == VIEW_WIKI) || (view == VIEW_WIKIMD) ) { is_groupware_collection = 1; } else { is_groupware_collection = 0; } if ( (is_groupware_collection) && ((starting_point + WCC->Hdr->HR.dav_depth) >= 2) ) { wc_printf(""); wc_printf(""); dav_identify_host(); wc_printf("/groupdav/"); urlescputs(roomname); wc_printf("/"); wc_printf(""); wc_printf("HTTP/1.1 200 OK"); wc_printf(""); wc_printf(""); escputs(roomname); wc_printf(""); wc_printf(""); switch(view) { case VIEW_CALENDAR: wc_printf(""); break; case VIEW_TASKS: wc_printf(""); break; case VIEW_ADDRESSBOOK: wc_printf(""); break; case VIEW_NOTES: wc_printf(""); break; case VIEW_JOURNAL: wc_printf(""); break; case VIEW_WIKI: case VIEW_WIKIMD: wc_printf(""); break; } wc_printf(""); wc_printf(""); escputs(datestring); wc_printf(""); wc_printf(""); wc_printf(""); wc_printf(""); } } wc_printf("\n"); end_burst(); } void propfind_xml_start(void *data, const char *supplied_el, const char **attr) { // syslog(LOG_DEBUG, "<%s>", supplied_el); } void propfind_xml_end(void *data, const char *supplied_el) { // syslog(LOG_DEBUG, "", supplied_el); } /* * The pathname is always going to be /groupdav/room_name/msg_num */ void dav_propfind(void) { wcsession *WCC = WC; StrBuf *dav_roomname; StrBuf *dav_uid; StrBuf *MsgNum; long BufLen; long dav_msgnum = (-1); char uid[256]; char encoded_uid[256]; long *msgs = NULL; int num_msgs = 0; int i; char datestring[256]; time_t now; now = time(NULL); http_datestring(datestring, sizeof datestring, now); int parse_success = 0; XML_Parser xp = XML_ParserCreateNS(NULL, '|'); if (xp) { // XML_SetUserData(xp, XXX); XML_SetElementHandler(xp, propfind_xml_start, propfind_xml_end); // XML_SetCharacterDataHandler(xp, xrds_xml_chardata); const char *req = ChrPtr(WCC->upload); if (req) { req = strchr(req, '<'); /* hunt for the first tag */ } if (!req) { req = "ERROR"; /* force it to barf */ } i = XML_Parse(xp, req, strlen(req), 1); if (!i) { syslog(LOG_DEBUG, "XML_Parse() failed: %s", XML_ErrorString(XML_GetErrorCode(xp))); XML_ParserFree(xp); parse_success = 0; } else { parse_success = 1; } } if (!parse_success) { hprintf("HTTP/1.1 500 Internal Server Error\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("Content-Type: text/plain\r\n"); wc_printf("An internal error has occurred at %s:%d.\r\n", __FILE__ , __LINE__ ); end_burst(); return; } dav_roomname = NewStrBuf(); dav_uid = NewStrBuf(); StrBufExtract_token(dav_roomname, WCC->Hdr->HR.ReqLine, 0, '/'); StrBufExtract_token(dav_uid, WCC->Hdr->HR.ReqLine, 1, '/'); syslog(LOG_DEBUG, "PROPFIND requested for '%s' at depth %d", ChrPtr(dav_roomname), WCC->Hdr->HR.dav_depth ); /* * If the room name is blank, the client is requesting a folder list. */ if (StrLength(dav_roomname) == 0) { dav_collection_list(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* Go to the correct room. */ if (strcasecmp(ChrPtr(WCC->CurRoom.name), ChrPtr(dav_roomname))) { gotoroom(dav_roomname); } if (strcasecmp(ChrPtr(WCC->CurRoom.name), ChrPtr(dav_roomname))) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("Content-Type: text/plain\r\n"); wc_printf("There is no folder called \"%s\" on this server.\r\n", ChrPtr(dav_roomname)); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* If dav_uid is non-empty, client is requesting a PROPFIND on * a specific item in the room. This is not valid GroupDAV, but * it is valid WebDAV (and probably CalDAV too). */ if (StrLength(dav_uid) != 0) { dav_msgnum = locate_message_by_uid(ChrPtr(dav_uid)); if (dav_msgnum < 0) { hprintf("HTTP/1.1 404 not found\r\n"); dav_common_headers(); hprintf("Content-Type: text/plain\r\n"); wc_printf("Object \"%s\" was not found in the \"%s\" folder.\r\n", ChrPtr(dav_uid), ChrPtr(dav_roomname) ); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } /* Be rude. Completely ignore the XML request and simply send them * everything we know about (which is going to simply be the ETag and * nothing else). Let the client-side parser sort it out. */ hprintf("HTTP/1.0 207 Multi-Status\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("Content-type: text/xml\r\n"); if (DisableGzip || (!WCC->Hdr->HR.gzip_ok)) hprintf("Content-encoding: identity\r\n"); begin_burst(); wc_printf("" "" ); wc_printf(""); wc_printf(""); dav_identify_host(); wc_printf("/groupdav/"); urlescputs(ChrPtr(WCC->CurRoom.name)); euid_escapize(encoded_uid, ChrPtr(dav_uid)); wc_printf("/%s", encoded_uid); wc_printf(""); wc_printf(""); wc_printf("HTTP/1.1 200 OK"); wc_printf(""); wc_printf("\"%ld\"", dav_msgnum); wc_printf(""); escputs(datestring); wc_printf(""); wc_printf(""); wc_printf(""); wc_printf("\n"); wc_printf("\n"); end_burst(); FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); return; } FreeStrBuf(&dav_roomname); FreeStrBuf(&dav_uid); /* * If we get to this point the client is performing a PROPFIND on the room itself. * * We call it a room; DAV calls it a "collection." We have to give it some properties * of the room itself and then offer a list of all items contained therein. * * Be rude. Completely ignore the XML request and simply send them * everything we know about (which is going to simply be the ETag and * nothing else). Let the client-side parser sort it out. */ //syslog(LOG_DEBUG, "BE RUDE AND IGNORE: \033[31m%s\033[0m", ChrPtr(WC->upload) ); hprintf("HTTP/1.0 207 Multi-Status\r\n"); dav_common_headers(); hprintf("Date: %s\r\n", datestring); hprintf("Content-type: text/xml\r\n"); if (DisableGzip || (!WCC->Hdr->HR.gzip_ok)) { hprintf("Content-encoding: identity\r\n"); } begin_burst(); wc_printf("" "" ); /* Transmit the collection resource */ wc_printf(""); wc_printf(""); dav_identify_host(); wc_printf("/groupdav/"); urlescputs(ChrPtr(WCC->CurRoom.name)); wc_printf(""); wc_printf(""); wc_printf("HTTP/1.1 200 OK"); wc_printf(""); wc_printf(""); escputs(ChrPtr(WCC->CurRoom.name)); wc_printf(""); wc_printf(""); /* empty owner ought to be legal; see rfc3744 section 5.1 */ wc_printf(""); switch(WCC->CurRoom.defview) { case VIEW_CALENDAR: wc_printf(""); wc_printf(""); break; case VIEW_TASKS: wc_printf(""); break; case VIEW_ADDRESSBOOK: wc_printf(""); break; } wc_printf(""); /* FIXME get the mtime wc_printf(""); escputs(datestring); wc_printf(""); */ wc_printf(""); wc_printf(""); wc_printf(""); /* If a depth greater than zero was specified, transmit the collection listing */ if (WCC->Hdr->HR.dav_depth > 0) { MsgNum = NewStrBuf(); serv_puts("MSGS ALL"); StrBuf_ServGetln(MsgNum); if (GetServerStatus(MsgNum, NULL) == 1) while (BufLen = StrBuf_ServGetln(MsgNum), ((BufLen >= 0) && ((BufLen != 3) || strcmp(ChrPtr(MsgNum), "000")) )) { msgs = realloc(msgs, ++num_msgs * sizeof(long)); msgs[num_msgs-1] = StrTol(MsgNum); } if (num_msgs > 0) for (i=0; i= 0) && ((BufLen != 3) || strcmp(ChrPtr(MsgNum), "000")) )) { if (!strncasecmp(ChrPtr(MsgNum), "exti=", 5)) { strcpy(uid, &ChrPtr(MsgNum)[5]); } else if (!strncasecmp(ChrPtr(MsgNum), "time=", 5)) { now = atol(&ChrPtr(MsgNum)[5]); } } if (!IsEmptyStr(uid)) { wc_printf(""); wc_printf(""); dav_identify_host(); wc_printf("/groupdav/"); urlescputs(ChrPtr(WCC->CurRoom.name)); euid_escapize(encoded_uid, uid); wc_printf("/%s", encoded_uid); wc_printf(""); wc_printf(""); wc_printf("HTTP/1.1 200 OK"); wc_printf(""); wc_printf("\"%ld\"", msgs[i]); switch(WCC->CurRoom.defview) { case VIEW_CALENDAR: wc_printf("text/x-ical"); break; case VIEW_TASKS: wc_printf("text/x-ical"); break; case VIEW_ADDRESSBOOK: wc_printf("text/x-vcard"); break; } if (now > 0L) { http_datestring(datestring, sizeof datestring, now); wc_printf(""); escputs(datestring); wc_printf(""); } wc_printf(""); wc_printf(""); wc_printf(""); } } FreeStrBuf(&MsgNum); } wc_printf("\n"); end_burst(); if (msgs != NULL) { free(msgs); } } int ParseMessageListHeaders_EUID(StrBuf *Line, const char **pos, message_summary *Msg, StrBuf *ConversionBuffer, void **ViewSpecific) { Msg->euid = NewStrBuf(); StrBufExtract_NextToken(Msg->euid, Line, pos, '|'); Msg->date = StrBufExtractNext_long(Line, pos, '|'); return StrLength(Msg->euid) > 0; } int DavUIDL_GetParamsGetServerCall(SharedMessageStatus *Stat, void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { Stat->defaultsortorder = 0; Stat->sortit = 0; Stat->load_seen = 0; Stat->maxmsgs = 9999999; snprintf(cmd, len, "MSGS ALL|||2"); return 200; } int DavUIDL_RenderView_or_Tail(SharedMessageStatus *Stat, void **ViewSpecific, long oper) { DoTemplate(HKEY("msg_listview"),NULL,&NoCtx); return 0; } int DavUIDL_Cleanup(void **ViewSpecific) { /* Note: wDumpContent() will output one additional tag. */ /* We ought to move this out into template */ wDumpContent(1); return 0; } void InitModule_PROPFIND (void) { RegisterReadLoopHandlerset( eReadEUIDS, DavUIDL_GetParamsGetServerCall, NULL, NULL, ParseMessageListHeaders_EUID, NULL, DavUIDL_RenderView_or_Tail, DavUIDL_Cleanup, NULL); } webcit-dfsg.orig/static/0000755000175000017500000000000013223341037015266 5ustar michaelmichaelwebcit-dfsg.orig/static/edit.gif0000755000175000017500000000022113223341037016700 0ustar michaelmichaelGIF89a :I*0Z0 qq//ˈH B8$'ʥD;webcit-dfsg.orig/static/datepicker-dev.js0000644000175000017500000006755213223341037020532 0ustar michaelmichael/** * DatePicker widget using Prototype and Scriptaculous. * (c) 2007 Mathieu Jondet * Eulerian Technologies * * DatePicker is freely distributable under the same terms as Prototype. * */ /** * DatePickerFormatter class for matching and stringifying dates. * * By Arturas Slajus . */ var DatePickerFormatter = Class.create(); DatePickerFormatter.prototype = { /** * Create a DatePickerFormatter. * * format: specify a format by passing 3 value array consisting of * "yyyy", "mm", "dd". Default: ["yyyy", "mm", "dd"]. * * separator: string for splitting the values. Default: "-". * * Use it like this: * var df = new DatePickerFormatter(["dd", "mm", "yyyy"], "/"); * df.current_date(); * df.match("7/7/2007"); */ initialize: function(format, separator) { if (Object.isUndefined(format)) format = ["yyyy", "mm", "dd"]; if (Object.isUndefined(separator)) separator = "-"; this._format = format; this.separator = separator; this._format_year_index = format.indexOf("yyyy"); this._format_month_index= format.indexOf("mm"); this._format_day_index = format.indexOf("dd"); this._year_regexp = /^\d{4}$/; this._month_regexp = /^0\d|1[012]|\d$/; this._day_regexp = /^0\d|[12]\d|3[01]|\d$/; }, /** * Match a string against date format. * Returns: [year, month, day] */ match: function(str) { var d = str.split(this.separator); if (d.length < 3) return false; var year = d[this._format_year_index].match(this._year_regexp); if (year) { year = year[0] } else { return false } var month = d[this._format_month_index].match(this._month_regexp); if (month) { month = month[0] } else { return false } var day = d[this._format_day_index].match(this._day_regexp); if (day) { day = day[0] } else { return false } return [year, month, day]; }, /** * Return current date according to format. */ current_date: function() { var d = new Date; return this.date_to_string( d.getFullYear(), d.getMonth() + 1, d.getDate() ); }, /** * Return a stringified date accordint to format. */ date_to_string: function(year, month, day, separator) { if (Object.isUndefined(separator)) separator = this.separator; var a = [0, 0, 0]; a[this._format_year_index] = year; a[this._format_month_index] = month.toPaddedString(2); a[this._format_day_index] = day.toPaddedString(2); return a.join(separator); } }; /** * DatePicker */ var DatePicker = Class.create(); DatePicker.prototype = { Version : '0.9.4', _relative : null, _div : null, _zindex : 1, _keepFieldEmpty: false, _daysInMonth : [31,28,31,30,31,30,31,31,30,31,30,31], _dateFormat : [ ["dd", "mm", "yyyy"], "/" ], /* language */ _language : 'fr', _language_month : $H({ 'fr' : [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ], 'en' : [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], 'sp' : [ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' ], 'it' : [ 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre' ], 'de' : [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ], 'pt' : [ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ], 'hu' : [ 'Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December' ], 'lt' : [ 'Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegužė', 'Birželis', 'Liepa', 'Rugjūtis', 'Rusėjis', 'Spalis', 'Lapkritis', 'Gruodis' ], 'nl' : [ 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december' ], 'dk' : [ 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December' ], 'no' : [ 'Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember' ], 'lv' : [ 'Janvāris', 'Februāris', 'Marts', 'Aprīlis', 'Maijs', 'Jūnijs', 'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', 'Decemberis' ], 'ja' : [ '1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月' ], 'fi' : [ 'Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu' ], 'ro' : [ 'Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Junie', 'Julie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie' ], 'zh' : [ '1 月', '2 月', '3 月', '4 月', '5 月', '6 月', '7 月', '8 月', '9 月', '10月', '11月', '12月'], 'sv' : [ 'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December' ] }), _language_day : $H({ 'fr' : [ 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim' ], 'en' : [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ], 'sp' : [ 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sáb', 'Dom' ], 'it' : [ 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom' ], 'de' : [ 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam', 'Son' ], 'pt' : [ 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom' ], 'hu' : [ 'Hé', 'Ke', 'Sze', 'Csü', 'Pé', 'Szo', 'Vas' ], 'lt' : [ 'Pir', 'Ant', 'Tre', 'Ket', 'Pen', 'Šeš', 'Sek' ], 'nl' : [ 'ma', 'di', 'wo', 'do', 'vr', 'za', 'zo' ], 'dk' : [ 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn' ], 'no' : [ 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Sun' ], 'lv' : [ 'P', 'O', 'T', 'C', 'Pk', 'S', 'Sv' ], 'ja' : [ '月', '火', '水', '木', '金', '土', '日' ], 'fi' : [ 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La', 'Su' ], 'ro' : [ 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam', 'Dum' ], 'zh' : [ '周一', '周二', '周三', '周四', '周五', '周六', '周日' ], 'sv' : [ 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön' ] }), _language_close : $H({ 'fr' : 'fermer', 'en' : 'close', 'sp' : 'cerrar', 'it' : 'fine', 'de' : 'schliessen', 'pt' : 'fim', 'hu' : 'bezár', 'lt' : 'udaryti', 'nl' : 'sluiten', 'dk' : 'luk', 'no' : 'lukk', 'lv' : 'aizvērt', 'ja' : '閉じる', 'fi' : 'sulje', 'ro' : 'inchide', 'zh' : '关 闭', 'sv' : 'stäng' }), _language_reset : $H({ // FILL ME IN 'en' : 'reset' }), /* date manipulation */ _todayDate : new Date(), _current_date : null, _clickCallback : Prototype.emptyFunction, _cellCallback : Prototype.emptyFunction, _id_datepicker : null, _disablePastDate : false, _disableFutureDate : true, _enableYearBrowse : false, _oneDayInMs : 24 * 3600 * 1000, /* positionning */ _topOffset : 30, _leftOffset : 0, _isPositionned : false, _relativePosition : true, _setPositionTop : 0, _setPositionLeft : 0, _bodyAppend : false, _contentAppend : '', _showEvent : 'click', /* Effects Adjustment */ _showEffect : "appear", _showDuration : 1, _enableShowEffect : true, _closeEffect : "fade", _closeEffectDuration : 0.3, _enableCloseEffect : true, _closeTimer : null, _enableCloseOnBlur : false, /* afterClose : called when the close function is executed */ _afterClose : Prototype.emptyFunction, /* return the name of current month in appropriate language */ getMonthLocale : function ( month ) { return this._language_month.get(this._language)[month]; }, getLocaleClose : function () { return this._language_close.get(this._language); }, getLocaleReset : function() { return this._language_reset.get(this._language); }, _initCurrentDate : function () { /* Create the DateFormatter */ this._df = new DatePickerFormatter(this._dateFormat[0], this._dateFormat[1]); /* check if value in field is proper, if not set to today */ this._current_date = $F(this._relative); if (! this._df.match(this._current_date)) { this._current_date = this._df.current_date(); /* set the field value ? */ if (!this._keepFieldEmpty) $(this._relative).value = this._current_date; } var a_date = this._df.match(this._current_date); this._current_year = Number(a_date[0]); this._current_mon = Number(a_date[1]) - 1; this._current_day = Number(a_date[2]); }, /* init */ initialize : function ( h_p ) { /* arguments */ this._relative= h_p["relative"]; if (h_p["language"]) this._language = h_p["language"]; this._zindex = ( h_p["zindex"] ) ? parseInt(Number(h_p["zindex"])) : 1; if (!Object.isUndefined(h_p["keepFieldEmpty"])) this._keepFieldEmpty = h_p["keepFieldEmpty"]; if (Object.isFunction(h_p["clickCallback"])) this._clickCallback = h_p["clickCallback"]; if (!Object.isUndefined(h_p["leftOffset"])) this._leftOffset = parseInt(h_p["leftOffset"]); if (!Object.isUndefined(h_p["topOffset"])) this._topOffset = parseInt(h_p["topOffset"]); if (!Object.isUndefined(h_p["relativePosition"])) this._relativePosition = h_p["relativePosition"]; if (!Object.isUndefined(h_p["showEvent"])) this._showEvent = h_p["showEvent"]; if (!Object.isUndefined(h_p["showEffect"])) this._showEffect = h_p["showEffect"]; if (!Object.isUndefined(h_p["contentAppend"])) this._contentAppend = h_p["contentAppend"]; if (!Object.isUndefined(h_p["enableShowEffect"])) this._enableShowEffect = h_p["enableShowEffect"]; if (!Object.isUndefined(h_p["showDuration"])) this._showDuration = h_p["showDuration"]; if (!Object.isUndefined(h_p["closeEffect"])) this._closeEffect = h_p["closeEffect"]; if (!Object.isUndefined(h_p["enableCloseEffect"])) this._enableCloseEffect = h_p["enableCloseEffect"]; if (!Object.isUndefined(h_p["closeEffectDuration"])) this._closeEffectDuration = h_p["closeEffectDuration"]; if (Object.isFunction(h_p["afterClose"])) this._afterClose = h_p["afterClose"]; if (!Object.isUndefined(h_p["externalControl"])) this._externalControl= h_p["externalControl"]; if (!Object.isUndefined(h_p["dateFormat"])) this._dateFormat = h_p["dateFormat"]; if (Object.isFunction(h_p["cellCallback"])) this._cellCallback = h_p["cellCallback"]; this._setPositionTop = ( h_p["setPositionTop"] ) ? parseInt(Number(h_p["setPositionTop"])) : 0; this._setPositionLeft = ( h_p["setPositionLeft"] ) ? parseInt(Number(h_p["setPositionLeft"])) : 0; if (!Object.isUndefined(h_p["enableCloseOnBlur"]) && h_p["enableCloseOnBlur"]) this._enableCloseOnBlur = true; if (!Object.isUndefined(h_p["disablePastDate"]) && h_p["disablePastDate"]) this._disablePastDate = true; if (!Object.isUndefined(h_p["disableFutureDate"]) && !h_p["disableFutureDate"]) this._disableFutureDate = false; if (!Object.isUndefined(h_p["enableYearBrowse"])) this._enableYearBrowse = true; this._id_datepicker = 'datepicker-'+this._relative; this._id_datepicker_prev = this._id_datepicker+'-prev'; this._id_datepicker_next = this._id_datepicker+'-next'; this._id_datepicker_prev_year = this._id_datepicker_prev+'-year'; this._id_datepicker_next_year = this._id_datepicker_next+'-year'; this._id_datepicker_hdr = this._id_datepicker+'-header'; this._id_datepicker_ftr = this._id_datepicker+'-footer'; this._id_datepicker_rst = this._id_datepicker+'-reset'; /* build up calendar skel */ this._div = new Element('div', { id : this._id_datepicker, className : 'datepicker', style : 'display: none;' }); this._div.innerHTML = ''+((this._enableYearBrowse) ? '' : '')+''+((this._enableYearBrowse) ? '' : '')+'
     <  <<  >>  > 
    '; /* finally declare the event listener on input field */ Event.observe(this._relative, this._showEvent, this.click.bindAsEventListener(this), false); /* need to append on body when doc is loaded for IE */ document.observe('dom:loaded', this.load.bindAsEventListener(this), false); /* automatically close when blur event is triggered */ if ( this._enableCloseOnBlur ) { Event.observe(this._relative, 'blur', function (e) { this._closeTimer = this.close.bind(this).delay(2); }.bindAsEventListener(this)); Event.observe(this._div, 'click', function (e) { if (this._closeTimer) { window.clearTimeout(this._closeTimer); this._closeTimer = null; } }); } }, /** * load : called when document is fully-loaded to append datepicker * to main object. */ load : function () { /* if externalControl defined set the observer on it */ if (this._externalControl) Event.observe(this._externalControl, 'click', this.click.bindAsEventListener(this), false); /* append to page */ if (this._relativeAppend) { /* append to parent node */ if ($(this._relative).parentNode) { this._div.innerHTML = this._wrap_in_iframe(this._div.innerHTML); $(this._relative).parentNode.appendChild( this._div ); } } else { /* append to body tag or to provided contentAppend id */ var body = ( this._contentAppend ) ? $(this._contentAppend) : document.getElementsByTagName("body").item(0); if (body) { this._div.innerHTML = this._wrap_in_iframe(this._div.innerHTML); body.appendChild(this._div); } if ( this._relativePosition ) { var a_pos = Element.cumulativeOffset($(this._relative)); this.setPosition(a_pos[1], a_pos[0]); } else { if (this._setPositionTop || this._setPositionLeft) this.setPosition(this._setPositionTop, this._setPositionLeft); } } /* init the date in field if needed */ this._initCurrentDate(); /* set the close locale content */ $(this._id_datepicker_ftr).innerHTML = this.getLocaleClose(); $(this._id_datepicker_rst).innerHTML = this.getLocaleReset(); /* declare the observers for UI control */ Event.observe($(this._id_datepicker_prev), 'click', this.prevMonth.bindAsEventListener(this), false); Event.observe($(this._id_datepicker_next), 'click', this.nextMonth.bindAsEventListener(this), false); if ( this._enableYearBrowse ) { Event.observe($(this._id_datepicker_prev_year), 'click', this.prevYear.bindAsEventListener(this), false); Event.observe($(this._id_datepicker_next_year), 'click', this.nextYear.bindAsEventListener(this), false); } Event.observe($(this._id_datepicker_ftr), 'click', this.close.bindAsEventListener(this), false); Event.observe($(this._id_datepicker_rst), 'click', this.reset.bindAsEventListener(this), false); }, /* hack for buggy form elements layering in IE */ _wrap_in_iframe : function ( content ) { var _iframe_src = 'javascript:false'; return ( Prototype.Browser.IE ) ? "
    " + content + "
    " : content; }, /** * visible : return the visibility status of the datepicker. */ visible : function () { return ( $(this._id_datepicker) ) ? $(this._id_datepicker).visible() : false; }, /** * click : called when input element is clicked */ click : function () { /* init the datepicker if it doesn't exists */ if ( $(this._id_datepicker) == null ) this.load(); if (!this._isPositionned && this._relativePosition) { /* position the datepicker relatively to element */ var a_lt = Element.positionedOffset($(this._relative)); $(this._id_datepicker).setStyle({ 'left' : Number(a_lt[0]+this._leftOffset)+'px', 'top' : Number(a_lt[1]+this._topOffset)+'px' }); this._isPositionned = true; } if (!this.visible()) { this._initCurrentDate(); this._redrawCalendar(); } /* eval the clickCallback function */ eval(this._clickCallback()); /* Effect toggle to fade-in / fade-out the datepicker */ if ( this._enableShowEffect ) { new Effect.toggle(this._id_datepicker, this._showEffect, { duration: this._showDuration }); } else { $(this._id_datepicker).show(); } /* clean timer */ if (this._closeTimer) { window.clearTimeout(this._closeTimer); this._closeTimer = null; } }, /** * close : called when the datepicker is closed */ close : function () { if ( this._enableCloseEffect ) { switch(this._closeEffect) { case 'puff': new Effect.Puff(this._id_datepicker, { duration : this._closeEffectDuration }); break; case 'blindUp': new Effect.BlindUp(this._id_datepicker, { duration : this._closeEffectDuration }); break; case 'dropOut': new Effect.DropOut(this._id_datepicker, { duration : this._closeEffectDuration }); break; case 'switchOff': new Effect.SwitchOff(this._id_datepicker, { duration : this._closeEffectDuration }); break; case 'squish': new Effect.Squish(this._id_datepicker, { duration : this._closeEffectDuration }); break; case 'fold': new Effect.Fold(this._id_datepicker, { duration : this._closeEffectDuration }); break; case 'shrink': new Effect.Shrink(this._id_datepicker, { duration : this._closeEffectDuration }); break; default: new Effect.Fade(this._id_datepicker, { duration : this._closeEffectDuration }); break; }; } else { $(this._id_datepicker).hide(); } eval(this._afterClose()); }, // Reset function reset: function() { $(this._relative).value = ""; this._initCurrentDate(); }, /** * setDateFormat */ setDateFormat : function ( format, separator ) { if (Object.isUndefined(format)) format = this._dateFormat[0]; if (Object.isUndefined(separator)) separator = this._dateFormat[1]; this._dateFormat = [ format, separator ]; }, /** * setPosition : set the position of the datepicker. * param : t=top | l=left */ setPosition : function ( t, l ) { var h_pos = { 'top' : '0px', 'left' : '0px' }; if (!Object.isUndefined(t)) h_pos['top'] = Number(t)+this._topOffset+'px'; if (!Object.isUndefined(l)) h_pos['left']= Number(l)+this._leftOffset+'px'; $(this._id_datepicker).setStyle(h_pos); this._isPositionned = true; }, /** * _getMonthDays : given the year and month find the number of days. */ _getMonthDays : function ( year, month ) { if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && (month == 1)) return 29; return this._daysInMonth[month]; }, /** * _buildCalendar : draw the days array for current date */ _buildCalendar : function () { var _self = this; var tbody = $(this._id_datepicker+'-tbody'); try { while ( tbody.hasChildNodes() ) tbody.removeChild(tbody.childNodes[0]); } catch ( e ) {}; /* generate day headers */ var trDay = new Element('tr'); this._language_day.get(this._language).each( function ( item ) { var td = new Element('td'); td.innerHTML = item; td.className = 'wday'; trDay.appendChild( td ); }); tbody.appendChild( trDay ); /* generate the content of days */ /* build-up days matrix */ var a_d = [ [ 0, 0, 0, 0, 0, 0, 0 ] ,[ 0, 0, 0, 0, 0, 0, 0 ] ,[ 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0 ] ,[ 0, 0, 0, 0, 0, 0, 0 ] ]; /* set date at beginning of month to display */ var d = new Date(this._current_year, this._current_mon, 1, 12); /* start the day list on monday */ var startIndex = ( !d.getDay() ) ? 6 : d.getDay() - 1; var nbDaysInMonth = this._getMonthDays( this._current_year, this._current_mon); var daysIndex = 1; for ( var j = startIndex; j < 7; j++ ) { a_d[0][j] = { d : daysIndex ,m : this._current_mon ,y : this._current_year }; daysIndex++; } var a_prevMY = this._prevMonthYear(); var nbDaysInMonthPrev = this._getMonthDays(a_prevMY[1], a_prevMY[0]); for ( var j = 0; j < startIndex; j++ ) { a_d[0][j] = { d : Number(nbDaysInMonthPrev - startIndex + j + 1) ,m : Number(a_prevMY[0]) ,y : a_prevMY[1] ,c : 'outbound' }; } var switchNextMonth = false; var currentMonth = this._current_mon; var currentYear = this._current_year; for ( var i = 1; i < 6; i++ ) { for ( var j = 0; j < 7; j++ ) { a_d[i][j] = { d : daysIndex ,m : currentMonth ,y : currentYear ,c : ( switchNextMonth ) ? 'outbound' : ( ((daysIndex == this._todayDate.getDate()) && (this._current_mon == this._todayDate.getMonth()) && (this._current_year == this._todayDate.getFullYear())) ? 'today' : null) }; daysIndex++; /* if at the end of the month : reset counter */ if (daysIndex > nbDaysInMonth ) { daysIndex = 1; switchNextMonth = true; if (this._current_mon + 1 > 11 ) { currentMonth = 0; currentYear += 1; } else { currentMonth += 1; } } } } /* generate days for current date */ for ( var i = 0; i < 6; i++ ) { var tr = new Element('tr'); for ( var j = 0; j < 7; j++ ) { var h_ij = a_d[i][j]; var td = new Element('td'); /* id is : datepicker-day-mon-year or depending on language other way */ /* don't forget to add 1 on month for proper formmatting */ var id = $A([ this._relative, this._df.date_to_string(h_ij["y"], h_ij["m"]+1, h_ij["d"], '-') ]).join('-'); /* set id and classname for cell if exists */ td.setAttribute('id', id); if (h_ij["c"]) td.className = h_ij["c"]; /* on onclick : rebuild date value from id of current cell */ var _curDate = new Date(); _curDate.setFullYear(h_ij["y"], h_ij["m"], h_ij["d"]); if ( this._disablePastDate || this._disableFutureDate ) { if ( this._disablePastDate ) { var _res = ( _curDate >= this._todayDate ) ? true : false; this._bindCellOnClick( td, true, _res, h_ij["c"] ); } if ( this._disableFutureDate ) { var _res = ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false; this._bindCellOnClick( td, true, _res, h_ij["c"] ); } } else { this._bindCellOnClick( td, false ); } td.innerHTML= h_ij["d"]; tr.appendChild( td ); } tbody.appendChild( tr ); } return tbody; }, /** * _bindCellOnClick : bind the cell onclick depending on status. */ _bindCellOnClick : function ( td, wcompare, compareresult, h_ij_c ) { var doBind = false; if ( wcompare ) { if ( compareresult ) { doBind = true; } else { td.className= ( h_ij_c ) ? 'nclick_outbound' : 'nclick'; } } else { doBind = true; } if ( doBind ) { var _self = this; td.onclick = function () { $(_self._relative).value = String($(this).readAttribute('id') ).replace(_self._relative+'-','').replace(/-/g, _self._df.separator); /* if we have a cellCallback defined call it and pass it the cell */ if (_self._cellCallback) _self._cellCallback(this); _self.close(); }; } }, /** * nextMonth : redraw the calendar content for next month. */ _nextMonthYear : function () { var c_mon = this._current_mon; var c_year = this._current_year; if (c_mon + 1 > 11) { c_mon = 0; c_year += 1; } else { c_mon += 1; } return [ c_mon, c_year ]; }, nextMonth : function () { var a_next = this._nextMonthYear(); var _nextMon = a_next[0]; var _nextYear = a_next[1]; var _curDate = new Date(); _curDate.setFullYear(_nextYear, _nextMon, 1); var _res = ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false; if ( this._disableFutureDate && !_res ) return; this._current_mon = _nextMon; this._current_year = _nextYear; this._redrawCalendar(); }, /** * prevMonth : redraw the calendar content for previous month. */ _prevMonthYear : function () { var c_mon = this._current_mon; var c_year = this._current_year; if (c_mon - 1 < 0) { c_mon = 11; c_year -= 1; } else { c_mon -= 1; } return [ c_mon, c_year ]; }, prevMonth : function () { var a_prev = this._prevMonthYear(); var _prevMon = a_prev[0]; var _prevYear = a_prev[1]; var _curDate = new Date(); _curDate.setFullYear(_prevYear, _prevMon, 1); var _res = ( _curDate >= this._todayDate ) ? true : false; if ( this._disablePastDate && !_res && (_prevMon!=this._todayDate.getMonth())) return; this._current_mon = _prevMon; this._current_year = _prevYear; this._redrawCalendar(); }, /** * prevYear : redraw the calendar content for prev year. */ _prevYear : function () { var c_mon = this._current_mon; var c_year = (this._current_year - 1); return [ c_mon, c_year ]; }, prevYear : function () { var a_next = this._prevYear(); var _nextMon = a_next[0]; var _nextYear = a_next[1]; var _curDate = new Date(); _curDate.setFullYear(_nextYear, _nextMon, 1); var _res = ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false; if ( this._disableFutureDate && !_res ) return; this._current_mon = _nextMon; this._current_year = _nextYear; this._redrawCalendar(); }, /** * nextYear : redraw the calendar content for next year. */ _nextYear : function () { var c_mon = this._current_mon; var c_year = (this._current_year + 1); return [ c_mon, c_year ]; }, nextYear : function () { var a_next = this._nextYear(); var _nextMon = a_next[0]; var _nextYear = a_next[1]; var _curDate = new Date(); _curDate.setFullYear(_nextYear, _nextMon, 1); var _res = ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false; if ( this._disableFutureDate && !_res ) return; this._current_mon = _nextMon; this._current_year = _nextYear; this._redrawCalendar(); }, _redrawCalendar : function () { this._setLocaleHdr(); this._buildCalendar(); }, _setLocaleHdr : function () { /* next link */ var a_next = this._nextMonthYear(); $(this._id_datepicker_next).setAttribute('title', this.getMonthLocale(a_next[0])+' '+a_next[1]); /* prev link */ var a_prev = this._prevMonthYear(); $(this._id_datepicker_prev).setAttribute('title', this.getMonthLocale(a_prev[0])+' '+a_prev[1]); /* year browse */ if ( this._enableYearBrowse ) { var a_next_y = this._nextYear(); $(this._id_datepicker_next_year).setAttribute('title', this.getMonthLocale(a_next_y[0])+' '+a_next_y[1]); var a_prev_y = this._prevYear(); $(this._id_datepicker_prev_year).setAttribute('title', this.getMonthLocale(a_prev_y[0])+' '+a_prev_y[1]); } /* header */ $(this._id_datepicker_hdr).update('   '+this.getMonthLocale(this._current_mon)+' '+this._current_year+'   '); } }; webcit-dfsg.orig/static/citadel-logo.gif0000644000175000017500000000430513223341037020322 0ustar michaelmichaelGIF89ax#rmr~}z~{v{z~wrw狅»Йwsw|xsx|w||㛔~}wsx{vz~y~ሃxtxļ|氭}x|}{Ėzuz˅xty}x}üzuy|w{ƾڹ~y}ۚǿ嗓刄⢟upu㪧͇źӠztzԙֽ݅tptқ|w}֋vrvvqvz|oko׊ytzᖓ͸ÏߘŽ̎܇zŽ»uqvƫ݁|}~x~~ypkp{w|⡝댆yty!,x# H*\ȰÇ#JHŋ3:<%ޙyKA_<g׫/ ]C&;êSHB4/ЫX}Qx:)p#ZZ: pK8 oӣ~="K غ(MC, 4i`0NÁ@p E(Dn%9赇cb`7 oJF $2@(N^Pu| : bDD -d pDd':貓4k:Qb0D^̀A`! @M 8J0C&8(dqjr85M drՌ.v.ijСL.SDPKb } p.diMj &5OXP/?\48@ iN!@QrXAJ $ GX1 N: _T تNM`PJ : ;webcit-dfsg.orig/static/webcit_icons/0000755000175000017500000000000013223654433017745 5ustar michaelmichaelwebcit-dfsg.orig/static/webcit_icons/error.gif0000644000175000017500000000246413223341037021564 0ustar michaelmichaelGIF89a.,U+U+++++UUUUUUUUՀUժUUUUUUUUU+UU+U+U+U+U+UUUUUUUUUUUUUUUUUUUՀUUUUUUUժUUUUUUUUUUUUUUUUU+U+++++UUUUUUUUՀUժՀUՀՀՀՀՀUU+U+++++UUUUUUUUՀUժժUժժժժ UUՀժ+U+Հ+ժ+++UUUՀUժUUUUՀժՀUՀժժUՀժUՀժU+U+++++UUUUUUUUՀUժUU𠠤!,.,H*$Ç!.(3jB,P Ȓ(G^ ɜIdxq͟?\ *"..XJu悋(| .X₯_\h.q. ]p@",^ & ^fyY ,ScHs"Ɇ.̋/\@ d===>>>P@UDCCCYGFFFIII^KJJJNNNdPfQfRQQQhSRRRoXu]\\\x_^^^y`za```fffggghhhjjjjnnnpppqqqttttvvvzyyy|||}}}~~~šƞǞˢթ׫ج٬ۮ!By viewing this comment you agree that Barack Saddam Hussein Osama Obama is a muslim terrorist who was born in Kenya and is the most America-hating son of a bitch ever to set foot in the White House.! ,  H*\ڵl"JHb6k R- Cm5jeƲhК)S hҲIK̙ϟ@G_ˀs`3fPF]LVhQ+T&K,`(…&Kݻx-"-[3rk`È3/; XK|˘3 d`(-` | ӨSE\$8Kirk.@T^}żs]iJD08\G [;88 *ΚO>B"}h0 J}b~ -q$ H*f(@V+l q(hH),آ&)lV)9X,ʏ@$P&AI'PF&7f?E\]_c[+'KK"%Z%V: DWCX&)gb$XȅU1.NgO5pK$ȻBM6Hp" "-*V)t$ATE )҃ cĎ,/"PqR(&ziL?+` (!, '''(((+++---...333555666;;;>>>@@@GGGKKKLLLPPPXXX[[[cccdddeeehhhjjjlllmmmqqqtttyyy{{{}}}~~~̀hC/@hc!SGD( YhW12\N%#<]DT*2M%$).C?J#&Pfgcea;7WQ,-]3 #`B++K_L^460 $Ä[=B^IHP"U)+\Ç@=bY/1f8(J--T#Wf494 *hhCBj_DLQMX& 8f67P cAQ; 0 )`(`,:6tH" FJ9ce0'X8ۓ O$!,!!!%%%>>>EEEGGGLLLMMMPPPRRRUUUYYY[[[eeeggghhhiiijjjlllmmmvvvxxx}}}~~~ˀgI4F#_LE)&7:bU# 8fMg2c2(!@cSD! ` IQ 20QAEĀPpÓFZ!!TB I $H!,  +++---000111444999GGGNNNVVVWWWZZZ\\\]]]___```bbbccceeegggjjjnnnpppqqqtttuuuvvvxxx|||ȀhK6I($'eRK-$+@B],*?Nh:! D\.+@6AOGc58RLd9;HS43^1&h<>F:WUfcdY].#M2H2  7gZJ_hM c z@D*,Pqh 0( 4ELrHL(`ʨ(G4f~%CoXA@!, !!!(((+++---000;;;>>>@@@AAADDDQQQSSSZZZ___aaaeeeiiijjjkkkoooqqqrrrvvvxxxyyyzzz|||}}}΀cG3D$!#bQM*!%>AZ-*@Jc7C]/+?5BPG59SN68J:M11Y5'a`24_H;\WԔXVZ=0FنX`[)J7KD5\a"HJ LbE8@Q \ꢃTLp$+Xp9I/cP `/AI8<1 *G!, '''(((---...222777888:::<<>>AAADDDPPPSSSVVVWWW\\\]]]```bbbiiikkknnnoootttvvvwwwyyy΀faK\e6/3`B%9dE('S]-  PbCFcR>:M`= @φK]&$d?JD"!7V#ba%#OS58[ՍH3c@hh 2+ M(XAB!./XT!C Y!W  $C@ !,"""&&&(((444555999:::???GGGHHHKKKMMMPPPRRRWWW___```jjjnnnpppqqqrrrsssyyy΀e`X[@#P_HDW] ,b4 !L& 5XYO9H.AO10^P7b\L/.Z6 OLYGBTdG!"I׋V-)RJUM$$>a  +e*(V^~ (p"-2pD:d:YAX"GFvSʆ r2 :L8 %< M!, ***111444666;;;<<lpё-{ J(!, ---AAACCCFFFGGGOOOTTTUUUVVVWWWYYYZZZcccdddeeeiiijjjmmmuuuvvvxxx}}}ˀfbE/C\? 9TKcf$^`]f@,T)!O4)B_ =L GB*bb >fWHSdQ-*/dD+[OUVNӢZ02Y( .85a^ "[..I0<Ι1cQ*ϕI( J(H + qI 4G!J lȠL ! A%ϟ!,  $$$(((***+++---444555FFFKKKQQQSSSTTTUUUVVV^^^___dddgggiiikkkqqqrrrtttuuuvvvwww΀dK6E_D ?]U+!_XCH\H2[0%O'5" DT&!I:  cc$ Ed\MUb8  /J3aP).cYV“a;=`d07<8d#-^44N<.d0x)Ȱ!0.ZH$$ :`E(xC T`e&N@1J"&BpHH< %!,!!!###,,,444666888999===???@@@IIIMMMRRRTTT___```bbbdddfffjjjsssuuuxxxzzz|||}}}~~~πhU?NfO Bc0#h`ILbV:g7&V&2`( P`+$P= K) RhgW_h;JX :U! -eT=CaEFdEM8A_,.\'4ha5jDTd|PȟÇf2 I;FF6p舋=,DPSbPJK@Q Zz (!,"""&&&---111222555;;;<<<===AAABBBDDDHHHIIIMMMNNNQQQTTTUUUXXX\\\hhhlllmmmnnnrrrtttwwwxxx{{{~~~ԀmbGY^!Lj=-mlRUic,)Fk@ 2a1;h5[k8 .\EQ7`dC Of,(H_* 3dZADXfPS݂jE!>mBJVm4>eD$Pዠ&#Nx9IJH1PD qf%~͚6Wl +h8Ŋ< AR&ѣ!, 111222444<<<@@@EEEHHHJJJLLLMMMSSSWWWYYY\\\]]]^^^aaaooouuuwwwyyy{{{|||}}}ЀfdM]`'Q@ 1UVde.+KfF 7b3&2\HP<#bEO.)L]* 2YABWńTV؂B=^C NSC5?D8@X8"N1jH [$%I" I99A")#H3#+5lLBe7*&zNBbLIh !,!!!666AAABBBCCCDDDJJJKKKPPPQQQUUUYYYZZZ[[[```aaabbbfffgggiiijjjlllmmmtttuuuvvv{{{|||}}}рll[jl1+ZL ?ad<6XlR Bl@DkD-G0U [E.PY:3ʼn4=fKM`\_ςM&$CiK&(VZ"J=%%FK lU+-cY#`+IH (g1 ZxID xbJ",*X te%x,EP5 B4 N  J@!, ''')))+++,,,///000===>>>NNNQQQRRRTTTZZZ\\\___aaabbbeeegggjjjkkkoooppprrrsssuuuvvvzzz{{{|||}}}Ӏooi8%4mYEC=eo_JoH"#NK5Q7Goa $L 6_ !A:Å<DVXcf͂V-(IO)+\d&R>&&ISCZ,/g`'UՈSjh(7v@K$$H.,h0 M! />0J6dD&!6n ";webcit-dfsg.orig/static/webcit_icons/collapse.gif0000644000175000017500000000071113223341037022226 0ustar michaelmichaelGIF89a)fffhhhjjjllloooppptttvvvxxx|||}}}!Z License agreement: by viewing this image you agree that Barack Obama was born in Kenya. ! ?,pH,' y6d(,H"7""|!t:>9 ")" B ( BRHBBBB  C FEA;webcit-dfsg.orig/static/webcit_icons/yahoo-32x32.gif0000644000175000017500000000247713223341037022335 0ustar michaelmichaelGIF89a lmu  y zv~y}}"$!$""%$&&')/*+,../.2/0712282545889>;webcit-dfsg.orig/static/webcit_icons/up_pointer.gif0000644000175000017500000000024513223341037022612 0ustar michaelmichaelGIF89a JZRkc{c{k{)s)s11BRR!, R{ރ{|{= 0{=QMcTSA %x{{/;webcit-dfsg.orig/static/webcit_icons/sort_none.gif0000644000175000017500000000020513223341037022430 0ustar michaelmichaelGIF89a Δ{{{sss! , 2IdKÔi7BrxDAI 3&,YT;webcit-dfsg.orig/static/webcit_icons/expand.gif0000644000175000017500000000074513223341037021712 0ustar michaelmichaelGIF89a5fffhhhjjjllloooppptttvvvxxx|||}}}!Z License agreement: by viewing this image you agree that Barack Obama was born in Kenya. ! ?,pH,/gd2>eh)l",(jj"*"|B)!33!)B '2' B $1$ B R00H B//B..BB ׬ C FEA;webcit-dfsg.orig/static/webcit_icons/old/0000755000175000017500000000000013223341037020514 5ustar michaelmichaelwebcit-dfsg.orig/static/webcit_icons/old/privatemess_16x.gif0000644000175000017500000000107213223341037024243 0ustar michaelmichaelGIF89a"""}y{RqsI)dkzYcn:=:8PQRotz1S73AF&7RBCM=K 2 &L,,EE,6߈I?#5L& P5@2A #X|# ;webcit-dfsg.orig/static/webcit_icons/old/indent.gif0000644000175000017500000000014013223341037022457 0ustar michaelmichaelGIF89a!,1T`r0ͮOm6:@f[:DB=J?=8jyQQQ^|ہLH;ΌcrkG/RL9cO?rmM:QfҡT{{HNJB:q?͋Q+2H@/$vX_VQWɪKs[89:?CI׶PRJJa^]u`oaF֍{AԷ!,00 H*,H fD UYjAb ` dF@YcBl)Ut&"piEL"06ro߬4֒@!XoX) 2/pJWĪd1 ʝ<<YH >*a-V U9="?xFcӞiT% $ABE2V :Y f V :hxPOLZ n9fB(GU-Dp]l) nAh "6:!ː%:@ ֭HS pDUc -L2 . 9@r *(h lz8 $s9w>ɐ!=o!O|O>3M< *_.ܫ#?BC( E>L=O~9H`p> _T@{q|#sƠB#/H @x9P <4bcG$%(Ahæ SJrψXB1 8!"Fx/lHX;8)PBFuq Ȣ航(|H9*Y8|SZJMla& N(ncXRJQ:*)d-B^ܥ0;webcit-dfsg.orig/static/webcit_icons/old/citadelchat_32x.gif0000644000175000017500000000226513223341037024151 0ustar michaelmichaelGIF89a y{svwxyzvzmjilmk^`_[\]\[^Y^_\ܭܮLIMJKJLپٽKOLrtji79797F197I8ͼ7̼6ȷ7ȷ1jgR{O56.B766|||yyyvvvuuuvo6soFsnElllkkknhTTTYV;XU;TT9YT(TT8RRIUT0RR7OOOTP+SO5MMMQN3RM$RM%RM#PL2RM"NK3PK#LK,LK+IIFHHHKH'JI)JI*KH&IF3EEEHF3KG'KG&IF&DDDIE&EC6BBBB@3;;;993774!,  H*\ȰÇ#JH":92C^628j&2:/[:R*JmK w]vI!wF&XvV*҈=#bV1F2 J #GS~9p;jQ1c\ڽۅ5kE697Xxm2?n#-޻Fߚd42Nqr'@~"Pdx8D&L*o*D# #M,@ɅF 4TŲNN(nRS>l ]D s㏦[6P,4 )0ЄbqB~8a# `i &.`BI/?'TpVF5Մ Wn ?[F,xΠ`@lR? &2@8&:l9ŽSdogJs@Q4N2`*# 8Y lͯ4K%Y$?0d]d H&S@"kflEP Pp Pp \ t!@&1 /lLA %4f&%Ǻi딐33P@"Z[,0LL"Q !Y,$8+ASp4b#]tLҏ5*̾͢YN9)*ܜsI@'#<`Z٩@2$ h͛Uӆ!|3! C 묳DhِtC(;뀁<@:x Fh? tp=걃|xH B܇Ə ǀI PC(0Q B!0Th+s/:Ka3P2` x C׸=<׀uLPLt(EGȑu؎H p2NLc$5m!_cE $@.j !>(r!+ !c d 19)o鰁 ɏ8drup+]3XEry]CF)Vo5(=y\8QMBڼ2+L](!?|Ӄ;ucn} v{,&ߎPa/3paXw U!p r?F(vWn41 AV40m(+ȀNwӞ`a6 B;webcit-dfsg.orig/static/webcit_icons/old/calarea_16x.gif0000644000175000017500000000034013223341037023266 0ustar michaelmichaelGIF89a{}{zƼϼЩ{f܀Q~~~}}}yyy\\\HAC888777554333)&'!,]sacIcLѾTc%5LpH\,K`l2H=J!J-ZO'a Ve@8!P~drn!;webcit-dfsg.orig/static/webcit_icons/old/privatemess_48x.gif0000644000175000017500000000306413223341037024253 0ustar michaelmichaelGIF89a00 !"xxwN{;?De9J_fmH.rYrjѽYUI7gp{Rat~—26;ԎDGJW#uxgXak{걶vvvzzzrRT?ٓ؃=BI>Rjp]ԺiPjD<5wպzqaz_,/3cJE;]rR)쌺{IFBqajt٥mtIbcF̙ŦKWf19CۜMORn~bJ\suqYYYm{rtP=/v]{n@A:~fffJMPs)*, 1?EMdq岻S@3ئO]n[!;GVůUeπiCϦNd~dΫo:::xPPPzt;=?JJJ?Oc~{gtfABB|x|PCXsYXCcxkwJ)c{QQKRkßj|(`333Ŝ펽ޕ@:7y9ETTZbBIR6=G曵e{dUf{uJBBF\xku%yك{dnychIKS]Ճ*,.ȺxnjX\G!,00 H*\ȰÇ#JHŋ3j܈T CIHRYɲ˗0clR̛8eI٘@29'HcFT`3,$:M5IT[AgJX'6+*?b4Iq6eje(iA%2=/`hk|ibi-(„I6I)ϟk9xHO<"2dI(ITqM҈`DE7p̧|`N^SHXS`Ŭ؄.E9^Hr  H,6,'pQTǑSf)t? k1͸R;)Q * QD) Em! 6s| ΀ƽ.14`./LP2 tR ,ȫD!n=2$P@0$H8L4*W<*O- )/!Jc2ZSE 50t/ _[ Y`]Q*bx J,jp߀.n;webcit-dfsg.orig/static/webcit_icons/old/page16x16.gif0000644000175000017500000000176413223341037022635 0ustar michaelmichaelGIF89ahk{{~v|u{w~ٔơəq}ʋ⤶ڢΚӝ⟺䜸ࡼ暴ܚܦ榿tᖽKXӯu!, !# 5l8aC)xT@ -t8l$ #Ώ; ŋ?)@1 ѓg81(.uhqs'U`B*6B"8\1jU3D$8ч7YҜR=Zu ?KUL;Y [2T9|qa<4P"C(II0Q,8L"(p!;webcit-dfsg.orig/static/webcit_icons/old/privatemess_32x.gif0000644000175000017500000000237013223341037024243 0ustar michaelmichaelGIF89a ޠޜޅڌُڗۆז{zљzΌʖߩvÂmѾړϼْבɺՎpponponk̨w^ïz눴ꉴ釴cWõj℮GRۤd~|Ӂ̜8q?{ʢpwwǝe'v™Y-s{sxxxntnvk|srkxUvdkr~~~dk|||i~ozlxuw{YtYrom^[omnHUkdgkhe]ShZ%QhbfQbgLibVX'Tdxb_If]OZ^SZZZP&YYYFXnXSMLT]KRZQR=PQRnJ/FP\NPELMN@N_MLFELSfG/GJLKH=IG=@FMBEIS@3N@6CA>AA9Q=/A?<9@ID=78@I8=C9<@=;8:::;:999988878846906=555444445333222)+-!), SH*\ȰÇ#"ϟŋ3j̸/~ I% '˗0cʌJ#'f9h,SLv ?i.?pÔÄ ]Ղ6t)z5<28Q#LF/^=t2ɲtQqD]^)Rt 1`;_AXT !o3>^ʁTTRCT|D1cyH-ȜCnO"k>Y23x/4NI+i !_b]կ1B?8I9 :D!VX!2 R ?o,( YF((r +)BG? D"۸8^я)2<ڤ)C8|PA ,`P!)<)B-Sϗ` f?x =b#DB&-C.)VCҢ4묒b'Fi"ѡ&袌6h@;webcit-dfsg.orig/static/webcit_icons/old/calarea_48x.gif0000644000175000017500000000161713223341037023303 0ustar michaelmichaelGIF89a00}{uͱЦfܕ~~~Q|||zzzyyy^^^XXXOOOKKKJJJDDDBBBAAA???@?8<<<;;;999888555333000)))(((!C,00C6BB:B852738B0/A  <BB;41B(?B#?;!B;/@B)'+8&BB?89+ !+ jpaDXaD XC"A!!3(9ɔ+E4?^8"B""`pg?-OBĉGXjʵ+ש9YJlWUF۷pzȊVڹXͪ/߿X7/ˆ|3໇'Lqڼr3k+aɠ)/ЙgѓGK.=jԡSymg?~{-ެN7C5ϷsL!~8vΩf.}snǞ[Ges^|ٚuo?Ysl`& Z`!/ Vh! ($X"zP,9(4h8hH ;webcit-dfsg.orig/static/webcit_icons/old/outdent.gif0000644000175000017500000000014013223341037022660 0ustar michaelmichaelGIF89a!,1TarE`Nrst%ڹo8kS?W#{.:DOn=62gYljJh}rI+c_[waroH?8^J;/T$ZxILQɏdc߂=ffff3X+ZRMlFήwxl_Ud/џ{RzR%lM5ѱ>L]nPKG}||pbZUfG1tWC7̻d#O({K(^ Jhy_{up;AHJRkisxYB^WRj[PUKDwi_@CGbE/Y"4eE+ssk.;;<}JBBZd]3bUKmd]T}jN9׹BJc?<:bJ9=JZ!,  H>QaBM:)E4 }ktKٙM@qYV[yܰ+7d0yrqj2ǰ[ U<C2 h1Е^E!¥a78Zak$?<9$D+`Si@y堈 :r$I!3.dLZkht0+[ 2bQ 9KPHͤn k@0K(HM>f@)( Q- PNL30 )DBt[aPpA 7P,w0$F $ YM%\@A(j0   4$0^61Ȣ ,!rDpTA ȇ #54 b@UT" R 8 1 7T KZ1F,LPa}^LB VH3٠}QP ^D) H6t&0 r@rd(B\2 y|IgjoL  A@-1;IP@5ւDP4#\f #N5dͰՋq @^ot8ݴсFbв/828 $bhb`L2`:p7 @ ( ;webcit-dfsg.orig/static/webcit_icons/old/xml_button.gif0000644000175000017500000000065513223341037023404 0ustar michaelmichaelGIF89a$X]rূ^dɱcߞrsr3罡џAC4Ug#糑諂alw.n$|${3¡S!ѲD}3WP?Ȥf!,$ lH,ȣ%k:Ш4bNXو 2U,BXb&YUh( db9A1.bRqO" 11 .f+g1[N%g.2ft$ZQb1Mf gPN1#t.O)g.++*O2](N1& N2M..2N2 2eHE‹*\p ;webcit-dfsg.orig/static/webcit_icons/old/taskmanag_24x.gif0000644000175000017500000000220213223341037023642 0ustar michaelmichaelGIF89a}wwίnʹؚlɾjȾiꥸєꕺùh菶袳Ȥddbba_^ZxVzgf~~~iQs|xxxnywwwmylwivou}itdtppp`rWoUoUmUnTnplJTmdipafn___X[^[ZL\ZBQV\SV[VUCTR?TQ?PPPSQ>LPUQO>MNMMMMKMOKLMJLOGIKGHHGHJFFFCDEAA@@@@???==9<=><<=:::<;699999:9::::6888777666664566555444333222000///...---(((%%%$$$### !,g H@+N2`BKHj8ʢP2j,EJ!( DD *b"%ЫbI?Slj#+^ y 'z8hCK~N7(pF) %F=r +Pj% ֡<,4 ShhN6pDPS  RYFNCZTZSj !04nqj˩ +?%A k9Ƃ سc&{_`M>5s*Gȟ@M@J\@'&Cq,$B8&E NhAdžv0E%hdTE,";webcit-dfsg.orig/static/webcit_icons/old/week_view.gif0000644000175000017500000000047313223341037023174 0ustar michaelmichaelGIF89aoݍ⢽rϗzЃҬ쳳k^!, 'dihXp `Z6l&PrKKKLKDFg 07ig,RbVHpC32`2KxȚ35 'g4h"38N0̛7m`ª.XX @-<;webcit-dfsg.orig/static/webcit_icons/old/pixel.gif0000644000175000017500000000005313223341037022322 0ustar michaelmichaelGIF89a!,D;webcit-dfsg.orig/static/webcit_icons/old/image.gif0000644000175000017500000000031313223341037022262 0ustar michaelmichaelGIF89a f%c8*333! ,xPI8ͻ`(h*By Ic6AnXxZ@X vA h# -4-2 F20d;qqLLxy;webcit-dfsg.orig/static/webcit_icons/old/body-background.gif0000644000175000017500000000013513223341037024254 0ustar michaelmichaelGIF87a ,p2"v.A iW;webcit-dfsg.orig/static/webcit_icons/old/folder_open.gif0000644000175000017500000000055613223341037023505 0ustar michaelmichaelGIF89azμ\׸@P|{ɠ!|ڿlƚƚǜ~΢"{Ϣ&)lC޲CSpCs [ׄŹqqqeee!/,pH,3 d<iXA._b<>))eD>>888!|,|'GmxzzwiD'LqaH5-053S$E\y}XʙvleLGCeƙWPKspT@JʥoB{$dsL.V*ZJ1ZH:i{Z!cJ)[W[Ll!,00 H*\ȰÇ#J81^:pIŅ A%2*%jPPAThb*M S9Z 5K=269)35t.8tjQGx਩휞prbW Ξaǟwfxjc qɸ˷˘RcFe IJPd qA3D D1K((1 >trC6MށIgʈLJd[( c҃; Ě!D, N.$ćoE3pp$ $`π3+3"Ç`(A3 @8H҅?XL8GPPBDH#aYSO-C*@ | +l1$ J /d#( &/&]C/08b3 42 $4wv9`(ϔQ(!x2è_1F m9 05-` ($N6{Q@L`A0Jxv6pE,t|Ap]8Rm aR# L0*=*bĩP tbMT4Dt!#?8 `'8._\pC+p_4Pm| A R1E$1C("V oː<J0D E0)s30!*ۃ*sѤlP+&yn{ nP!kp3.8]EMc"|̘M  q,bbTEt'\O)$ȉ Մ1qK8I dPJU@3D16̏TЊhC+Ģ?B@WD #,wD/vA5XV ,*QjG( pg@`Ph Є"9D jm02xP)0Ɛb \ t~L!gٚ2Ġ\ Ḻ^%B D;"8 )em6J괪Wp7.#x vi 'FAl,hN;U)|;W}C> W/4l;{H]; ܄]h 4b~90=}D#^.cՏйI0xH[4lrMro|- кz][D:å)!(u t: d_?!.bҼ#h$w+m<@~oߣY:CV`A●c=L4>:Y+ݯѺ}9B$] ~iZM&d[l%8Ee+F0] B3pO QBp[Ur;xeeo>I64dZO)%g:v%|J5OQUj c{.N_z `L>IENDB`webcit-dfsg.orig/static/webcit_icons/old/storenotes_32x.gif0000644000175000017500000000242013223341037024102 0ustar michaelmichaelGIF89a ȡߦƢĞ򻑸؟ؚ븒z뜿뙾븸m谇떼듺뫶ųmgZ١wלpИo]O”qJ))x}2wwvvz.|hgoxZlvWjhgwwwpw|kHlsziEpppiL__eGVoUoToUoUnTnddd_emX"Y7X6QP X^eS%Q'sU>WWWVVV{K(aNBPRTNPROOOJJJeD+HJMFHKkA!RF=AAAQ=/Np)8ld DjfhyHp񄟗Tlqd`]DLJ8yu]RSQBvXuZYRplSupDRRRϑx󛹯`zfffkcZkcRqn[ZX@sqbdUfffL[III|YebEB::u{sJ~|elhHӉszOԙ{zqtoHXtpT!, 8P H Ȱؘ8@ J0q2L J !WbF@0ͅ2nF83f93J !a@DA(0`0tT 5T0TX-BaR# `qFłPΈrw SvXxhÍ A.(rbD/`E BV!'P1  h!E]d -hV@!],aAFi`GA@\$PkTEDy8Ók m ]QeJ;webcit-dfsg.orig/static/webcit_icons/old/addevent_24x.gif0000644000175000017500000000226013223341037023472 0ustar michaelmichaelGIF89a33ӽΦ4ιѿ0θɵ1ȴð󲲲꭭t䦦{~}颢}}膣֨56~}⨝:qܜ~xHwCED@tthqq~w~~~~~|||yyyYWssvvvuuuwvRorqppp`\siqt_V`nnn^mmm_"DDvoo0hhhpgUWVfeeeeesqbcb\djaaamkj^^^__W]]][[[E?Z[\=;ZZZ^ZSYYYYZ[\YPXXXMXkWWWVVVPXZLVhTTTTUUKUfVSORRR[PNIRbQQQLQ`OOONNNfGFLLLKKKJJJHHH$NyOEEFGH$LvQCBIE=WB2$KtEFFDDD%HmBBB%Gip4.???>>>:>B===;;;:::N4179<79;333233*)'!,Ml(#Pw *`A#" #<< " p* *UhCXƀ2R`*C-Pظ…K.J"F ] mY`.St#‘D( _L@@ԭ0a ˷9^PW[yY̸qN4W\ysL-9f 27fLɒ (~T=Bbu͸ W>ZpAeP,E68w+p倳k: CCּxnt^bƗRc5 z꜍]_c~%KD(FHqGzt F/S,ˊ,"/l\ Fp.bH"K)EPF)Q;webcit-dfsg.orig/static/webcit_icons/old/diskette_24x.gif0000644000175000017500000000225013223341037023513 0ustar michaelmichaelGIF89af~~~}}}~~}~|}|||{{{}{z||{zzz|zz|z|yzxzzyyyyyyzxxxxyyxxwwxwuwwvvvuvvvuwttutuuutvtssrsrrrrtrrpqqpppqqopopnoommnnnmllllkjjjjkjkiijiihhghffffggeeedfegeeddddcgdcddccddcecbcdbcccbdcccbdbacaaZ[ZPPQMMM>>>===<<<:::999888777666555444333!,!ZY͘)\`Ae9s@3jԨf fhcɌo%j҆˓'rY38ɓ'Fj6AL E$4ӞPw6&3X%OVa&QBպO@$B,TOHYM7 (]ƌi& E2uj)!s p@ ]4ʔ)Urm a3eM# U+n HQbǑ/X%f ,|@! K({*hg6@2@ @P0ju;@h HyBF,YMr1s0f(c˄rDž&C 1thV-$Ň0~\ 8 BZ.8 !ɜv3@dڐ@2ёH&L6d@;webcit-dfsg.orig/static/webcit_icons/old/underline.gif0000644000175000017500000000013513223341037023167 0ustar michaelmichaelGIF89a!,.&ȚUy8@ Y D`;webcit-dfsg.orig/static/webcit_icons/old/t.gif0000644000175000017500000000152713223341037021453 0ustar michaelmichaelGIF89a{{{!,4(*LhpÇBP"ŋ j "FC#I&OVT0 ;webcit-dfsg.orig/static/webcit_icons/old/nextdate_32x.gif0000644000175000017500000000244013223341037023513 0ustar michaelmichaelGIF89a }||zyyvvw{ޥݣӲsr١ؠ֟αjhfedﷷ찴팹챱뭱ꆴ꬯骬Ђ諫觪~~浬`|}榦|{夦xy䱨Wwwu㢢uvt➡s⟟rហqpឞopnm߇klߙjiݗfܠWtUTTTSxSwS}}}|||yyy|F{FxxvwwwzFuuutttsssmmmjjjlk^gf\dddgeZcccbbbbaW```___`_U^^^_^U_^R_]T[[[ZZZ[ZSYYY\ZPYXMWWWXWMUUUWVLQPIC D POIPOHNNLNMGLLHMLGJJJKJGFFFDDDCCCAAA>>>555444333!,  HEKU+RZJ5jש\XBh6Y &#Zɔ%ǂPT鑟JB!"4(=x90Y!1RN QF؟HD>3ׯ^M<۰,+g)HM/w%NgEKB#[QÄ "h^Pv"+_ f|P&^vQldq 6c(~v Q<ؘ2<> z,^i *oxYDj%\! J)ϲk߮݀ 䛃 gyXL{(|ɼ!Y, *vLs483 VhaFApL3Dآ/,1Xa*D频 H 8$< apNfI▀ep/<ȚτfD@-2Lu/|>ɟvsczC sY/ Y HiVlBzttttArrrjtpkIuc>@e```h`<]]]j[SP2LNPJH;?HPFFFDF@AFIEEECEH?CG?AACA9C?6A?8:>@?>7C=1;:688848>:8'555444256457333443222111000///'''%%%  !,/0cK*?(ȑIQJP*荙>_@,wɬäE4VD/YҔaB t sE!:)RRĘ 5h"reР*8EBh!gAaKPChƒ4"F#bV A>p& '@!dlHEO}0 K, $W@0 ;webcit-dfsg.orig/static/webcit_icons/old/list.gif0000644000175000017500000000013013223341037022150 0ustar michaelmichaelGIF89a!,)-&DiȎ FZQ;webcit-dfsg.orig/static/webcit_icons/old/storenotes_16x.gif0000644000175000017500000000112713223341037024107 0ustar michaelmichaelGIF89a߬蝿詼ј谰]ldeJJ-.*~vĀMvKnmomtzzzyyyh"mEsuxf$cg@ZrmpsYqjjjegkdddX:Y]f'A*2AI 8(dF!xF xÇ_x`Z(;webcit-dfsg.orig/static/webcit_icons/old/blackdot.gif0000644000175000017500000000144713223341037022774 0ustar michaelmichaelGIF89a!,;webcit-dfsg.orig/static/webcit_icons/old/usermanag_32x.gif0000644000175000017500000000272513223341037023667 0ustar michaelmichaelGIF89a 333UR|TnIG:ձQOT[ǣ0jR=Pkϟ}pvtaŹn:94lah$]t·pfxrCss,B:1񝢞CVsei ZQ9濥J8-U㻹˾p݊Զfwxy`\kDDhID7N}ĐP'–J~z[pIII~}[dcYYVCʨOaBv=}l@Q9*s}'ɧKԓaBBBwܫ60cfffJsyy!B::szzzOL?khwrtXJ7=GTTTTQ?ϭPެ]̪MYkyv_Ǻoѥ~𹪎DjRޔR_\CXWP!,  m 0Pd'(9ㅠEAjܸ@%PZs`(r0L(Dxmv%DB 0Bd&XT<ˀ.Cpf/ J  (fk (8Ff&&pv pV!àjX(l@B< Ϫ<"LiM*6^jAF)jq6У#8Z)wz-)J}Jtdq3kzcKTkCI5.,0?@@D0ȆHAp+ .db 0߆  m`qXb4mL"x Pb,@Ɉ 4X!J(qF2o 1 M$QH ()ty,VXˆ`H6%0'k &ҙ3̧6Ǡ. 0qҩIJ &NleŒ "̚ -r̞ C k:@:QI2)5L00JBd#!L4z% ZkJ{ /L@4K@0E5)R@B.b 5EA Ar`Lk#F ͬ<3:::<;2;:1![,[3CKRWWRKC3,EL@12AME,[/P:9O/F;  Z 8FU UF>л e'DR2LB!`D ߘ*!4rz(kR1<1R$0!;webcit-dfsg.orig/static/webcit_icons/old/white.gif0000644000175000017500000000150513223341037022324 0ustar michaelmichaelGIF89a{{{!,"H*\ȰÇ#JHŋ3j(0 ;webcit-dfsg.orig/static/webcit_icons/old/folder_closed.gif0000644000175000017500000000060113223341037024004 0ustar michaelmichaelGIF89a{oghjlnq s vy|~ "$%'(*Œ-ǔ/ɖ1˘3̙4Ӡ;ܩDNW`gȌnnnmmmLLL!5,pH,G2Ѐ4 \, KU ht*jCw4 >k0#ZY( 2)"' 3)& 3)% 3)$ 2,` 41+/1331/5+,..LN5A;webcit-dfsg.orig/static/webcit_icons/old/summscreen_32x.gif0000644000175000017500000000251413223341037024062 0ustar michaelmichaelGIF89a  [億SP<ø`}gVz$^dz3XPָ1U{SHfC258<ynnNtđeRN33@}DC_~rTTSQ/FH}CJ?mI94ɲjv|||{w\fff{LGkfff8jLIAc`AHf'''333eXBmY8>DV7cӜiNxhff[REҾhfVm\]OKB6^˾@kR?fۯ`iywaٓuYID=EA8][JRsv[VH>(MHa|mXhgX8a` YYYRRB̸uJkkv`;33q9:;O=5P{JJJD]Z?%%$iE4CCCRu^Aq[nW@!, 1 ⏑*\8.08CS< H@Hp GPǖ+CFⅈQ99S!!@H TK ZʴϠJiF/*@ Šg0-Heæ)Q^8h xRh"ǐت4dGGnXdFxX`B&'=jc"hQ|#1{/āk(@ "}Ÿ (Ibƀ(tgEhx"Rp H:9o4#.N@EÜ`+H 'ҧfȉ3 pw=Q&gp05'Wy0|F %A i"!o 6XH $ہ1ާ ݥFa 6䋒y+kTvhateJ_r^nDxRqeNY%dvIqxV@9DeeT1@`Qg.dF^գPejdg$p gt@ +*+gp $x )z| |m x:e6;webcit-dfsg.orig/static/webcit_icons/old/readallmess3_24x.gif0000644000175000017500000000231213223341037024255 0ustar michaelmichaelGIF89aֱկհԮӫ΢̟Ɩ›ďԌ۴ء洒맽xش١ޢڦҲ˘RQ֤ШePɠWЎ͑NDŘk™o8ՐLy!w!w"u"Ht"s"r"p#{FdzFm$wEk%i%zzzg&qDf&oCmBlBg>ppp`'^(jjj_4iiljffZ)Y)X)`?ga]e`^T+]_bS+tX=_\ZX[^rW=XZ^O,`UI`TIzM0|L-yL.zK-XNIVMEMMMKMOKLMfE.dD/PIAOGBNGAGHJSE8_B/DFIKE?JD>Y@0W?0X@0CDE@@@;;<<:7:;<;:7;978:;A829::99:999888>72986777976775765953566853444333222111///---!, (mn- E@sq`s I6IN b,"JVB&Aچ@hq&0E mDF]*s i$ @hAefR2 8_n(!15+^4 QF j@H5,QDڒC|X VnJe./׶0/,r%,VL2s5D¥*B>*$YCDEBBBAAA@@@p4.???<=>;;;:::999N419::99:998888777555566444333222233111000///3.(...---,,,+++***)))*)'%%%"! !, H`A5{ *\h'&[% ŋ׸EѡNx R4 Y=daK62y@'4dmPRknliN †=s @B޴Zɥ]i^% W-rӢ+^6^DLX1`@yD FlZ 7O.$t)O@;webcit-dfsg.orig/static/webcit_icons/old/plus_last.gif0000644000175000017500000000021713223341037023211 0ustar michaelmichaelGIF89a{{{!,2B P_ M~|?~!&G{0(5ND@MPHBH$MJd`) %O`™@ěp)'cD!1 7ظ 7D 蠄Ih`p'd AN:JMD:%N7"(^b ꨤ:hX JDjNbq$qꫯz B6 0F+-:fjkٞ[BMlM 'z¾oA$oNr»$pO|0 +N`$l%qA$024,3 <33LLJH'L+;webcit-dfsg.orig/static/webcit_icons/old/redo.gif0000644000175000017500000000013013223341037022126 0ustar michaelmichaelGIF89a!,)ڋ !Ae&EB!S;webcit-dfsg.orig/static/webcit_icons/old/newmess3_24x.gif0000644000175000017500000000225013223341037023443 0ustar michaelmichaelGIF89a԰ΦνͶƻˬѿ۴بן}}y}}}꽹礹ҕꔺꦸγůR蝳ϰ`ګАHEDC@{~~xkgnfYWeewwwssdt^zwO`bskps_V_WoUoDDUnUmTnTmrgS\ep^dm_dkraT[_dl\M\^bE?hZLcYL=;aYWX[^dXLZXUiS=OOOHPYyE$MMMfGFKMOvD$tC$KLMBKVGHJGGGGG@IF?k?#FGHi?&CDEBBBEB>AAAp4.@@@???C>7<<<:::N4199:9999::888777666566444333222111000///---+++****)'%%%$$$#! !!!!, GRHE)Q#F3˕ t-IrXr V&'9@4%ȣ]BhcDd;䫒~}(8XI A x0bRa"Bl޼똴8D#bHM=D6$D`Í7\3B'2Kࠃ7@1E@ K(2Np N#4/LQÊ,Ȣ(bÌ4Hc%%Y,S3A%M%8PK 6H`Ç#FfxD!!ቈII"H " ,A͛8s޴ЀáBfJѣH"%H*դիTXB E0Kٳh1l`upʝK۵(po߫ILx0xǐ#C6CB:@̹gN|35]%H^lͻ߼ %⢹УK *hν ËʕˎѥˍA~a.ҁ*^V | b|p` 'ҔrJ*J,`rp(J"Qފc"h8<@;webcit-dfsg.orig/static/webcit_icons/old/skipthisroom_24x.gif0000644000175000017500000000222413223341037024433 0ustar michaelmichaelGIF89a}}|zxtѱͪlppo쿞kd\babݞnPYLhhgfgYe5???>>>H:/N8'64-55544433322211111280*20////...---+++***&&&'&%$$$!,cH&%aCM0b "F)\ч"@P#)R2np+_pr DBp?r"q2ʕC0کg cƜ8К+RtA5B#όR,HaaAʑC[ŹbD"*Bz'Qa) "QZ@ɲgS'pd+OTrM%=bΨy`*W5ҫV0F>><<<::6999888985666776555444333///---+++(((%%%$$$!,  H*\ȰÇ `sNY5nǸENڳoɮeUN2q͠2myRmx|4k\q3 Y`5i"EK?Am)\\Cp.elm@e*D0,;Xs냪I#!Atv  ]DJjT\ahXxu˽p@ӨIwz4&F0A)%J4UJ #L;X Zh.ӁG8x%(ظh_3;I.AL%﬍tUF:TE;HG7VB3c@'DDDDCCBBBLA99BL>>>8>E<<d`Î)/f9vq[PIW(]9s .xdNQ*a V-N:ZG=ޒzġaj^)P-Q7 !%̎"8-H2 kDU 5̙e,I0ika:Ũ# PށN4$Kh"TB@'<6Xz`6&Ppb"@@UdI FA w% CQ|HH(H@T$AV9%Xf\.;webcit-dfsg.orig/static/webcit_icons/old/newmess2_24x.gif0000644000175000017500000000230513223341037023443 0ustar michaelmichaelGIF89a;XluȄئ9Êّՠޏژ৵Ō찰¨֔٤栭С̌̓ܒĚה~є{ˌvzɖy!y!w!oss"{s{k~hgfk$zzzyyy_|tn`w`wku_upppZnVgzVg|UfxVfrZaiL_nX[^FXdKWfJW\JVdOT[VT5QSXAV^HS`XOKHR_MMMFO[ENYKMOKLMDMW7PZIKOKJ5NGCGHJJI4ZA/\A0CDET>09BF4CJ@@@=?AK;1:=A;;5:::<;38;?<:99999::99:888992777;62<62578679568567566444333222111221///---!, Hək^Ƌ5 (4"0u\\b,ITB,Ś@aHKMƂ.;Gu\9X: `J>oСZؕ?&L5]&LlE' y+ÆPKr!!HrrAqAŊӨWeGX}ԍFIU Z ϖ&Cx(AI1rZux0&w9fdɒz9 Q2VY:)q@R3s~Yx 鱋#( N*h'K6#A <#NbJ$h{CYȍDޘ%K c@TVqK%ue9+)d;webcit-dfsg.orig/static/webcit_icons/old/viewcontacts_24x.gif0000644000175000017500000000236513223341037024417 0ustar michaelmichaelGIF89aȻgNSTO.c?Zn¬Ӵq=:4h\L`{sfffzFƀcyh7مDC;ʩM񓥥ŻUQE䴖E{ʅr@^bi333PL/ݤe?=0r}yl5,JIAIIIf׻mY_dnnn}faCVokExa\Y5ӟIR  #NPУG$`RJQDP8Y0ҢBE>ruP}_qz} xڡf̂)ID Ї%yIp }q"VHP .8 D%X5xq xR1В O^X^0Dxb1G eHBUQpPB“  wad[*+e`%JQ "Cg'dA(H;webcit-dfsg.orig/static/webcit_icons/old/chatrooms_48x.gif0000644000175000017500000000130013223341037023677 0ustar michaelmichaelGIF89a00}|}|||zywqlǽiùhaaha]xWWR}P{Onnnjjj\ZB\YBUUULJrtHrxk|{}ijqVFs^efCSqsywE{DBgsZ|m{tˮo~z6ԭ0HE/ZAzK!,Hp@ <`"Cxsw ȜIs..K)#PPI(#oe  JDXp&'0 S֬b,;`,nQ{V_l;+]H`ŞU.1z5+-Na@2ͣI^S2{3у"r'@+0jH&Q¾%q) 3 $hBիxJ@}z";Z˫<\1{iQϿ;webcit-dfsg.orig/static/webcit_icons/old/line.gif0000644000175000017500000000016213223341037022131 0ustar michaelmichaelGIF89a{{{!,0)8lXHzLo6;webcit-dfsg.orig/static/webcit_icons/old/citadelchat_24x.gif0000644000175000017500000000205013223341037024142 0ustar michaelmichaelGIF89atssstaaKJJKmlӻK@9@66~˿W~ɹF˺5ʹ5ki5595>6zzzzzn}5xxx{4z4vvvuuuuuawrCtoHsnHjjjiihhhhdddbbb```e_4UURTTTRRRPPPRN7HHHFFFEEEDDDAAA@@@@>3<<<;;;!, H*\ȰÇu8rN>|!cI BI'NK@`rJ8 ܩ@*w R&(]ʴ9x1͊"ʵV `EN ,]˶ G.x e؛ 9MDAp+^"'("Z 7Q qicąϠC0f@*{vȐA4# <"%ɐ!JhAcG f:zSGM':IA,ËO~|@;webcit-dfsg.orig/static/webcit_icons/old/textcolor.gif0000644000175000017500000000015513223341037023227 0ustar michaelmichaelGIF89a!,>Ta2u7taui;F8 "MĢh E%s|ԪS;webcit-dfsg.orig/static/webcit_icons/old/spellcheck.gif0000644000175000017500000000015313223341037023317 0ustar michaelmichaelGIF89a!,<`oNa^ G v`,4bF<L?P "u"ɌJh;webcit-dfsg.orig/static/webcit_icons/old/page.gif0000644000175000017500000000022013223341037022111 0ustar michaelmichaelGIF89a UWW2eq,,_~~!Made with GIMP!d, +I)u^{B(@Dy IFPB!<lt*;webcit-dfsg.orig/static/webcit_icons/old/year_view.gif0000644000175000017500000000047113223341037023177 0ustar michaelmichaelGIF89arύԬ䗷עكҷzkoГ^!, &dihUp`W| a Ml"ШtJ YvzWQaLe|^׌0bP;^ rz|x ^ oifmih ~xy\njh } ցM0+!;webcit-dfsg.orig/static/webcit_icons/old/ungoto2_24x.gif0000644000175000017500000000125113223341037023274 0ustar michaelmichaelGIF89a}|ӲmppxhojQOMbhFEܚihAW^甔V{|\{[xxwvvvutsponmQk}}}j~PtttdbbrrraxsMPuOt_iMiX\iii[ZXaF>g^^^qZHpZHeP@UTJmN6aPDPPPNNNLLLYI?HHH^A+5G^5G]X>+V>-N;->>>8>E7M_RF:DPD?;6@KB=;L;0===A<9C:57F7=D7IpRTYYmBo--oqqbdfhj|Co*wp~tvxz(~MslSVJegiksuwy{Ï&1-,21`o//l+o"''">rɡ]=%M絼|H333_sV>96ЈSnnrw•PSUx[yyycbD-O&VpӗkJ;/N lP:śHnwRC8nE<<`W"nQn$S\(4*BJAƏ开rb(/6@[g2 %XpJ?<<<==7;;;:::99:999777667774555444544333222.02***&%$!c,cc4RNc2SYYZYX*,58>\)0$/7C\ EHLK1FT"A QU\\WO(`<&[V'J\G6^:I\S\+\ _abMЄP;\9#%܃P\P=\= cPԸ8xw@PB~U\!Bb~3tۈcE;webcit-dfsg.orig/static/webcit_icons/old/numbered_list.gif0000644000175000017500000000013213223341037024033 0ustar michaelmichaelGIF89a!,+0z)Lf&ǂ0$Ed > ;webcit-dfsg.orig/static/webcit_icons/old/monthview2_24x.gif0000644000175000017500000000232713223341037024006 0ustar michaelmichaelGIF89a333dozNaQO<ղ W·ɦk{AQcshd@%5BA?3R%VfffxsLߚMjǽb|{lI^>M^;62xZZZvBBBrY\!fZco^QwѬljWiRJ:̙RRR]A-gtu|||G:::»xf3toJ`|xWέfffJJJsssŮBRQHN ii\sŽOlzvYRsϦ f{|h"ԯtpJX\YFnJBB ]¢V^άÅsBA6kkBZdqq}M6R"WoxPND󺽵k߼r(!,WyтHDlѢAPԢ*x ,TR)( `9!?KH,31@z\⁨$%R.,J$%ѡ#.<ᔃhӪ=KeK&/DUvLl !M H/&fAc 0`a4(# fs 3Ԩdme-i9cؐG+@dOmbh#c;# +<1aG$) Ѵ=͎X~͇F` ?e&&8 D'W](,R|,sFu#hPE d <]1!) )@I5 $1ƔTa(rH\1%?6 d˜e6q_p)';webcit-dfsg.orig/static/webcit_icons/old/taskday2_24x.gif0000644000175000017500000000140113223341037023416 0ustar michaelmichaelGIF89a}||{zzyztsͥpqɿjŻhmhhfeehb`럘Za]^y!^t"ZZUp#XZWU}{lzzzyyyM~R}f&S|uuuPzQyPxLxb'PuOtsoKNq](LmJiX)IeHcT+F_E[wO,YWBwJ-?TmATkASiBSh@RhARh@QfiF.LJ>>{2?>7?>:==:==9=<6999;:6888875985775776666664554444533443433333:2,!,Q HP)"2Â#y2ESNDJa"'X!g!Z gLZLlP 6 % MAx&ȩi+Bzu/U4KlcJt))&#ېтI2e˒$F}G\')ܑwGOX` q!!8„1젇!|Z,B"cIjh#R8T@;webcit-dfsg.orig/static/webcit_icons/old/savecontact_32x.gif0000644000175000017500000000156013223341037024213 0ustar michaelmichaelGIF89a 333=nԗWYWCfn8di;;;srrfffg{8ART|Ia^cjQPFKI:E:PCzRW]jbb~u}xBOSY{{{[[IxrnPNB??hİHHHLuQO=cTll@@@}T즧RRRAuRfffCr̈́OZRBQfMKEMYvJB:WVV{ssȾiqXXXGLSi?uifM@l:dŭF}Zf!s, s)-M6M-)1Z6 Z1^k5)^dH?5-@H@- H& M6fһf6΄M9]ӻ]9ׂ-D44Ds)@..@bX9f&f9XİsЄX1(>a-ʠR!FPQ̑3UTx l ɌPd93L^@#1,fjBnx`Ct P`Ȉ#ŊՂp-@VAI@)R ȝ+WZ F9ܞ@pa*s8 -+Z%S6<33Zْ$/-G1 '[v@:C N6BM(#nF rb Ep#:pZ ()ʤXdއnLfA!؇{X< A ;ւD ;webcit-dfsg.orig/static/webcit_icons/old/italic.gif0000644000175000017500000000012413223341037022445 0ustar michaelmichaelGIF89a!,%Z r&." %wiLK;webcit-dfsg.orig/static/webcit_icons/old/taskmanag_32x.gif0000644000175000017500000000236313223341037023651 0ustar michaelmichaelGIF89a ~yPoIJJyhTnxjfGWi9::pb[XBoz񗞥333حЙwwwarX]bOM=rx~̒~@?8ɿj]'''RXWtŕ}KOTUS?B:BssoI뱨aR!!!Աit|EIO`]DfffeZRBs|lDC@zmiH۝GD=b_Dvss{램LRYTTItuqLSLMP!,  H*\Ȑ V4lxbÐm0P'6=9Ћ2.| f%%"ʅ,{a'@@Dpl*O*,dswwp}4ȑ A+\Ywk@Tha* *8/\/$ (n@0" +A0<&?QcML`F41d39ÔTV90PÐ:,`hih0ixy@8DQHj衈&*P@;webcit-dfsg.orig/static/webcit_icons/old/cut.gif0000644000175000017500000000014413223341037021775 0ustar michaelmichaelGIF89a!,53Ki 'h0@s,SzI2K*Le;webcit-dfsg.orig/static/webcit_icons/old/summscreen_48x.gif0000644000175000017500000000315213223341037024070 0ustar michaelmichaelGIF89a00WߏV2 ذl;=AȵB]zPGBc,!VX33wz'h hᎌvb#sss;hгgXFtn}jHf̱IHB9AIصJCzzN Yx\ȟ?VXb!ըX9pr+ 4a8}i`f(ሀ"܂8 Ɖ#|!x$8-)fGq/MLW$9_Q3ʇrp$xQ@ P@Afe]zw<*ih1mrYbpi j2 "gb dwg[_֤5Uꬷ. ;webcit-dfsg.orig/static/webcit_icons/old/savecontact_48x.gif0000644000175000017500000000220413223341037024216 0ustar michaelmichaelGIF89a00333CShuwwyfJJJgDYspzNf̂{Cfff+ipop:::fffsSsBGVPPQoj?6:R^9\TR=ZTr@@@:{񈝷ּQjCBNˍn̥\.<¹i,Z(i Ӱ&pL @[#$ߝVBw!pXμy9>e-0ݹw9Am7aJ_#zMw[S8~^s 8nx~laJ y*xbq8@ 3X"5? ď'h@+8\K=4YciX`m!P!ste9aQN[W"%steŜYxZ^"X v@ Ģ4pD (E  Jp H4z'/PlѦ5JEajkk*!U#,^0T2[$-({mZ t+*P.lv)1vҾj;webcit-dfsg.orig/static/webcit_icons/old/bold.gif0000644000175000017500000000012113223341037022115 0ustar michaelmichaelGIF89a!,(ZVO$rfJ媲׍|;webcit-dfsg.orig/static/webcit_icons/old/hr.gif0000644000175000017500000000011513223341037021611 0ustar michaelmichaelGIF89a333!,ڋ(@ɥʶ ;webcit-dfsg.orig/static/webcit_icons/old/minus_last.gif0000644000175000017500000000021213223341037023354 0ustar michaelmichaelGIF89a{{{!,7pIgcIriiܾDA-zcQcjШtJD;webcit-dfsg.orig/static/webcit_icons/old/plus_last_no_root.gif0000644000175000017500000000021413223341037024745 0ustar michaelmichaelGIF89a{{{!,9pI8;(@(!h Ak8NOTN?L0b"tJZ;webcit-dfsg.orig/static/webcit_icons/old/prevdate_32x.gif0000644000175000017500000000246513223341037023520 0ustar michaelmichaelGIF89a }|zyyyvvw{wޥݣӲsr١ؠ֟αjhfed𶹾ﴸ퍹챱뭱ꬰ꬯髫蕯Ъ觪`~~榩|}榦{|奥Wy䤤xwwu⢢vuts➡rឞqpponߜm߇klߙjiݗfܖWUtTTTSSxwSQ}}}||||F{FxxvwwwzFuuutttsssmmmlk^jjjgf\dddgeZcccbbb```baW___^^^`_U_^R_^U_]T[[[ZZZ[ZS\ZPYYYWWWYXMXWMUUUWVLQPIC D POHPOINNLNMGLLHMLGJJJKJGFFFDDDAAA@@@>>><<<555333!,  HKY*UVbB!o:b͢OHOʎODjSA8j(S%SVMJS(GnEI*@yd BZvbׯ`j*LCf2|и#juD)ZM,#f (X$qsBKD,X1e5#īڛiq9gFx jl(ʕ}#lj@P_.sIEΔ1q9N0.TO,"X# W &D`` d 68A5x8&xp,2#|h'LcMhbc5)$0aK `c !5PF &L#E ,ɤ$/aGo YjifhCn6cQ{$ d h5Z p4H3"ʤci5$1Py@C ͍&Z)ijU 38Ԫ j@;webcit-dfsg.orig/static/webcit_icons/google-32x32.gif0000644000175000017500000000263313223341037022464 0ustar michaelmichaelGIF89a %.&/(1)2)3*4*4*4+5+5,6-7-7-7/8/9/9/9091:1;2;5>4>5?5?4>7@6@6@7@8A7A7A9B9C9C9C;D;DF?G=G>H?H>H?H@ICKAJCLAKBKBLBLBLFNCMDMDMENGPEOEOHQFPFPJRHRJSIRKUKULUPYOXNXRZPYS[QZR[PZPZQZS]S]T^U^U_U_V`XaXa^eZdZd^f[e]f\f^h`ibkemakcmdnkrhqhqgqmtjrmvryr{w}yy{w||ӆ͆ʇˆ놎֔ДԕєܖӖ֘חꝢݟޠߡաء٣ۤ楪槬驭⬰宲ۮܰݮ水䴸嶹淺綺縼㼿ỿ컿! , @ #J(ȱ#+I#ďs"hH˗/x8#j7Yjӥ!*TL[ȐKʴ)=D"(ȍիn`"7w\1MUAY˶M*]4N[}I÷oHLS,i/}cc3ylFSʍ31^ )pºOLqq-)i,׭,ӥ.|c!`I]*УCŴ D%$]T/ /z!G&{*ă6T4* Cɤ@ti0qJpL)zNR$h'ZA2( (udpF&\B,2CV[@(#vA0 + 04k/#O lp PB 7l@;webcit-dfsg.orig/static/webcit_icons/citadel-button-32x32.gif0000644000175000017500000000301513223341037024121 0ustar michaelmichaelGIF89a ```dddhhhiiilllmmmqqqrrrtttvvv{{{{|~׀فۃ݄߅֘RܨmRԷվ!Copyright (c) 2011 by Art Cancro. Released under the terms of the GNU General Public License v3. Barack Obama was born in Kenya.! r,  *CPCyHE~tK>|IRd!?YCM $P   *(Xa,ôS<HJu*=WVskקP  gSE;pzu 5`.SFC+v @Ǝ E :\YȎCK E97c^MGoc3&qrF{NTD8QqӦyAD`7lN#`DfD_Q6osD`6l@e.@HeYW~l!j!Um (!BRѠD4DiHFce i !h!,֘Fd1!@@yh !UO=嘇f!e!"Pf 8@TY@"!Lc`IF0"!99 R)m(ۗR*@vǦ{qh|j@Q@4|`GhF_ RxE7 *Rp+ZhAk6Z0a3ŵf;C0@Xk1@$ k$;webcit-dfsg.orig/static/webcit_icons/essen/0000755000175000017500000000000013223341037021053 5ustar michaelmichaelwebcit-dfsg.orig/static/webcit_icons/essen/32x32/0000755000175000017500000000000013223341037021634 5ustar michaelmichaelwebcit-dfsg.orig/static/webcit_icons/essen/32x32/back.png0000644000175000017500000000133013223341037023237 0ustar michaelmichaelPNG  IHDR szzsRGBbKGD pHYs  tIME ;dXIDATXGAjTAD " EPIQ7A/ x< Ľ``EvbDFLW.L <$ ]wu2I'gƞK6 Y$֣7ǡW/-=,i;H$ |ҫdÉܝAx(P?ʃ;'!GrBADnτ '"Tu(PTNL ;]m4JXg}ojsDFG8A&ȕZeBM KDa{Vnji #ѓXD]XYhf$}#X}DC"a=lm+NDkHD0% 0ځ`u1#Y x:M(ajV{D= 4ݹ 3%VLDžp>x[="L׸v;E?Z1y/&pjFS ~c⺱hFuhL)N; RH$ ! $2)!1%a!q'`(* 6v xd_ɷ!IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/addcontact.png0000644000175000017500000000403313223341037024446 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڬW{TWs;w;bXb(h!44JZIIT4)jGll5nl(M(D#FHS75Pq ۲؝}=~̲.bA$ߝ;s0!Ə{JOM3ReBij!0:H8yehph_?;oq֢4%sfK}}ӆwMƇxi]ӖlN.F4L @L05Ldes֮_l *3B:6 mL: Asj5?=ڔ0 &L˂aXS*ANkvg V&ݖH$Lq!",AF؃^  Z=xsJ%V;%x1Q>wŹE %9w OM 0 jx:eK֠ Ŋt&FDDk"$uNQ9e>!'k[0kr !A^ @xHQdsZuH|$(Gy뿌 (|. "7B1OXWRiƊdyg7 ŭI/|1;P(`hjj?WG c]k>ڦuv}#u1|*]CߦB4q''z= ֺT%tϏU!LbT.gϞELa8܃?=zzz\wO?=O qu>RR[kY\Yhd i/xj&MwY5-Van*7}>M%4Ofe㓖(p])V;?p6~S{2$&d 3+3AGEk}P~F^Fmϲ^i{H Cʔ^گ>9.OVy%޲CWIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/account.png0000644000175000017500000000201613223341037023775 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxWOA9cTMĨ11b4($k (O$!@D AAGK鵷zbfs7;"!v\Xl^8gMlu_$I􍡇ix=4v;j]lI% iT:͟υm½*H$W 0 M9C]s:whtg=~2($/rŃIGLNW41 9LVLQW{-KiHl'A$ .*(#^~ kqwTZ%29gbT0%YP Dj ^'TFh%5:mEK7B+2gfcu9\`S0($])eGPК?V~t³30?c#<- )sfd17Va3Kܬh4 Zo6 FPREZt@^GWYsYq遃PVV9nHKc$I8758S5B(p{Q.sI-m`D-&x+gkQ|xRlTظuYb@_0 LqJ)||*8y4﷜jeӓSjdC[ ,..ػƹ F#+ Ǔ:FG%͛1Mt';jּbK7-ORN'R ]Fe y!`.PhہUU 5oѡNoO[q2nVJhD,u=zp}uK7je3_#J:X] $ oS~,IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/pencil.png0000644000175000017500000000244713223341037023623 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڴkLSg෧+:n)rsbobFPL`Lܟpc[39m/ҖkR r9 rx/'雞'â( vBWWGw5@:n`*X9 bCgxl뮤E}/o`CeGؓtBG9;7^c.EZ6Alx}6LCw``}!|Ag{_Cy>IQ@ll)ђfw">`A\CK#*%4Bh'htK5Ӻbֺ|{MX`&xBjI%:BPO.Ά$x@#lh%WhC\#-E-1PKvnA_Hƈ/CLEkIrBTb0Ԅ|wG. MAkM0!4"*+ T ϐ ˁ@O[J9?\Xo`@9 !GXD 4>X:ДaI#pu]!/^v;ߝwϞ}.Xel7)/,ִiM%P|FVh޸V55Wj6uuX.=-0Y䀋Av 6s TK uA#ss֟qOZP%cd&{}"5=N(i%zY ps_u죦VZ5A\IpV15`vXM>IbsO@E۳{ϋ>_Ԟ")74 .N?$ahPQ9)s2M4e… ƞS]"a|դ>c0=۹4N_ U۫IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/room.png0000644000175000017500000000117113223341037023316 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxWnA=3]""Ei"9 dLIhP!4!EAqdƙ'wƏlAƳ9;kf,nj3'&nwg4Wjyy?y^@٧jxl6,c!9ǫwdnX~A~{825po>|>y@HE3GH1ۭV`0@QPJUd9f' GU{'^G ]4пP0TVVI?_ N)k}ar XJnAd, O Dzfp",!TwnP8a| tQW&<i^8H|'dS1WRe+r)UT&&szF=%c?YϨT&JjqpKj_:7RY@B(jD:BNCq-H)\H(!ec+vH\姇! 4kw;)T#H.IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/activeuser.png0000644000175000017500000000373513223341037024524 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxWylGvw8~~`5$uCm"JH& LF@*! P(1 5n@4mR.soϮCIXۙٙ}4 GO _Zg-?wȨ̑72)s zY:ьï}XOROJSܺZ\bUQv׾zĭoC )3D<=*H'TvvO׳J3cf,$IsMWk 0B0dp ӊ#ծ QZ nh,3iiBU 8 Z lETmxL#9Ljis R̢\B CG@d4tZ|ƈEpp%cuw`FQQ)W,Vvw a%&MM M?i3mb`?m)b#$>$9nOLl cݹ;/_e&4P9GdF+m Sո뚺|M]7'4 3\#*3iI;DܭV,Jb %q ⡍J:իR~&wmYBAˆ!ij 'v|z";"'ߝ,ʽ,޸i9~L7j:t %#/:!@V/}Сegĉ&0@gSp h4CV+WϧKXZg\QRz Z rvZ(UJgQo) #~̊&e]R( aQo^wGuMWKOIHFUꮰc.=w\gВbt_s(SC{GSTS&2UFA[uW^KʒkO s,ISSCzX3㛒lL7 >c(x11;XavS/"Ag}gφNT~#bȱ#Gpe&ؽoZD.dd͙@L*97,0mE}]g(,9Yȣ7:t"7L`d;&+ H(C{"rF &9u[% j(UF9jNsw\gwbΪ4fAzBtGqΧYW7O2Mo4/h.MhEjS̿/^SIts~e#ZI< IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/blog.png0000644000175000017500000000145413223341037023271 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxėkAN6MƀųVAQVE{V{4B/VEA`=yhMbLIw7n |?~ͬW+SRIe@Z*Lb6AfDtZ64pڶAHi:YxR!ũx,ZVYLj:Yx\Kc"s"" D*骦7g{Q":4iMTx ( 6Dց/9F+x@_OdtVIN"/4?oN&_8}dp/,;s$q66dFYZ[/ۻһw!̺L\}"g ;h).ָcE%X K܍<8xtDGWtL +`m(AؖJjC1 bf ߋԜ&;k5Z{t>`3~$ӹ. nkH6z5X\Ii4OoތĎIC&jP M r_UR)Z)` *"*HSM"JKP"'L:[¹ϋlǡij{9YFRFϏw7ο;6;i[{fI)BQxm|ž+ e=?ѱ]5Y5ܾiuGsP76f4_1\ex'](x82,LYc`U[/o+ LyΓ^΃90Le^ ]6b!9%1V X]'oel8 v!RQ" $_kܜeYKTe߭:0!D!XGHs"YM  K7I@J~0śADLn#:w%LNVp?WG! > ~dE0^]۶"CKK3ʵ^.A$=SV Ym[1iFcQ*LN]LwI?g yׄ$Y+i8XIFAy8(pV6Fcx򩓓#.Q/Vjꛅ=9=13_CZߙy2="nTz#U=#IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/pen.png0000644000175000017500000000262313223341037023127 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<5IDATxڼ LSwǿAt[fVLf<ʦ$ۼ["B4dQXL6'&*`Tdx ,YC6_{_>;ޯx<0 {pZ}in.߂4be>E"އp?.ļ>:up֖Jre$sƘ[$9.@@?)1Y}:zEMIX^fZĂIqotB9t#+b]#;4Vl.4ܵB]&fݦ4`Q!yf4mh? !hDR e2?ϜGQa1 >Z7k)`m'o2^sÿ ]O_INա`>:QIi߷Fڪgi}hB!̈z7,.N H|9wia]ut0{m B1U(|ǎؗa<=X,T*GNv6oBwwwNs`'o8G`:YYl9ccc'5ev c  7Kfʔٳ7UI_o'hJL&\."- ._YR^^ PUUoX FիTudv# ;zD"lw8RސR!#=bj&Pvȑ >BP!''gSk"h:QJhZu[m:G LrjEfFF5Iژ էNEDDL&wmm-$RiXB|IJHj5VWW#99%}VU#;t~p$IV\__?)$$Nd+,,lll;wnP'gP$;&>cI{{ 2gz`ԯ]IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/check.png0000644000175000017500000000274013223341037023422 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxWihTW̛y3o&IԨ(u&j)nն"P)VՒ%A&MkH@((HERRRJ@NId>oyC4.z0wgs0IO7m=?gNK2 7D:Ue+O.z>}`< #96uiU> ~A1|eUfc3&턦>Ù_9zTA:E!W΅_>v< R"qUJޮ~\~ҽ䭌P̍<!-&>9lPGӋ]j9{=PTC$m#PUUCo.~\k6ڛ6 "Bѻ ~mMcL+VT.z97!OFgmהo\B0ڏh"C+wW(FEsWc1yګR3ODg~ m*MʓzKJZ_,?pd}Ug2%&`4Xx# 3گ%x<lͅ6EDA9"OoyŽY!*J*TDgMngWH>@4釘ah2yxstBauz$?-,=ov-MSk_$G*AX8nrr܏ܒu1]vy$&DIfcӫ!.GF [ 6KAg*#YB( !M߳Yf<ǣ10[邉=bn Wyo*iݐgѸe]%ᇀ0պ$2HߑLŜ_N2uݎaf[g$Ջ=Jfc;ɫk#p|zB}׶q"}1+3Xt%;_T8aCV>yԉTF!<% l'o\5`Wq" "plJ7ک":')*X BA,ΉsBeyԾzFW,$P_0WIPB`[Ζ'@H$%@D!ܹדKbEas M%$ADT@\ܿƢFP@OQH*ȅT&Y,'wCs'Pr:Q'Y9+B%ٓ0$! {IEl PjEYjfP$!2!H #B1?&Jb'l{w`TH睳wkB27;Czkإ6Z o`d9~lIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/ungoto.png0000644000175000017500000000157313223341037023663 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڼWMkAYBV$1Q4A7x'?H.=? ? A FUtj骶fg{BgWfvfzy<|5aƷsfqa>8G#C6&k䥗jra/ v(H$PK;gd"lxQ)@p;D~r dL"(x=>qQvp(qOK V* \G*}U[0WzB@#fo0މňR=* _ hCs->[KRafT[,:3G^PU!O[@a2\@mh)@k=ODmW"[ц(Dhn`t:XSȂ&1ϖ*9^_`5 ,eKp)8A[J?#Õ y@0\@i~隃Db jxx7JVjU K Z(,J g1Ц2$ Ia;~~g];N79{gs~sfFH)F>܅0dt@>LO^OXٰ/:NՏ\sh w8ӣeI lE"_$)jO~yb-;S]^J9kã李vޓ6M!e\(M:iAj'99/O=wɗG93>:iv[J\ςa6a<_(q iZtK4_D'ǖB4>&'hE%"RP TJ8J8iӲ>-*!2Hfsu‹*#\wޓu4j̩T<>S~Vfuu]o=羚+ _y"T^yփ\G4VcRán{\?u|arfA9PIB4x]-/&Y[k 7!y>|^z0 + zOnwJ4O.dI/>{|i7M=ߥ ֌t,6L/,$9 W@kQ\W >Bдa&T}Mg!|ؚ,9 p#py*HJ\饥+ߺuF@Y/\,xc,K @N[l&> dܿu A"Fe:fGA;97K (XqWLf$@ϋPO6rFQkZW!G~ ؉2en|bL_^"{2fco) Rtd.E B掟sD:ӥKE$ N0hVeZ3>PVˎjWx롊#$hr'ҲÊ{_i&%Q0l (kD3[G:]F '"dJ,$ڿ '&"Y 7?~VXs3&Sѕnbj 6w yr0Uhഘ䎬 LA$h~aia,K FE$3/ÐjozF-"w=.NE,$${{XI:& ]%$YdB`Fn2al_vJaMxLΟE|Bb[Aailey .A C#"%e/zX$6);C^Dg}TB4 ,a-944zC(P!|dd ˃6-?1.豩裨&#!]=0-&gKF4@ktF}06:~#4^(הW yxǀ 'DQ,ǚn~{_Hܩը>;3m퐟9`tԸA~W w#pC2'l6dc19R^nO0,Tq}#n[7'\KJWʴP?]B'c mat=AIi'>Jbᅋ׻ ;3ADzJr&,nVp8SMQF5}ۅS!JbhoBL=xB2Y\^#?˰vbX D( $e! )Ҳthi *(Jd{ϷmY 1s D.>|ཛྷ>`A|\ H*\]~za U,Sg֘r2 E.B pH.p'Ȝ PqO9q\9҆Xڋ_U 5JZ}(awY\#PT=pݼ'UEur0;h(@8i5{L'9yn} >zZΤ|HJ>t Pºmd@ 6UY޷\&̓J("Ѝ HDA5&TЉ/iI{B9pnS3{&sfxG1waQ\Lf uZbmS#OeB)x Cjξu"U$dK+]q<hC! Rނ#Q^+QY: 1u"<M)ϕ/C ^$o{K$z%uJ8 1w͍2 Ѡ(ruLYXqkѩ+,Gg1Q*kn682fqUάJ+JޓVn`6K2X\pNϮ 2EVOpDiIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/summary.png0000644000175000017500000000444713223341037024050 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxWkUW>0Cix"ԐJURCl|4Q)I>&Vkb+ѦFCXL+cf}{l}af(8s>{o}[kc(,'^ݼmh+i!"L{vKs B'2ǻk W!I9H!YM)?侟;V`3#ϝgҟ7 kM cAc6M3`΋QDI/ t}Kyy4z}/}ua"`(DµcqHI2Ȃ hş u[k!tϽ|߿c=I##&43:vX1 _xLg5QZ\1xe dm1(^IF/X|~K_:d8cyboGˌ#k[bC)`eP8(<ԛKyA\` q+wK[Vm1$hmNa&EMT^*/h (c,#wZ,]H$+'-(O?w ($m9ˑ"+8E Qdo,q{(uEVXߥY1`5G'X¹ַ̿֜I+rƂJmf.)2 d5U3$Ѳ(Lm}"A"LעY~C >7IARXF*ӅRPl1:7 +0MGآL]+1oRL[0Y׵fŞ"BLfh凖턊CYBj!hY:~Q51O[%k0)o4TȬ?d tטL2f45e@%ihB_8_JQsF_h1J?Z3Ċ$,iM-$x=o0[arVyȏc/eBWt`SEkjcƦBT*KN3x0Gg@ԅRvF`> > ϩo-0w`iT(~ Jh6>AFVT:i) KV)u&թ >熙Yʥ|raOԛ:Nyҗ[^l"dW*WLJZR٢'j {BtVӘϿ9ex\]=n4m!+Pk([Tx+F#yӉ^#}FUj*^ n%FtZ(4JzQJc-tf\-IƬwS6Z!A&ʟz6+-`vxcݟ,/sBt6&wKc1Ǚ4ǡn*oX uGv%(4[mȼͨGNVէ7sjLEq 횎>ꉏ?@kɌY{^ *Z{єb(+19+un,jeJod(rG/_yыd"RT٭k멟̷IvƦ9)qLMԪZ?@ '_[ȑ0 hmZbgFjCmrcn΅íXr&Wv>yF/3:-KiPsb}t[&/,ҭwt uٹ- ^S#ۍ摾EIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/contact.png0000644000175000017500000000237013223341037023777 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڼWk\EͲ[lmZi#b(QB|Lq#APD *4 ]icۤI̝93s?vs?9s""D[& $Ij<г*NHRގl6V\;o7uSN-g`08؇Rlwln{XTt&UVo}Etqf;3xy.3}!XQAf < yO>GV i_]*.x} O\5fE ˟#  a@ ?l?o[ VsZ\ᮟSN%N`)4尓7BVIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/refresh.png0000644000175000017500000000312513223341037024001 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڬW[h\U1wL6LkJb~H)(EA*I U!")(BB R i$ssg2ӹ3Mϰ:g$!,l`F(C~'6C?Ϯ[y~Cz2Kx"Vbۺ _kaG %h,S`Ha`H0tҧ6@ ^Bכ2 Hw@Vdp<(+ L许VX.}0{q#L td7uFb X2xLx`o9^LGX}=xLUg5>A-c{*ѕ 8=YAlӳkg,UXֿuE^C[xxPб02g{@(n,n)$nsK>!yrp-[\ _P3@s};/Uq5(;8s*MxuK{q(ꬭqfKO8z ޱ x q\'8k5_smZ47Yrq8F\|3t=DtRldWv5Y9dܪAr8j1kGD7Ҫ]3{Ы(4cÏ"qOqdɷ#BVQX-`iigҨg!hGPf~A!5_PʱMk-sUK/-zFLmzegVyW"o3!~A҆$J;"V=^ !ugeMHf#<Șς˺iaD.j[¢=b Kjs\~2_bqZ@ݡ3J""W4Z.62t -"_]":1FerA7T\TAZmHs]0+6D#%]A0>7:8m ='=ۂ|[" ٘&6w ;Ugfyu| F<*)1bm}(`DU@HY坈q\H&nIz_鍶iا4~~^#uޯXr,hh\H*14<+BO80eAJQ ,afUXIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/forward.png0000644000175000017500000000131513223341037024006 0ustar michaelmichaelPNG  IHDR szzsRGBbKGD pHYs  tIME/h@MIDATXGKNQ\^"1* a 08!n[ G(Ɓ r roӑ'u:2`#cESg'q0c!$0bt|ѢcIm)#&݈dSպn4KњҕzL5Ońl R2w|ҦP(eF6/fՎLjKW0%hh?%0W'߽|!*?+>Ś$_wqNE}[.?۠ot IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/feed.png0000644000175000017500000000232013223341037023242 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<rIDATxWkedfĚ&hUPOTo>*kE}(%KQIsm{yov'#8;󝙑c?%>.׺;g ]}dOHo44Itr(;9ʩ( Ь='0Ȼ޵00t9(φ{NFZgӵ.[NÀf-}JyKd`b=o +- ?PʮZMGPSM,0Ъvߺp7<2W(.P_߫8eK엍C@XL OF-WLC"&ut o_s[䈆OsVs3_Kgg}պ_lIz` \0Ɖ g~a+睎#\a`*6j@\mG/}͟k1M.4vELOG35'Iŝ+CAyLF NQ~j+CվSm &m}¥Z7pVcy{EK}n} HP | :zH@n9_oQ$II$Mv Ct|W`W]IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/email.png0000644000175000017500000000213613223341037023433 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxnF!)Xft-۵"Avч貋v٢Pt]i$A+DR%eKRb@,)s9̈q:/z+@;}7oTW 2Om76~-Ε{4=?ë߿;_|=?k3d N{|Ke.:PG8!d3EROh<|:zv[Kt# l-<.)DtC$|m1yV vŽM,!Yb`#)m51t},BZܥpֳJ zV"-ZP`|HLx; $\ĸ΁w$mbc\e1P.r`?'TrxaӒj:/hӨ"Ń̉2>bI"hx"Y.~sIuxPt.1.{;.._IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/taskday.png0000644000175000017500000000211313223341037023777 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxW[h\EflhKBi&(II@ `O  XlM[i$TABVے^hi͆?sfΙ9 d30{?szfnKC-Ӻ{zPOY5qy6j{R A݁ܧPzNMO!s## Qyu.xH)""D \w[YĪp,h*{B)aCa E,}>#1]Lx~B@2(^l6 㭏>EΧ=Hkecd MYd7OP8DzvD̜ q@3 Du G5E@wDƐ3Z ^, '-" e馛yml?ϱM:@vɜv\`SiC&\8 _8 A.8bD"Gǯ26x#};?~Îg3|MZD1 :>ŖNI槎MėggkzpT4kU* 7 ;%Ŏ΅}ߒ|F3yṣW+ͳ /b<ފDlv$j}X&{9`e_Ýȹ*j@5"1gl (0T#+ɀ/ 6L&37beg=[u~8IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/task.png0000644000175000017500000000204413223341037023304 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڴWYHTa>?6jnh긴FE:"Z V[QPR/)ZH=h"eksosgQ9ssA4MX.WV RG?%z϶,1~>ջdk )6-)wV!Bbԓ/p#H۠¢b݇2S^]7,֧-[KZ8EcN篽Y 9Yqi Kii~ϕ H$V_@"7ɤ&*vHH9*I18S;<--h $L&om? !@̪,|[3(8z]&G!""x>06QmϞ|N8Tt< XELd}K)ry ˴FbX6iQ#_qcSe@ H(5q JӸ-ry A.uQk.߉Cڐc@nD>t|tYPp[5P.:uc4@^mmblHp&ґqI?7Gdm%zy<mĎ z=+oDIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/note.png0000644000175000017500000000145113223341037023310 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxb?:MKc Tq$akfP<ه#fa <-ϗ_isѓ'321M ,FR~fd~!M[H)$,q] ?k׬^/79)Zbމ30 18j0((*1:gp_?2&&%2}/1}`G'p/Z I(%, 0($`d\ˠ KP4|7 ?~bz1222031p3H 2ǖvb FSĶfؼ <#y 0F48!>pfoS5P=7R!) T5@Nn0&-XB?T,l )<; P1ɂ+Q!@DoH% T RZ!,!@D%%)|02"[3"E+)?edDr 3e"?YEv#ZOi[0Ad -Ĉ&!}d)*t2!=<Hh +ab"ݷqM8 3#ɾER,Ir$Ec p:`Ϟ=mw 5j~Nl!0g) svNQÁ8uh& ^`R=W?IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/file.png0000644000175000017500000000177213223341037023270 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxWn1{ppH (R$:Ro(HxDEGK@6ƈqR`B z0d{K )h mDVY-,V4 +(z9fRS!<ΛhQf0$,Pv5CJ'H#G@ĮiR%!/4yI`{p>b%pTB 6(q)ÒخF = TFAyV e`K ; pB @9,]LjL*$y+׌ l\\P2'1 *˳~ΤG=='EmM1R,lVB$ܹڃ{5d?NJ>T..lޮ:VMҋ"!gv\Ҫ2*F8 /97{t~lM9QЇqFH/Nty{S#y^5 TLpEq$RuH|d:PG]$ nS4R;Wɛ_/vtp7o' e/`QcDܾ7mn䕺Y3B\ ! ay?>f^|1y6um=ne>}/{M ң;o?G~HY;JzREu%<;afc.?K.;W*AmI%d_hI@%@gP'4ȗ\H&@_cmM8 7" +Jqap={klb46?BF@B#F$Z4 Z#pazƣhd0ZՔMt80`Pb#6|(JMP`xzs#hZ CHpV%a>+!toO6 de(KWQ$D&rj$D* 0iC~ۺiJݦ&._VB|VM1X3[-[LebGÑ@vr8 》*NC0~ c[ ' '. g%2bH!I^:U͈-fz3H(LM| zcV^ZpӅB?\~QcCjL*2P3 $٫ ۫֎ U1;O0rRNc_Ub&xS%lo7j 5_mDfGbqhCH,ʑ`ڸac~5M|D#C8q/$bo J1V%iٴ(Tq,$`|V}ۼz( yA(zz2BaJё?Q“N,IRFgv#q*'Ǐhdҝf_RO;FB NXcOO}Dž~IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/calendar.png0000644000175000017500000000171013223341037024112 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<jIDATxĖ]HTAϬW Cޢw!BIJ"KY"!v.DҚFDXZ&EDSDKo"̽wY̽sܹwu~^Ʀ&Z )(ec#R¾yM͢d2`+#-"5T)dQ=ykǜZ+?B)R"yvj.Ls [c ,+Zܰr*$F yDU-Ŗv9rPHew!0 \ ((Tvjc~}1C NKA`N'd9 TK9Gs Jǘk\:idQ:jFdzG@?"4n@42" 8fpa ΐ L u{BwV!AaBaS eEA>E* yUHYSss2MH}-5?)'/ dr\RZDۯcGeLM865*7L8%qeY<ID+娡uӯ: !L} /Pr1\NE=l]H"Qm g.n*ZԔu)h2x5-ttc`L* LKDy]sw׋[_;^`]eF[5c@$3X{s;۷_/REX%'NB3ކI3N 6`亰Zo,s }G2(A#;ޱa=c':]8{ 7 OIx{׊WnJ!<C ?ߢ}208fn,P%lj ?gA8rrx#,r4@+gp9tmMs&d@zUѤ Oƕ$#x*ʀgD-23xܰm$@1Lik2)DnքO#4͸xv䲠rZFTxEBS NO5FKR25 >Q^Qָ%[ (مInJYMݯ3d;!9Z\,s'Z|USdOtg2}12s#ւ*y~5BJ-8v_z"~_zh_[I?)})o토K{w3޾d t>8o Zpڄ0;Ih߃𶍬Vt֝B\ Lф+"g~k%뀌| q+8r}*/WmXN|_i܌z}_+wF y&8 }\_Wl8d9 jG ]3€oSj[ o֒|v0rN8`3Y:hಜm/7ju ks]E@WRjxV{iQ4杸%^QT@}R*C=£`xtDZ]K6@uK]7B$9Qt($L;9#:5]uNÂW]' XIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/nextroom.png0000644000175000017500000000162113223341037024215 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<3IDATxڼWn@PZP SHIK$ @MO@EhRHHi ޙafs/dw{o{?^<^3ե'LcC6&Ou8L~4d~ @rK?m+ l7'W I5jhDrrW]>Nj2Wj uPh,`, }7X8Œ,/\Q~xA 2M-|ؼhLt|0}+q/֪\t0-3s uU0N Pق!_ݺ~av`( 2@H{qkZabs|'USݒ#K  $z+lK _J@4갉ZJ@3 $#Q{ .&bd^KwVGqxL䆅>"x9?ۻO_9Aqʅ)9/f:ܓ}?8kdIENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/network.png0000644000175000017500000000154713223341037024042 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe< IDATxڴWkAIZͿ@TPjҜKDl'S<1$=xA"z mn>y~Lf.;3~fcۋVW%ms7k!UΖ(9ˑ7A1D$ɰ?3'=&b z}槳n>wm]1dܦm[d|!_b섞!6&{V@tP2"sd2R\JJY/&`CCr@8Ä P %h}a1!pX0:L]PN=ڽ#e qD-RJL OP`[uB`.b+ Xb!Pi/ D O10eMdxM{[uOH}NpöDv,Y^OT0LL b^@g9sQR?D5LHVeQ`@LN{L_)`nng' V+ե4mZ(8 ?=Rb]ǵr˝vˈv: ӌ(-0 bf `4@,c0/67\n |>o5i3t:v(k//7о&R"qʣ U*,-K3KX %ٗWqw ![RFCыNYU H5puUʇ'igRiho5IENDB`webcit-dfsg.orig/static/webcit_icons/essen/32x32/config.png0000644000175000017500000000352413223341037023613 0ustar michaelmichaelPNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxW[㱽d*[rtim   $*u Dqk!!$*P C (@^@Y{m=3u8Ϝ3wGXEg+.{ k0g}?JJ` 0l^OPj֎wuY0}IŸ oApY3sq-"ݳ=9 atURϵF_ܽ/b7@ء?D<Ñq NJ&)JQ6a#_kږ ^_qP77F[h"8' jff漖qtthO _\NcT//]֒ ^|ŋ ¤|>OccIg G `#0}4480@N*,2N B07w\x|433CDdfvb45=mk@gYbaXɄ7;v~7d)>7gĉWQ&Xh?@ > 3Kh+`/ y3OxէWvD,N*BQb9TO< 5Kd:_ (*skocoe1$Ϸas-sV < TvO%S[ֶ8a*v&'iTuhij[I, N%^ΜmC~?N*I0|Pzx|T$k*WFA'U!T4 2l2k ^$7Z_mdD+7m`.tdeÏ9y5DA5DbHr ``kGޒNB zIͷn* yqu hsCa>=_ V?ho%&?@KQr9ekMԱ}P/U(>;k'D*P՚7}X yTJ|mt0;%p>cǜ1k Ы+ppwɬ!C׉o1RYۉ"eqM+`{la^U>>b ֊]]r(z|^maݻ~"  ؎}html'd2EM_f ltxXl쬀X\=p3a)Y|xK-NFhmRL23u!m@|!L$rymec}+!1uHԕIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/0000755000175000017500000000000013223341037021640 5ustar michaelmichaelwebcit-dfsg.orig/static/webcit_icons/essen/16x16/back.png0000644000175000017500000000075213223341037023252 0ustar michaelmichaelPNG  IHDRasRGBbKGD pHYs  tIME$ͤjIDAT8OJCADEPgBlA_@YV6^^N Xhci A&gf,NNDݝgfvƙAظ4EUG$$  HҰI@S.Rl&V)SH#8{CpyίL:w j &]3Żm wsrØZʙ"8 ؤSIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/addcontact.png0000644000175000017500000000134213223341037024452 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌ]HQgwO4$twZXSt|4Iz)*eE)!"-I)P,T !ug{wt"M?9g;sH1j-2}GUC#HlI6;+I3D4.% Qoj:Uű1lUYջ+jL<eU\Ĩ|r<Sᑰ$hQ{!_]R-n^X) 6,mCMIUtb2sa#dg&Q\?!@&@joHKu2HNB8|#&Q-֦2IF+ӡ%m 4q FnjkfV 4 3 "49Ss|ְ:`aCYذLQiũBǐ1] N|\+O3?NB%(Gg޼+n{ܟun=A$Ag;q;-ko-w [ǘF7ESJl3ϛXIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/account.png0000644000175000017500000000076113223341037024006 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxb?%eº{X%~ &c+řncm x]Ӏ8C06_ޅ1?S@_T02}L&FUyffkg?QSH7o>;#H/{@jd\]7܀o߾1pqq40_/ׯ2lٸ?(AUMJSQ4f ,0`1@ @ ؀@"6 /g0211Ҳ@z^x9[MW3{3H2dd@! kV0|,k1]0 9XfdvȀwo-P(cbq(M :xIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/pencil.png0000644000175000017500000000113413223341037023617 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxbgqю_d՗>vm:v|U,E%[<}+۝T% D& ۉ;~qHh2.12 3rn\SAqw'( zT㽴O.!ev([fy.5q/!0|jo}0(d0"|;,\fO|  y4/c0`9!oA yA+'O[4f ;#Đ~=^N:%"o7#hh'Mlȣ *@C}9hS1A1jÇY  7Qͣ?<|t2`.|<= a`ԂX!߾9ݟDLjӌQfȗ[^)qylDlWdgVw ? 7+CH K1?1bϏo̟aXd95#xIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/search.png0000644000175000017500000000131013223341037023606 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<jIDATxڄSKkQ>yi3MlP҂vF+P RѠѕRPp!V!m(ظF,&c#41Is$(Fs}|2m@8wv*( MT]zSg/GS=,ٹ] JXD[,::J^9dqD:DKc|R(,i&\zP(.yzFJ% F[ʾLk)Tʟ>yf`e}h`56ScX+?f4UC Q=3|qpU7 ׏N, {O&<o%(orhGjzqq'H:ao,bY@ëqh\&CN87isyzW˴RwC tb\l}@?2EF~Z|KvU E%50IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/room.png0000644000175000017500000000062013223341037023320 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<2IDATxڤJ@ƿ\aa! z!/xٝugH/'(9$9רUEg88 p}3 l OJ9 `)nEO !e[KiyYwfp^]HZ\\HgЎ+.i "KbVJ)jЎiDv?k)_,dS<?>v/@5ƼLl6V#g{(IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/activeuser.png0000644000175000017500000000134313223341037024521 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌSKQ?cg߭-(a T`/TCk' "ї(PDY)XKWewvv۝-EwC<~w9cݷ)3&|!yZ aAaq^3l滥M LIZ8h/`#-K_\!\Z8~*+CɳW6+a-Gы,f_.eQ#?j58ۻ1 /UW `>KHJ-k.ت)M" B&88\UH{e{KB!wm3;2Mv[O?3xm%_yv?zho oQQ%GY X] yWi&9b'g$ȪY^D1& $4t( q.rANEt:e=ZLyʞ✪"}a~cciPONF0CH~;F--unp1ÅKEfהVOL1 p&!.#$I=E~QJ!NB$Wp9_vȟ\-ڙr%1IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/blog.png0000644000175000017500000000076713223341037023303 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌKA߬hj DzHB:F'3m:teDIu`ڪkʺ3,9~vo>DREѴ #D{( gAWU(>t<(xXuOE;R!Vu =~::Cn84}<:=l s5AmëiS1؄5IkXsfkH Ħ,_G?!jV " f4Ho:83ARaη~yf.\HfVN/k!ЬcE{Bzc9S&*_6`I_ ,NIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/login.png0000644000175000017500000000130013223341037023450 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<bIDATxڤSMkQ3Nk3$$`*m)R뒍RqP"*tN]P E%nDTmPH2M:|ovasλs1D/J8 !7D j pϿz(9~!xf;PmnPF=nx)EލI(a)1y({XΟ[OkAOޚfB۩Cys>4@ff0|1J4ouddFMy !\:1zh6Vt4(@<ځdK*po7@ (Cж4 ;9^㚳g2' F"7h`rZ f">k># H=q=;ꢀP v"=$iZ|y7Hc `M'm4:ZD8 -j }҅ h>k 5z==iae<VFi`B\y QA'aiYwooN\d D鬑DA?p&; b?2z#]xX,{~& @\F=BCOEdEIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/logout.png0000644000175000017500000000132413223341037023657 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<vIDATxڤSQHSavvݬI#fdTF ^^J{ 40`ITPR!CGy߿szgu?}?69糯NLtt [k}QʷY;<l;]!9y HƧLYxŵe| W+ѐ)#Y(|{A-%n[ӛ} KZE?i_r3\| NJwPט,rKvE0u!o lR!He5>]bv^8j3ADI?4M3gT Fwlh,*{f)4b˻Kk۴bzИkv2L-&C{ʺ-#-Yg0N& kO'v1jٙй^a$1O~t y_Ě]Ӏ{/|HcJm0׷?~>״ʦٯKm+\=GEqM.8uF-33GMq#t<)GAn@ ,to `NJ=q`$6d7C (>_Ld YK&TY\5Of? @IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/setup.png0000644000175000017500000000147613223341037023516 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxtSmHSQ~pjNt)!H0,(DPdk? jџhpaPb-/PJ~ Z!εvM97'ju==yޯsA. *T*րFFh:J%ZvH$a@Pخx.H$ ,~5<G -Yau\N(Ak GR@d_"z@&+I٘PBfٺ 2Bǯ? ],}<;&n3g]}=g21%NL3nqרV|ag2:1;>9m LFO.ͷtzӱ'!.u`nE5KKhkUAJg7p~"v{>+D"QfZZZ2EQ?.]v1rg[s4IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/abort.png0000644000175000017500000000120013223341037023446 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<"IDATxb?%eG횆 lop~~ئJ沎gಈ qcAtx0 lvidF%IF bV1$_#n[3Lb8Ï'&ʱua n=`,9ݣm@%%9Wk|86{+(K3+0W^o0ç 6`50ƹRZmT.u 䁑` ! a[%^ӿ>D6#+{'>fex-F7wX~> hiR ԣ7߿bv ]d66î5 O00\>u#.#X bA`=`IsK*e(0x \ř?r 5< L ris%2@.!C;ߟ &?3sgp Ɂ~Ay:xb.V,vF%R2ڗ}@P,kIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/summary.png0000644000175000017500000000163113223341037024044 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<;IDATxdSKhe}kg]3cy 9$BxzEMJ G *T=@E=yBXTJҐdw'3ٙ7wy[ߙON=YI:]-MU%&U[Ko==GgT.>$f`kGG`L49$~ݞd;?4qxQ. cOq/fD2ͥ;_xz,OJq|RXPH'I 7+;q%NH#|sϱ 20>7`hwBBɭ58E:@oDi A0?2+H?{49jG,-!raD H}&Lmi=iݫhšQmϿXe z.6]XIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/contact.png0000644000175000017500000000102313223341037023775 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌSMKQ=E4LBjF0pn)A BBh ZRA (HGИZܹ{})\.yװ 8}",*?k9"szK&ؿ< tO ᑂ2"'!JFPIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/refresh.png0000644000175000017500000000130313223341037024001 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<eIDATx|kAǿM0+IT*xًA AREŃ(Go*=ěX-DMf4X>73o޼]}<}F(>x$B|ƒH$NDix aX 1,J0-L<&^>;~V7Ӆ0.lrF~eS=Cbu7K72OďFa;-B:@nͺ\ AKHh&6$ <)2o͌T݆rXeۅcM/Kv(4Åeywcb@=ruL,]IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/readallmsg.png0000644000175000017500000000075313223341037024466 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜS;KA6  VXDAkF,-mL2UQ+EUA 3-h4]yp|켾ݙ9} ɞ1|YSS OI RD! 0 ð@ B\QދH;px!Q6,j#>"a)x|Gt~#`+͟`}O\2`X "o' zvMXb'*}Z0kugO:rza(NnuK:Xq Gcɛ>} DU&ܗh9h@ QD/mUV1~)9 &ǵ`f`n0~9o $l#[1اDg 82{!{㺌M9} ZEY|0K% wT*H^%{=7yFqiZV( hFl%TIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/email.png0000644000175000017500000000110413223341037023431 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSn@=ئI!*!~/{رBbO(lRQhK iJmCp6=NA ʕFs}0& {ydvw.XG=sY%zsn&GU44ˌ!௭[$ fDL\(OIk=.9:d) FPY>cGц&XeP;a:Fղl$ Y"+XmwKo]cuӋ@%짃o)jr2+yB*pg00DS8P_FaV0scL0 $z6f#M4AtV~BwgBD^@ HHߗ"Asn\=5M1k@]32XC"ԭTzRދ+Ra4PO "x'ث@8"lu.qNIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/taskday.png0000644000175000017500000000100013223341037023775 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜR=KA IaLaea)hܙ`%XNʤ (jB,R QZ?@ KR9a0;s;޼N9<:B!U՗iLF[u5ħx")":_K+TeA]f~G3hf0W)Lvvn0Ɣ]coC†ld Œ!t`ӃMy1E߸w9 sd!Rpz~3I08S#,aŀ ]v6 ,b†-egW-neW<4/_0v`GbZ|ﭦa({yNaTl%|xoN^c%( OF=ypr\=UJ-ϩ<"A/XFR5 ~転ePEZR?M9PI{]CA~ }5-mkff6/k_2DOo\B;|.Ys 7EBol}dir6>"ׅ8rQ1H_q4BZ?A2<#~@ m/$+zTS0 !zv0 6QD>Ohc{}gr(0yF'LhxU6Xp̜;/W0BAX)D',Ux Z88óNc-ȡfL;/׿VxtWѬmq`ρap7OhTNK|Ybk{Rb\+,_⛏IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/skiproom.png0000644000175000017500000000077113223341037024216 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSN0>i?%Y# O&MU",9>ݙc?#˗+zUtѼ}]1 {'КCX~Ҿo(&`Q;IQ=d S~S-0{ 0[ m#;иQ V,ɀt.yF#IS$< @ c(ܞ3&H .B.!djkxmH(ȁ x{߇Ψ Q0+$,5gNzD.vl!DC'h3瓘ZHs$ V\Lq6{IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/file.png0000644000175000017500000000077413223341037023275 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSJ1M zQP/v g OMF,HQGK*r)HEwTq")L,`deFl}0YעՏlO39IKDg tbG"l!?{ LvquTB\6,@ ($)K 7*h) 5y>$$o((F3$@93MkƃvaVWeBG9[*y 7qbUK4{/\OA8HhVIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/draft.png0000644000175000017500000000121613223341037023446 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<0IDATxڄRMhAfnI  xQ(R/Rzѓ=D<''T!S @Id&3]B6cf} MC{eis7|'7Κ{ c`Or} HBج{0*lmJ>.Q99r+iY0QڪPep0+ӛx [t*P2q`#~ɖЏ  WYM<82޸_f{8&dT Lߩ H3@'W̼Gb SM7gT%E aR/g zZ i0) C0egzr 3hn.[u\KLv%UPGOhs“r"L_=jAzU;{ޣch֯ 8l)^[rxO_lhl٥D.uY's {GUi@KO:b~ĺmgΜ?c٬IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/attachement.png0000644000175000017500000000074113223341037024645 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڔNAgp Wg&&X 6&V70ʂCR +B`u¡˂2ffc l=T,wi#CTU]  .66a z~kB"u3\G A >-lݞɈggcpE(5@2# ~t ]!KL;;љ6!\CT9}+5Q=+*4aP[%w1N 2Bv VxO *#TK7Z$Gֵ̈́9D ?OevSh6?#!$<&:5SIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/calendar.png0000644000175000017500000000102513223341037024115 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜR;KA;LaLaea)^'"'X gHm5>"@"U 6FPPOS:sw]曛ٙv݃8#aM{ p\d\..M{4Z[ɘ{.630^WE[ k\sm E KT8_s9WT4@GXJΉp.a@>zcnuJ]8~KS&,:*.aΦiӑ%=ҋHOF1>$s"& $'m5`| UD rYV603?=fzWqB zg ek})Ӱ@D{kds44^:1\A9ej]7CP_"fɶ}:Dx` V{DNIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/delete.png0000644000175000017500000000113313223341037023606 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxb_ Sw <:O^vן\kX9UL2|zP_4/(s{K O( ?! '|jv6Ȝrv~|uU3?L?߁RN08 k~uC;۽pL .ȚA# oW몲o.7{<L zSG1<_y!hfaj>͵L΂Wk}{lk~22x wZ?/[{35?: G;i~|1_Sicne5 ;PB鄅KDf2 1+ 9^'w'1񐯊4Q~=AJbK<_+ߎgg P&@o_?~.?% {;$җeIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/nextroom.png0000644000175000017500000000072313223341037024223 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<uIDATxڜSK@~wI " .n"n-.[' Mtĵ]qB5Vm|w5G/ 5%{;&#(x{YqJ ^^(zԫjî'_nH߅79*@h# d@H$2@ߥDt+@F@`4i ֮n; X'Cz2$ XyoUƘ΄[IENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/network.png0000644000175000017500000000076713223341037024051 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌSK@~-AtrtP \J'QEQ)H?@uSNb6wmޕw=t|u8ۆwF$4 S: ]XCBH %4V`b s qxh6@3\e] b3E@`T &|X#s ϓ"#s04 (<](U_?܇CtfwEQ  )4kLFE~ϻϥǩaQVk:Z0PP.J{AH딠1k@E ΋t QM 2. Dh{w`۳i3)hW.6^!27 J!4A68|"Ys!h YIENDB`webcit-dfsg.orig/static/webcit_icons/essen/16x16/config.png0000644000175000017500000000130213223341037023607 0ustar michaelmichaelPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<dIDATxڤSoqrp4u 1&բ`XHitT\YtXbj*ID5 ZyNswzIG'Ń{Fĺs&} NYĪs`Ϋ([G~}0"v}vmRXJCA""F"zzbQ 3WgMVQh[i56/@)jR\hP)[oQ'#W` [,gU;l+Zh(4k&*^ƈ?K1Ҡ0`{tbh#KԔB2O&<3B5 8c-iQ`g''=Q\ ̧Lyn:0_h4R>4ؒls,sԠpjbwL?uЩ2V8:Br(&nmXy( xu] كv&sCEUm=A|lʕ!"'.n.g4FFa9DHR_^BA1c/nn1]9w~IA\@ƣ;}[4DgojppIENDB`webcit-dfsg.orig/static/webcit_icons/down_pointer.gif0000644000175000017500000000024513223341037023135 0ustar michaelmichaelGIF89a JZRkc{c{k{)s)s11BRR!, R{\!x@5e1%PMx3<{{{{{{{/;webcit-dfsg.orig/static/webcit_icons/resizecorner.png0000644000175000017500000000102213223341037023151 0ustar michaelmichaelPNG  IHDRasRGBbKGD pHYs  tIME&xIDAT8˥jAϙ*M+6[SP|<̆U6l,"XJm">bE7εX61Ijsåc!)z52 )s+{Mfj*kVOo{$ϭVTb7w xxew]@S"ɵ_g$,cO-̔3Q H`J!H~ 0 ^!p};i0p,^>}o'?mK8Mw*8wFc C5CqxHvo3wG@TKbJ<]4kH]S^$Qs}@l "Flވ3 btᥐVLi?`lH7IENDB`webcit-dfsg.orig/static/webcit_icons/8paint16.gif0000644000175000017500000000201113223341037021771 0ustar michaelmichaelGIF89aFpۿݱ)駾LPTŠVm#|Q~Tm7{Edb kVd nj;PS>ಏήC¯Jl2C,ЦR؃hڥF ʺk?~y XϮKZ6Ө2XAAQAFZA3 2T?ܤaS ,Ѓ8sJ@B:1,xk(  *v4S )Hj -e3L%NƤrƎ.2GӆÛ1>N<8ō ;webcit-dfsg.orig/static/webcit_icons/blank.gif0000644000175000017500000000005213223341037021511 0ustar michaelmichaelGIF89a!,@D;webcit-dfsg.orig/static/webcit_icons/closewindow.gif0000644000175000017500000000054513223341037022766 0ustar michaelmichaelGIF89a>"79<>LOfhk l qty}')-16DG@ACDDIJQRSUXZ\^aceelqrvw™ÛǢȤ˨̩ͬάήϯѳ! ?,`(oКn7MJ(IbTA%WԗHکy95 (j<8jj1E 0j.E .>  E  Ef?DGF?A;webcit-dfsg.orig/static/webcit_icons/bubble_filler.gif0000644000175000017500000000010713223341037023213 0ustar michaelmichaelGIF89aҤ!,D`ڋW%;webcit-dfsg.orig/static/mobile.js0000644000175000017500000000165413223341037017101 0ustar michaelmichael/* * Copyright 2005 - 2009 The Citadel Team * Licensed under the GPL V3 */ var currentMsgDisplay = null; function CtdlLoadMsgMouseDown(event, msgnum) { /* if (currentMsgDisplay != null) { currentMsgDisplay.style.display = "none"; } var id = "m_"+msgnum; var preview_pane = document.getElementById(id); preview_pane.style.display = "block"; preview_pane.innerHTML = "Loading message"; currentMsgDisplay = preview_pane; var req = new XMLHttpRequest(); req.open('GET', '/msg/'+msgnum, true); req.onreadystatechange = function (aEvt) { if (req.readyState == 4) { if(req.status == 200) currentMsgDisplay.innerHTML = "
    "+req.responseText; else currentMsgDisplay.innerHTML = "Error loading message"; } }; req.send(null); */ window.location = "/mobilemsg/"+msgnum; } function CtdlHideMsg() { currentMsgDisplay.style.display = "none"; } webcit-dfsg.orig/static/dragdrop.js0000644000175000017500000007453213223341037017441 0ustar michaelmichael// script.aculo.us dragdrop.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010 // Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ if(Object.isUndefined(Effect)) throw("dragdrop.js requires including script.aculo.us' effects.js library"); var Droppables = { drops: [], remove: function(element) { this.drops = this.drops.reject(function(d) { return d.element==$(element) }); }, add: function(element) { element = $(element); var options = Object.extend({ greedy: true, hoverclass: null, tree: false }, arguments[1] || { }); // cache containers if(options.containment) { options._containers = []; var containment = options.containment; if(Object.isArray(containment)) { containment.each( function(c) { options._containers.push($(c)) }); } else { options._containers.push($(containment)); } } if(options.accept) options.accept = [options.accept].flatten(); Element.makePositioned(element); // fix IE options.element = element; this.drops.push(options); }, findDeepestChild: function(drops) { deepest = drops[0]; for (i = 1; i < drops.length; ++i) if (Element.isParent(drops[i].element, deepest.element)) deepest = drops[i]; return deepest; }, isContained: function(element, drop) { var containmentNode; if(drop.tree) { containmentNode = element.treeNode; } else { containmentNode = element.parentNode; } return drop._containers.detect(function(c) { return containmentNode == c }); }, isAffected: function(point, element, drop) { return ( (drop.element!=element) && ((!drop._containers) || this.isContained(element, drop)) && ((!drop.accept) || (Element.classNames(element).detect( function(v) { return drop.accept.include(v) } ) )) && Position.within(drop.element, point[0], point[1]) ); }, deactivate: function(drop) { if(drop.hoverclass) Element.removeClassName(drop.element, drop.hoverclass); this.last_active = null; }, activate: function(drop) { if(drop.hoverclass) Element.addClassName(drop.element, drop.hoverclass); this.last_active = drop; }, show: function(point, element) { if(!this.drops.length) return; var drop, affected = []; this.drops.each( function(drop) { if(Droppables.isAffected(point, element, drop)) affected.push(drop); }); if(affected.length>0) drop = Droppables.findDeepestChild(affected); if(this.last_active && this.last_active != drop) this.deactivate(this.last_active); if (drop) { Position.within(drop.element, point[0], point[1]); if(drop.onHover) drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); if (drop != this.last_active) Droppables.activate(drop); } }, fire: function(event, element) { if(!this.last_active) return; Position.prepare(); if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) if (this.last_active.onDrop) { this.last_active.onDrop(element, this.last_active.element, event); return true; } }, reset: function() { if(this.last_active) this.deactivate(this.last_active); } }; var Draggables = { drags: [], observers: [], register: function(draggable) { if(this.drags.length == 0) { this.eventMouseUp = this.endDrag.bindAsEventListener(this); this.eventMouseMove = this.updateDrag.bindAsEventListener(this); this.eventKeypress = this.keyPress.bindAsEventListener(this); Event.observe(document, "mouseup", this.eventMouseUp); Event.observe(document, "mousemove", this.eventMouseMove); Event.observe(document, "keypress", this.eventKeypress); } this.drags.push(draggable); }, unregister: function(draggable) { this.drags = this.drags.reject(function(d) { return d==draggable }); if(this.drags.length == 0) { Event.stopObserving(document, "mouseup", this.eventMouseUp); Event.stopObserving(document, "mousemove", this.eventMouseMove); Event.stopObserving(document, "keypress", this.eventKeypress); } }, activate: function(draggable) { if(draggable.options.delay) { this._timeout = setTimeout(function() { Draggables._timeout = null; window.focus(); Draggables.activeDraggable = draggable; }.bind(this), draggable.options.delay); } else { window.focus(); // allows keypress events if window isn't currently focused, fails for Safari this.activeDraggable = draggable; } }, deactivate: function() { this.activeDraggable = null; }, updateDrag: function(event) { if(!this.activeDraggable) return; var pointer = [Event.pointerX(event), Event.pointerY(event)]; // Mozilla-based browsers fire successive mousemove events with // the same coordinates, prevent needless redrawing (moz bug?) if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; this._lastPointer = pointer; this.activeDraggable.updateDrag(event, pointer); }, endDrag: function(event) { if(this._timeout) { clearTimeout(this._timeout); this._timeout = null; } if(!this.activeDraggable) return; this._lastPointer = null; this.activeDraggable.endDrag(event); this.activeDraggable = null; }, keyPress: function(event) { if(this.activeDraggable) this.activeDraggable.keyPress(event); }, addObserver: function(observer) { this.observers.push(observer); this._cacheObserverCallbacks(); }, removeObserver: function(element) { // element instead of observer fixes mem leaks this.observers = this.observers.reject( function(o) { return o.element==element }); this._cacheObserverCallbacks(); }, notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' if(this[eventName+'Count'] > 0) this.observers.each( function(o) { if(o[eventName]) o[eventName](eventName, draggable, event); }); if(draggable.options[eventName]) draggable.options[eventName](draggable, event); }, _cacheObserverCallbacks: function() { ['onStart','onEnd','onDrag'].each( function(eventName) { Draggables[eventName+'Count'] = Draggables.observers.select( function(o) { return o[eventName]; } ).length; }); } }; /*--------------------------------------------------------------------------*/ var Draggable = Class.create({ initialize: function(element) { var defaults = { handle: false, reverteffect: function(element, top_offset, left_offset) { var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02; new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur, queue: {scope:'_draggable', position:'end'} }); }, endeffect: function(element) { var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0; new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, queue: {scope:'_draggable', position:'end'}, afterFinish: function(){ Draggable._dragging[element] = false } }); }, zindex: 1000, revert: false, quiet: false, scroll: false, scrollSensitivity: 20, scrollSpeed: 15, snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } delay: 0 }; if(!arguments[1] || Object.isUndefined(arguments[1].endeffect)) Object.extend(defaults, { starteffect: function(element) { element._opacity = Element.getOpacity(element); Draggable._dragging[element] = true; new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); } }); var options = Object.extend(defaults, arguments[1] || { }); this.element = $(element); if(options.handle && Object.isString(options.handle)) this.handle = this.element.down('.'+options.handle, 0); if(!this.handle) this.handle = $(options.handle); if(!this.handle) this.handle = this.element; if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { options.scroll = $(options.scroll); this._isScrollChild = Element.childOf(this.element, options.scroll); } Element.makePositioned(this.element); // fix IE this.options = options; this.dragging = false; this.eventMouseDown = this.initDrag.bindAsEventListener(this); Event.observe(this.handle, "mousedown", this.eventMouseDown); Draggables.register(this); }, destroy: function() { Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); Draggables.unregister(this); }, currentDelta: function() { return([ parseInt(Element.getStyle(this.element,'left') || '0'), parseInt(Element.getStyle(this.element,'top') || '0')]); }, initDrag: function(event) { if(!Object.isUndefined(Draggable._dragging[this.element]) && Draggable._dragging[this.element]) return; if(Event.isLeftClick(event)) { // abort on form elements, fixes a Firefox issue var src = Event.element(event); if((tag_name = src.tagName.toUpperCase()) && ( tag_name=='INPUT' || tag_name=='SELECT' || tag_name=='OPTION' || tag_name=='BUTTON' || tag_name=='TEXTAREA')) return; var pointer = [Event.pointerX(event), Event.pointerY(event)]; var pos = this.element.cumulativeOffset(); this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); Draggables.activate(this); Event.stop(event); } }, startDrag: function(event) { this.dragging = true; if(!this.delta) this.delta = this.currentDelta(); if(this.options.zindex) { this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); this.element.style.zIndex = this.options.zindex; } if(this.options.ghosting) { this._clone = this.element.cloneNode(true); this._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); if (!this._originallyAbsolute) Position.absolutize(this.element); this.element.parentNode.insertBefore(this._clone, this.element); } if(this.options.scroll) { if (this.options.scroll == window) { var where = this._getWindowScroll(this.options.scroll); this.originalScrollLeft = where.left; this.originalScrollTop = where.top; } else { this.originalScrollLeft = this.options.scroll.scrollLeft; this.originalScrollTop = this.options.scroll.scrollTop; } } Draggables.notify('onStart', this, event); if(this.options.starteffect) this.options.starteffect(this.element); }, updateDrag: function(event, pointer) { if(!this.dragging) this.startDrag(event); if(!this.options.quiet){ Position.prepare(); Droppables.show(pointer, this.element); } Draggables.notify('onDrag', this, event); this.draw(pointer); if(this.options.change) this.options.change(this); if(this.options.scroll) { this.stopScrolling(); var p; if (this.options.scroll == window) { with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } } else { p = Position.page(this.options.scroll).toArray(); p[0] += this.options.scroll.scrollLeft + Position.deltaX; p[1] += this.options.scroll.scrollTop + Position.deltaY; p.push(p[0]+this.options.scroll.offsetWidth); p.push(p[1]+this.options.scroll.offsetHeight); } var speed = [0,0]; if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity); if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity); if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity); if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); this.startScrolling(speed); } // fix AppleWebKit rendering if(Prototype.Browser.WebKit) window.scrollBy(0,0); Event.stop(event); }, finishDrag: function(event, success) { this.dragging = false; if(this.options.quiet){ Position.prepare(); var pointer = [Event.pointerX(event), Event.pointerY(event)]; Droppables.show(pointer, this.element); } if(this.options.ghosting) { if (!this._originallyAbsolute) Position.relativize(this.element); delete this._originallyAbsolute; Element.remove(this._clone); this._clone = null; } var dropped = false; if(success) { dropped = Droppables.fire(event, this.element); if (!dropped) dropped = false; } if(dropped && this.options.onDropped) this.options.onDropped(this.element); Draggables.notify('onEnd', this, event); var revert = this.options.revert; if(revert && Object.isFunction(revert)) revert = revert(this.element); var d = this.currentDelta(); if(revert && this.options.reverteffect) { if (dropped == 0 || revert != 'failure') this.options.reverteffect(this.element, d[1]-this.delta[1], d[0]-this.delta[0]); } else { this.delta = d; } if(this.options.zindex) this.element.style.zIndex = this.originalZ; if(this.options.endeffect) this.options.endeffect(this.element); Draggables.deactivate(this); Droppables.reset(); }, keyPress: function(event) { if(event.keyCode!=Event.KEY_ESC) return; this.finishDrag(event, false); Event.stop(event); }, endDrag: function(event) { if(!this.dragging) return; this.stopScrolling(); this.finishDrag(event, true); Event.stop(event); }, draw: function(point) { var pos = this.element.cumulativeOffset(); if(this.options.ghosting) { var r = Position.realOffset(this.element); pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY; } var d = this.currentDelta(); pos[0] -= d[0]; pos[1] -= d[1]; if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) { pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; } var p = [0,1].map(function(i){ return (point[i]-pos[i]-this.offset[i]) }.bind(this)); if(this.options.snap) { if(Object.isFunction(this.options.snap)) { p = this.options.snap(p[0],p[1],this); } else { if(Object.isArray(this.options.snap)) { p = p.map( function(v, i) { return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)); } else { p = p.map( function(v) { return (v/this.options.snap).round()*this.options.snap }.bind(this)); } }} var style = this.element.style; if((!this.options.constraint) || (this.options.constraint=='horizontal')) style.left = p[0] + "px"; if((!this.options.constraint) || (this.options.constraint=='vertical')) style.top = p[1] + "px"; if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering }, stopScrolling: function() { if(this.scrollInterval) { clearInterval(this.scrollInterval); this.scrollInterval = null; Draggables._lastScrollPointer = null; } }, startScrolling: function(speed) { if(!(speed[0] || speed[1])) return; this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; this.lastScrolled = new Date(); this.scrollInterval = setInterval(this.scroll.bind(this), 10); }, scroll: function() { var current = new Date(); var delta = current - this.lastScrolled; this.lastScrolled = current; if(this.options.scroll == window) { with (this._getWindowScroll(this.options.scroll)) { if (this.scrollSpeed[0] || this.scrollSpeed[1]) { var d = delta / 1000; this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); } } } else { this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; } Position.prepare(); Droppables.show(Draggables._lastPointer, this.element); Draggables.notify('onDrag', this); if (this._isScrollChild) { Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; if (Draggables._lastScrollPointer[0] < 0) Draggables._lastScrollPointer[0] = 0; if (Draggables._lastScrollPointer[1] < 0) Draggables._lastScrollPointer[1] = 0; this.draw(Draggables._lastScrollPointer); } if(this.options.change) this.options.change(this); }, _getWindowScroll: function(w) { var T, L, W, H; with (w.document) { if (w.document.documentElement && documentElement.scrollTop) { T = documentElement.scrollTop; L = documentElement.scrollLeft; } else if (w.document.body) { T = body.scrollTop; L = body.scrollLeft; } if (w.innerWidth) { W = w.innerWidth; H = w.innerHeight; } else if (w.document.documentElement && documentElement.clientWidth) { W = documentElement.clientWidth; H = documentElement.clientHeight; } else { W = body.offsetWidth; H = body.offsetHeight; } } return { top: T, left: L, width: W, height: H }; } }); Draggable._dragging = { }; /*--------------------------------------------------------------------------*/ var SortableObserver = Class.create({ initialize: function(element, observer) { this.element = $(element); this.observer = observer; this.lastValue = Sortable.serialize(this.element); }, onStart: function() { this.lastValue = Sortable.serialize(this.element); }, onEnd: function() { Sortable.unmark(); if(this.lastValue != Sortable.serialize(this.element)) this.observer(this.element) } }); var Sortable = { SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, sortables: { }, _findRootElement: function(element) { while (element.tagName.toUpperCase() != "BODY") { if(element.id && Sortable.sortables[element.id]) return element; element = element.parentNode; } }, options: function(element) { element = Sortable._findRootElement($(element)); if(!element) return; return Sortable.sortables[element.id]; }, destroy: function(element){ element = $(element); var s = Sortable.sortables[element.id]; if(s) { Draggables.removeObserver(s.element); s.droppables.each(function(d){ Droppables.remove(d) }); s.draggables.invoke('destroy'); delete Sortable.sortables[s.element.id]; } }, create: function(element) { element = $(element); var options = Object.extend({ element: element, tag: 'li', // assumes li children, override with tag: 'tagname' dropOnEmpty: false, tree: false, treeTag: 'ul', overlap: 'vertical', // one of 'vertical', 'horizontal' constraint: 'vertical', // one of 'vertical', 'horizontal', false containment: element, // also takes array of elements (or id's); or false handle: false, // or a CSS class only: false, delay: 0, hoverclass: null, ghosting: false, quiet: false, scroll: false, scrollSensitivity: 20, scrollSpeed: 15, format: this.SERIALIZE_RULE, // these take arrays of elements or ids and can be // used for better initialization performance elements: false, handles: false, onChange: Prototype.emptyFunction, onUpdate: Prototype.emptyFunction }, arguments[1] || { }); // clear any old sortable with same element this.destroy(element); // build options for the draggables var options_for_draggable = { revert: true, quiet: options.quiet, scroll: options.scroll, scrollSpeed: options.scrollSpeed, scrollSensitivity: options.scrollSensitivity, delay: options.delay, ghosting: options.ghosting, constraint: options.constraint, handle: options.handle }; if(options.starteffect) options_for_draggable.starteffect = options.starteffect; if(options.reverteffect) options_for_draggable.reverteffect = options.reverteffect; else if(options.ghosting) options_for_draggable.reverteffect = function(element) { element.style.top = 0; element.style.left = 0; }; if(options.endeffect) options_for_draggable.endeffect = options.endeffect; if(options.zindex) options_for_draggable.zindex = options.zindex; // build options for the droppables var options_for_droppable = { overlap: options.overlap, containment: options.containment, tree: options.tree, hoverclass: options.hoverclass, onHover: Sortable.onHover }; var options_for_tree = { onHover: Sortable.onEmptyHover, overlap: options.overlap, containment: options.containment, hoverclass: options.hoverclass }; // fix for gecko engine Element.cleanWhitespace(element); options.draggables = []; options.droppables = []; // drop on empty handling if(options.dropOnEmpty || options.tree) { Droppables.add(element, options_for_tree); options.droppables.push(element); } (options.elements || this.findElements(element, options) || []).each( function(e,i) { var handle = options.handles ? $(options.handles[i]) : (options.handle ? $(e).select('.' + options.handle)[0] : e); options.draggables.push( new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); Droppables.add(e, options_for_droppable); if(options.tree) e.treeNode = element; options.droppables.push(e); }); if(options.tree) { (Sortable.findTreeElements(element, options) || []).each( function(e) { Droppables.add(e, options_for_tree); e.treeNode = element; options.droppables.push(e); }); } // keep reference this.sortables[element.identify()] = options; // for onupdate Draggables.addObserver(new SortableObserver(element, options.onUpdate)); }, // return all suitable-for-sortable elements in a guaranteed order findElements: function(element, options) { return Element.findChildren( element, options.only, options.tree ? true : false, options.tag); }, findTreeElements: function(element, options) { return Element.findChildren( element, options.only, options.tree ? true : false, options.treeTag); }, onHover: function(element, dropon, overlap) { if(Element.isParent(dropon, element)) return; if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { return; } else if(overlap>0.5) { Sortable.mark(dropon, 'before'); if(dropon.previousSibling != element) { var oldParentNode = element.parentNode; element.style.visibility = "hidden"; // fix gecko rendering dropon.parentNode.insertBefore(element, dropon); if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element); Sortable.options(dropon.parentNode).onChange(element); } } else { Sortable.mark(dropon, 'after'); var nextElement = dropon.nextSibling || null; if(nextElement != element) { var oldParentNode = element.parentNode; element.style.visibility = "hidden"; // fix gecko rendering dropon.parentNode.insertBefore(element, nextElement); if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element); Sortable.options(dropon.parentNode).onChange(element); } } }, onEmptyHover: function(element, dropon, overlap) { var oldParentNode = element.parentNode; var droponOptions = Sortable.options(dropon); if(!Element.isParent(dropon, element)) { var index; var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); var child = null; if(children) { var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); for (index = 0; index < children.length; index += 1) { if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { offset -= Element.offsetSize (children[index], droponOptions.overlap); } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { child = index + 1 < children.length ? children[index + 1] : null; break; } else { child = children[index]; break; } } } dropon.insertBefore(element, child); Sortable.options(oldParentNode).onChange(element); droponOptions.onChange(element); } }, unmark: function() { if(Sortable._marker) Sortable._marker.hide(); }, mark: function(dropon, position) { // mark on ghosting only var sortable = Sortable.options(dropon.parentNode); if(sortable && !sortable.ghosting) return; if(!Sortable._marker) { Sortable._marker = ($('dropmarker') || Element.extend(document.createElement('DIV'))). hide().addClassName('dropmarker').setStyle({position:'absolute'}); document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); } var offsets = dropon.cumulativeOffset(); Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); if(position=='after') if(sortable.overlap == 'horizontal') Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); else Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); Sortable._marker.show(); }, _tree: function(element, options, parent) { var children = Sortable.findElements(element, options) || []; for (var i = 0; i < children.length; ++i) { var match = children[i].id.match(options.format); if (!match) continue; var child = { id: encodeURIComponent(match ? match[1] : null), element: element, parent: parent, children: [], position: parent.children.length, container: $(children[i]).down(options.treeTag) }; /* Get the element containing the children and recurse over it */ if (child.container) this._tree(child.container, options, child); parent.children.push (child); } return parent; }, tree: function(element) { element = $(element); var sortableOptions = this.options(element); var options = Object.extend({ tag: sortableOptions.tag, treeTag: sortableOptions.treeTag, only: sortableOptions.only, name: element.id, format: sortableOptions.format }, arguments[1] || { }); var root = { id: null, parent: null, children: [], container: element, position: 0 }; return Sortable._tree(element, options, root); }, /* Construct a [i] index for a particular node */ _constructIndex: function(node) { var index = ''; do { if (node.id) index = '[' + node.position + ']' + index; } while ((node = node.parent) != null); return index; }, sequence: function(element) { element = $(element); var options = Object.extend(this.options(element), arguments[1] || { }); return $(this.findElements(element, options) || []).map( function(item) { return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; }); }, setSequence: function(element, new_sequence) { element = $(element); var options = Object.extend(this.options(element), arguments[2] || { }); var nodeMap = { }; this.findElements(element, options).each( function(n) { if (n.id.match(options.format)) nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; n.parentNode.removeChild(n); }); new_sequence.each(function(ident) { var n = nodeMap[ident]; if (n) { n[1].appendChild(n[0]); delete nodeMap[ident]; } }); }, serialize: function(element) { element = $(element); var options = Object.extend(Sortable.options(element), arguments[1] || { }); var name = encodeURIComponent( (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); if (options.tree) { return Sortable.tree(element, arguments[1]).children.map( function (item) { return [name + Sortable._constructIndex(item) + "[id]=" + encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); }).flatten().join('&'); } else { return Sortable.sequence(element, arguments[1]).map( function(item) { return name + "[]=" + encodeURIComponent(item); }).join('&'); } } }; // Returns true if child is contained within element Element.isParent = function(child, element) { if (!child.parentNode || child == element) return false; if (child.parentNode == element) return true; return Element.isParent(child.parentNode, element); }; Element.findChildren = function(element, only, recursive, tagName) { if(!element.hasChildNodes()) return null; tagName = tagName.toUpperCase(); if(only) only = [only].flatten(); var elements = []; $A(element.childNodes).each( function(e) { if(e.tagName && e.tagName.toUpperCase()==tagName && (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) elements.push(e); if(recursive) { var grandchildren = Element.findChildren(e, only, recursive, tagName); if(grandchildren) elements.push(grandchildren); } }); return (elements.length>0 ? elements.flatten() : []); }; Element.offsetSize = function (element, type) { return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')]; };webcit-dfsg.orig/static/nanotree.js0000644000175000017500000006607613223341037017456 0ustar michaelmichael/** * Original Author of this file: Martin Mouritzen. (martin@nano.dk) * * * (Lack of) Documentation: * * * If a finishedLoading method exists, it will be called when the tree is loaded. * (good to display a div, etc.). * * * You have to set the variable rootNode (as a TreeNode). * * You have to set a container element, this is the element in which the tree will be. * * * TODO: * Save cookies better (only 1 cookie for each tree). Else the page will totally cookieclutter. * *********************************************************************** * Configuration variables. ************************************************************************/ // Should the rootNode be displayed. var showRootNode = true; // Should the dashed lines between nodes be shown. var showLines = true; // Should the nodes be sorted? (You can either specify a number, then it will be sorted by that, else it will // be sorted alphabetically (by name). var sortNodes = true; // This is IMPORTANT... use an unique id for each document you use the tree in. (else they'll get mixed up). var documentID = window.location.href; // being read from cookie. var nodesOpen = new Array(); // RootNode of the tree. var rootNode; // Container to display the Tree in. var container; // Shows/Hides subnodes on startup var showAllNodesOnStartup = false; // Is the roots dragable? var dragable = false; /************************************************************************ * The following is just instancevariables. ************************************************************************/ var href = ''; // rootNodeCallBack name (if null, it's not selectable). var rootNodeCallBack = null; // selectedNode var selectedNode = null; var states = ''; var statearray = new Array(); var treeNodeEdited = null; var editaborted = false; var floatDragElement = null; var colouredElement = null; var draggedNodeID = null; var lastDraggedOnNodeID = null; /** * The TreeNode Object * @param id unique id of this treenode * @param name The title of this node * @param icon The icon if this node (Can also be an array with 2 elements, the first one will represent the closed state, and the next one the open state) * @param param A parameter, this can be pretty much anything. (eg. an array with information). * @param orderNumber an orderNumber If one is given the nodes will be sorted by this (else they'll be sorted alphabetically (If sorting is on). */ function TreeNode(id,name,icon,param,orderNumber) { this.id = id; this.childs = new Array(); this.name = (name == null ? 'unset name' : name); this.icon = (icon == null ? '' : icon); this.parent = null; this.handler = null; this.param = (param == null ? '' : param); this.orderNumber = (orderNumber == null ? -1 : orderNumber); this.openeventlisteners = new Array(); this.editeventlisteners = new Array(); this.moveeventlisteners = new Array(); this.haschilds = false; this.editable = false; this.linestring = ''; this.nextSibling = null; this.prevSibling = null; this.childsHasBeenFetched = false; this.getID = function() { return this.id; } this.setName = function(newname) { this.name = newname; } this.getName = function() { return this.name; } this.getParam = function() { return this.param; } this.setIcon = function(icon) { this.icon = icon; } this.getIcon = function() { if (typeof(this.icon) == 'object') { return this.icon[0]; } return this.icon; } this.getOpenIcon = function() { if (typeof(this.icon) == 'object') { return this.icon[1]; } return this.icon; } this.hasIcon = function () { return this.icon != ''; } this.getOrderNumber = function() { return this.orderNumber; } this.addOpenEventListener = function(event) { this.openeventlisteners[this.openeventlisteners.length] = event; } this.gotOpenEventListeners = function() { return (this.openeventlisteners.length > 0); } this.addEditEventListener = function(event) { this.editeventlisteners[this.editeventlisteners.length] = event; } this.gotEditEventListeners = function() { return (this.editeventlisteners.length > 0); } this.addMoveEventListener = function(event) { this.moveeventlisteners[this.moveeventlisteners.length] = event; } this.gotMoveEventListeners = function() { return (this.moveeventlisteners.length > 0); } this.addChild = function(childNode) { var possiblePrevNode = this.childs[this.childs.length - 1] if (possiblePrevNode) { possiblePrevNode.nextSibling = childNode; childNode.prevSibling = possiblePrevNode; // alert(childNode.prevSibling); } this.childs[this.childs.length] = childNode; childNode.setParent(this); if (sortNodes) { function sortByOrder(a,b) { var order1 = a.getOrderNumber(); var order2 = b.getOrderNumber(); if (order1 == -1 || order2 == -1) { return a.getName().toLowerCase() > b.getName().toLowerCase() ? 1 : -1; } else { if (order1 == order2) { // If they got the same order number, then we'll sort by their title. return a.getName().toLowerCase() > b.getName().toLowerCase() ? 1 : -1; } else { return order1 - order2; } } } this.childs.sort(sortByOrder); } } this.removeChild = function(childNode) { var found = false; for (var i=0;i 0); } this.getChildCount = function() { return this.childs.length; } this.getFirstChild = function() { if (this.hasChilds()) { return this.childs[0]; } return null; } this.gotHandler = function() { return this.handler != null; } this.setHandler = function(handler) { this.handler = handler; } this.getHandler = function() { return this.handler; } this.setParent = function(parent) { this.parent = parent; } this.getParent = function() { return this.parent; } this.getLineString = function() { return this.linestring; } this.setLineString = function(string) { this.linestring = string; } this.isEditable = function() { return this.editable; } this.setEditable = function(editable) { this.editable = editable; } } function getTreeNode(nodeID) { return findNodeWithID(rootNode,nodeID); } function findNodeWithID(node,nodeID) { if (node.getID() == nodeID) { return node; } else { if (node.hasChilds()) { for(var i=0;i'; str += ''; if (rootNode.hasIcon()) { str += ''; } str += ' ' + rootNode.getName() + ''; str += ''; if (rootNode.hasChilds()) { for(i=0;i'; str += ''; for(var y=0;y'; } else if (linestring.charAt(y) == 'B') { str += ''; } } if (treeNode.hasChilds()) { // If this is the first child of the rootNode, and showRootNode is false, we want to display a different icon. if (!showRootNode && (treeNode.getParent() == rootNode) && (treeNode.getParent().getFirstChild() == treeNode)) { if (!lastNode) { str += ''; } else { str += ''; } } else { if (!lastNode) { str += ''; } else { str += ''; } } } else { // If this is the first child of the rootNode, and showRootNode is false, we want to display a different icon. if (!showRootNode && (treeNode.getParent() == rootNode) && (treeNode.getParent().getFirstChild() == treeNode)) { if (!lastNode) { str += ''; } else { str += ''; } } else { if (!lastNode) { str += ''; } else { str += ''; } } } iconStartImage = treeNode.getIcon(); if (state != 'closed') { if (treeNode.hasChilds()) { iconStartImage = treeNode.getOpenIcon(); } } str += ''; str += ' '; str += treeNode.getName(); str += ''; str += ''; str += ''; if (treeNode.hasChilds()) { if (state == 'open') { str += '
    '; fireOpenEvent(treeNode); // alert('openevent: ' + treeNode.getName()); } else { str += '
    '; } var subgroupstr = ''; var newChar = ''; if (!lastNode) { newChar = 'I'; } else { newChar = 'B'; } for(var z=0;z'; str += '
    '; } return str; } /* function mouseMove() { if (dragging) { alert('bob'); } } function mouseUp() { if (dragging) { alert('dropped on something!'); } } */ function startDrag(nodeID) { if (!dragable) { return; } draggedNodeID = nodeID; var srcObj = window.event.srcElement; while(srcObj.tagName != 'DIV') { srcObj = srcObj.parentElement; } floatDragElement = document.createElement('DIV'); floatDragElement.innerHTML = srcObj.innerHTML; floatDragElement.childNodes[0].removeChild(floatDragElement.childNodes[0].childNodes[0]); document.body.appendChild(floatDragElement); floatDragElement.style.zIndex = 100; floatDragElement.style.position = 'absolute'; floatDragElement.style.filter='progid:DXImageTransform.Microsoft.Alpha(1,opacity=60);'; } function findSpanChild(element) { if (element.tagName == 'SPAN') { return element; } else { if (element.childNodes) { for(var i=0;i!'); return; } } findSpanChild(colouredElement).className = 'treetitleselectedfocused'; } function dragLeave() { if (!dragable) { return; } } function endDrag(nodeID) { if (!dragable) { return; } if (lastDraggedOnNodeID != null) { fireMoveEvent(getTreeNode(lastDraggedOnNodeID),draggedNodeID,lastDraggedOnNodeID); } } function dragProceed() { if (!dragable) { return; } var dragged = getTreeNode(draggedNodeID); var newparent = getTreeNode(lastDraggedOnNodeID); var oldparent = dragged.getParent(); oldparent.removeChild(dragged); newparent.addChild(dragged); refreshNode(oldparent); refreshNode(newparent); _dragClean() } function dragCancel() { if (!dragable) { return; } _dragClean() } /** * Don't call this yourself. */ function _dragClean() { if (!dragable) { return; } if (colouredElement) { findSpanChild(colouredElement).className = 'treetitle'; } floatDragElement.parentElement.removeChild(floatDragElement); floatDragElement = null; colouredElement = null; draggedNodeID = null; lastDraggedOnNodeID = null; } function dragMove() { if (!dragable) { return; } floatDragElement.style.top = window.event.clientY; floatDragElement.style.left = window.event.clientX; } function editEnded() { if (treeNodeEdited != null) { // treeNodeEdited.getID(); var editTitle = document.getElementById('title' + treeNodeEdited.getID()); var input = editTitle.childNodes[0]; var newValue = input.value; if (newValue == treeNodeEdited.getName()) { editTitle.innerHTML = newValue; treeNodeEdited = null; return; } fireEditEvent(treeNodeEdited,newValue); if (!editaborted) { treeNodeEdited.setName(newValue); editTitle.innerHTML = newValue; } treeNodeEdited = null; } } function selectNode(nodeID) { var treeNode = getTreeNode(nodeID); if (selectedNode != null) { if (selectedNode == nodeID) { if (treeNode.isEditable()) { if (treeNodeEdited == treeNode) { return; } treeNodeEdited = treeNode; var editTitle = document.getElementById('title' + treeNode.getID()); editTitle.className = 'editednode'; editTitle.innerHTML = ''; var input = editTitle.childNodes[0]; input.value = treeNode.getName(); input.focus(); input.select(); input.onblur = editEnded; } return; } if (treeNodeEdited != null) { editEnded(); } var oldNodeTitle = document.getElementById('title' + selectedNode); oldNodeTitle.className = 'treetitle'; } selectedNode = nodeID; var nodetitle = document.getElementById('title' + selectedNode); nodetitle.className = 'treetitleselectedfocused'; if (treeNode.gotHandler()) { eval(treeNode.getHandler() + '(getTreeNode(' + nodeID + '));'); } else { standardClick(treeNode); } } function refreshNode(treeNode) { var submenu = document.getElementById('node' + treeNode.getID() + 'sub'); var str = ''; for(var i=0;i'; } else { actionimage.outerHTML = ''; } } } submenu.innerHTML = str; } function handleNode(nodeID) { var treeNode = getTreeNode(nodeID); if (!treeNode.hasChilds()) { // No reason to handle a node without childs. return; } var submenu = document.getElementById('node' + nodeID + 'sub'); var iconimageholder = document.getElementById('iconimage' + nodeID); var actionimage = document.getElementById('handler' + nodeID); // This will be used if showRootNode is set to false. var firstChildOfRoot = false; if (actionimage.src.indexOf('_no_root') != -1) { firstChildOfRoot = true; } if (submenu.style.display == 'none') { writeStates(nodeID,'open'); fireOpenEvent(treeNode); submenu.style.display = 'block'; iconimageholder.src = treeNode.getOpenIcon(); if (actionimage.src.indexOf('last') == -1) { actionimage.src = href + 'static/' + ((firstChildOfRoot) ? 'minus_no_root' : (showLines ? 'minus' : 'minus_nolines')) + '.gif'; } else { actionimage.src = href + 'static/' + ((firstChildOfRoot) ? 'minus_last_no_root' : (showLines ? 'minus_last' : 'minus_nolines')) + '.gif'; } } else { writeStates(nodeID,'closed'); submenu.style.display = 'none'; iconimageholder.src = treeNode.getIcon(); if (actionimage.src.indexOf('last') == -1) { actionimage.src = href + 'static/' + ((firstChildOfRoot) ? 'plus_no_root' : (showLines ? 'plus' : 'plus_nolines')) + '.gif'; } else { actionimage.src = href + 'static/' + ((firstChildOfRoot) ? 'plus_last_no_root' : (showLines ? 'plus_last' : 'plus_nolines')) + '.gif'; } } } function fireOpenEvent(treeNode) { if (treeNode.gotOpenEventListeners()) { for(var i=0;i 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } function expandNode() { var state = getState(selectedNode); if (state == 'open') { var currentTreeNode = getTreeNode(selectedNode); if (currentTreeNode.hasChilds()) { selectNode(currentTreeNode.childs[0].getID()); } } else { handleNode(selectedNode); } } function subtractNode() { var state = getState(selectedNode); if (state == 'closed') { var currentTreeNode = getTreeNode(selectedNode); var parent = currentTreeNode.getParent(); if (parent != null && parent != rootNode) { selectNode(parent.getID()); } } else { handleNode(selectedNode); } } function selectPrevNode() { var currentTreeNode = getTreeNode(selectedNode); if (currentTreeNode.prevSibling != null) { var state = getState(currentTreeNode.prevSibling.getID()); if (state == 'open' && currentTreeNode.prevSibling.hasChilds()) { // We have to find the last open child of the previoussiblings childs. var current = currentTreeNode.prevSibling.childs[currentTreeNode.prevSibling.childs.length - 1]; var currentstate = 'open'; while (current.hasChilds() && (getState(current.getID()) == 'open')) { current = current.childs[current.childs.length - 1]; } selectNode(current.getID()); } else { selectNode(currentTreeNode.prevSibling.getID()); } } else { if (currentTreeNode.getParent() != null && currentTreeNode.getParent() != rootNode) { selectNode(currentTreeNode.getParent().getID()); } } } function selectNextNode() { var currentTreeNode = getTreeNode(selectedNode); var state = getState(selectedNode); if (state == 'open' && currentTreeNode.hasChilds()) { selectNode(currentTreeNode.childs[0].getID()); } else { if (currentTreeNode.nextSibling != null) { selectNode(currentTreeNode.nextSibling.getID()); } else { // Continue up the tree until we either hit null, or a parent which have a child. var parent = currentTreeNode; while ((parent = parent.getParent()) != rootNode) { if (parent.nextSibling != null) { selectNode(parent.nextSibling.getID()); break; } } /* if (currentTreeNode.getParent().nextSibling != null) { selectNode(currentTreeNode.getParent().nextSibling.getID()); } */ } } } function keyDown(event) { if (window.event) { event = window.event; } if (event.keyCode == 38) { // Up selectPrevNode(); return false; } else if (event.keyCode == 40) { // Down selectNextNode(); return false; } else if (event.keyCode == 37) { // left subtractNode(); return false; } else if (event.keyCode == 39) { // right expandNode(); return false; } } document.onkeydown = keyDown; webcit-dfsg.orig/static/instant_messenger.html0000644000175000017500000001303413223341037021705 0ustar michaelmichael Citadel Instant Messenger

      

    webcit-dfsg.orig/static/processing.gif0000755000175000017500000000621113223341037020134 0ustar michaelmichaelGIF89aDFD줦$"$ljlܜ\Z\ <>( TJ$ǁ P Źh-H|UE#oCRUBc##O#DE cO Flc$ eB EcB ER $c]O B$ BA! &,LJL,*,dfdtvt TVT424|~|LNL,.,trt|z|  \Z\464@pH,FN)A:% "(0"VM)!DJM#9(? @#}DH|_&FmBp_C  D#G !N E$pFpD"!B#DRR#R[&`p F"iBUOA! (,DBD$"$䴲dfd424,*,켺trtLJL$&$䴶lnl<:<,.,켾tvtLNL@pH,GM$jesXUP鴐p-yG|fNd! '(fw ii %i}L!!i%H!(xB|y'!!z~L & FiGi "E C"CiE'$E W( ]w("swCLA! (,DFD$"$ljltvt \^\TRT,.,|~|LJLtrt|z|  424@pH,ȤIxN(GE\K$0F_dY #&~I VI!"!B yK!\\ s (~"s"(J!#\#D J xF'G\F{\$HsSD BBC 'm_ {~\CJ\D $G! %,<:<\^\lnl  LNLdfdtvt LJLdbd,.,trtTVTljlpHd< rY$h,L C"3P̀#܌HB\Jf LtJo~SYK_KD!Bb_OBSLS mN_\ KB!OK!OC LB ) ! #,DBD촲dfd TVT424LJL|~|DFD,*,켺ljl  464pHl6 rIL`AY4 =OvG G4l*1Ѓ2LGS[J [zL bK^XT^T  Lo""#x[ "P"o^Br SC ^aK l_D# bC gA;webcit-dfsg.orig/static/wcpref.js0000644000175000017500000000420713223341037017115 0ustar michaelmichael/* * Copyright 2005 - 2009 The Citadel Team * Licensed under the GPL V3 * Webcit preference code */ var persistentStorage = false; /* DOM5 storage disabled for now.. we want localStorage which isn't as widely available yet */ //if (window.sessionStorage) { // persistentStorage = true; //} function WCPrefs() { this.cookieValCache = new Object(); this.noExpire = "Mon, 18 Jan 2038 5:14:07 AM"; } function readPref(name) { if (persistentStorage) { return sessionStorage.getItem(name); } else { return this.cookieValCache[name]; } } function setPref(name, value) { if (persistentStorage) { sessionStorage.setItem(name, value); } else { document.cookie = "WC_" + name + "="+value+";expires="+this.noExpire; // this.cookieValCache[name] = value; //this.saveLocal(); } } function loadLocal() { if (!persistentStorage) { var cookies = document.cookie.split(";"); for(var i=0; i 1 ? 1 : pos; }, wobble: function(pos) { return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5; }, pulse: function(pos, pulses) { return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5; }, spring: function(pos) { return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); }, none: function(pos) { return 0; }, full: function(pos) { return 1; } }, DefaultOptions: { duration: 1.0, // seconds fps: 100, // 100= assume 66fps max. sync: false, // true for combining from: 0.0, to: 1.0, delay: 0.0, queue: 'parallel' }, tagifyText: function(element) { var tagifyStyle = 'position:relative'; if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; element = $(element); $A(element.childNodes).each( function(child) { if (child.nodeType==3) { child.nodeValue.toArray().each( function(character) { element.insertBefore( new Element('span', {style: tagifyStyle}).update( character == ' ' ? String.fromCharCode(160) : character), child); }); Element.remove(child); } }); }, multiple: function(element, effect) { var elements; if (((typeof element == 'object') || Object.isFunction(element)) && (element.length)) elements = element; else elements = $(element).childNodes; var options = Object.extend({ speed: 0.1, delay: 0.0 }, arguments[2] || { }); var masterDelay = options.delay; $A(elements).each( function(element, index) { new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); }); }, PAIRS: { 'slide': ['SlideDown','SlideUp'], 'blind': ['BlindDown','BlindUp'], 'appear': ['Appear','Fade'] }, toggle: function(element, effect, options) { element = $(element); effect = (effect || 'appear').toLowerCase(); return Effect[ Effect.PAIRS[ effect ][ element.visible() ? 1 : 0 ] ](element, Object.extend({ queue: { position:'end', scope:(element.id || 'global'), limit: 1 } }, options || {})); } }; Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; /* ------------- core effects ------------- */ Effect.ScopedQueue = Class.create(Enumerable, { initialize: function() { this.effects = []; this.interval = null; }, _each: function(iterator) { this.effects._each(iterator); }, add: function(effect) { var timestamp = new Date().getTime(); var position = Object.isString(effect.options.queue) ? effect.options.queue : effect.options.queue.position; switch(position) { case 'front': // move unstarted effects after this effect this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { e.startOn += effect.finishOn; e.finishOn += effect.finishOn; }); break; case 'with-last': timestamp = this.effects.pluck('startOn').max() || timestamp; break; case 'end': // start effect after last queued effect has finished timestamp = this.effects.pluck('finishOn').max() || timestamp; break; } effect.startOn += timestamp; effect.finishOn += timestamp; if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) this.effects.push(effect); if (!this.interval) this.interval = setInterval(this.loop.bind(this), 15); }, remove: function(effect) { this.effects = this.effects.reject(function(e) { return e==effect }); if (this.effects.length == 0) { clearInterval(this.interval); this.interval = null; } }, loop: function() { var timePos = new Date().getTime(); for(var i=0, len=this.effects.length;i= this.startOn) { if (timePos >= this.finishOn) { this.render(1.0); this.cancel(); this.event('beforeFinish'); if (this.finish) this.finish(); this.event('afterFinish'); return; } var pos = (timePos - this.startOn) / this.totalTime, frame = (pos * this.totalFrames).round(); if (frame > this.currentFrame) { this.render(pos); this.currentFrame = frame; } } }, cancel: function() { if (!this.options.sync) Effect.Queues.get(Object.isString(this.options.queue) ? 'global' : this.options.queue.scope).remove(this); this.state = 'finished'; }, event: function(eventName) { if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); if (this.options[eventName]) this.options[eventName](this); }, inspect: function() { var data = $H(); for(property in this) if (!Object.isFunction(this[property])) data.set(property, this[property]); return '#'; } }); Effect.Parallel = Class.create(Effect.Base, { initialize: function(effects) { this.effects = effects || []; this.start(arguments[1]); }, update: function(position) { this.effects.invoke('render', position); }, finish: function(position) { this.effects.each( function(effect) { effect.render(1.0); effect.cancel(); effect.event('beforeFinish'); if (effect.finish) effect.finish(position); effect.event('afterFinish'); }); } }); Effect.Tween = Class.create(Effect.Base, { initialize: function(object, from, to) { object = Object.isString(object) ? $(object) : object; var args = $A(arguments), method = args.last(), options = args.length == 5 ? args[3] : null; this.method = Object.isFunction(method) ? method.bind(object) : Object.isFunction(object[method]) ? object[method].bind(object) : function(value) { object[method] = value }; this.start(Object.extend({ from: from, to: to }, options || { })); }, update: function(position) { this.method(position); } }); Effect.Event = Class.create(Effect.Base, { initialize: function() { this.start(Object.extend({ duration: 0 }, arguments[0] || { })); }, update: Prototype.emptyFunction }); Effect.Opacity = Class.create(Effect.Base, { initialize: function(element) { this.element = $(element); if (!this.element) throw(Effect._elementDoesNotExistError); // make this work on IE on elements without 'layout' if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom: 1}); var options = Object.extend({ from: this.element.getOpacity() || 0.0, to: 1.0 }, arguments[1] || { }); this.start(options); }, update: function(position) { this.element.setOpacity(position); } }); Effect.Move = Class.create(Effect.Base, { initialize: function(element) { this.element = $(element); if (!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ x: 0, y: 0, mode: 'relative' }, arguments[1] || { }); this.start(options); }, setup: function() { this.element.makePositioned(); this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); this.originalTop = parseFloat(this.element.getStyle('top') || '0'); if (this.options.mode == 'absolute') { this.options.x = this.options.x - this.originalLeft; this.options.y = this.options.y - this.originalTop; } }, update: function(position) { this.element.setStyle({ left: (this.options.x * position + this.originalLeft).round() + 'px', top: (this.options.y * position + this.originalTop).round() + 'px' }); } }); // for backwards compatibility Effect.MoveBy = function(element, toTop, toLeft) { return new Effect.Move(element, Object.extend({ x: toLeft, y: toTop }, arguments[3] || { })); }; Effect.Scale = Class.create(Effect.Base, { initialize: function(element, percent) { this.element = $(element); if (!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ scaleX: true, scaleY: true, scaleContent: true, scaleFromCenter: false, scaleMode: 'box', // 'box' or 'contents' or { } with provided values scaleFrom: 100.0, scaleTo: percent }, arguments[2] || { }); this.start(options); }, setup: function() { this.restoreAfterFinish = this.options.restoreAfterFinish || false; this.elementPositioning = this.element.getStyle('position'); this.originalStyle = { }; ['top','left','width','height','fontSize'].each( function(k) { this.originalStyle[k] = this.element.style[k]; }.bind(this)); this.originalTop = this.element.offsetTop; this.originalLeft = this.element.offsetLeft; var fontSize = this.element.getStyle('font-size') || '100%'; ['em','px','%','pt'].each( function(fontSizeType) { if (fontSize.indexOf(fontSizeType)>0) { this.fontSize = parseFloat(fontSize); this.fontSizeType = fontSizeType; } }.bind(this)); this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; this.dims = null; if (this.options.scaleMode=='box') this.dims = [this.element.offsetHeight, this.element.offsetWidth]; if (/^content/.test(this.options.scaleMode)) this.dims = [this.element.scrollHeight, this.element.scrollWidth]; if (!this.dims) this.dims = [this.options.scaleMode.originalHeight, this.options.scaleMode.originalWidth]; }, update: function(position) { var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); if (this.options.scaleContent && this.fontSize) this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); }, finish: function(position) { if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); }, setDimensions: function(height, width) { var d = { }; if (this.options.scaleX) d.width = width.round() + 'px'; if (this.options.scaleY) d.height = height.round() + 'px'; if (this.options.scaleFromCenter) { var topd = (height - this.dims[0])/2; var leftd = (width - this.dims[1])/2; if (this.elementPositioning == 'absolute') { if (this.options.scaleY) d.top = this.originalTop-topd + 'px'; if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; } else { if (this.options.scaleY) d.top = -topd + 'px'; if (this.options.scaleX) d.left = -leftd + 'px'; } } this.element.setStyle(d); } }); Effect.Highlight = Class.create(Effect.Base, { initialize: function(element) { this.element = $(element); if (!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { }); this.start(options); }, setup: function() { // Prevent executing on elements not in the layout flow if (this.element.getStyle('display')=='none') { this.cancel(); return; } // Disable background image during the effect this.oldStyle = { }; if (!this.options.keepBackgroundImage) { this.oldStyle.backgroundImage = this.element.getStyle('background-image'); this.element.setStyle({backgroundImage: 'none'}); } if (!this.options.endcolor) this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); if (!this.options.restorecolor) this.options.restorecolor = this.element.getStyle('background-color'); // init color calculations this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); }, update: function(position) { this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) }); }, finish: function() { this.element.setStyle(Object.extend(this.oldStyle, { backgroundColor: this.options.restorecolor })); } }); Effect.ScrollTo = function(element) { var options = arguments[1] || { }, scrollOffsets = document.viewport.getScrollOffsets(), elementOffsets = $(element).cumulativeOffset(); if (options.offset) elementOffsets[1] += options.offset; return new Effect.Tween(null, scrollOffsets.top, elementOffsets[1], options, function(p){ scrollTo(scrollOffsets.left, p.round()); } ); }; /* ------------- combination effects ------------- */ Effect.Fade = function(element) { element = $(element); var oldOpacity = element.getInlineOpacity(); var options = Object.extend({ from: element.getOpacity() || 1.0, to: 0.0, afterFinishInternal: function(effect) { if (effect.options.to!=0) return; effect.element.hide().setStyle({opacity: oldOpacity}); } }, arguments[1] || { }); return new Effect.Opacity(element,options); }; Effect.Appear = function(element) { element = $(element); var options = Object.extend({ from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), to: 1.0, // force Safari to render floated elements properly afterFinishInternal: function(effect) { effect.element.forceRerendering(); }, beforeSetup: function(effect) { effect.element.setOpacity(effect.options.from).show(); }}, arguments[1] || { }); return new Effect.Opacity(element,options); }; Effect.Puff = function(element) { element = $(element); var oldStyle = { opacity: element.getInlineOpacity(), position: element.getStyle('position'), top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; return new Effect.Parallel( [ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], Object.extend({ duration: 1.0, beforeSetupInternal: function(effect) { Position.absolutize(effect.effects[0].element); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().setStyle(oldStyle); } }, arguments[1] || { }) ); }; Effect.BlindUp = function(element) { element = $(element); element.makeClipping(); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, restoreAfterFinish: true, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); } }, arguments[1] || { }) ); }; Effect.BlindDown = function(element) { element = $(element); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { effect.element.undoClipping(); } }, arguments[1] || { })); }; Effect.SwitchOff = function(element) { element = $(element); var oldOpacity = element.getInlineOpacity(); return new Effect.Appear(element, Object.extend({ duration: 0.4, from: 0, transition: Effect.Transitions.flicker, afterFinishInternal: function(effect) { new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, restoreAfterFinish: true, beforeSetup: function(effect) { effect.element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); } }); } }, arguments[1] || { })); }; Effect.DropOut = function(element) { element = $(element); var oldStyle = { top: element.getStyle('top'), left: element.getStyle('left'), opacity: element.getInlineOpacity() }; return new Effect.Parallel( [ new Effect.Move(element, {x: 0, y: 100, sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend( { duration: 0.5, beforeSetup: function(effect) { effect.effects[0].element.makePositioned(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); } }, arguments[1] || { })); }; Effect.Shake = function(element) { element = $(element); var options = Object.extend({ distance: 20, duration: 0.5 }, arguments[1] || {}); var distance = parseFloat(options.distance); var split = parseFloat(options.duration) / 10.0; var oldStyle = { top: element.getStyle('top'), left: element.getStyle('left') }; return new Effect.Move(element, { x: distance, y: 0, duration: split, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { effect.element.undoPositioned().setStyle(oldStyle); }}); }}); }}); }}); }}); }}); }; Effect.SlideDown = function(element) { element = $(element).cleanWhitespace(); // SlideDown need to have the content of the element wrapped in a container element with fixed height! var oldInnerBottom = element.down().getStyle('bottom'); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: window.opera ? 0 : 1, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makePositioned(); effect.element.down().makePositioned(); if (window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.undoClipping().undoPositioned(); effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } }, arguments[1] || { }) ); }; Effect.SlideUp = function(element) { element = $(element).cleanWhitespace(); var oldInnerBottom = element.down().getStyle('bottom'); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, window.opera ? 0 : 1, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'box', scaleFrom: 100, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makePositioned(); effect.element.down().makePositioned(); if (window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned(); effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } }, arguments[1] || { }) ); }; // Bug in opera makes the TD containing this element expand for a instance after finish Effect.Squish = function(element) { return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, beforeSetup: function(effect) { effect.element.makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); } }); }; Effect.Grow = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransition: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.full }, arguments[1] || { }); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: element.getInlineOpacity() }; var dims = element.getDimensions(); var initialMoveX, initialMoveY; var moveX, moveY; switch (options.direction) { case 'top-left': initialMoveX = initialMoveY = moveX = moveY = 0; break; case 'top-right': initialMoveX = dims.width; initialMoveY = moveY = 0; moveX = -dims.width; break; case 'bottom-left': initialMoveX = moveX = 0; initialMoveY = dims.height; moveY = -dims.height; break; case 'bottom-right': initialMoveX = dims.width; initialMoveY = dims.height; moveX = -dims.width; moveY = -dims.height; break; case 'center': initialMoveX = dims.width / 2; initialMoveY = dims.height / 2; moveX = -dims.width / 2; moveY = -dims.height / 2; break; } return new Effect.Move(element, { x: initialMoveX, y: initialMoveY, duration: 0.01, beforeSetup: function(effect) { effect.element.hide().makeClipping().makePositioned(); }, afterFinishInternal: function(effect) { new Effect.Parallel( [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), new Effect.Scale(effect.element, 100, { scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) ], Object.extend({ beforeSetup: function(effect) { effect.effects[0].element.setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); } }, options) ); } }); }; Effect.Shrink = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransition: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.none }, arguments[1] || { }); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: element.getInlineOpacity() }; var dims = element.getDimensions(); var moveX, moveY; switch (options.direction) { case 'top-left': moveX = moveY = 0; break; case 'top-right': moveX = dims.width; moveY = 0; break; case 'bottom-left': moveX = 0; moveY = dims.height; break; case 'bottom-right': moveX = dims.width; moveY = dims.height; break; case 'center': moveX = dims.width / 2; moveY = dims.height / 2; break; } return new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) ], Object.extend({ beforeStartInternal: function(effect) { effect.effects[0].element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } }, options) ); }; Effect.Pulsate = function(element) { element = $(element); var options = arguments[1] || { }, oldOpacity = element.getInlineOpacity(), transition = options.transition || Effect.Transitions.linear, reverser = function(pos){ return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5); }; return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 2.0, from: 0, afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } }, options), {transition: reverser})); }; Effect.Fold = function(element) { element = $(element); var oldStyle = { top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; element.makeClipping(); return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleX: false, afterFinishInternal: function(effect) { new Effect.Scale(element, 1, { scaleContent: false, scaleY: false, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().setStyle(oldStyle); } }); }}, arguments[1] || { })); }; Effect.Morph = Class.create(Effect.Base, { initialize: function(element) { this.element = $(element); if (!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ style: { } }, arguments[1] || { }); if (!Object.isString(options.style)) this.style = $H(options.style); else { if (options.style.include(':')) this.style = options.style.parseStyle(); else { this.element.addClassName(options.style); this.style = $H(this.element.getStyles()); this.element.removeClassName(options.style); var css = this.element.getStyles(); this.style = this.style.reject(function(style) { return style.value == css[style.key]; }); options.afterFinishInternal = function(effect) { effect.element.addClassName(effect.options.style); effect.transforms.each(function(transform) { effect.element.style[transform.style] = ''; }); }; } } this.start(options); }, setup: function(){ function parseColor(color){ if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; color = color.parseColor(); return $R(0,2).map(function(i){ return parseInt( color.slice(i*2+1,i*2+3), 16 ); }); } this.transforms = this.style.map(function(pair){ var property = pair[0], value = pair[1], unit = null; if (value.parseColor('#zzzzzz') != '#zzzzzz') { value = value.parseColor(); unit = 'color'; } else if (property == 'opacity') { value = parseFloat(value); if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom: 1}); } else if (Element.CSS_LENGTH.test(value)) { var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); value = parseFloat(components[1]); unit = (components.length == 3) ? components[2] : null; } var originalValue = this.element.getStyle(property); return { style: property.camelize(), originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), targetValue: unit=='color' ? parseColor(value) : value, unit: unit }; }.bind(this)).reject(function(transform){ return ( (transform.originalValue == transform.targetValue) || ( transform.unit != 'color' && (isNaN(transform.originalValue) || isNaN(transform.targetValue)) ) ); }); }, update: function(position) { var style = { }, transform, i = this.transforms.length; while(i--) style[(transform = this.transforms[i]).style] = transform.unit=='color' ? '#'+ (Math.round(transform.originalValue[0]+ (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + (Math.round(transform.originalValue[1]+ (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + (Math.round(transform.originalValue[2]+ (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : (transform.originalValue + (transform.targetValue - transform.originalValue) * position).toFixed(3) + (transform.unit === null ? '' : transform.unit); this.element.setStyle(style, true); } }); Effect.Transform = Class.create({ initialize: function(tracks){ this.tracks = []; this.options = arguments[1] || { }; this.addTracks(tracks); }, addTracks: function(tracks){ tracks.each(function(track){ track = $H(track); var data = track.values().first(); this.tracks.push($H({ ids: track.keys().first(), effect: Effect.Morph, options: { style: data } })); }.bind(this)); return this; }, play: function(){ return new Effect.Parallel( this.tracks.map(function(track){ var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options'); var elements = [$(ids) || $$(ids)].flatten(); return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) }); }).flatten(), this.options ); } }); Element.CSS_PROPERTIES = $w( 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + 'fontSize fontWeight height left letterSpacing lineHeight ' + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + 'right textIndent top width wordSpacing zIndex'); Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; String.__parseStyleElement = document.createElement('div'); String.prototype.parseStyle = function(){ var style, styleRules = $H(); if (Prototype.Browser.WebKit) style = new Element('div',{style:this}).style; else { String.__parseStyleElement.innerHTML = '
    '; style = String.__parseStyleElement.childNodes[0].style; } Element.CSS_PROPERTIES.each(function(property){ if (style[property]) styleRules.set(property, style[property]); }); if (Prototype.Browser.IE && this.include('opacity')) styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); return styleRules; }; if (document.defaultView && document.defaultView.getComputedStyle) { Element.getStyles = function(element) { var css = document.defaultView.getComputedStyle($(element), null); return Element.CSS_PROPERTIES.inject({ }, function(styles, property) { styles[property] = css[property]; return styles; }); }; } else { Element.getStyles = function(element) { element = $(element); var css = element.currentStyle, styles; styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) { results[property] = css[property]; return results; }); if (!styles.opacity) styles.opacity = element.getOpacity(); return styles; }; } Effect.Methods = { morph: function(element, style) { element = $(element); new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { })); return element; }, visualEffect: function(element, effect, options) { element = $(element); var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); new Effect[klass](element, options); return element; }, highlight: function(element, options) { element = $(element); new Effect.Highlight(element, options); return element; } }; $w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ 'pulsate shake puff squish switchOff dropOut').each( function(effect) { Effect.Methods[effect] = function(element, options){ element = $(element); Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); return element; }; } ); $w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( function(f) { Effect.Methods[f] = Element[f]; } ); Element.addMethods(Effect.Methods);webcit-dfsg.orig/static/table.js0000644000175000017500000000633113223341037016716 0ustar michaelmichaelvar categories; /** * Task view table sorter * Written by Mathew McBride * Copyright 2009 The Citadel Team * Licensed under the GPL V3 */ function gatherCategoriesFromTable() { var tbody = document.getElementById("taskview"); var childNodes = tbody.childNodes; for (i=0; i<=childNodes.length; i++) { var child = childNodes[i]; // Should be TR if (child != undefined && child.nodeName == "TR") { var childTds = child.getElementsByTagName("TD"); if (childTds.length == 4) { var categoryTd = childTds[3]; if (categoryTd != undefined) { // Get text child if (categoryTd.childNodes.length > 0 && categoryTd.childNodes[0].nodeType == 3) { categories[categoryTd.childNodes[0].nodeValue] = categoryTd.childNodes[0].nodeValue; } } } } } } function addCategoriesToSelector() { var selector = document.getElementById("selectcategory"); for (description in categories) { var newOptionElement = document.createElement("option"); newOptionElement.setAttribute("value", categories[description]); var text = document.createTextNode(categories[description]); newOptionElement.appendChild(text); selector.appendChild(newOptionElement); } } function filterCategories(event) { hideAllExistingRows(); var selector = document.getElementById("selectcategory"); var selected = selector.selectedIndex; var selectedCategory = selector.options[selected]; var tbody = document.getElementById("taskview"); var cat = selectedCategory.getAttribute("value"); var nodesToUnhide = new Array(); var curIndex = 0; // Hunt down all the rows with this category using XPath if (document.evaluate) { // Only if we can do so, of course var debugText = ""; var toEvaluate = null; if (cat != 'showall') { toEvaluate = "//tr[td='"+cat+"']"; } else { toEvaluate = "//tr[td]"; } var trNodes = document.evaluate(toEvaluate, document, null, XPathResult.ANY_TYPE, null); var trNode = trNodes.iterateNext(); while(trNode) { debugText += "
    "+trNode.nodeName; nodesToUnhide[curIndex++] = trNode; trNode = trNodes.iterateNext(); } } for (i=0;i / * * Copyright 2009 The Citadel Team * Licensed under the GPL V3 */ var draggedElement = null; var currentDropTargets = null; var dropTarget = null; var dragAndDropElement = null; var oldSelectHandler = null; function mouseDownHandler(event) { var target = event.target; var actualTarget = target; if (target.nodeName.toLowerCase() == "td") { actualTarget = target.parentNode; } if (!actualTarget.dropEnabled && actualTarget.getAttribute("citadel:dropenabled") == null) { return; } turnOffTextSelect(); draggedElement = actualTarget; return false; } function mouseUpHandler(event) { var target = event.target; var dropped = dropTarget; if (dragAndDropElement != null) { if (dropped != null && dropped.dropHandler) { dropped.dropHandler(dropped,draggedElement); } document.body.removeChild(dragAndDropElement); } dragAndDropElement = null; draggedElement = null; dropTarget = null; turnOnTextSelect(); return true; } function mouseMoveHandler(event) { if (draggedElement != null) { if (dragAndDropElement == null) { var dragAndDropElementFunction = (draggedElement.ctdlDnDElement) ? draggedElement.ctdlDndElement : eval(draggedElement.getAttribute("citadel:dndelement")); dragAndDropElement = dragAndDropElementFunction.call(); dragAndDropElement.className = "draganddrop"; document.body.appendChild(dragAndDropElement); } var clientX = event.clientX+5; var clientY = event.clientY+5; dragAndDropElement.style.top = clientY + "px"; dragAndDropElement.style.left = clientX + "px"; } return false; } function mouseMoveOver(event) { if (event.target.dropTarget) { dropTarget = event.target; } } function mouseMoveOut(event) { if (dropTarget) { dropTarget = null; } } function setupDragDrop() { $(document.body).observe('mousedown', mouseDownHandler); $(document.body).observe('mouseup',mouseUpHandler); $(document.body).observe('mousemove',mouseMoveHandler); $(document.body).observe('mouseover', mouseMoveOver); $(document.body).observe('mouseout', mouseMoveOut); } function turnOffTextSelect() { document.onmousedown = new Function("return false"); document.onmouseup = new Function("return true"); oldSelectHandler = document.onselectstart; document.onselectstart = function() { return false; }; } function turnOnTextSelect() { document.onmousedown = null; document.onmouseup = null; document.onselectstart = oldSelectHandler; } webcit-dfsg.orig/static/prototype.js0000644000175000017500000047676013223341037017715 0ustar michaelmichael/* Prototype JavaScript framework, version 1.7 * (c) 2005-2010 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style license. * For details, see the Prototype web site: http://www.prototypejs.org/ * *--------------------------------------------------------------------------*/ var Prototype = { Version: '1.7', Browser: (function(){ var ua = navigator.userAgent; var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]'; return { IE: !!window.attachEvent && !isOpera, Opera: isOpera, WebKit: ua.indexOf('AppleWebKit/') > -1, Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1, MobileSafari: /Apple.*Mobile/.test(ua) } })(), BrowserFeatures: { XPath: !!document.evaluate, SelectorsAPI: !!document.querySelector, ElementExtensions: (function() { var constructor = window.Element || window.HTMLElement; return !!(constructor && constructor.prototype); })(), SpecificElementExtensions: (function() { if (typeof window.HTMLDivElement !== 'undefined') return true; var div = document.createElement('div'), form = document.createElement('form'), isSupported = false; if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) { isSupported = true; } div = form = null; return isSupported; })() }, ScriptFragment: ']*>([\\S\\s]*?)<\/script>', JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, emptyFunction: function() { }, K: function(x) { return x } }; if (Prototype.Browser.MobileSafari) Prototype.BrowserFeatures.SpecificElementExtensions = false; /* Based on Alex Arnell's inheritance implementation. */ var Class = (function() { var IS_DONTENUM_BUGGY = (function(){ for (var p in { toString: 1 }) { if (p === 'toString') return false; } return true; })(); function subclass() {}; function create() { var parent = null, properties = $A(arguments); if (Object.isFunction(properties[0])) parent = properties.shift(); function klass() { this.initialize.apply(this, arguments); } Object.extend(klass, Class.Methods); klass.superclass = parent; klass.subclasses = []; if (parent) { subclass.prototype = parent.prototype; klass.prototype = new subclass; parent.subclasses.push(klass); } for (var i = 0, length = properties.length; i < length; i++) klass.addMethods(properties[i]); if (!klass.prototype.initialize) klass.prototype.initialize = Prototype.emptyFunction; klass.prototype.constructor = klass; return klass; } function addMethods(source) { var ancestor = this.superclass && this.superclass.prototype, properties = Object.keys(source); if (IS_DONTENUM_BUGGY) { if (source.toString != Object.prototype.toString) properties.push("toString"); if (source.valueOf != Object.prototype.valueOf) properties.push("valueOf"); } for (var i = 0, length = properties.length; i < length; i++) { var property = properties[i], value = source[property]; if (ancestor && Object.isFunction(value) && value.argumentNames()[0] == "$super") { var method = value; value = (function(m) { return function() { return ancestor[m].apply(this, arguments); }; })(property).wrap(method); value.valueOf = method.valueOf.bind(method); value.toString = method.toString.bind(method); } this.prototype[property] = value; } return this; } return { create: create, Methods: { addMethods: addMethods } }; })(); (function() { var _toString = Object.prototype.toString, NULL_TYPE = 'Null', UNDEFINED_TYPE = 'Undefined', BOOLEAN_TYPE = 'Boolean', NUMBER_TYPE = 'Number', STRING_TYPE = 'String', OBJECT_TYPE = 'Object', FUNCTION_CLASS = '[object Function]', BOOLEAN_CLASS = '[object Boolean]', NUMBER_CLASS = '[object Number]', STRING_CLASS = '[object String]', ARRAY_CLASS = '[object Array]', DATE_CLASS = '[object Date]', NATIVE_JSON_STRINGIFY_SUPPORT = window.JSON && typeof JSON.stringify === 'function' && JSON.stringify(0) === '0' && typeof JSON.stringify(Prototype.K) === 'undefined'; function Type(o) { switch(o) { case null: return NULL_TYPE; case (void 0): return UNDEFINED_TYPE; } var type = typeof o; switch(type) { case 'boolean': return BOOLEAN_TYPE; case 'number': return NUMBER_TYPE; case 'string': return STRING_TYPE; } return OBJECT_TYPE; } function extend(destination, source) { for (var property in source) destination[property] = source[property]; return destination; } function inspect(object) { try { if (isUndefined(object)) return 'undefined'; if (object === null) return 'null'; return object.inspect ? object.inspect() : String(object); } catch (e) { if (e instanceof RangeError) return '...'; throw e; } } function toJSON(value) { return Str('', { '': value }, []); } function Str(key, holder, stack) { var value = holder[key], type = typeof value; if (Type(value) === OBJECT_TYPE && typeof value.toJSON === 'function') { value = value.toJSON(key); } var _class = _toString.call(value); switch (_class) { case NUMBER_CLASS: case BOOLEAN_CLASS: case STRING_CLASS: value = value.valueOf(); } switch (value) { case null: return 'null'; case true: return 'true'; case false: return 'false'; } type = typeof value; switch (type) { case 'string': return value.inspect(true); case 'number': return isFinite(value) ? String(value) : 'null'; case 'object': for (var i = 0, length = stack.length; i < length; i++) { if (stack[i] === value) { throw new TypeError(); } } stack.push(value); var partial = []; if (_class === ARRAY_CLASS) { for (var i = 0, length = value.length; i < length; i++) { var str = Str(i, value, stack); partial.push(typeof str === 'undefined' ? 'null' : str); } partial = '[' + partial.join(',') + ']'; } else { var keys = Object.keys(value); for (var i = 0, length = keys.length; i < length; i++) { var key = keys[i], str = Str(key, value, stack); if (typeof str !== "undefined") { partial.push(key.inspect(true)+ ':' + str); } } partial = '{' + partial.join(',') + '}'; } stack.pop(); return partial; } } function stringify(object) { return JSON.stringify(object); } function toQueryString(object) { return $H(object).toQueryString(); } function toHTML(object) { return object && object.toHTML ? object.toHTML() : String.interpret(object); } function keys(object) { if (Type(object) !== OBJECT_TYPE) { throw new TypeError(); } var results = []; for (var property in object) { if (object.hasOwnProperty(property)) { results.push(property); } } return results; } function values(object) { var results = []; for (var property in object) results.push(object[property]); return results; } function clone(object) { return extend({ }, object); } function isElement(object) { return !!(object && object.nodeType == 1); } function isArray(object) { return _toString.call(object) === ARRAY_CLASS; } var hasNativeIsArray = (typeof Array.isArray == 'function') && Array.isArray([]) && !Array.isArray({}); if (hasNativeIsArray) { isArray = Array.isArray; } function isHash(object) { return object instanceof Hash; } function isFunction(object) { return _toString.call(object) === FUNCTION_CLASS; } function isString(object) { return _toString.call(object) === STRING_CLASS; } function isNumber(object) { return _toString.call(object) === NUMBER_CLASS; } function isDate(object) { return _toString.call(object) === DATE_CLASS; } function isUndefined(object) { return typeof object === "undefined"; } extend(Object, { extend: extend, inspect: inspect, toJSON: NATIVE_JSON_STRINGIFY_SUPPORT ? stringify : toJSON, toQueryString: toQueryString, toHTML: toHTML, keys: Object.keys || keys, values: values, clone: clone, isElement: isElement, isArray: isArray, isHash: isHash, isFunction: isFunction, isString: isString, isNumber: isNumber, isDate: isDate, isUndefined: isUndefined }); })(); Object.extend(Function.prototype, (function() { var slice = Array.prototype.slice; function update(array, args) { var arrayLength = array.length, length = args.length; while (length--) array[arrayLength + length] = args[length]; return array; } function merge(array, args) { array = slice.call(array, 0); return update(array, args); } function argumentNames() { var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1] .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '') .replace(/\s+/g, '').split(','); return names.length == 1 && !names[0] ? [] : names; } function bind(context) { if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; var __method = this, args = slice.call(arguments, 1); return function() { var a = merge(args, arguments); return __method.apply(context, a); } } function bindAsEventListener(context) { var __method = this, args = slice.call(arguments, 1); return function(event) { var a = update([event || window.event], args); return __method.apply(context, a); } } function curry() { if (!arguments.length) return this; var __method = this, args = slice.call(arguments, 0); return function() { var a = merge(args, arguments); return __method.apply(this, a); } } function delay(timeout) { var __method = this, args = slice.call(arguments, 1); timeout = timeout * 1000; return window.setTimeout(function() { return __method.apply(__method, args); }, timeout); } function defer() { var args = update([0.01], arguments); return this.delay.apply(this, args); } function wrap(wrapper) { var __method = this; return function() { var a = update([__method.bind(this)], arguments); return wrapper.apply(this, a); } } function methodize() { if (this._methodized) return this._methodized; var __method = this; return this._methodized = function() { var a = update([this], arguments); return __method.apply(null, a); }; } return { argumentNames: argumentNames, bind: bind, bindAsEventListener: bindAsEventListener, curry: curry, delay: delay, defer: defer, wrap: wrap, methodize: methodize } })()); (function(proto) { function toISOString() { return this.getUTCFullYear() + '-' + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + this.getUTCDate().toPaddedString(2) + 'T' + this.getUTCHours().toPaddedString(2) + ':' + this.getUTCMinutes().toPaddedString(2) + ':' + this.getUTCSeconds().toPaddedString(2) + 'Z'; } function toJSON() { return this.toISOString(); } if (!proto.toISOString) proto.toISOString = toISOString; if (!proto.toJSON) proto.toJSON = toJSON; })(Date.prototype); RegExp.prototype.match = RegExp.prototype.test; RegExp.escape = function(str) { return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); }; var PeriodicalExecuter = Class.create({ initialize: function(callback, frequency) { this.callback = callback; this.frequency = frequency; this.currentlyExecuting = false; this.registerCallback(); }, registerCallback: function() { this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); }, execute: function() { this.callback(this); }, stop: function() { if (!this.timer) return; clearInterval(this.timer); this.timer = null; }, onTimerEvent: function() { if (!this.currentlyExecuting) { try { this.currentlyExecuting = true; this.execute(); this.currentlyExecuting = false; } catch(e) { this.currentlyExecuting = false; throw e; } } } }); Object.extend(String, { interpret: function(value) { return value == null ? '' : String(value); }, specialChar: { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\' } }); Object.extend(String.prototype, (function() { var NATIVE_JSON_PARSE_SUPPORT = window.JSON && typeof JSON.parse === 'function' && JSON.parse('{"test": true}').test; function prepareReplacement(replacement) { if (Object.isFunction(replacement)) return replacement; var template = new Template(replacement); return function(match) { return template.evaluate(match) }; } function gsub(pattern, replacement) { var result = '', source = this, match; replacement = prepareReplacement(replacement); if (Object.isString(pattern)) pattern = RegExp.escape(pattern); if (!(pattern.length || pattern.source)) { replacement = replacement(''); return replacement + source.split('').join(replacement) + replacement; } while (source.length > 0) { if (match = source.match(pattern)) { result += source.slice(0, match.index); result += String.interpret(replacement(match)); source = source.slice(match.index + match[0].length); } else { result += source, source = ''; } } return result; } function sub(pattern, replacement, count) { replacement = prepareReplacement(replacement); count = Object.isUndefined(count) ? 1 : count; return this.gsub(pattern, function(match) { if (--count < 0) return match[0]; return replacement(match); }); } function scan(pattern, iterator) { this.gsub(pattern, iterator); return String(this); } function truncate(length, truncation) { length = length || 30; truncation = Object.isUndefined(truncation) ? '...' : truncation; return this.length > length ? this.slice(0, length - truncation.length) + truncation : String(this); } function strip() { return this.replace(/^\s+/, '').replace(/\s+$/, ''); } function stripTags() { return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, ''); } function stripScripts() { return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); } function extractScripts() { var matchAll = new RegExp(Prototype.ScriptFragment, 'img'), matchOne = new RegExp(Prototype.ScriptFragment, 'im'); return (this.match(matchAll) || []).map(function(scriptTag) { return (scriptTag.match(matchOne) || ['', ''])[1]; }); } function evalScripts() { return this.extractScripts().map(function(script) { return eval(script) }); } function escapeHTML() { return this.replace(/&/g,'&').replace(//g,'>'); } function unescapeHTML() { return this.stripTags().replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&'); } function toQueryParams(separator) { var match = this.strip().match(/([^?#]*)(#.*)?$/); if (!match) return { }; return match[1].split(separator || '&').inject({ }, function(hash, pair) { if ((pair = pair.split('='))[0]) { var key = decodeURIComponent(pair.shift()), value = pair.length > 1 ? pair.join('=') : pair[0]; if (value != undefined) value = decodeURIComponent(value); if (key in hash) { if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; hash[key].push(value); } else hash[key] = value; } return hash; }); } function toArray() { return this.split(''); } function succ() { return this.slice(0, this.length - 1) + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); } function times(count) { return count < 1 ? '' : new Array(count + 1).join(this); } function camelize() { return this.replace(/-+(.)?/g, function(match, chr) { return chr ? chr.toUpperCase() : ''; }); } function capitalize() { return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); } function underscore() { return this.replace(/::/g, '/') .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') .replace(/([a-z\d])([A-Z])/g, '$1_$2') .replace(/-/g, '_') .toLowerCase(); } function dasherize() { return this.replace(/_/g, '-'); } function inspect(useDoubleQuotes) { var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) { if (character in String.specialChar) { return String.specialChar[character]; } return '\\u00' + character.charCodeAt().toPaddedString(2, 16); }); if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; return "'" + escapedString.replace(/'/g, '\\\'') + "'"; } function unfilterJSON(filter) { return this.replace(filter || Prototype.JSONFilter, '$1'); } function isJSON() { var str = this; if (str.blank()) return false; str = str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'); str = str.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'); str = str.replace(/(?:^|:|,)(?:\s*\[)+/g, ''); return (/^[\],:{}\s]*$/).test(str); } function evalJSON(sanitize) { var json = this.unfilterJSON(), cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; if (cx.test(json)) { json = json.replace(cx, function (a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }); } try { if (!sanitize || json.isJSON()) return eval('(' + json + ')'); } catch (e) { } throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); } function parseJSON() { var json = this.unfilterJSON(); return JSON.parse(json); } function include(pattern) { return this.indexOf(pattern) > -1; } function startsWith(pattern) { return this.lastIndexOf(pattern, 0) === 0; } function endsWith(pattern) { var d = this.length - pattern.length; return d >= 0 && this.indexOf(pattern, d) === d; } function empty() { return this == ''; } function blank() { return /^\s*$/.test(this); } function interpolate(object, pattern) { return new Template(this, pattern).evaluate(object); } return { gsub: gsub, sub: sub, scan: scan, truncate: truncate, strip: String.prototype.trim || strip, stripTags: stripTags, stripScripts: stripScripts, extractScripts: extractScripts, evalScripts: evalScripts, escapeHTML: escapeHTML, unescapeHTML: unescapeHTML, toQueryParams: toQueryParams, parseQuery: toQueryParams, toArray: toArray, succ: succ, times: times, camelize: camelize, capitalize: capitalize, underscore: underscore, dasherize: dasherize, inspect: inspect, unfilterJSON: unfilterJSON, isJSON: isJSON, evalJSON: NATIVE_JSON_PARSE_SUPPORT ? parseJSON : evalJSON, include: include, startsWith: startsWith, endsWith: endsWith, empty: empty, blank: blank, interpolate: interpolate }; })()); var Template = Class.create({ initialize: function(template, pattern) { this.template = template.toString(); this.pattern = pattern || Template.Pattern; }, evaluate: function(object) { if (object && Object.isFunction(object.toTemplateReplacements)) object = object.toTemplateReplacements(); return this.template.gsub(this.pattern, function(match) { if (object == null) return (match[1] + ''); var before = match[1] || ''; if (before == '\\') return match[2]; var ctx = object, expr = match[3], pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; match = pattern.exec(expr); if (match == null) return before; while (match != null) { var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1]; ctx = ctx[comp]; if (null == ctx || '' == match[3]) break; expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); match = pattern.exec(expr); } return before + String.interpret(ctx); }); } }); Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; var $break = { }; var Enumerable = (function() { function each(iterator, context) { var index = 0; try { this._each(function(value) { iterator.call(context, value, index++); }); } catch (e) { if (e != $break) throw e; } return this; } function eachSlice(number, iterator, context) { var index = -number, slices = [], array = this.toArray(); if (number < 1) return array; while ((index += number) < array.length) slices.push(array.slice(index, index+number)); return slices.collect(iterator, context); } function all(iterator, context) { iterator = iterator || Prototype.K; var result = true; this.each(function(value, index) { result = result && !!iterator.call(context, value, index); if (!result) throw $break; }); return result; } function any(iterator, context) { iterator = iterator || Prototype.K; var result = false; this.each(function(value, index) { if (result = !!iterator.call(context, value, index)) throw $break; }); return result; } function collect(iterator, context) { iterator = iterator || Prototype.K; var results = []; this.each(function(value, index) { results.push(iterator.call(context, value, index)); }); return results; } function detect(iterator, context) { var result; this.each(function(value, index) { if (iterator.call(context, value, index)) { result = value; throw $break; } }); return result; } function findAll(iterator, context) { var results = []; this.each(function(value, index) { if (iterator.call(context, value, index)) results.push(value); }); return results; } function grep(filter, iterator, context) { iterator = iterator || Prototype.K; var results = []; if (Object.isString(filter)) filter = new RegExp(RegExp.escape(filter)); this.each(function(value, index) { if (filter.match(value)) results.push(iterator.call(context, value, index)); }); return results; } function include(object) { if (Object.isFunction(this.indexOf)) if (this.indexOf(object) != -1) return true; var found = false; this.each(function(value) { if (value == object) { found = true; throw $break; } }); return found; } function inGroupsOf(number, fillWith) { fillWith = Object.isUndefined(fillWith) ? null : fillWith; return this.eachSlice(number, function(slice) { while(slice.length < number) slice.push(fillWith); return slice; }); } function inject(memo, iterator, context) { this.each(function(value, index) { memo = iterator.call(context, memo, value, index); }); return memo; } function invoke(method) { var args = $A(arguments).slice(1); return this.map(function(value) { return value[method].apply(value, args); }); } function max(iterator, context) { iterator = iterator || Prototype.K; var result; this.each(function(value, index) { value = iterator.call(context, value, index); if (result == null || value >= result) result = value; }); return result; } function min(iterator, context) { iterator = iterator || Prototype.K; var result; this.each(function(value, index) { value = iterator.call(context, value, index); if (result == null || value < result) result = value; }); return result; } function partition(iterator, context) { iterator = iterator || Prototype.K; var trues = [], falses = []; this.each(function(value, index) { (iterator.call(context, value, index) ? trues : falses).push(value); }); return [trues, falses]; } function pluck(property) { var results = []; this.each(function(value) { results.push(value[property]); }); return results; } function reject(iterator, context) { var results = []; this.each(function(value, index) { if (!iterator.call(context, value, index)) results.push(value); }); return results; } function sortBy(iterator, context) { return this.map(function(value, index) { return { value: value, criteria: iterator.call(context, value, index) }; }).sort(function(left, right) { var a = left.criteria, b = right.criteria; return a < b ? -1 : a > b ? 1 : 0; }).pluck('value'); } function toArray() { return this.map(); } function zip() { var iterator = Prototype.K, args = $A(arguments); if (Object.isFunction(args.last())) iterator = args.pop(); var collections = [this].concat(args).map($A); return this.map(function(value, index) { return iterator(collections.pluck(index)); }); } function size() { return this.toArray().length; } function inspect() { return '#'; } return { each: each, eachSlice: eachSlice, all: all, every: all, any: any, some: any, collect: collect, map: collect, detect: detect, findAll: findAll, select: findAll, filter: findAll, grep: grep, include: include, member: include, inGroupsOf: inGroupsOf, inject: inject, invoke: invoke, max: max, min: min, partition: partition, pluck: pluck, reject: reject, sortBy: sortBy, toArray: toArray, entries: toArray, zip: zip, size: size, inspect: inspect, find: detect }; })(); function $A(iterable) { if (!iterable) return []; if ('toArray' in Object(iterable)) return iterable.toArray(); var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; } function $w(string) { if (!Object.isString(string)) return []; string = string.strip(); return string ? string.split(/\s+/) : []; } Array.from = $A; (function() { var arrayProto = Array.prototype, slice = arrayProto.slice, _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available function each(iterator, context) { for (var i = 0, length = this.length >>> 0; i < length; i++) { if (i in this) iterator.call(context, this[i], i, this); } } if (!_each) _each = each; function clear() { this.length = 0; return this; } function first() { return this[0]; } function last() { return this[this.length - 1]; } function compact() { return this.select(function(value) { return value != null; }); } function flatten() { return this.inject([], function(array, value) { if (Object.isArray(value)) return array.concat(value.flatten()); array.push(value); return array; }); } function without() { var values = slice.call(arguments, 0); return this.select(function(value) { return !values.include(value); }); } function reverse(inline) { return (inline === false ? this.toArray() : this)._reverse(); } function uniq(sorted) { return this.inject([], function(array, value, index) { if (0 == index || (sorted ? array.last() != value : !array.include(value))) array.push(value); return array; }); } function intersect(array) { return this.uniq().findAll(function(item) { return array.detect(function(value) { return item === value }); }); } function clone() { return slice.call(this, 0); } function size() { return this.length; } function inspect() { return '[' + this.map(Object.inspect).join(', ') + ']'; } function indexOf(item, i) { i || (i = 0); var length = this.length; if (i < 0) i = length + i; for (; i < length; i++) if (this[i] === item) return i; return -1; } function lastIndexOf(item, i) { i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; var n = this.slice(0, i).reverse().indexOf(item); return (n < 0) ? n : i - n - 1; } function concat() { var array = slice.call(this, 0), item; for (var i = 0, length = arguments.length; i < length; i++) { item = arguments[i]; if (Object.isArray(item) && !('callee' in item)) { for (var j = 0, arrayLength = item.length; j < arrayLength; j++) array.push(item[j]); } else { array.push(item); } } return array; } Object.extend(arrayProto, Enumerable); if (!arrayProto._reverse) arrayProto._reverse = arrayProto.reverse; Object.extend(arrayProto, { _each: _each, clear: clear, first: first, last: last, compact: compact, flatten: flatten, without: without, reverse: reverse, uniq: uniq, intersect: intersect, clone: clone, toArray: clone, size: size, inspect: inspect }); var CONCAT_ARGUMENTS_BUGGY = (function() { return [].concat(arguments)[0][0] !== 1; })(1,2) if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat; if (!arrayProto.indexOf) arrayProto.indexOf = indexOf; if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf; })(); function $H(object) { return new Hash(object); }; var Hash = Class.create(Enumerable, (function() { function initialize(object) { this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); } function _each(iterator) { for (var key in this._object) { var value = this._object[key], pair = [key, value]; pair.key = key; pair.value = value; iterator(pair); } } function set(key, value) { return this._object[key] = value; } function get(key) { if (this._object[key] !== Object.prototype[key]) return this._object[key]; } function unset(key) { var value = this._object[key]; delete this._object[key]; return value; } function toObject() { return Object.clone(this._object); } function keys() { return this.pluck('key'); } function values() { return this.pluck('value'); } function index(value) { var match = this.detect(function(pair) { return pair.value === value; }); return match && match.key; } function merge(object) { return this.clone().update(object); } function update(object) { return new Hash(object).inject(this, function(result, pair) { result.set(pair.key, pair.value); return result; }); } function toQueryPair(key, value) { if (Object.isUndefined(value)) return key; return key + '=' + encodeURIComponent(String.interpret(value)); } function toQueryString() { return this.inject([], function(results, pair) { var key = encodeURIComponent(pair.key), values = pair.value; if (values && typeof values == 'object') { if (Object.isArray(values)) { var queryValues = []; for (var i = 0, len = values.length, value; i < len; i++) { value = values[i]; queryValues.push(toQueryPair(key, value)); } return results.concat(queryValues); } } else results.push(toQueryPair(key, values)); return results; }).join('&'); } function inspect() { return '#'; } function clone() { return new Hash(this); } return { initialize: initialize, _each: _each, set: set, get: get, unset: unset, toObject: toObject, toTemplateReplacements: toObject, keys: keys, values: values, index: index, merge: merge, update: update, toQueryString: toQueryString, inspect: inspect, toJSON: toObject, clone: clone }; })()); Hash.from = $H; Object.extend(Number.prototype, (function() { function toColorPart() { return this.toPaddedString(2, 16); } function succ() { return this + 1; } function times(iterator, context) { $R(0, this, true).each(iterator, context); return this; } function toPaddedString(length, radix) { var string = this.toString(radix || 10); return '0'.times(length - string.length) + string; } function abs() { return Math.abs(this); } function round() { return Math.round(this); } function ceil() { return Math.ceil(this); } function floor() { return Math.floor(this); } return { toColorPart: toColorPart, succ: succ, times: times, toPaddedString: toPaddedString, abs: abs, round: round, ceil: ceil, floor: floor }; })()); function $R(start, end, exclusive) { return new ObjectRange(start, end, exclusive); } var ObjectRange = Class.create(Enumerable, (function() { function initialize(start, end, exclusive) { this.start = start; this.end = end; this.exclusive = exclusive; } function _each(iterator) { var value = this.start; while (this.include(value)) { iterator(value); value = value.succ(); } } function include(value) { if (value < this.start) return false; if (this.exclusive) return value < this.end; return value <= this.end; } return { initialize: initialize, _each: _each, include: include }; })()); var Abstract = { }; var Try = { these: function() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i]; try { returnValue = lambda(); break; } catch (e) { } } return returnValue; } }; var Ajax = { getTransport: function() { return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false; }, activeRequestCount: 0 }; Ajax.Responders = { responders: [], _each: function(iterator) { this.responders._each(iterator); }, register: function(responder) { if (!this.include(responder)) this.responders.push(responder); }, unregister: function(responder) { this.responders = this.responders.without(responder); }, dispatch: function(callback, request, transport, json) { this.each(function(responder) { if (Object.isFunction(responder[callback])) { try { responder[callback].apply(responder, [request, transport, json]); } catch (e) { } } }); } }; Object.extend(Ajax.Responders, Enumerable); Ajax.Responders.register({ onCreate: function() { Ajax.activeRequestCount++ }, onComplete: function() { Ajax.activeRequestCount-- } }); Ajax.Base = Class.create({ initialize: function(options) { this.options = { method: 'post', asynchronous: true, contentType: 'application/x-www-form-urlencoded', encoding: 'UTF-8', parameters: '', evalJSON: true, evalJS: true }; Object.extend(this.options, options || { }); this.options.method = this.options.method.toLowerCase(); if (Object.isHash(this.options.parameters)) this.options.parameters = this.options.parameters.toObject(); } }); Ajax.Request = Class.create(Ajax.Base, { _complete: false, initialize: function($super, url, options) { $super(options); this.transport = Ajax.getTransport(); this.request(url); }, request: function(url) { this.url = url; this.method = this.options.method; var params = Object.isString(this.options.parameters) ? this.options.parameters : Object.toQueryString(this.options.parameters); if (!['get', 'post'].include(this.method)) { params += (params ? '&' : '') + "_method=" + this.method; this.method = 'post'; } if (params && this.method === 'get') { this.url += (this.url.include('?') ? '&' : '?') + params; } this.parameters = params.toQueryParams(); try { var response = new Ajax.Response(this); if (this.options.onCreate) this.options.onCreate(response); Ajax.Responders.dispatch('onCreate', this, response); this.transport.open(this.method.toUpperCase(), this.url, this.options.asynchronous); if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); this.transport.onreadystatechange = this.onStateChange.bind(this); this.setRequestHeaders(); this.body = this.method == 'post' ? (this.options.postBody || params) : null; this.transport.send(this.body); /* Force Firefox to handle ready state 4 for synchronous requests */ if (!this.options.asynchronous && this.transport.overrideMimeType) this.onStateChange(); } catch (e) { this.dispatchException(e); } }, onStateChange: function() { var readyState = this.transport.readyState; if (readyState > 1 && !((readyState == 4) && this._complete)) this.respondToReadyState(this.transport.readyState); }, setRequestHeaders: function() { var headers = { 'X-Requested-With': 'XMLHttpRequest', 'X-Prototype-Version': Prototype.Version, 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' }; if (this.method == 'post') { headers['Content-type'] = this.options.contentType + (this.options.encoding ? '; charset=' + this.options.encoding : ''); /* Force "Connection: close" for older Mozilla browsers to work * around a bug where XMLHttpRequest sends an incorrect * Content-length header. See Mozilla Bugzilla #246651. */ if (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) headers['Connection'] = 'close'; } if (typeof this.options.requestHeaders == 'object') { var extras = this.options.requestHeaders; if (Object.isFunction(extras.push)) for (var i = 0, length = extras.length; i < length; i += 2) headers[extras[i]] = extras[i+1]; else $H(extras).each(function(pair) { headers[pair.key] = pair.value }); } for (var name in headers) this.transport.setRequestHeader(name, headers[name]); }, success: function() { var status = this.getStatus(); return !status || (status >= 200 && status < 300) || status == 304; }, getStatus: function() { try { if (this.transport.status === 1223) return 204; return this.transport.status || 0; } catch (e) { return 0 } }, respondToReadyState: function(readyState) { var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); if (state == 'Complete') { try { this._complete = true; (this.options['on' + response.status] || this.options['on' + (this.success() ? 'Success' : 'Failure')] || Prototype.emptyFunction)(response, response.headerJSON); } catch (e) { this.dispatchException(e); } var contentType = response.getHeader('Content-type'); if (this.options.evalJS == 'force' || (this.options.evalJS && this.isSameOrigin() && contentType && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) this.evalResponse(); } try { (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); } catch (e) { this.dispatchException(e); } if (state == 'Complete') { this.transport.onreadystatechange = Prototype.emptyFunction; } }, isSameOrigin: function() { var m = this.url.match(/^\s*https?:\/\/[^\/]*/); return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ protocol: location.protocol, domain: document.domain, port: location.port ? ':' + location.port : '' })); }, getHeader: function(name) { try { return this.transport.getResponseHeader(name) || null; } catch (e) { return null; } }, evalResponse: function() { try { return eval((this.transport.responseText || '').unfilterJSON()); } catch (e) { this.dispatchException(e); } }, dispatchException: function(exception) { (this.options.onException || Prototype.emptyFunction)(this, exception); Ajax.Responders.dispatch('onException', this, exception); } }); Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; Ajax.Response = Class.create({ initialize: function(request){ this.request = request; var transport = this.transport = request.transport, readyState = this.readyState = transport.readyState; if ((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { this.status = this.getStatus(); this.statusText = this.getStatusText(); this.responseText = String.interpret(transport.responseText); this.headerJSON = this._getHeaderJSON(); } if (readyState == 4) { var xml = transport.responseXML; this.responseXML = Object.isUndefined(xml) ? null : xml; this.responseJSON = this._getResponseJSON(); } }, status: 0, statusText: '', getStatus: Ajax.Request.prototype.getStatus, getStatusText: function() { try { return this.transport.statusText || ''; } catch (e) { return '' } }, getHeader: Ajax.Request.prototype.getHeader, getAllHeaders: function() { try { return this.getAllResponseHeaders(); } catch (e) { return null } }, getResponseHeader: function(name) { return this.transport.getResponseHeader(name); }, getAllResponseHeaders: function() { return this.transport.getAllResponseHeaders(); }, _getHeaderJSON: function() { var json = this.getHeader('X-JSON'); if (!json) return null; json = decodeURIComponent(escape(json)); try { return json.evalJSON(this.request.options.sanitizeJSON || !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } }, _getResponseJSON: function() { var options = this.request.options; if (!options.evalJSON || (options.evalJSON != 'force' && !(this.getHeader('Content-type') || '').include('application/json')) || this.responseText.blank()) return null; try { return this.responseText.evalJSON(options.sanitizeJSON || !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } } }); Ajax.Updater = Class.create(Ajax.Request, { initialize: function($super, container, url, options) { this.container = { success: (container.success || container), failure: (container.failure || (container.success ? null : container)) }; options = Object.clone(options); var onComplete = options.onComplete; options.onComplete = (function(response, json) { this.updateContent(response.responseText); if (Object.isFunction(onComplete)) onComplete(response, json); }).bind(this); $super(url, options); }, updateContent: function(responseText) { var receiver = this.container[this.success() ? 'success' : 'failure'], options = this.options; if (!options.evalScripts) responseText = responseText.stripScripts(); if (receiver = $(receiver)) { if (options.insertion) { if (Object.isString(options.insertion)) { var insertion = { }; insertion[options.insertion] = responseText; receiver.insert(insertion); } else options.insertion(receiver, responseText); } else receiver.update(responseText); } } }); Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { initialize: function($super, container, url, options) { $super(options); this.onComplete = this.options.onComplete; this.frequency = (this.options.frequency || 2); this.decay = (this.options.decay || 1); this.updater = { }; this.container = container; this.url = url; this.start(); }, start: function() { this.options.onComplete = this.updateComplete.bind(this); this.onTimerEvent(); }, stop: function() { this.updater.options.onComplete = undefined; clearTimeout(this.timer); (this.onComplete || Prototype.emptyFunction).apply(this, arguments); }, updateComplete: function(response) { if (this.options.decay) { this.decay = (response.responseText == this.lastText ? this.decay * this.options.decay : 1); this.lastText = response.responseText; } this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); }, onTimerEvent: function() { this.updater = new Ajax.Updater(this.container, this.url, this.options); } }); function $(element) { if (arguments.length > 1) { for (var i = 0, elements = [], length = arguments.length; i < length; i++) elements.push($(arguments[i])); return elements; } if (Object.isString(element)) element = document.getElementById(element); return Element.extend(element); } if (Prototype.BrowserFeatures.XPath) { document._getElementsByXPath = function(expression, parentElement) { var results = []; var query = document.evaluate(expression, $(parentElement) || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0, length = query.snapshotLength; i < length; i++) results.push(Element.extend(query.snapshotItem(i))); return results; }; } /*--------------------------------------------------------------------------*/ if (!Node) var Node = { }; if (!Node.ELEMENT_NODE) { Object.extend(Node, { ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NODE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12 }); } (function(global) { function shouldUseCache(tagName, attributes) { if (tagName === 'select') return false; if ('type' in attributes) return false; return true; } var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX = (function(){ try { var el = document.createElement(''); return el.tagName.toLowerCase() === 'input' && el.name === 'x'; } catch(err) { return false; } })(); var element = global.Element; global.Element = function(tagName, attributes) { attributes = attributes || { }; tagName = tagName.toLowerCase(); var cache = Element.cache; if (HAS_EXTENDED_CREATE_ELEMENT_SYNTAX && attributes.name) { tagName = '<' + tagName + ' name="' + attributes.name + '">'; delete attributes.name; return Element.writeAttribute(document.createElement(tagName), attributes); } if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); var node = shouldUseCache(tagName, attributes) ? cache[tagName].cloneNode(false) : document.createElement(tagName); return Element.writeAttribute(node, attributes); }; Object.extend(global.Element, element || { }); if (element) global.Element.prototype = element.prototype; })(this); Element.idCounter = 1; Element.cache = { }; Element._purgeElement = function(element) { var uid = element._prototypeUID; if (uid) { Element.stopObserving(element); element._prototypeUID = void 0; delete Element.Storage[uid]; } } Element.Methods = { visible: function(element) { return $(element).style.display != 'none'; }, toggle: function(element) { element = $(element); Element[Element.visible(element) ? 'hide' : 'show'](element); return element; }, hide: function(element) { element = $(element); element.style.display = 'none'; return element; }, show: function(element) { element = $(element); element.style.display = ''; return element; }, remove: function(element) { element = $(element); element.parentNode.removeChild(element); return element; }, update: (function(){ var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){ var el = document.createElement("select"), isBuggy = true; el.innerHTML = ""; if (el.options && el.options[0]) { isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION"; } el = null; return isBuggy; })(); var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){ try { var el = document.createElement("table"); if (el && el.tBodies) { el.innerHTML = "test"; var isBuggy = typeof el.tBodies[0] == "undefined"; el = null; return isBuggy; } } catch (e) { return true; } })(); var LINK_ELEMENT_INNERHTML_BUGGY = (function() { try { var el = document.createElement('div'); el.innerHTML = ""; var isBuggy = (el.childNodes.length === 0); el = null; return isBuggy; } catch(e) { return true; } })(); var ANY_INNERHTML_BUGGY = SELECT_ELEMENT_INNERHTML_BUGGY || TABLE_ELEMENT_INNERHTML_BUGGY || LINK_ELEMENT_INNERHTML_BUGGY; var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () { var s = document.createElement("script"), isBuggy = false; try { s.appendChild(document.createTextNode("")); isBuggy = !s.firstChild || s.firstChild && s.firstChild.nodeType !== 3; } catch (e) { isBuggy = true; } s = null; return isBuggy; })(); function update(element, content) { element = $(element); var purgeElement = Element._purgeElement; var descendants = element.getElementsByTagName('*'), i = descendants.length; while (i--) purgeElement(descendants[i]); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) return element.update().insert(content); content = Object.toHTML(content); var tagName = element.tagName.toUpperCase(); if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) { element.text = content; return element; } if (ANY_INNERHTML_BUGGY) { if (tagName in Element._insertionTranslations.tags) { while (element.firstChild) { element.removeChild(element.firstChild); } Element._getContentFromAnonymousElement(tagName, content.stripScripts()) .each(function(node) { element.appendChild(node) }); } else if (LINK_ELEMENT_INNERHTML_BUGGY && Object.isString(content) && content.indexOf(' -1) { while (element.firstChild) { element.removeChild(element.firstChild); } var nodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts(), true); nodes.each(function(node) { element.appendChild(node) }); } else { element.innerHTML = content.stripScripts(); } } else { element.innerHTML = content.stripScripts(); } content.evalScripts.bind(content).defer(); return element; } return update; })(), replace: function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); else if (!Object.isElement(content)) { content = Object.toHTML(content); var range = element.ownerDocument.createRange(); range.selectNode(element); content.evalScripts.bind(content).defer(); content = range.createContextualFragment(content.stripScripts()); } element.parentNode.replaceChild(content, element); return element; }, insert: function(element, insertions) { element = $(element); if (Object.isString(insertions) || Object.isNumber(insertions) || Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) insertions = {bottom:insertions}; var content, insert, tagName, childNodes; for (var position in insertions) { content = insertions[position]; position = position.toLowerCase(); insert = Element._insertionTranslations[position]; if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { insert(element, content); continue; } content = Object.toHTML(content); tagName = ((position == 'before' || position == 'after') ? element.parentNode : element).tagName.toUpperCase(); childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); if (position == 'top' || position == 'after') childNodes.reverse(); childNodes.each(insert.curry(element)); content.evalScripts.bind(content).defer(); } return element; }, wrap: function(element, wrapper, attributes) { element = $(element); if (Object.isElement(wrapper)) $(wrapper).writeAttribute(attributes || { }); else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); else wrapper = new Element('div', wrapper); if (element.parentNode) element.parentNode.replaceChild(wrapper, element); wrapper.appendChild(element); return wrapper; }, inspect: function(element) { element = $(element); var result = '<' + element.tagName.toLowerCase(); $H({'id': 'id', 'className': 'class'}).each(function(pair) { var property = pair.first(), attribute = pair.last(), value = (element[property] || '').toString(); if (value) result += ' ' + attribute + '=' + value.inspect(true); }); return result + '>'; }, recursivelyCollect: function(element, property, maximumLength) { element = $(element); maximumLength = maximumLength || -1; var elements = []; while (element = element[property]) { if (element.nodeType == 1) elements.push(Element.extend(element)); if (elements.length == maximumLength) break; } return elements; }, ancestors: function(element) { return Element.recursivelyCollect(element, 'parentNode'); }, descendants: function(element) { return Element.select(element, "*"); }, firstDescendant: function(element) { element = $(element).firstChild; while (element && element.nodeType != 1) element = element.nextSibling; return $(element); }, immediateDescendants: function(element) { var results = [], child = $(element).firstChild; while (child) { if (child.nodeType === 1) { results.push(Element.extend(child)); } child = child.nextSibling; } return results; }, previousSiblings: function(element, maximumLength) { return Element.recursivelyCollect(element, 'previousSibling'); }, nextSiblings: function(element) { return Element.recursivelyCollect(element, 'nextSibling'); }, siblings: function(element) { element = $(element); return Element.previousSiblings(element).reverse() .concat(Element.nextSiblings(element)); }, match: function(element, selector) { element = $(element); if (Object.isString(selector)) return Prototype.Selector.match(element, selector); return selector.match(element); }, up: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(element.parentNode); var ancestors = Element.ancestors(element); return Object.isNumber(expression) ? ancestors[expression] : Prototype.Selector.find(ancestors, expression, index); }, down: function(element, expression, index) { element = $(element); if (arguments.length == 1) return Element.firstDescendant(element); return Object.isNumber(expression) ? Element.descendants(element)[expression] : Element.select(element, expression)[index || 0]; }, previous: function(element, expression, index) { element = $(element); if (Object.isNumber(expression)) index = expression, expression = false; if (!Object.isNumber(index)) index = 0; if (expression) { return Prototype.Selector.find(element.previousSiblings(), expression, index); } else { return element.recursivelyCollect("previousSibling", index + 1)[index]; } }, next: function(element, expression, index) { element = $(element); if (Object.isNumber(expression)) index = expression, expression = false; if (!Object.isNumber(index)) index = 0; if (expression) { return Prototype.Selector.find(element.nextSiblings(), expression, index); } else { var maximumLength = Object.isNumber(index) ? index + 1 : 1; return element.recursivelyCollect("nextSibling", index + 1)[index]; } }, select: function(element) { element = $(element); var expressions = Array.prototype.slice.call(arguments, 1).join(', '); return Prototype.Selector.select(expressions, element); }, adjacent: function(element) { element = $(element); var expressions = Array.prototype.slice.call(arguments, 1).join(', '); return Prototype.Selector.select(expressions, element.parentNode).without(element); }, identify: function(element) { element = $(element); var id = Element.readAttribute(element, 'id'); if (id) return id; do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id)); Element.writeAttribute(element, 'id', id); return id; }, readAttribute: function(element, name) { element = $(element); if (Prototype.Browser.IE) { var t = Element._attributeTranslations.read; if (t.values[name]) return t.values[name](element, name); if (t.names[name]) name = t.names[name]; if (name.include(':')) { return (!element.attributes || !element.attributes[name]) ? null : element.attributes[name].value; } } return element.getAttribute(name); }, writeAttribute: function(element, name, value) { element = $(element); var attributes = { }, t = Element._attributeTranslations.write; if (typeof name == 'object') attributes = name; else attributes[name] = Object.isUndefined(value) ? true : value; for (var attr in attributes) { name = t.names[attr] || attr; value = attributes[attr]; if (t.values[attr]) name = t.values[attr](element, value); if (value === false || value === null) element.removeAttribute(name); else if (value === true) element.setAttribute(name, name); else element.setAttribute(name, value); } return element; }, getHeight: function(element) { return Element.getDimensions(element).height; }, getWidth: function(element) { return Element.getDimensions(element).width; }, classNames: function(element) { return new Element.ClassNames(element); }, hasClassName: function(element, className) { if (!(element = $(element))) return; var elementClassName = element.className; return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); }, addClassName: function(element, className) { if (!(element = $(element))) return; if (!Element.hasClassName(element, className)) element.className += (element.className ? ' ' : '') + className; return element; }, removeClassName: function(element, className) { if (!(element = $(element))) return; element.className = element.className.replace( new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); return element; }, toggleClassName: function(element, className) { if (!(element = $(element))) return; return Element[Element.hasClassName(element, className) ? 'removeClassName' : 'addClassName'](element, className); }, cleanWhitespace: function(element) { element = $(element); var node = element.firstChild; while (node) { var nextNode = node.nextSibling; if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) element.removeChild(node); node = nextNode; } return element; }, empty: function(element) { return $(element).innerHTML.blank(); }, descendantOf: function(element, ancestor) { element = $(element), ancestor = $(ancestor); if (element.compareDocumentPosition) return (element.compareDocumentPosition(ancestor) & 8) === 8; if (ancestor.contains) return ancestor.contains(element) && ancestor !== element; while (element = element.parentNode) if (element == ancestor) return true; return false; }, scrollTo: function(element) { element = $(element); var pos = Element.cumulativeOffset(element); window.scrollTo(pos[0], pos[1]); return element; }, getStyle: function(element, style) { element = $(element); style = style == 'float' ? 'cssFloat' : style.camelize(); var value = element.style[style]; if (!value || value == 'auto') { var css = document.defaultView.getComputedStyle(element, null); value = css ? css[style] : null; } if (style == 'opacity') return value ? parseFloat(value) : 1.0; return value == 'auto' ? null : value; }, getOpacity: function(element) { return $(element).getStyle('opacity'); }, setStyle: function(element, styles) { element = $(element); var elementStyle = element.style, match; if (Object.isString(styles)) { element.style.cssText += ';' + styles; return styles.include('opacity') ? element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; } for (var property in styles) if (property == 'opacity') element.setOpacity(styles[property]); else elementStyle[(property == 'float' || property == 'cssFloat') ? (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : property] = styles[property]; return element; }, setOpacity: function(element, value) { element = $(element); element.style.opacity = (value == 1 || value === '') ? '' : (value < 0.00001) ? 0 : value; return element; }, makePositioned: function(element) { element = $(element); var pos = Element.getStyle(element, 'position'); if (pos == 'static' || !pos) { element._madePositioned = true; element.style.position = 'relative'; if (Prototype.Browser.Opera) { element.style.top = 0; element.style.left = 0; } } return element; }, undoPositioned: function(element) { element = $(element); if (element._madePositioned) { element._madePositioned = undefined; element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = ''; } return element; }, makeClipping: function(element) { element = $(element); if (element._overflow) return element; element._overflow = Element.getStyle(element, 'overflow') || 'auto'; if (element._overflow !== 'hidden') element.style.overflow = 'hidden'; return element; }, undoClipping: function(element) { element = $(element); if (!element._overflow) return element; element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; element._overflow = null; return element; }, clonePosition: function(element, source) { var options = Object.extend({ setLeft: true, setTop: true, setWidth: true, setHeight: true, offsetTop: 0, offsetLeft: 0 }, arguments[2] || { }); source = $(source); var p = Element.viewportOffset(source), delta = [0, 0], parent = null; element = $(element); if (Element.getStyle(element, 'position') == 'absolute') { parent = Element.getOffsetParent(element); delta = Element.viewportOffset(parent); } if (parent == document.body) { delta[0] -= document.body.offsetLeft; delta[1] -= document.body.offsetTop; } if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; if (options.setWidth) element.style.width = source.offsetWidth + 'px'; if (options.setHeight) element.style.height = source.offsetHeight + 'px'; return element; } }; Object.extend(Element.Methods, { getElementsBySelector: Element.Methods.select, childElements: Element.Methods.immediateDescendants }); Element._attributeTranslations = { write: { names: { className: 'class', htmlFor: 'for' }, values: { } } }; if (Prototype.Browser.Opera) { Element.Methods.getStyle = Element.Methods.getStyle.wrap( function(proceed, element, style) { switch (style) { case 'height': case 'width': if (!Element.visible(element)) return null; var dim = parseInt(proceed(element, style), 10); if (dim !== element['offset' + style.capitalize()]) return dim + 'px'; var properties; if (style === 'height') { properties = ['border-top-width', 'padding-top', 'padding-bottom', 'border-bottom-width']; } else { properties = ['border-left-width', 'padding-left', 'padding-right', 'border-right-width']; } return properties.inject(dim, function(memo, property) { var val = proceed(element, property); return val === null ? memo : memo - parseInt(val, 10); }) + 'px'; default: return proceed(element, style); } } ); Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( function(proceed, element, attribute) { if (attribute === 'title') return element.title; return proceed(element, attribute); } ); } else if (Prototype.Browser.IE) { Element.Methods.getStyle = function(element, style) { element = $(element); style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); var value = element.style[style]; if (!value && element.currentStyle) value = element.currentStyle[style]; if (style == 'opacity') { if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) if (value[1]) return parseFloat(value[1]) / 100; return 1.0; } if (value == 'auto') { if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) return element['offset' + style.capitalize()] + 'px'; return null; } return value; }; Element.Methods.setOpacity = function(element, value) { function stripAlpha(filter){ return filter.replace(/alpha\([^\)]*\)/gi,''); } element = $(element); var currentStyle = element.currentStyle; if ((currentStyle && !currentStyle.hasLayout) || (!currentStyle && element.style.zoom == 'normal')) element.style.zoom = 1; var filter = element.getStyle('filter'), style = element.style; if (value == 1 || value === '') { (filter = stripAlpha(filter)) ? style.filter = filter : style.removeAttribute('filter'); return element; } else if (value < 0.00001) value = 0; style.filter = stripAlpha(filter) + 'alpha(opacity=' + (value * 100) + ')'; return element; }; Element._attributeTranslations = (function(){ var classProp = 'className', forProp = 'for', el = document.createElement('div'); el.setAttribute(classProp, 'x'); if (el.className !== 'x') { el.setAttribute('class', 'x'); if (el.className === 'x') { classProp = 'class'; } } el = null; el = document.createElement('label'); el.setAttribute(forProp, 'x'); if (el.htmlFor !== 'x') { el.setAttribute('htmlFor', 'x'); if (el.htmlFor === 'x') { forProp = 'htmlFor'; } } el = null; return { read: { names: { 'class': classProp, 'className': classProp, 'for': forProp, 'htmlFor': forProp }, values: { _getAttr: function(element, attribute) { return element.getAttribute(attribute); }, _getAttr2: function(element, attribute) { return element.getAttribute(attribute, 2); }, _getAttrNode: function(element, attribute) { var node = element.getAttributeNode(attribute); return node ? node.value : ""; }, _getEv: (function(){ var el = document.createElement('div'), f; el.onclick = Prototype.emptyFunction; var value = el.getAttribute('onclick'); if (String(value).indexOf('{') > -1) { f = function(element, attribute) { attribute = element.getAttribute(attribute); if (!attribute) return null; attribute = attribute.toString(); attribute = attribute.split('{')[1]; attribute = attribute.split('}')[0]; return attribute.strip(); }; } else if (value === '') { f = function(element, attribute) { attribute = element.getAttribute(attribute); if (!attribute) return null; return attribute.strip(); }; } el = null; return f; })(), _flag: function(element, attribute) { return $(element).hasAttribute(attribute) ? attribute : null; }, style: function(element) { return element.style.cssText.toLowerCase(); }, title: function(element) { return element.title; } } } } })(); Element._attributeTranslations.write = { names: Object.extend({ cellpadding: 'cellPadding', cellspacing: 'cellSpacing' }, Element._attributeTranslations.read.names), values: { checked: function(element, value) { element.checked = !!value; }, style: function(element, value) { element.style.cssText = value ? value : ''; } } }; Element._attributeTranslations.has = {}; $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + 'encType maxLength readOnly longDesc frameBorder').each(function(attr) { Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; Element._attributeTranslations.has[attr.toLowerCase()] = attr; }); (function(v) { Object.extend(v, { href: v._getAttr2, src: v._getAttr2, type: v._getAttr, action: v._getAttrNode, disabled: v._flag, checked: v._flag, readonly: v._flag, multiple: v._flag, onload: v._getEv, onunload: v._getEv, onclick: v._getEv, ondblclick: v._getEv, onmousedown: v._getEv, onmouseup: v._getEv, onmouseover: v._getEv, onmousemove: v._getEv, onmouseout: v._getEv, onfocus: v._getEv, onblur: v._getEv, onkeypress: v._getEv, onkeydown: v._getEv, onkeyup: v._getEv, onsubmit: v._getEv, onreset: v._getEv, onselect: v._getEv, onchange: v._getEv }); })(Element._attributeTranslations.read.values); if (Prototype.BrowserFeatures.ElementExtensions) { (function() { function _descendants(element) { var nodes = element.getElementsByTagName('*'), results = []; for (var i = 0, node; node = nodes[i]; i++) if (node.tagName !== "!") // Filter out comment nodes. results.push(node); return results; } Element.Methods.down = function(element, expression, index) { element = $(element); if (arguments.length == 1) return element.firstDescendant(); return Object.isNumber(expression) ? _descendants(element)[expression] : Element.select(element, expression)[index || 0]; } })(); } } else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { Element.Methods.setOpacity = function(element, value) { element = $(element); element.style.opacity = (value == 1) ? 0.999999 : (value === '') ? '' : (value < 0.00001) ? 0 : value; return element; }; } else if (Prototype.Browser.WebKit) { Element.Methods.setOpacity = function(element, value) { element = $(element); element.style.opacity = (value == 1 || value === '') ? '' : (value < 0.00001) ? 0 : value; if (value == 1) if (element.tagName.toUpperCase() == 'IMG' && element.width) { element.width++; element.width--; } else try { var n = document.createTextNode(' '); element.appendChild(n); element.removeChild(n); } catch (e) { } return element; }; } if ('outerHTML' in document.documentElement) { Element.Methods.replace = function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { element.parentNode.replaceChild(content, element); return element; } content = Object.toHTML(content); var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); if (Element._insertionTranslations.tags[tagName]) { var nextSibling = element.next(), fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); parent.removeChild(element); if (nextSibling) fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); else fragments.each(function(node) { parent.appendChild(node) }); } else element.outerHTML = content.stripScripts(); content.evalScripts.bind(content).defer(); return element; }; } Element._returnOffset = function(l, t) { var result = [l, t]; result.left = l; result.top = t; return result; }; Element._getContentFromAnonymousElement = function(tagName, html, force) { var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; var workaround = false; if (t) workaround = true; else if (force) { workaround = true; t = ['', '', 0]; } if (workaround) { div.innerHTML = ' ' + t[0] + html + t[1]; div.removeChild(div.firstChild); for (var i = t[2]; i--; ) { div = div.firstChild; } } else { div.innerHTML = html; } return $A(div.childNodes); }; Element._insertionTranslations = { before: function(element, node) { element.parentNode.insertBefore(node, element); }, top: function(element, node) { element.insertBefore(node, element.firstChild); }, bottom: function(element, node) { element.appendChild(node); }, after: function(element, node) { element.parentNode.insertBefore(node, element.nextSibling); }, tags: { TABLE: ['', '
    ', 1], TBODY: ['', '
    ', 2], TR: ['', '
    ', 3], TD: ['
    ', '
    ', 4], SELECT: ['', 1] } }; (function() { var tags = Element._insertionTranslations.tags; Object.extend(tags, { THEAD: tags.TBODY, TFOOT: tags.TBODY, TH: tags.TD }); })(); Element.Methods.Simulated = { hasAttribute: function(element, attribute) { attribute = Element._attributeTranslations.has[attribute] || attribute; var node = $(element).getAttributeNode(attribute); return !!(node && node.specified); } }; Element.Methods.ByTag = { }; Object.extend(Element, Element.Methods); (function(div) { if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) { window.HTMLElement = { }; window.HTMLElement.prototype = div['__proto__']; Prototype.BrowserFeatures.ElementExtensions = true; } div = null; })(document.createElement('div')); Element.extend = (function() { function checkDeficiency(tagName) { if (typeof window.Element != 'undefined') { var proto = window.Element.prototype; if (proto) { var id = '_' + (Math.random()+'').slice(2), el = document.createElement(tagName); proto[id] = 'x'; var isBuggy = (el[id] !== 'x'); delete proto[id]; el = null; return isBuggy; } } return false; } function extendElementWith(element, methods) { for (var property in methods) { var value = methods[property]; if (Object.isFunction(value) && !(property in element)) element[property] = value.methodize(); } } var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object'); if (Prototype.BrowserFeatures.SpecificElementExtensions) { if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) { return function(element) { if (element && typeof element._extendedByPrototype == 'undefined') { var t = element.tagName; if (t && (/^(?:object|applet|embed)$/i.test(t))) { extendElementWith(element, Element.Methods); extendElementWith(element, Element.Methods.Simulated); extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]); } } return element; } } return Prototype.K; } var Methods = { }, ByTag = Element.Methods.ByTag; var extend = Object.extend(function(element) { if (!element || typeof element._extendedByPrototype != 'undefined' || element.nodeType != 1 || element == window) return element; var methods = Object.clone(Methods), tagName = element.tagName.toUpperCase(); if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); extendElementWith(element, methods); element._extendedByPrototype = Prototype.emptyFunction; return element; }, { refresh: function() { if (!Prototype.BrowserFeatures.ElementExtensions) { Object.extend(Methods, Element.Methods); Object.extend(Methods, Element.Methods.Simulated); } } }); extend.refresh(); return extend; })(); if (document.documentElement.hasAttribute) { Element.hasAttribute = function(element, attribute) { return element.hasAttribute(attribute); }; } else { Element.hasAttribute = Element.Methods.Simulated.hasAttribute; } Element.addMethods = function(methods) { var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; if (!methods) { Object.extend(Form, Form.Methods); Object.extend(Form.Element, Form.Element.Methods); Object.extend(Element.Methods.ByTag, { "FORM": Object.clone(Form.Methods), "INPUT": Object.clone(Form.Element.Methods), "SELECT": Object.clone(Form.Element.Methods), "TEXTAREA": Object.clone(Form.Element.Methods), "BUTTON": Object.clone(Form.Element.Methods) }); } if (arguments.length == 2) { var tagName = methods; methods = arguments[1]; } if (!tagName) Object.extend(Element.Methods, methods || { }); else { if (Object.isArray(tagName)) tagName.each(extend); else extend(tagName); } function extend(tagName) { tagName = tagName.toUpperCase(); if (!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName] = { }; Object.extend(Element.Methods.ByTag[tagName], methods); } function copy(methods, destination, onlyIfAbsent) { onlyIfAbsent = onlyIfAbsent || false; for (var property in methods) { var value = methods[property]; if (!Object.isFunction(value)) continue; if (!onlyIfAbsent || !(property in destination)) destination[property] = value.methodize(); } } function findDOMClass(tagName) { var klass; var trans = { "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": "FrameSet", "IFRAME": "IFrame" }; if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; if (window[klass]) return window[klass]; klass = 'HTML' + tagName + 'Element'; if (window[klass]) return window[klass]; klass = 'HTML' + tagName.capitalize() + 'Element'; if (window[klass]) return window[klass]; var element = document.createElement(tagName), proto = element['__proto__'] || element.constructor.prototype; element = null; return proto; } var elementPrototype = window.HTMLElement ? HTMLElement.prototype : Element.prototype; if (F.ElementExtensions) { copy(Element.Methods, elementPrototype); copy(Element.Methods.Simulated, elementPrototype, true); } if (F.SpecificElementExtensions) { for (var tag in Element.Methods.ByTag) { var klass = findDOMClass(tag); if (Object.isUndefined(klass)) continue; copy(T[tag], klass.prototype); } } Object.extend(Element, Element.Methods); delete Element.ByTag; if (Element.extend.refresh) Element.extend.refresh(); Element.cache = { }; }; document.viewport = { getDimensions: function() { return { width: this.getWidth(), height: this.getHeight() }; }, getScrollOffsets: function() { return Element._returnOffset( window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); } }; (function(viewport) { var B = Prototype.Browser, doc = document, element, property = {}; function getRootElement() { if (B.WebKit && !doc.evaluate) return document; if (B.Opera && window.parseFloat(window.opera.version()) < 9.5) return document.body; return document.documentElement; } function define(D) { if (!element) element = getRootElement(); property[D] = 'client' + D; viewport['get' + D] = function() { return element[property[D]] }; return viewport['get' + D](); } viewport.getWidth = define.curry('Width'); viewport.getHeight = define.curry('Height'); })(document.viewport); Element.Storage = { UID: 1 }; Element.addMethods({ getStorage: function(element) { if (!(element = $(element))) return; var uid; if (element === window) { uid = 0; } else { if (typeof element._prototypeUID === "undefined") element._prototypeUID = Element.Storage.UID++; uid = element._prototypeUID; } if (!Element.Storage[uid]) Element.Storage[uid] = $H(); return Element.Storage[uid]; }, store: function(element, key, value) { if (!(element = $(element))) return; if (arguments.length === 2) { Element.getStorage(element).update(key); } else { Element.getStorage(element).set(key, value); } return element; }, retrieve: function(element, key, defaultValue) { if (!(element = $(element))) return; var hash = Element.getStorage(element), value = hash.get(key); if (Object.isUndefined(value)) { hash.set(key, defaultValue); value = defaultValue; } return value; }, clone: function(element, deep) { if (!(element = $(element))) return; var clone = element.cloneNode(deep); clone._prototypeUID = void 0; if (deep) { var descendants = Element.select(clone, '*'), i = descendants.length; while (i--) { descendants[i]._prototypeUID = void 0; } } return Element.extend(clone); }, purge: function(element) { if (!(element = $(element))) return; var purgeElement = Element._purgeElement; purgeElement(element); var descendants = element.getElementsByTagName('*'), i = descendants.length; while (i--) purgeElement(descendants[i]); return null; } }); (function() { function toDecimal(pctString) { var match = pctString.match(/^(\d+)%?$/i); if (!match) return null; return (Number(match[1]) / 100); } function getPixelValue(value, property, context) { var element = null; if (Object.isElement(value)) { element = value; value = element.getStyle(property); } if (value === null) { return null; } if ((/^(?:-)?\d+(\.\d+)?(px)?$/i).test(value)) { return window.parseFloat(value); } var isPercentage = value.include('%'), isViewport = (context === document.viewport); if (/\d/.test(value) && element && element.runtimeStyle && !(isPercentage && isViewport)) { var style = element.style.left, rStyle = element.runtimeStyle.left; element.runtimeStyle.left = element.currentStyle.left; element.style.left = value || 0; value = element.style.pixelLeft; element.style.left = style; element.runtimeStyle.left = rStyle; return value; } if (element && isPercentage) { context = context || element.parentNode; var decimal = toDecimal(value); var whole = null; var position = element.getStyle('position'); var isHorizontal = property.include('left') || property.include('right') || property.include('width'); var isVertical = property.include('top') || property.include('bottom') || property.include('height'); if (context === document.viewport) { if (isHorizontal) { whole = document.viewport.getWidth(); } else if (isVertical) { whole = document.viewport.getHeight(); } } else { if (isHorizontal) { whole = $(context).measure('width'); } else if (isVertical) { whole = $(context).measure('height'); } } return (whole === null) ? 0 : whole * decimal; } return 0; } function toCSSPixels(number) { if (Object.isString(number) && number.endsWith('px')) { return number; } return number + 'px'; } function isDisplayed(element) { var originalElement = element; while (element && element.parentNode) { var display = element.getStyle('display'); if (display === 'none') { return false; } element = $(element.parentNode); } return true; } var hasLayout = Prototype.K; if ('currentStyle' in document.documentElement) { hasLayout = function(element) { if (!element.currentStyle.hasLayout) { element.style.zoom = 1; } return element; }; } function cssNameFor(key) { if (key.include('border')) key = key + '-width'; return key.camelize(); } Element.Layout = Class.create(Hash, { initialize: function($super, element, preCompute) { $super(); this.element = $(element); Element.Layout.PROPERTIES.each( function(property) { this._set(property, null); }, this); if (preCompute) { this._preComputing = true; this._begin(); Element.Layout.PROPERTIES.each( this._compute, this ); this._end(); this._preComputing = false; } }, _set: function(property, value) { return Hash.prototype.set.call(this, property, value); }, set: function(property, value) { throw "Properties of Element.Layout are read-only."; }, get: function($super, property) { var value = $super(property); return value === null ? this._compute(property) : value; }, _begin: function() { if (this._prepared) return; var element = this.element; if (isDisplayed(element)) { this._prepared = true; return; } var originalStyles = { position: element.style.position || '', width: element.style.width || '', visibility: element.style.visibility || '', display: element.style.display || '' }; element.store('prototype_original_styles', originalStyles); var position = element.getStyle('position'), width = element.getStyle('width'); if (width === "0px" || width === null) { element.style.display = 'block'; width = element.getStyle('width'); } var context = (position === 'fixed') ? document.viewport : element.parentNode; element.setStyle({ position: 'absolute', visibility: 'hidden', display: 'block' }); var positionedWidth = element.getStyle('width'); var newWidth; if (width && (positionedWidth === width)) { newWidth = getPixelValue(element, 'width', context); } else if (position === 'absolute' || position === 'fixed') { newWidth = getPixelValue(element, 'width', context); } else { var parent = element.parentNode, pLayout = $(parent).getLayout(); newWidth = pLayout.get('width') - this.get('margin-left') - this.get('border-left') - this.get('padding-left') - this.get('padding-right') - this.get('border-right') - this.get('margin-right'); } element.setStyle({ width: newWidth + 'px' }); this._prepared = true; }, _end: function() { var element = this.element; var originalStyles = element.retrieve('prototype_original_styles'); element.store('prototype_original_styles', null); element.setStyle(originalStyles); this._prepared = false; }, _compute: function(property) { var COMPUTATIONS = Element.Layout.COMPUTATIONS; if (!(property in COMPUTATIONS)) { throw "Property not found."; } return this._set(property, COMPUTATIONS[property].call(this, this.element)); }, toObject: function() { var args = $A(arguments); var keys = (args.length === 0) ? Element.Layout.PROPERTIES : args.join(' ').split(' '); var obj = {}; keys.each( function(key) { if (!Element.Layout.PROPERTIES.include(key)) return; var value = this.get(key); if (value != null) obj[key] = value; }, this); return obj; }, toHash: function() { var obj = this.toObject.apply(this, arguments); return new Hash(obj); }, toCSS: function() { var args = $A(arguments); var keys = (args.length === 0) ? Element.Layout.PROPERTIES : args.join(' ').split(' '); var css = {}; keys.each( function(key) { if (!Element.Layout.PROPERTIES.include(key)) return; if (Element.Layout.COMPOSITE_PROPERTIES.include(key)) return; var value = this.get(key); if (value != null) css[cssNameFor(key)] = value + 'px'; }, this); return css; }, inspect: function() { return "#"; } }); Object.extend(Element.Layout, { PROPERTIES: $w('height width top left right bottom border-left border-right border-top border-bottom padding-left padding-right padding-top padding-bottom margin-top margin-bottom margin-left margin-right padding-box-width padding-box-height border-box-width border-box-height margin-box-width margin-box-height'), COMPOSITE_PROPERTIES: $w('padding-box-width padding-box-height margin-box-width margin-box-height border-box-width border-box-height'), COMPUTATIONS: { 'height': function(element) { if (!this._preComputing) this._begin(); var bHeight = this.get('border-box-height'); if (bHeight <= 0) { if (!this._preComputing) this._end(); return 0; } var bTop = this.get('border-top'), bBottom = this.get('border-bottom'); var pTop = this.get('padding-top'), pBottom = this.get('padding-bottom'); if (!this._preComputing) this._end(); return bHeight - bTop - bBottom - pTop - pBottom; }, 'width': function(element) { if (!this._preComputing) this._begin(); var bWidth = this.get('border-box-width'); if (bWidth <= 0) { if (!this._preComputing) this._end(); return 0; } var bLeft = this.get('border-left'), bRight = this.get('border-right'); var pLeft = this.get('padding-left'), pRight = this.get('padding-right'); if (!this._preComputing) this._end(); return bWidth - bLeft - bRight - pLeft - pRight; }, 'padding-box-height': function(element) { var height = this.get('height'), pTop = this.get('padding-top'), pBottom = this.get('padding-bottom'); return height + pTop + pBottom; }, 'padding-box-width': function(element) { var width = this.get('width'), pLeft = this.get('padding-left'), pRight = this.get('padding-right'); return width + pLeft + pRight; }, 'border-box-height': function(element) { if (!this._preComputing) this._begin(); var height = element.offsetHeight; if (!this._preComputing) this._end(); return height; }, 'border-box-width': function(element) { if (!this._preComputing) this._begin(); var width = element.offsetWidth; if (!this._preComputing) this._end(); return width; }, 'margin-box-height': function(element) { var bHeight = this.get('border-box-height'), mTop = this.get('margin-top'), mBottom = this.get('margin-bottom'); if (bHeight <= 0) return 0; return bHeight + mTop + mBottom; }, 'margin-box-width': function(element) { var bWidth = this.get('border-box-width'), mLeft = this.get('margin-left'), mRight = this.get('margin-right'); if (bWidth <= 0) return 0; return bWidth + mLeft + mRight; }, 'top': function(element) { var offset = element.positionedOffset(); return offset.top; }, 'bottom': function(element) { var offset = element.positionedOffset(), parent = element.getOffsetParent(), pHeight = parent.measure('height'); var mHeight = this.get('border-box-height'); return pHeight - mHeight - offset.top; }, 'left': function(element) { var offset = element.positionedOffset(); return offset.left; }, 'right': function(element) { var offset = element.positionedOffset(), parent = element.getOffsetParent(), pWidth = parent.measure('width'); var mWidth = this.get('border-box-width'); return pWidth - mWidth - offset.left; }, 'padding-top': function(element) { return getPixelValue(element, 'paddingTop'); }, 'padding-bottom': function(element) { return getPixelValue(element, 'paddingBottom'); }, 'padding-left': function(element) { return getPixelValue(element, 'paddingLeft'); }, 'padding-right': function(element) { return getPixelValue(element, 'paddingRight'); }, 'border-top': function(element) { return getPixelValue(element, 'borderTopWidth'); }, 'border-bottom': function(element) { return getPixelValue(element, 'borderBottomWidth'); }, 'border-left': function(element) { return getPixelValue(element, 'borderLeftWidth'); }, 'border-right': function(element) { return getPixelValue(element, 'borderRightWidth'); }, 'margin-top': function(element) { return getPixelValue(element, 'marginTop'); }, 'margin-bottom': function(element) { return getPixelValue(element, 'marginBottom'); }, 'margin-left': function(element) { return getPixelValue(element, 'marginLeft'); }, 'margin-right': function(element) { return getPixelValue(element, 'marginRight'); } } }); if ('getBoundingClientRect' in document.documentElement) { Object.extend(Element.Layout.COMPUTATIONS, { 'right': function(element) { var parent = hasLayout(element.getOffsetParent()); var rect = element.getBoundingClientRect(), pRect = parent.getBoundingClientRect(); return (pRect.right - rect.right).round(); }, 'bottom': function(element) { var parent = hasLayout(element.getOffsetParent()); var rect = element.getBoundingClientRect(), pRect = parent.getBoundingClientRect(); return (pRect.bottom - rect.bottom).round(); } }); } Element.Offset = Class.create({ initialize: function(left, top) { this.left = left.round(); this.top = top.round(); this[0] = this.left; this[1] = this.top; }, relativeTo: function(offset) { return new Element.Offset( this.left - offset.left, this.top - offset.top ); }, inspect: function() { return "#".interpolate(this); }, toString: function() { return "[#{left}, #{top}]".interpolate(this); }, toArray: function() { return [this.left, this.top]; } }); function getLayout(element, preCompute) { return new Element.Layout(element, preCompute); } function measure(element, property) { return $(element).getLayout().get(property); } function getDimensions(element) { element = $(element); var display = Element.getStyle(element, 'display'); if (display && display !== 'none') { return { width: element.offsetWidth, height: element.offsetHeight }; } var style = element.style; var originalStyles = { visibility: style.visibility, position: style.position, display: style.display }; var newStyles = { visibility: 'hidden', display: 'block' }; if (originalStyles.position !== 'fixed') newStyles.position = 'absolute'; Element.setStyle(element, newStyles); var dimensions = { width: element.offsetWidth, height: element.offsetHeight }; Element.setStyle(element, originalStyles); return dimensions; } function getOffsetParent(element) { element = $(element); if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element)) return $(document.body); var isInline = (Element.getStyle(element, 'display') === 'inline'); if (!isInline && element.offsetParent) return $(element.offsetParent); while ((element = element.parentNode) && element !== document.body) { if (Element.getStyle(element, 'position') !== 'static') { return isHtml(element) ? $(document.body) : $(element); } } return $(document.body); } function cumulativeOffset(element) { element = $(element); var valueT = 0, valueL = 0; if (element.parentNode) { do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; } while (element); } return new Element.Offset(valueL, valueT); } function positionedOffset(element) { element = $(element); var layout = element.getLayout(); var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; if (element) { if (isBody(element)) break; var p = Element.getStyle(element, 'position'); if (p !== 'static') break; } } while (element); valueL -= layout.get('margin-top'); valueT -= layout.get('margin-left'); return new Element.Offset(valueL, valueT); } function cumulativeScrollOffset(element) { var valueT = 0, valueL = 0; do { valueT += element.scrollTop || 0; valueL += element.scrollLeft || 0; element = element.parentNode; } while (element); return new Element.Offset(valueL, valueT); } function viewportOffset(forElement) { element = $(element); var valueT = 0, valueL = 0, docBody = document.body; var element = forElement; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; if (element.offsetParent == docBody && Element.getStyle(element, 'position') == 'absolute') break; } while (element = element.offsetParent); element = forElement; do { if (element != docBody) { valueT -= element.scrollTop || 0; valueL -= element.scrollLeft || 0; } } while (element = element.parentNode); return new Element.Offset(valueL, valueT); } function absolutize(element) { element = $(element); if (Element.getStyle(element, 'position') === 'absolute') { return element; } var offsetParent = getOffsetParent(element); var eOffset = element.viewportOffset(), pOffset = offsetParent.viewportOffset(); var offset = eOffset.relativeTo(pOffset); var layout = element.getLayout(); element.store('prototype_absolutize_original_styles', { left: element.getStyle('left'), top: element.getStyle('top'), width: element.getStyle('width'), height: element.getStyle('height') }); element.setStyle({ position: 'absolute', top: offset.top + 'px', left: offset.left + 'px', width: layout.get('width') + 'px', height: layout.get('height') + 'px' }); return element; } function relativize(element) { element = $(element); if (Element.getStyle(element, 'position') === 'relative') { return element; } var originalStyles = element.retrieve('prototype_absolutize_original_styles'); if (originalStyles) element.setStyle(originalStyles); return element; } if (Prototype.Browser.IE) { getOffsetParent = getOffsetParent.wrap( function(proceed, element) { element = $(element); if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element)) return $(document.body); var position = element.getStyle('position'); if (position !== 'static') return proceed(element); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); return value; } ); positionedOffset = positionedOffset.wrap(function(proceed, element) { element = $(element); if (!element.parentNode) return new Element.Offset(0, 0); var position = element.getStyle('position'); if (position !== 'static') return proceed(element); var offsetParent = element.getOffsetParent(); if (offsetParent && offsetParent.getStyle('position') === 'fixed') hasLayout(offsetParent); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); return value; }); } else if (Prototype.Browser.Webkit) { cumulativeOffset = function(element) { element = $(element); var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; if (element.offsetParent == document.body) if (Element.getStyle(element, 'position') == 'absolute') break; element = element.offsetParent; } while (element); return new Element.Offset(valueL, valueT); }; } Element.addMethods({ getLayout: getLayout, measure: measure, getDimensions: getDimensions, getOffsetParent: getOffsetParent, cumulativeOffset: cumulativeOffset, positionedOffset: positionedOffset, cumulativeScrollOffset: cumulativeScrollOffset, viewportOffset: viewportOffset, absolutize: absolutize, relativize: relativize }); function isBody(element) { return element.nodeName.toUpperCase() === 'BODY'; } function isHtml(element) { return element.nodeName.toUpperCase() === 'HTML'; } function isDocument(element) { return element.nodeType === Node.DOCUMENT_NODE; } function isDetached(element) { return element !== document.body && !Element.descendantOf(element, document.body); } if ('getBoundingClientRect' in document.documentElement) { Element.addMethods({ viewportOffset: function(element) { element = $(element); if (isDetached(element)) return new Element.Offset(0, 0); var rect = element.getBoundingClientRect(), docEl = document.documentElement; return new Element.Offset(rect.left - docEl.clientLeft, rect.top - docEl.clientTop); } }); } })(); window.$$ = function() { var expression = $A(arguments).join(', '); return Prototype.Selector.select(expression, document); }; Prototype.Selector = (function() { function select() { throw new Error('Method "Prototype.Selector.select" must be defined.'); } function match() { throw new Error('Method "Prototype.Selector.match" must be defined.'); } function find(elements, expression, index) { index = index || 0; var match = Prototype.Selector.match, length = elements.length, matchIndex = 0, i; for (i = 0; i < length; i++) { if (match(elements[i], expression) && index == matchIndex++) { return Element.extend(elements[i]); } } } function extendElements(elements) { for (var i = 0, length = elements.length; i < length; i++) { Element.extend(elements[i]); } return elements; } var K = Prototype.K; return { select: select, match: match, find: find, extendElements: (Element.extend === K) ? K : extendElements, extendElement: Element.extend }; })(); /*! * Sizzle CSS Selector Engine - v1.0 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, done = 0, toString = Object.prototype.toString, hasDuplicate = false, baseHasDuplicate = true; [0, 0].sort(function(){ baseHasDuplicate = false; return 0; }); var Sizzle = function(selector, context, results, seed) { results = results || []; var origContext = context = context || document; if ( context.nodeType !== 1 && context.nodeType !== 9 ) { return []; } if ( !selector || typeof selector !== "string" ) { return results; } var parts = [], m, set, checkSet, check, mode, extra, prune = true, contextXML = isXML(context), soFar = selector; while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) { soFar = m[3]; parts.push( m[1] ); if ( m[2] ) { extra = m[3]; break; } } if ( parts.length > 1 && origPOS.exec( selector ) ) { if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { set = posProcess( parts[0] + parts[1], context ); } else { set = Expr.relative[ parts[0] ] ? [ context ] : Sizzle( parts.shift(), context ); while ( parts.length ) { selector = parts.shift(); if ( Expr.relative[ selector ] ) selector += parts.shift(); set = posProcess( selector, set ); } } } else { if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { var ret = Sizzle.find( parts.shift(), context, contextXML ); context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; } if ( context ) { var ret = seed ? { expr: parts.pop(), set: makeArray(seed) } : Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; if ( parts.length > 0 ) { checkSet = makeArray(set); } else { prune = false; } while ( parts.length ) { var cur = parts.pop(), pop = cur; if ( !Expr.relative[ cur ] ) { cur = ""; } else { pop = parts.pop(); } if ( pop == null ) { pop = context; } Expr.relative[ cur ]( checkSet, pop, contextXML ); } } else { checkSet = parts = []; } } if ( !checkSet ) { checkSet = set; } if ( !checkSet ) { throw "Syntax error, unrecognized expression: " + (cur || selector); } if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { results.push.apply( results, checkSet ); } else if ( context && context.nodeType === 1 ) { for ( var i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { results.push( set[i] ); } } } else { for ( var i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && checkSet[i].nodeType === 1 ) { results.push( set[i] ); } } } } else { makeArray( checkSet, results ); } if ( extra ) { Sizzle( extra, origContext, results, seed ); Sizzle.uniqueSort( results ); } return results; }; Sizzle.uniqueSort = function(results){ if ( sortOrder ) { hasDuplicate = baseHasDuplicate; results.sort(sortOrder); if ( hasDuplicate ) { for ( var i = 1; i < results.length; i++ ) { if ( results[i] === results[i-1] ) { results.splice(i--, 1); } } } } return results; }; Sizzle.matches = function(expr, set){ return Sizzle(expr, null, null, set); }; Sizzle.find = function(expr, context, isXML){ var set, match; if ( !expr ) { return []; } for ( var i = 0, l = Expr.order.length; i < l; i++ ) { var type = Expr.order[i], match; if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { var left = match[1]; match.splice(1,1); if ( left.substr( left.length - 1 ) !== "\\" ) { match[1] = (match[1] || "").replace(/\\/g, ""); set = Expr.find[ type ]( match, context, isXML ); if ( set != null ) { expr = expr.replace( Expr.match[ type ], "" ); break; } } } } if ( !set ) { set = context.getElementsByTagName("*"); } return {set: set, expr: expr}; }; Sizzle.filter = function(expr, set, inplace, not){ var old = expr, result = [], curLoop = set, match, anyFound, isXMLFilter = set && set[0] && isXML(set[0]); while ( expr && set.length ) { for ( var type in Expr.filter ) { if ( (match = Expr.match[ type ].exec( expr )) != null ) { var filter = Expr.filter[ type ], found, item; anyFound = false; if ( curLoop == result ) { result = []; } if ( Expr.preFilter[ type ] ) { match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); if ( !match ) { anyFound = found = true; } else if ( match === true ) { continue; } } if ( match ) { for ( var i = 0; (item = curLoop[i]) != null; i++ ) { if ( item ) { found = filter( item, match, i, curLoop ); var pass = not ^ !!found; if ( inplace && found != null ) { if ( pass ) { anyFound = true; } else { curLoop[i] = false; } } else if ( pass ) { result.push( item ); anyFound = true; } } } } if ( found !== undefined ) { if ( !inplace ) { curLoop = result; } expr = expr.replace( Expr.match[ type ], "" ); if ( !anyFound ) { return []; } break; } } } if ( expr == old ) { if ( anyFound == null ) { throw "Syntax error, unrecognized expression: " + expr; } else { break; } } old = expr; } return curLoop; }; var Expr = Sizzle.selectors = { order: [ "ID", "NAME", "TAG" ], match: { ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/ }, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function(elem){ return elem.getAttribute("href"); } }, relative: { "+": function(checkSet, part, isXML){ var isPartStr = typeof part === "string", isTag = isPartStr && !/\W/.test(part), isPartStrNotTag = isPartStr && !isTag; if ( isTag && !isXML ) { part = part.toUpperCase(); } for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { if ( (elem = checkSet[i]) ) { while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ? elem || false : elem === part; } } if ( isPartStrNotTag ) { Sizzle.filter( part, checkSet, true ); } }, ">": function(checkSet, part, isXML){ var isPartStr = typeof part === "string"; if ( isPartStr && !/\W/.test(part) ) { part = isXML ? part : part.toUpperCase(); for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { var parent = elem.parentNode; checkSet[i] = parent.nodeName === part ? parent : false; } } } else { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { checkSet[i] = isPartStr ? elem.parentNode : elem.parentNode === part; } } if ( isPartStr ) { Sizzle.filter( part, checkSet, true ); } } }, "": function(checkSet, part, isXML){ var doneName = done++, checkFn = dirCheck; if ( !/\W/.test(part) ) { var nodeCheck = part = isXML ? part : part.toUpperCase(); checkFn = dirNodeCheck; } checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); }, "~": function(checkSet, part, isXML){ var doneName = done++, checkFn = dirCheck; if ( typeof part === "string" && !/\W/.test(part) ) { var nodeCheck = part = isXML ? part : part.toUpperCase(); checkFn = dirNodeCheck; } checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); } }, find: { ID: function(match, context, isXML){ if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); return m ? [m] : []; } }, NAME: function(match, context, isXML){ if ( typeof context.getElementsByName !== "undefined" ) { var ret = [], results = context.getElementsByName(match[1]); for ( var i = 0, l = results.length; i < l; i++ ) { if ( results[i].getAttribute("name") === match[1] ) { ret.push( results[i] ); } } return ret.length === 0 ? null : ret; } }, TAG: function(match, context){ return context.getElementsByTagName(match[1]); } }, preFilter: { CLASS: function(match, curLoop, inplace, result, not, isXML){ match = " " + match[1].replace(/\\/g, "") + " "; if ( isXML ) { return match; } for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { if ( elem ) { if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) { if ( !inplace ) result.push( elem ); } else if ( inplace ) { curLoop[i] = false; } } } return false; }, ID: function(match){ return match[1].replace(/\\/g, ""); }, TAG: function(match, curLoop){ for ( var i = 0; curLoop[i] === false; i++ ){} return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase(); }, CHILD: function(match){ if ( match[1] == "nth" ) { var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" || !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); match[2] = (test[1] + (test[2] || 1)) - 0; match[3] = test[3] - 0; } match[0] = done++; return match; }, ATTR: function(match, curLoop, inplace, result, not, isXML){ var name = match[1].replace(/\\/g, ""); if ( !isXML && Expr.attrMap[name] ) { match[1] = Expr.attrMap[name]; } if ( match[2] === "~=" ) { match[4] = " " + match[4] + " "; } return match; }, PSEUDO: function(match, curLoop, inplace, result, not){ if ( match[1] === "not" ) { if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { match[3] = Sizzle(match[3], null, null, curLoop); } else { var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); if ( !inplace ) { result.push.apply( result, ret ); } return false; } } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { return true; } return match; }, POS: function(match){ match.unshift( true ); return match; } }, filters: { enabled: function(elem){ return elem.disabled === false && elem.type !== "hidden"; }, disabled: function(elem){ return elem.disabled === true; }, checked: function(elem){ return elem.checked === true; }, selected: function(elem){ elem.parentNode.selectedIndex; return elem.selected === true; }, parent: function(elem){ return !!elem.firstChild; }, empty: function(elem){ return !elem.firstChild; }, has: function(elem, i, match){ return !!Sizzle( match[3], elem ).length; }, header: function(elem){ return /h\d/i.test( elem.nodeName ); }, text: function(elem){ return "text" === elem.type; }, radio: function(elem){ return "radio" === elem.type; }, checkbox: function(elem){ return "checkbox" === elem.type; }, file: function(elem){ return "file" === elem.type; }, password: function(elem){ return "password" === elem.type; }, submit: function(elem){ return "submit" === elem.type; }, image: function(elem){ return "image" === elem.type; }, reset: function(elem){ return "reset" === elem.type; }, button: function(elem){ return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON"; }, input: function(elem){ return /input|select|textarea|button/i.test(elem.nodeName); } }, setFilters: { first: function(elem, i){ return i === 0; }, last: function(elem, i, match, array){ return i === array.length - 1; }, even: function(elem, i){ return i % 2 === 0; }, odd: function(elem, i){ return i % 2 === 1; }, lt: function(elem, i, match){ return i < match[3] - 0; }, gt: function(elem, i, match){ return i > match[3] - 0; }, nth: function(elem, i, match){ return match[3] - 0 == i; }, eq: function(elem, i, match){ return match[3] - 0 == i; } }, filter: { PSEUDO: function(elem, match, i, array){ var name = match[1], filter = Expr.filters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } else if ( name === "contains" ) { return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0; } else if ( name === "not" ) { var not = match[3]; for ( var i = 0, l = not.length; i < l; i++ ) { if ( not[i] === elem ) { return false; } } return true; } }, CHILD: function(elem, match){ var type = match[1], node = elem; switch (type) { case 'only': case 'first': while ( (node = node.previousSibling) ) { if ( node.nodeType === 1 ) return false; } if ( type == 'first') return true; node = elem; case 'last': while ( (node = node.nextSibling) ) { if ( node.nodeType === 1 ) return false; } return true; case 'nth': var first = match[2], last = match[3]; if ( first == 1 && last == 0 ) { return true; } var doneName = match[0], parent = elem.parentNode; if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { var count = 0; for ( node = parent.firstChild; node; node = node.nextSibling ) { if ( node.nodeType === 1 ) { node.nodeIndex = ++count; } } parent.sizcache = doneName; } var diff = elem.nodeIndex - last; if ( first == 0 ) { return diff == 0; } else { return ( diff % first == 0 && diff / first >= 0 ); } } }, ID: function(elem, match){ return elem.nodeType === 1 && elem.getAttribute("id") === match; }, TAG: function(elem, match){ return (match === "*" && elem.nodeType === 1) || elem.nodeName === match; }, CLASS: function(elem, match){ return (" " + (elem.className || elem.getAttribute("class")) + " ") .indexOf( match ) > -1; }, ATTR: function(elem, match){ var name = match[1], result = Expr.attrHandle[ name ] ? Expr.attrHandle[ name ]( elem ) : elem[ name ] != null ? elem[ name ] : elem.getAttribute( name ), value = result + "", type = match[2], check = match[4]; return result == null ? type === "!=" : type === "=" ? value === check : type === "*=" ? value.indexOf(check) >= 0 : type === "~=" ? (" " + value + " ").indexOf(check) >= 0 : !check ? value && result !== false : type === "!=" ? value != check : type === "^=" ? value.indexOf(check) === 0 : type === "$=" ? value.substr(value.length - check.length) === check : type === "|=" ? value === check || value.substr(0, check.length + 1) === check + "-" : false; }, POS: function(elem, match, i, array){ var name = match[2], filter = Expr.setFilters[ name ]; if ( filter ) { return filter( elem, i, match, array ); } } } }; var origPOS = Expr.match.POS; for ( var type in Expr.match ) { Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source ); } var makeArray = function(array, results) { array = Array.prototype.slice.call( array, 0 ); if ( results ) { results.push.apply( results, array ); return results; } return array; }; try { Array.prototype.slice.call( document.documentElement.childNodes, 0 ); } catch(e){ makeArray = function(array, results) { var ret = results || []; if ( toString.call(array) === "[object Array]" ) { Array.prototype.push.apply( ret, array ); } else { if ( typeof array.length === "number" ) { for ( var i = 0, l = array.length; i < l; i++ ) { ret.push( array[i] ); } } else { for ( var i = 0; array[i]; i++ ) { ret.push( array[i] ); } } } return ret; }; } var sortOrder; if ( document.documentElement.compareDocumentPosition ) { sortOrder = function( a, b ) { if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { if ( a == b ) { hasDuplicate = true; } return 0; } var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; if ( ret === 0 ) { hasDuplicate = true; } return ret; }; } else if ( "sourceIndex" in document.documentElement ) { sortOrder = function( a, b ) { if ( !a.sourceIndex || !b.sourceIndex ) { if ( a == b ) { hasDuplicate = true; } return 0; } var ret = a.sourceIndex - b.sourceIndex; if ( ret === 0 ) { hasDuplicate = true; } return ret; }; } else if ( document.createRange ) { sortOrder = function( a, b ) { if ( !a.ownerDocument || !b.ownerDocument ) { if ( a == b ) { hasDuplicate = true; } return 0; } var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); aRange.setStart(a, 0); aRange.setEnd(a, 0); bRange.setStart(b, 0); bRange.setEnd(b, 0); var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); if ( ret === 0 ) { hasDuplicate = true; } return ret; }; } (function(){ var form = document.createElement("div"), id = "script" + (new Date).getTime(); form.innerHTML = "
    "; var root = document.documentElement; root.insertBefore( form, root.firstChild ); if ( !!document.getElementById( id ) ) { Expr.find.ID = function(match, context, isXML){ if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; } }; Expr.filter.ID = function(elem, match){ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return elem.nodeType === 1 && node && node.nodeValue === match; }; } root.removeChild( form ); root = form = null; // release memory in IE })(); (function(){ var div = document.createElement("div"); div.appendChild( document.createComment("") ); if ( div.getElementsByTagName("*").length > 0 ) { Expr.find.TAG = function(match, context){ var results = context.getElementsByTagName(match[1]); if ( match[1] === "*" ) { var tmp = []; for ( var i = 0; results[i]; i++ ) { if ( results[i].nodeType === 1 ) { tmp.push( results[i] ); } } results = tmp; } return results; }; } div.innerHTML = ""; if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && div.firstChild.getAttribute("href") !== "#" ) { Expr.attrHandle.href = function(elem){ return elem.getAttribute("href", 2); }; } div = null; // release memory in IE })(); if ( document.querySelectorAll ) (function(){ var oldSizzle = Sizzle, div = document.createElement("div"); div.innerHTML = "

    "; if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { return; } Sizzle = function(query, context, extra, seed){ context = context || document; if ( !seed && context.nodeType === 9 && !isXML(context) ) { try { return makeArray( context.querySelectorAll(query), extra ); } catch(e){} } return oldSizzle(query, context, extra, seed); }; for ( var prop in oldSizzle ) { Sizzle[ prop ] = oldSizzle[ prop ]; } div = null; // release memory in IE })(); if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){ var div = document.createElement("div"); div.innerHTML = "
    "; if ( div.getElementsByClassName("e").length === 0 ) return; div.lastChild.className = "e"; if ( div.getElementsByClassName("e").length === 1 ) return; Expr.order.splice(1, 0, "CLASS"); Expr.find.CLASS = function(match, context, isXML) { if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { return context.getElementsByClassName(match[1]); } }; div = null; // release memory in IE })(); function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { var sibDir = dir == "previousSibling" && !isXML; for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { if ( sibDir && elem.nodeType === 1 ){ elem.sizcache = doneName; elem.sizset = i; } elem = elem[dir]; var match = false; while ( elem ) { if ( elem.sizcache === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 && !isXML ){ elem.sizcache = doneName; elem.sizset = i; } if ( elem.nodeName === cur ) { match = elem; break; } elem = elem[dir]; } checkSet[i] = match; } } } function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { var sibDir = dir == "previousSibling" && !isXML; for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { if ( sibDir && elem.nodeType === 1 ) { elem.sizcache = doneName; elem.sizset = i; } elem = elem[dir]; var match = false; while ( elem ) { if ( elem.sizcache === doneName ) { match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 ) { if ( !isXML ) { elem.sizcache = doneName; elem.sizset = i; } if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true; break; } } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { match = elem; break; } } elem = elem[dir]; } checkSet[i] = match; } } } var contains = document.compareDocumentPosition ? function(a, b){ return a.compareDocumentPosition(b) & 16; } : function(a, b){ return a !== b && (a.contains ? a.contains(b) : true); }; var isXML = function(elem){ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || !!elem.ownerDocument && elem.ownerDocument.documentElement.nodeName !== "HTML"; }; var posProcess = function(selector, context){ var tmpSet = [], later = "", match, root = context.nodeType ? [context] : context; while ( (match = Expr.match.PSEUDO.exec( selector )) ) { later += match[0]; selector = selector.replace( Expr.match.PSEUDO, "" ); } selector = Expr.relative[selector] ? selector + "*" : selector; for ( var i = 0, l = root.length; i < l; i++ ) { Sizzle( selector, root[i], tmpSet ); } return Sizzle.filter( later, tmpSet ); }; window.Sizzle = Sizzle; })(); Prototype._original_property = window.Sizzle; ;(function(engine) { var extendElements = Prototype.Selector.extendElements; function select(selector, scope) { return extendElements(engine(selector, scope || document)); } function match(element, selector) { return engine.matches(selector, [element]).length == 1; } Prototype.Selector.engine = engine; Prototype.Selector.select = select; Prototype.Selector.match = match; })(Sizzle); window.Sizzle = Prototype._original_property; delete Prototype._original_property; var Form = { reset: function(form) { form = $(form); form.reset(); return form; }, serializeElements: function(elements, options) { if (typeof options != 'object') options = { hash: !!options }; else if (Object.isUndefined(options.hash)) options.hash = true; var key, value, submitted = false, submit = options.submit, accumulator, initial; if (options.hash) { initial = {}; accumulator = function(result, key, value) { if (key in result) { if (!Object.isArray(result[key])) result[key] = [result[key]]; result[key].push(value); } else result[key] = value; return result; }; } else { initial = ''; accumulator = function(result, key, value) { return result + (result ? '&' : '') + encodeURIComponent(key) + '=' + encodeURIComponent(value); } } return elements.inject(initial, function(result, element) { if (!element.disabled && element.name) { key = element.name; value = $(element).getValue(); if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && submit !== false && (!submit || key == submit) && (submitted = true)))) { result = accumulator(result, key, value); } } return result; }); } }; Form.Methods = { serialize: function(form, options) { return Form.serializeElements(Form.getElements(form), options); }, getElements: function(form) { var elements = $(form).getElementsByTagName('*'), element, arr = [ ], serializers = Form.Element.Serializers; for (var i = 0; element = elements[i]; i++) { arr.push(element); } return arr.inject([], function(elements, child) { if (serializers[child.tagName.toLowerCase()]) elements.push(Element.extend(child)); return elements; }) }, getInputs: function(form, typeName, name) { form = $(form); var inputs = form.getElementsByTagName('input'); if (!typeName && !name) return $A(inputs).map(Element.extend); for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { var input = inputs[i]; if ((typeName && input.type != typeName) || (name && input.name != name)) continue; matchingInputs.push(Element.extend(input)); } return matchingInputs; }, disable: function(form) { form = $(form); Form.getElements(form).invoke('disable'); return form; }, enable: function(form) { form = $(form); Form.getElements(form).invoke('enable'); return form; }, findFirstElement: function(form) { var elements = $(form).getElements().findAll(function(element) { return 'hidden' != element.type && !element.disabled; }); var firstByIndex = elements.findAll(function(element) { return element.hasAttribute('tabIndex') && element.tabIndex >= 0; }).sortBy(function(element) { return element.tabIndex }).first(); return firstByIndex ? firstByIndex : elements.find(function(element) { return /^(?:input|select|textarea)$/i.test(element.tagName); }); }, focusFirstElement: function(form) { form = $(form); var element = form.findFirstElement(); if (element) element.activate(); return form; }, request: function(form, options) { form = $(form), options = Object.clone(options || { }); var params = options.parameters, action = form.readAttribute('action') || ''; if (action.blank()) action = window.location.href; options.parameters = form.serialize(true); if (params) { if (Object.isString(params)) params = params.toQueryParams(); Object.extend(options.parameters, params); } if (form.hasAttribute('method') && !options.method) options.method = form.method; return new Ajax.Request(action, options); } }; /*--------------------------------------------------------------------------*/ Form.Element = { focus: function(element) { $(element).focus(); return element; }, select: function(element) { $(element).select(); return element; } }; Form.Element.Methods = { serialize: function(element) { element = $(element); if (!element.disabled && element.name) { var value = element.getValue(); if (value != undefined) { var pair = { }; pair[element.name] = value; return Object.toQueryString(pair); } } return ''; }, getValue: function(element) { element = $(element); var method = element.tagName.toLowerCase(); return Form.Element.Serializers[method](element); }, setValue: function(element, value) { element = $(element); var method = element.tagName.toLowerCase(); Form.Element.Serializers[method](element, value); return element; }, clear: function(element) { $(element).value = ''; return element; }, present: function(element) { return $(element).value != ''; }, activate: function(element) { element = $(element); try { element.focus(); if (element.select && (element.tagName.toLowerCase() != 'input' || !(/^(?:button|reset|submit)$/i.test(element.type)))) element.select(); } catch (e) { } return element; }, disable: function(element) { element = $(element); element.disabled = true; return element; }, enable: function(element) { element = $(element); element.disabled = false; return element; } }; /*--------------------------------------------------------------------------*/ var Field = Form.Element; var $F = Form.Element.Methods.getValue; /*--------------------------------------------------------------------------*/ Form.Element.Serializers = (function() { function input(element, value) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': return inputSelector(element, value); default: return valueSelector(element, value); } } function inputSelector(element, value) { if (Object.isUndefined(value)) return element.checked ? element.value : null; else element.checked = !!value; } function valueSelector(element, value) { if (Object.isUndefined(value)) return element.value; else element.value = value; } function select(element, value) { if (Object.isUndefined(value)) return (element.type === 'select-one' ? selectOne : selectMany)(element); var opt, currentValue, single = !Object.isArray(value); for (var i = 0, length = element.length; i < length; i++) { opt = element.options[i]; currentValue = this.optionValue(opt); if (single) { if (currentValue == value) { opt.selected = true; return; } } else opt.selected = value.include(currentValue); } } function selectOne(element) { var index = element.selectedIndex; return index >= 0 ? optionValue(element.options[index]) : null; } function selectMany(element) { var values, length = element.length; if (!length) return null; for (var i = 0, values = []; i < length; i++) { var opt = element.options[i]; if (opt.selected) values.push(optionValue(opt)); } return values; } function optionValue(opt) { return Element.hasAttribute(opt, 'value') ? opt.value : opt.text; } return { input: input, inputSelector: inputSelector, textarea: valueSelector, select: select, selectOne: selectOne, selectMany: selectMany, optionValue: optionValue, button: valueSelector }; })(); /*--------------------------------------------------------------------------*/ Abstract.TimedObserver = Class.create(PeriodicalExecuter, { initialize: function($super, element, frequency, callback) { $super(callback, frequency); this.element = $(element); this.lastValue = this.getValue(); }, execute: function() { var value = this.getValue(); if (Object.isString(this.lastValue) && Object.isString(value) ? this.lastValue != value : String(this.lastValue) != String(value)) { this.callback(this.element, value); this.lastValue = value; } } }); Form.Element.Observer = Class.create(Abstract.TimedObserver, { getValue: function() { return Form.Element.getValue(this.element); } }); Form.Observer = Class.create(Abstract.TimedObserver, { getValue: function() { return Form.serialize(this.element); } }); /*--------------------------------------------------------------------------*/ Abstract.EventObserver = Class.create({ initialize: function(element, callback) { this.element = $(element); this.callback = callback; this.lastValue = this.getValue(); if (this.element.tagName.toLowerCase() == 'form') this.registerFormCallbacks(); else this.registerCallback(this.element); }, onElementEvent: function() { var value = this.getValue(); if (this.lastValue != value) { this.callback(this.element, value); this.lastValue = value; } }, registerFormCallbacks: function() { Form.getElements(this.element).each(this.registerCallback, this); }, registerCallback: function(element) { if (element.type) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': Event.observe(element, 'click', this.onElementEvent.bind(this)); break; default: Event.observe(element, 'change', this.onElementEvent.bind(this)); break; } } } }); Form.Element.EventObserver = Class.create(Abstract.EventObserver, { getValue: function() { return Form.Element.getValue(this.element); } }); Form.EventObserver = Class.create(Abstract.EventObserver, { getValue: function() { return Form.serialize(this.element); } }); (function() { var Event = { KEY_BACKSPACE: 8, KEY_TAB: 9, KEY_RETURN: 13, KEY_ESC: 27, KEY_LEFT: 37, KEY_UP: 38, KEY_RIGHT: 39, KEY_DOWN: 40, KEY_DELETE: 46, KEY_HOME: 36, KEY_END: 35, KEY_PAGEUP: 33, KEY_PAGEDOWN: 34, KEY_INSERT: 45, cache: {} }; var docEl = document.documentElement; var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl && 'onmouseleave' in docEl; var isIELegacyEvent = function(event) { return false; }; if (window.attachEvent) { if (window.addEventListener) { isIELegacyEvent = function(event) { return !(event instanceof window.Event); }; } else { isIELegacyEvent = function(event) { return true; }; } } var _isButton; function _isButtonForDOMEvents(event, code) { return event.which ? (event.which === code + 1) : (event.button === code); } var legacyButtonMap = { 0: 1, 1: 4, 2: 2 }; function _isButtonForLegacyEvents(event, code) { return event.button === legacyButtonMap[code]; } function _isButtonForWebKit(event, code) { switch (code) { case 0: return event.which == 1 && !event.metaKey; case 1: return event.which == 2 || (event.which == 1 && event.metaKey); case 2: return event.which == 3; default: return false; } } if (window.attachEvent) { if (!window.addEventListener) { _isButton = _isButtonForLegacyEvents; } else { _isButton = function(event, code) { return isIELegacyEvent(event) ? _isButtonForLegacyEvents(event, code) : _isButtonForDOMEvents(event, code); } } } else if (Prototype.Browser.WebKit) { _isButton = _isButtonForWebKit; } else { _isButton = _isButtonForDOMEvents; } function isLeftClick(event) { return _isButton(event, 0) } function isMiddleClick(event) { return _isButton(event, 1) } function isRightClick(event) { return _isButton(event, 2) } function element(event) { event = Event.extend(event); var node = event.target, type = event.type, currentTarget = event.currentTarget; if (currentTarget && currentTarget.tagName) { if (type === 'load' || type === 'error' || (type === 'click' && currentTarget.tagName.toLowerCase() === 'input' && currentTarget.type === 'radio')) node = currentTarget; } if (node.nodeType == Node.TEXT_NODE) node = node.parentNode; return Element.extend(node); } function findElement(event, expression) { var element = Event.element(event); if (!expression) return element; while (element) { if (Object.isElement(element) && Prototype.Selector.match(element, expression)) { return Element.extend(element); } element = element.parentNode; } } function pointer(event) { return { x: pointerX(event), y: pointerY(event) }; } function pointerX(event) { var docElement = document.documentElement, body = document.body || { scrollLeft: 0 }; return event.pageX || (event.clientX + (docElement.scrollLeft || body.scrollLeft) - (docElement.clientLeft || 0)); } function pointerY(event) { var docElement = document.documentElement, body = document.body || { scrollTop: 0 }; return event.pageY || (event.clientY + (docElement.scrollTop || body.scrollTop) - (docElement.clientTop || 0)); } function stop(event) { Event.extend(event); event.preventDefault(); event.stopPropagation(); event.stopped = true; } Event.Methods = { isLeftClick: isLeftClick, isMiddleClick: isMiddleClick, isRightClick: isRightClick, element: element, findElement: findElement, pointer: pointer, pointerX: pointerX, pointerY: pointerY, stop: stop }; var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { m[name] = Event.Methods[name].methodize(); return m; }); if (window.attachEvent) { function _relatedTarget(event) { var element; switch (event.type) { case 'mouseover': case 'mouseenter': element = event.fromElement; break; case 'mouseout': case 'mouseleave': element = event.toElement; break; default: return null; } return Element.extend(element); } var additionalMethods = { stopPropagation: function() { this.cancelBubble = true }, preventDefault: function() { this.returnValue = false }, inspect: function() { return '[object Event]' } }; Event.extend = function(event, element) { if (!event) return false; if (!isIELegacyEvent(event)) return event; if (event._extendedByPrototype) return event; event._extendedByPrototype = Prototype.emptyFunction; var pointer = Event.pointer(event); Object.extend(event, { target: event.srcElement || element, relatedTarget: _relatedTarget(event), pageX: pointer.x, pageY: pointer.y }); Object.extend(event, methods); Object.extend(event, additionalMethods); return event; }; } else { Event.extend = Prototype.K; } if (window.addEventListener) { Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__; Object.extend(Event.prototype, methods); } function _createResponder(element, eventName, handler) { var registry = Element.retrieve(element, 'prototype_event_registry'); if (Object.isUndefined(registry)) { CACHE.push(element); registry = Element.retrieve(element, 'prototype_event_registry', $H()); } var respondersForEvent = registry.get(eventName); if (Object.isUndefined(respondersForEvent)) { respondersForEvent = []; registry.set(eventName, respondersForEvent); } if (respondersForEvent.pluck('handler').include(handler)) return false; var responder; if (eventName.include(":")) { responder = function(event) { if (Object.isUndefined(event.eventName)) return false; if (event.eventName !== eventName) return false; Event.extend(event, element); handler.call(element, event); }; } else { if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED && (eventName === "mouseenter" || eventName === "mouseleave")) { if (eventName === "mouseenter" || eventName === "mouseleave") { responder = function(event) { Event.extend(event, element); var parent = event.relatedTarget; while (parent && parent !== element) { try { parent = parent.parentNode; } catch(e) { parent = element; } } if (parent === element) return; handler.call(element, event); }; } } else { responder = function(event) { Event.extend(event, element); handler.call(element, event); }; } } responder.handler = handler; respondersForEvent.push(responder); return responder; } function _destroyCache() { for (var i = 0, length = CACHE.length; i < length; i++) { Event.stopObserving(CACHE[i]); CACHE[i] = null; } } var CACHE = []; if (Prototype.Browser.IE) window.attachEvent('onunload', _destroyCache); if (Prototype.Browser.WebKit) window.addEventListener('unload', Prototype.emptyFunction, false); var _getDOMEventName = Prototype.K, translations = { mouseenter: "mouseover", mouseleave: "mouseout" }; if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) { _getDOMEventName = function(eventName) { return (translations[eventName] || eventName); }; } function observe(element, eventName, handler) { element = $(element); var responder = _createResponder(element, eventName, handler); if (!responder) return element; if (eventName.include(':')) { if (element.addEventListener) element.addEventListener("dataavailable", responder, false); else { element.attachEvent("ondataavailable", responder); element.attachEvent("onlosecapture", responder); } } else { var actualEventName = _getDOMEventName(eventName); if (element.addEventListener) element.addEventListener(actualEventName, responder, false); else element.attachEvent("on" + actualEventName, responder); } return element; } function stopObserving(element, eventName, handler) { element = $(element); var registry = Element.retrieve(element, 'prototype_event_registry'); if (!registry) return element; if (!eventName) { registry.each( function(pair) { var eventName = pair.key; stopObserving(element, eventName); }); return element; } var responders = registry.get(eventName); if (!responders) return element; if (!handler) { responders.each(function(r) { stopObserving(element, eventName, r.handler); }); return element; } var i = responders.length, responder; while (i--) { if (responders[i].handler === handler) { responder = responders[i]; break; } } if (!responder) return element; if (eventName.include(':')) { if (element.removeEventListener) element.removeEventListener("dataavailable", responder, false); else { element.detachEvent("ondataavailable", responder); element.detachEvent("onlosecapture", responder); } } else { var actualEventName = _getDOMEventName(eventName); if (element.removeEventListener) element.removeEventListener(actualEventName, responder, false); else element.detachEvent('on' + actualEventName, responder); } registry.set(eventName, responders.without(responder)); return element; } function fire(element, eventName, memo, bubble) { element = $(element); if (Object.isUndefined(bubble)) bubble = true; if (element == document && document.createEvent && !element.dispatchEvent) element = document.documentElement; var event; if (document.createEvent) { event = document.createEvent('HTMLEvents'); event.initEvent('dataavailable', bubble, true); } else { event = document.createEventObject(); event.eventType = bubble ? 'ondataavailable' : 'onlosecapture'; } event.eventName = eventName; event.memo = memo || { }; if (document.createEvent) element.dispatchEvent(event); else element.fireEvent(event.eventType, event); return Event.extend(event); } Event.Handler = Class.create({ initialize: function(element, eventName, selector, callback) { this.element = $(element); this.eventName = eventName; this.selector = selector; this.callback = callback; this.handler = this.handleEvent.bind(this); }, start: function() { Event.observe(this.element, this.eventName, this.handler); return this; }, stop: function() { Event.stopObserving(this.element, this.eventName, this.handler); return this; }, handleEvent: function(event) { var element = Event.findElement(event, this.selector); if (element) this.callback.call(this.element, event, element); } }); function on(element, eventName, selector, callback) { element = $(element); if (Object.isFunction(selector) && Object.isUndefined(callback)) { callback = selector, selector = null; } return new Event.Handler(element, eventName, selector, callback).start(); } Object.extend(Event, Event.Methods); Object.extend(Event, { fire: fire, observe: observe, stopObserving: stopObserving, on: on }); Element.addMethods({ fire: fire, observe: observe, stopObserving: stopObserving, on: on }); Object.extend(document, { fire: fire.methodize(), observe: observe.methodize(), stopObserving: stopObserving.methodize(), on: on.methodize(), loaded: false }); if (window.Event) Object.extend(window.Event, Event); else window.Event = Event; })(); (function() { /* Support for the DOMContentLoaded event is based on work by Dan Webb, Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */ var timer; function fireContentLoadedEvent() { if (document.loaded) return; if (timer) window.clearTimeout(timer); document.loaded = true; document.fire('dom:loaded'); } function checkReadyState() { if (document.readyState === 'complete') { document.stopObserving('readystatechange', checkReadyState); fireContentLoadedEvent(); } } function pollDoScroll() { try { document.documentElement.doScroll('left'); } catch(e) { timer = pollDoScroll.defer(); return; } fireContentLoadedEvent(); } if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false); } else { document.observe('readystatechange', checkReadyState); if (window == top) timer = pollDoScroll.defer(); } Event.observe(window, 'load', fireContentLoadedEvent); })(); Element.addMethods(); /*------------------------------- DEPRECATED -------------------------------*/ Hash.toQueryString = Object.toQueryString; var Toggle = { display: Element.toggle }; Element.Methods.childOf = Element.Methods.descendantOf; var Insertion = { Before: function(element, content) { return Element.insert(element, {before:content}); }, Top: function(element, content) { return Element.insert(element, {top:content}); }, Bottom: function(element, content) { return Element.insert(element, {bottom:content}); }, After: function(element, content) { return Element.insert(element, {after:content}); } }; var $continue = new Error('"throw $continue" is deprecated, use "return" instead'); var Position = { includeScrollOffsets: false, prepare: function() { this.deltaX = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; this.deltaY = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; }, within: function(element, x, y) { if (this.includeScrollOffsets) return this.withinIncludingScrolloffsets(element, x, y); this.xcomp = x; this.ycomp = y; this.offset = Element.cumulativeOffset(element); return (y >= this.offset[1] && y < this.offset[1] + element.offsetHeight && x >= this.offset[0] && x < this.offset[0] + element.offsetWidth); }, withinIncludingScrolloffsets: function(element, x, y) { var offsetcache = Element.cumulativeScrollOffset(element); this.xcomp = x + offsetcache[0] - this.deltaX; this.ycomp = y + offsetcache[1] - this.deltaY; this.offset = Element.cumulativeOffset(element); return (this.ycomp >= this.offset[1] && this.ycomp < this.offset[1] + element.offsetHeight && this.xcomp >= this.offset[0] && this.xcomp < this.offset[0] + element.offsetWidth); }, overlap: function(mode, element) { if (!mode) return 0; if (mode == 'vertical') return ((this.offset[1] + element.offsetHeight) - this.ycomp) / element.offsetHeight; if (mode == 'horizontal') return ((this.offset[0] + element.offsetWidth) - this.xcomp) / element.offsetWidth; }, cumulativeOffset: Element.Methods.cumulativeOffset, positionedOffset: Element.Methods.positionedOffset, absolutize: function(element) { Position.prepare(); return Element.absolutize(element); }, relativize: function(element) { Position.prepare(); return Element.relativize(element); }, realOffset: Element.Methods.cumulativeScrollOffset, offsetParent: Element.Methods.getOffsetParent, page: Element.Methods.viewportOffset, clone: function(source, target, options) { options = options || { }; return Element.clonePosition(target, source, options); } }; /*--------------------------------------------------------------------------*/ if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ function iter(name) { return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]"; } instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ? function(element, className) { className = className.toString().strip(); var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className); return cond ? document._getElementsByXPath('.//*' + cond, element) : []; } : function(element, className) { className = className.toString().strip(); var elements = [], classNames = (/\s/.test(className) ? $w(className) : null); if (!classNames && !className) return elements; var nodes = $(element).getElementsByTagName('*'); className = ' ' + className + ' '; for (var i = 0, child, cn; child = nodes[i]; i++) { if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) || (classNames && classNames.all(function(name) { return !name.toString().blank() && cn.include(' ' + name + ' '); })))) elements.push(Element.extend(child)); } return elements; }; return function(className, parentElement) { return $(parentElement || document.body).getElementsByClassName(className); }; }(Element.Methods); /*--------------------------------------------------------------------------*/ Element.ClassNames = Class.create(); Element.ClassNames.prototype = { initialize: function(element) { this.element = $(element); }, _each: function(iterator) { this.element.className.split(/\s+/).select(function(name) { return name.length > 0; })._each(iterator); }, set: function(className) { this.element.className = className; }, add: function(classNameToAdd) { if (this.include(classNameToAdd)) return; this.set($A(this).concat(classNameToAdd).join(' ')); }, remove: function(classNameToRemove) { if (!this.include(classNameToRemove)) return; this.set($A(this).without(classNameToRemove).join(' ')); }, toString: function() { return $A(this).join(' '); } }; Object.extend(Element.ClassNames.prototype, Enumerable); /*--------------------------------------------------------------------------*/ (function() { window.Selector = Class.create({ initialize: function(expression) { this.expression = expression.strip(); }, findElements: function(rootElement) { return Prototype.Selector.select(this.expression, rootElement); }, match: function(element) { return Prototype.Selector.match(element, this.expression); }, toString: function() { return this.expression; }, inspect: function() { return "#"; } }); Object.extend(Selector, { matchElements: function(elements, expression) { var match = Prototype.Selector.match, results = []; for (var i = 0, length = elements.length; i < length; i++) { var element = elements[i]; if (match(element, expression)) { results.push(Element.extend(element)); } } return results; }, findElement: function(elements, expression, index) { index = index || 0; var matchIndex = 0, element; for (var i = 0, length = elements.length; i < length; i++) { element = elements[i]; if (Prototype.Selector.match(element, expression) && index === matchIndex++) { return Element.extend(element); } } }, findChildElements: function(element, expressions) { var selector = expressions.toArray().join(', '); return Prototype.Selector.select(selector, element || document); } }); })(); webcit-dfsg.orig/static/roomchat_unload.html0000644000175000017500000000103713223341037021333 0ustar michaelmichael End Chat ugly hack to enable an onUnload event webcit-dfsg.orig/static/controls.js0000644000175000017500000010374313223341037017477 0ustar michaelmichael// script.aculo.us controls.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010 // Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // (c) 2005-2010 Ivan Krstic (http://blogs.law.harvard.edu/ivan) // (c) 2005-2010 Jon Tirsen (http://www.tirsen.com) // Contributors: // Richard Livsey // Rahul Bhargava // Rob Wills // // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ // Autocompleter.Base handles all the autocompletion functionality // that's independent of the data source for autocompletion. This // includes drawing the autocompletion menu, observing keyboard // and mouse events, and similar. // // Specific autocompleters need to provide, at the very least, // a getUpdatedChoices function that will be invoked every time // the text inside the monitored textbox changes. This method // should get the text for which to provide autocompletion by // invoking this.getToken(), NOT by directly accessing // this.element.value. This is to allow incremental tokenized // autocompletion. Specific auto-completion logic (AJAX, etc) // belongs in getUpdatedChoices. // // Tokenized incremental autocompletion is enabled automatically // when an autocompleter is instantiated with the 'tokens' option // in the options parameter, e.g.: // new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); // will incrementally autocomplete with a comma as the token. // Additionally, ',' in the above example can be replaced with // a token array, e.g. { tokens: [',', '\n'] } which // enables autocompletion on multiple tokens. This is most // useful when one of the tokens is \n (a newline), as it // allows smart autocompletion after linebreaks. if(typeof Effect == 'undefined') throw("controls.js requires including script.aculo.us' effects.js library"); var Autocompleter = { }; Autocompleter.Base = Class.create({ baseInitialize: function(element, update, options) { element = $(element); this.element = element; this.update = $(update); this.hasFocus = false; this.changed = false; this.active = false; this.index = 0; this.entryCount = 0; this.oldElementValue = this.element.value; if(this.setOptions) this.setOptions(options); else this.options = options || { }; this.options.paramName = this.options.paramName || this.element.name; this.options.tokens = this.options.tokens || []; this.options.frequency = this.options.frequency || 0.4; this.options.minChars = this.options.minChars || 1; this.options.onShow = this.options.onShow || function(element, update){ if(!update.style.position || update.style.position=='absolute') { update.style.position = 'absolute'; Position.clone(element, update, { setHeight: false, offsetTop: element.offsetHeight }); } Effect.Appear(update,{duration:0.15}); }; this.options.onHide = this.options.onHide || function(element, update){ new Effect.Fade(update,{duration:0.15}) }; if(typeof(this.options.tokens) == 'string') this.options.tokens = new Array(this.options.tokens); // Force carriage returns as token delimiters anyway if (!this.options.tokens.include('\n')) this.options.tokens.push('\n'); this.observer = null; this.element.setAttribute('autocomplete','off'); Element.hide(this.update); Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this)); Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this)); }, show: function() { if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update); if(!this.iefix && (Prototype.Browser.IE) && (Element.getStyle(this.update, 'position')=='absolute')) { new Insertion.After(this.update, ''); this.iefix = $(this.update.id+'_iefix'); } if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); }, fixIEOverlapping: function() { Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); this.iefix.style.zIndex = 1; this.update.style.zIndex = 2; Element.show(this.iefix); }, hide: function() { this.stopIndicator(); if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update); if(this.iefix) Element.hide(this.iefix); }, startIndicator: function() { if(this.options.indicator) Element.show(this.options.indicator); }, stopIndicator: function() { if(this.options.indicator) Element.hide(this.options.indicator); }, onKeyPress: function(event) { if(this.active) switch(event.keyCode) { case Event.KEY_TAB: case Event.KEY_RETURN: this.selectEntry(); Event.stop(event); case Event.KEY_ESC: this.hide(); this.active = false; Event.stop(event); return; case Event.KEY_LEFT: case Event.KEY_RIGHT: return; case Event.KEY_UP: this.markPrevious(); this.render(); Event.stop(event); return; case Event.KEY_DOWN: this.markNext(); this.render(); Event.stop(event); return; } else if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return; this.changed = true; this.hasFocus = true; if(this.observer) clearTimeout(this.observer); this.observer = setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); }, activate: function() { this.changed = false; this.hasFocus = true; this.getUpdatedChoices(); }, onHover: function(event) { var element = Event.findElement(event, 'LI'); if(this.index != element.autocompleteIndex) { this.index = element.autocompleteIndex; this.render(); } Event.stop(event); }, onClick: function(event) { var element = Event.findElement(event, 'LI'); this.index = element.autocompleteIndex; this.selectEntry(); this.hide(); }, onBlur: function(event) { // needed to make click events working setTimeout(this.hide.bind(this), 250); this.hasFocus = false; this.active = false; }, render: function() { if(this.entryCount > 0) { for (var i = 0; i < this.entryCount; i++) this.index==i ? Element.addClassName(this.getEntry(i),"selected") : Element.removeClassName(this.getEntry(i),"selected"); if(this.hasFocus) { this.show(); this.active = true; } } else { this.active = false; this.hide(); } }, markPrevious: function() { if(this.index > 0) this.index--; else this.index = this.entryCount-1; this.getEntry(this.index).scrollIntoView(true); }, markNext: function() { if(this.index < this.entryCount-1) this.index++; else this.index = 0; this.getEntry(this.index).scrollIntoView(false); }, getEntry: function(index) { return this.update.firstChild.childNodes[index]; }, getCurrentEntry: function() { return this.getEntry(this.index); }, selectEntry: function() { this.active = false; this.updateElement(this.getCurrentEntry()); }, updateElement: function(selectedElement) { if (this.options.updateElement) { this.options.updateElement(selectedElement); return; } var value = ''; if (this.options.select) { var nodes = $(selectedElement).select('.' + this.options.select) || []; if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); } else value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); var bounds = this.getTokenBounds(); if (bounds[0] != -1) { var newValue = this.element.value.substr(0, bounds[0]); var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/); if (whitespace) newValue += whitespace[0]; this.element.value = newValue + value + this.element.value.substr(bounds[1]); } else { this.element.value = value; } this.oldElementValue = this.element.value; this.element.focus(); if (this.options.afterUpdateElement) this.options.afterUpdateElement(this.element, selectedElement); }, updateChoices: function(choices) { if(!this.changed && this.hasFocus) { this.update.innerHTML = choices; Element.cleanWhitespace(this.update); Element.cleanWhitespace(this.update.down()); if(this.update.firstChild && this.update.down().childNodes) { this.entryCount = this.update.down().childNodes.length; for (var i = 0; i < this.entryCount; i++) { var entry = this.getEntry(i); entry.autocompleteIndex = i; this.addObservers(entry); } } else { this.entryCount = 0; } this.stopIndicator(); this.index = 0; if(this.entryCount==1 && this.options.autoSelect) { this.selectEntry(); this.hide(); } else { this.render(); } } }, addObservers: function(element) { Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); Event.observe(element, "click", this.onClick.bindAsEventListener(this)); }, onObserverEvent: function() { this.changed = false; this.tokenBounds = null; if(this.getToken().length>=this.options.minChars) { this.getUpdatedChoices(); } else { this.active = false; this.hide(); } this.oldElementValue = this.element.value; }, getToken: function() { var bounds = this.getTokenBounds(); return this.element.value.substring(bounds[0], bounds[1]).strip(); }, getTokenBounds: function() { if (null != this.tokenBounds) return this.tokenBounds; var value = this.element.value; if (value.strip().empty()) return [-1, 0]; var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue); var offset = (diff == this.oldElementValue.length ? 1 : 0); var prevTokenPos = -1, nextTokenPos = value.length; var tp; for (var index = 0, l = this.options.tokens.length; index < l; ++index) { tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1); if (tp > prevTokenPos) prevTokenPos = tp; tp = value.indexOf(this.options.tokens[index], diff + offset); if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp; } return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]); } }); Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) { var boundary = Math.min(newS.length, oldS.length); for (var index = 0; index < boundary; ++index) if (newS[index] != oldS[index]) return index; return boundary; }; Ajax.Autocompleter = Class.create(Autocompleter.Base, { initialize: function(element, update, url, options) { this.baseInitialize(element, update, options); this.options.asynchronous = true; this.options.onComplete = this.onComplete.bind(this); this.options.defaultParams = this.options.parameters || null; this.url = url; }, getUpdatedChoices: function() { this.startIndicator(); var entry = encodeURIComponent(this.options.paramName) + '=' + encodeURIComponent(this.getToken()); this.options.parameters = this.options.callback ? this.options.callback(this.element, entry) : entry; if(this.options.defaultParams) this.options.parameters += '&' + this.options.defaultParams; new Ajax.Request(this.url, this.options); }, onComplete: function(request) { this.updateChoices(request.responseText); } }); // The local array autocompleter. Used when you'd prefer to // inject an array of autocompletion options into the page, rather // than sending out Ajax queries, which can be quite slow sometimes. // // The constructor takes four parameters. The first two are, as usual, // the id of the monitored textbox, and id of the autocompletion menu. // The third is the array you want to autocomplete from, and the fourth // is the options block. // // Extra local autocompletion options: // - choices - How many autocompletion choices to offer // // - partialSearch - If false, the autocompleter will match entered // text only at the beginning of strings in the // autocomplete array. Defaults to true, which will // match text at the beginning of any *word* in the // strings in the autocomplete array. If you want to // search anywhere in the string, additionally set // the option fullSearch to true (default: off). // // - fullSsearch - Search anywhere in autocomplete array strings. // // - partialChars - How many characters to enter before triggering // a partial match (unlike minChars, which defines // how many characters are required to do any match // at all). Defaults to 2. // // - ignoreCase - Whether to ignore case when autocompleting. // Defaults to true. // // It's possible to pass in a custom function as the 'selector' // option, if you prefer to write your own autocompletion logic. // In that case, the other options above will not apply unless // you support them. Autocompleter.Local = Class.create(Autocompleter.Base, { initialize: function(element, update, array, options) { this.baseInitialize(element, update, options); this.options.array = array; }, getUpdatedChoices: function() { this.updateChoices(this.options.selector(this)); }, setOptions: function(options) { this.options = Object.extend({ choices: 10, partialSearch: true, partialChars: 2, ignoreCase: true, fullSearch: false, selector: function(instance) { var ret = []; // Beginning matches var partial = []; // Inside matches var entry = instance.getToken(); var count = 0; for (var i = 0; i < instance.options.array.length && ret.length < instance.options.choices ; i++) { var elem = instance.options.array[i]; var foundPos = instance.options.ignoreCase ? elem.toLowerCase().indexOf(entry.toLowerCase()) : elem.indexOf(entry); while (foundPos != -1) { if (foundPos == 0 && elem.length != entry.length) { ret.push("
  • " + elem.substr(0, entry.length) + "" + elem.substr(entry.length) + "
  • "); break; } else if (entry.length >= instance.options.partialChars && instance.options.partialSearch && foundPos != -1) { if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { partial.push("
  • " + elem.substr(0, foundPos) + "" + elem.substr(foundPos, entry.length) + "" + elem.substr( foundPos + entry.length) + "
  • "); break; } } foundPos = instance.options.ignoreCase ? elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : elem.indexOf(entry, foundPos + 1); } } if (partial.length) ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)); return "
      " + ret.join('') + "
    "; } }, options || { }); } }); // AJAX in-place editor and collection editor // Full rewrite by Christophe Porteneuve (April 2007). // Use this if you notice weird scrolling problems on some browsers, // the DOM might be a bit confused when this gets called so do this // waits 1 ms (with setTimeout) until it does the activation Field.scrollFreeActivate = function(field) { setTimeout(function() { Field.activate(field); }, 1); }; Ajax.InPlaceEditor = Class.create({ initialize: function(element, url, options) { this.url = url; this.element = element = $(element); this.prepareOptions(); this._controls = { }; arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!! Object.extend(this.options, options || { }); if (!this.options.formId && this.element.id) { this.options.formId = this.element.id + '-inplaceeditor'; if ($(this.options.formId)) this.options.formId = ''; } if (this.options.externalControl) this.options.externalControl = $(this.options.externalControl); if (!this.options.externalControl) this.options.externalControlOnly = false; this._originalBackground = this.element.getStyle('background-color') || 'transparent'; this.element.title = this.options.clickToEditText; this._boundCancelHandler = this.handleFormCancellation.bind(this); this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this); this._boundFailureHandler = this.handleAJAXFailure.bind(this); this._boundSubmitHandler = this.handleFormSubmission.bind(this); this._boundWrapperHandler = this.wrapUp.bind(this); this.registerListeners(); }, checkForEscapeOrReturn: function(e) { if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return; if (Event.KEY_ESC == e.keyCode) this.handleFormCancellation(e); else if (Event.KEY_RETURN == e.keyCode) this.handleFormSubmission(e); }, createControl: function(mode, handler, extraClasses) { var control = this.options[mode + 'Control']; var text = this.options[mode + 'Text']; if ('button' == control) { var btn = document.createElement('input'); btn.type = 'submit'; btn.value = text; btn.className = 'editor_' + mode + '_button'; if ('cancel' == mode) btn.onclick = this._boundCancelHandler; this._form.appendChild(btn); this._controls[mode] = btn; } else if ('link' == control) { var link = document.createElement('a'); link.href = '#'; link.appendChild(document.createTextNode(text)); link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler; link.className = 'editor_' + mode + '_link'; if (extraClasses) link.className += ' ' + extraClasses; this._form.appendChild(link); this._controls[mode] = link; } }, createEditField: function() { var text = (this.options.loadTextURL ? this.options.loadingText : this.getText()); var fld; if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) { fld = document.createElement('input'); fld.type = 'text'; var size = this.options.size || this.options.cols || 0; if (0 < size) fld.size = size; } else { fld = document.createElement('textarea'); fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows); fld.cols = this.options.cols || 40; } fld.name = this.options.paramName; fld.value = text; // No HTML breaks conversion anymore fld.className = 'editor_field'; if (this.options.submitOnBlur) fld.onblur = this._boundSubmitHandler; this._controls.editor = fld; if (this.options.loadTextURL) this.loadExternalText(); this._form.appendChild(this._controls.editor); }, createForm: function() { var ipe = this; function addText(mode, condition) { var text = ipe.options['text' + mode + 'Controls']; if (!text || condition === false) return; ipe._form.appendChild(document.createTextNode(text)); }; this._form = $(document.createElement('form')); this._form.id = this.options.formId; this._form.addClassName(this.options.formClassName); this._form.onsubmit = this._boundSubmitHandler; this.createEditField(); if ('textarea' == this._controls.editor.tagName.toLowerCase()) this._form.appendChild(document.createElement('br')); if (this.options.onFormCustomization) this.options.onFormCustomization(this, this._form); addText('Before', this.options.okControl || this.options.cancelControl); this.createControl('ok', this._boundSubmitHandler); addText('Between', this.options.okControl && this.options.cancelControl); this.createControl('cancel', this._boundCancelHandler, 'editor_cancel'); addText('After', this.options.okControl || this.options.cancelControl); }, destroy: function() { if (this._oldInnerHTML) this.element.innerHTML = this._oldInnerHTML; this.leaveEditMode(); this.unregisterListeners(); }, enterEditMode: function(e) { if (this._saving || this._editing) return; this._editing = true; this.triggerCallback('onEnterEditMode'); if (this.options.externalControl) this.options.externalControl.hide(); this.element.hide(); this.createForm(); this.element.parentNode.insertBefore(this._form, this.element); if (!this.options.loadTextURL) this.postProcessEditField(); if (e) Event.stop(e); }, enterHover: function(e) { if (this.options.hoverClassName) this.element.addClassName(this.options.hoverClassName); if (this._saving) return; this.triggerCallback('onEnterHover'); }, getText: function() { return this.element.innerHTML.unescapeHTML(); }, handleAJAXFailure: function(transport) { this.triggerCallback('onFailure', transport); if (this._oldInnerHTML) { this.element.innerHTML = this._oldInnerHTML; this._oldInnerHTML = null; } }, handleFormCancellation: function(e) { this.wrapUp(); if (e) Event.stop(e); }, handleFormSubmission: function(e) { var form = this._form; var value = $F(this._controls.editor); this.prepareSubmission(); var params = this.options.callback(form, value) || ''; if (Object.isString(params)) params = params.toQueryParams(); params.editorId = this.element.id; if (this.options.htmlResponse) { var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions); Object.extend(options, { parameters: params, onComplete: this._boundWrapperHandler, onFailure: this._boundFailureHandler }); new Ajax.Updater({ success: this.element }, this.url, options); } else { var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); Object.extend(options, { parameters: params, onComplete: this._boundWrapperHandler, onFailure: this._boundFailureHandler }); new Ajax.Request(this.url, options); } if (e) Event.stop(e); }, leaveEditMode: function() { this.element.removeClassName(this.options.savingClassName); this.removeForm(); this.leaveHover(); this.element.style.backgroundColor = this._originalBackground; this.element.show(); if (this.options.externalControl) this.options.externalControl.show(); this._saving = false; this._editing = false; this._oldInnerHTML = null; this.triggerCallback('onLeaveEditMode'); }, leaveHover: function(e) { if (this.options.hoverClassName) this.element.removeClassName(this.options.hoverClassName); if (this._saving) return; this.triggerCallback('onLeaveHover'); }, loadExternalText: function() { this._form.addClassName(this.options.loadingClassName); this._controls.editor.disabled = true; var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); Object.extend(options, { parameters: 'editorId=' + encodeURIComponent(this.element.id), onComplete: Prototype.emptyFunction, onSuccess: function(transport) { this._form.removeClassName(this.options.loadingClassName); var text = transport.responseText; if (this.options.stripLoadedTextTags) text = text.stripTags(); this._controls.editor.value = text; this._controls.editor.disabled = false; this.postProcessEditField(); }.bind(this), onFailure: this._boundFailureHandler }); new Ajax.Request(this.options.loadTextURL, options); }, postProcessEditField: function() { var fpc = this.options.fieldPostCreation; if (fpc) $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate'](); }, prepareOptions: function() { this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions); Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks); [this._extraDefaultOptions].flatten().compact().each(function(defs) { Object.extend(this.options, defs); }.bind(this)); }, prepareSubmission: function() { this._saving = true; this.removeForm(); this.leaveHover(); this.showSaving(); }, registerListeners: function() { this._listeners = { }; var listener; $H(Ajax.InPlaceEditor.Listeners).each(function(pair) { listener = this[pair.value].bind(this); this._listeners[pair.key] = listener; if (!this.options.externalControlOnly) this.element.observe(pair.key, listener); if (this.options.externalControl) this.options.externalControl.observe(pair.key, listener); }.bind(this)); }, removeForm: function() { if (!this._form) return; this._form.remove(); this._form = null; this._controls = { }; }, showSaving: function() { this._oldInnerHTML = this.element.innerHTML; this.element.innerHTML = this.options.savingText; this.element.addClassName(this.options.savingClassName); this.element.style.backgroundColor = this._originalBackground; this.element.show(); }, triggerCallback: function(cbName, arg) { if ('function' == typeof this.options[cbName]) { this.options[cbName](this, arg); } }, unregisterListeners: function() { $H(this._listeners).each(function(pair) { if (!this.options.externalControlOnly) this.element.stopObserving(pair.key, pair.value); if (this.options.externalControl) this.options.externalControl.stopObserving(pair.key, pair.value); }.bind(this)); }, wrapUp: function(transport) { this.leaveEditMode(); // Can't use triggerCallback due to backward compatibility: requires // binding + direct element this._boundComplete(transport, this.element); } }); Object.extend(Ajax.InPlaceEditor.prototype, { dispose: Ajax.InPlaceEditor.prototype.destroy }); Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, { initialize: function($super, element, url, options) { this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions; $super(element, url, options); }, createEditField: function() { var list = document.createElement('select'); list.name = this.options.paramName; list.size = 1; this._controls.editor = list; this._collection = this.options.collection || []; if (this.options.loadCollectionURL) this.loadCollection(); else this.checkForExternalText(); this._form.appendChild(this._controls.editor); }, loadCollection: function() { this._form.addClassName(this.options.loadingClassName); this.showLoadingText(this.options.loadingCollectionText); var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); Object.extend(options, { parameters: 'editorId=' + encodeURIComponent(this.element.id), onComplete: Prototype.emptyFunction, onSuccess: function(transport) { var js = transport.responseText.strip(); if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check throw('Server returned an invalid collection representation.'); this._collection = eval(js); this.checkForExternalText(); }.bind(this), onFailure: this.onFailure }); new Ajax.Request(this.options.loadCollectionURL, options); }, showLoadingText: function(text) { this._controls.editor.disabled = true; var tempOption = this._controls.editor.firstChild; if (!tempOption) { tempOption = document.createElement('option'); tempOption.value = ''; this._controls.editor.appendChild(tempOption); tempOption.selected = true; } tempOption.update((text || '').stripScripts().stripTags()); }, checkForExternalText: function() { this._text = this.getText(); if (this.options.loadTextURL) this.loadExternalText(); else this.buildOptionList(); }, loadExternalText: function() { this.showLoadingText(this.options.loadingText); var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); Object.extend(options, { parameters: 'editorId=' + encodeURIComponent(this.element.id), onComplete: Prototype.emptyFunction, onSuccess: function(transport) { this._text = transport.responseText.strip(); this.buildOptionList(); }.bind(this), onFailure: this.onFailure }); new Ajax.Request(this.options.loadTextURL, options); }, buildOptionList: function() { this._form.removeClassName(this.options.loadingClassName); this._collection = this._collection.map(function(entry) { return 2 === entry.length ? entry : [entry, entry].flatten(); }); var marker = ('value' in this.options) ? this.options.value : this._text; var textFound = this._collection.any(function(entry) { return entry[0] == marker; }.bind(this)); this._controls.editor.update(''); var option; this._collection.each(function(entry, index) { option = document.createElement('option'); option.value = entry[0]; option.selected = textFound ? entry[0] == marker : 0 == index; option.appendChild(document.createTextNode(entry[1])); this._controls.editor.appendChild(option); }.bind(this)); this._controls.editor.disabled = false; Field.scrollFreeActivate(this._controls.editor); } }); //**** DEPRECATION LAYER FOR InPlace[Collection]Editor! **** //**** This only exists for a while, in order to let **** //**** users adapt to the new API. Read up on the new **** //**** API and convert your code to it ASAP! **** Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) { if (!options) return; function fallback(name, expr) { if (name in options || expr === undefined) return; options[name] = expr; }; fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' : options.cancelLink == options.cancelButton == false ? false : undefined))); fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' : options.okLink == options.okButton == false ? false : undefined))); fallback('highlightColor', options.highlightcolor); fallback('highlightEndColor', options.highlightendcolor); }; Object.extend(Ajax.InPlaceEditor, { DefaultOptions: { ajaxOptions: { }, autoRows: 3, // Use when multi-line w/ rows == 1 cancelControl: 'link', // 'link'|'button'|false cancelText: 'cancel', clickToEditText: 'Click to edit', externalControl: null, // id|elt externalControlOnly: false, fieldPostCreation: 'activate', // 'activate'|'focus'|false formClassName: 'inplaceeditor-form', formId: null, // id|elt highlightColor: '#ffff99', highlightEndColor: '#ffffff', hoverClassName: '', htmlResponse: true, loadingClassName: 'inplaceeditor-loading', loadingText: 'Loading...', okControl: 'button', // 'link'|'button'|false okText: 'ok', paramName: 'value', rows: 1, // If 1 and multi-line, uses autoRows savingClassName: 'inplaceeditor-saving', savingText: 'Saving...', size: 0, stripLoadedTextTags: false, submitOnBlur: false, textAfterControls: '', textBeforeControls: '', textBetweenControls: '' }, DefaultCallbacks: { callback: function(form) { return Form.serialize(form); }, onComplete: function(transport, element) { // For backward compatibility, this one is bound to the IPE, and passes // the element directly. It was too often customized, so we don't break it. new Effect.Highlight(element, { startcolor: this.options.highlightColor, keepBackgroundImage: true }); }, onEnterEditMode: null, onEnterHover: function(ipe) { ipe.element.style.backgroundColor = ipe.options.highlightColor; if (ipe._effect) ipe._effect.cancel(); }, onFailure: function(transport, ipe) { alert('Error communication with the server: ' + transport.responseText.stripTags()); }, onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls. onLeaveEditMode: null, onLeaveHover: function(ipe) { ipe._effect = new Effect.Highlight(ipe.element, { startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor, restorecolor: ipe._originalBackground, keepBackgroundImage: true }); } }, Listeners: { click: 'enterEditMode', keydown: 'checkForEscapeOrReturn', mouseover: 'enterHover', mouseout: 'leaveHover' } }); Ajax.InPlaceCollectionEditor.DefaultOptions = { loadingCollectionText: 'Loading options...' }; // Delayed observer, like Form.Element.Observer, // but waits for delay after last key input // Ideal for live-search fields Form.Element.DelayedObserver = Class.create({ initialize: function(element, delay, callback) { this.delay = delay || 0.5; this.element = $(element); this.callback = callback; this.timer = null; this.lastValue = $F(this.element); Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); }, delayedListener: function(event) { if(this.lastValue == $F(this.element)) return; if(this.timer) clearTimeout(this.timer); this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); this.lastValue = $F(this.element); }, onTimerEvent: function() { this.timer = null; this.callback(this.element, $F(this.element)); } });webcit-dfsg.orig/static/modal.js0000644000175000017500000000375413223341037016731 0ustar michaelmichaelvar focusedElement = null; var modal = document.getElementById('modal'); var dialog = document.getElementById('dialog'); var body = document.getElementById('global'); var html = document.documentElement; var modalShowing = (html.className === 'modal'); // Have to hack for Safari, due to poor support for the focus() function. try { var isSafari = window.navigator.vendor.match(/Apple/); } catch (ex) { isSafari = false; } if ( isSafari ) { var dialogFocuser = document.createElement('a'); dialogFocuser.href="#"; dialogFocuser.style.display='block'; dialogFocuser.style.height='0'; dialogFocuser.style.width='0'; dialogFocuser.style.position = 'absolute'; dialog.insertBefore(dialogFocuser, dialog.firstChild); } else { dialogFocuser = dialog; } window.onunload = function () { dialogFocuser = focusedElement = modal = dialog = body = html = null; }; var onfocus = function (e) { e = e || window.event; var el = e.target || e.srcElement; // save the last focused element when the modal is hidden. if ( !modalShowing ) { focusedElement = el; return; } // if we're focusing the dialog, then just clear the blurring flag. // else, focus the dialog and prevent the other event. var p = el.parentNode; while ( p && p.parentNode && p !== dialog ) { p=p.parentNode; } if ( p !== dialog ) { dialogFocuser.focus(); } }; var onblur = function () { if ( !modalShowing ) { focusedElement = body; } }; html.onfocus = html.onfocusin = onfocus; html.onblur = html.onfocusout = onblur; if ( isSafari ) { html.addEventListener('DOMFocusIn',onfocus); html.addEventListener('DOMFocusOut',onblur); } // focus and blur events are tricky to bubble. // need to do some special stuff to handle MSIE. function toggleModal (b) { if (modalShowing && b) return; if (!modalShowing && !b) return; html.className=modalShowing?'':'modal'; modalShowing = !modalShowing; if (modalShowing) { dialog.focus(); } else if (focusedElement) { try { focusedElement.focus(); } catch(ex) {} } }; webcit-dfsg.orig/static/fineuploader.js0000755000175000017500000106241213223341037020312 0ustar michaelmichael/*! * Fine Uploader * * Copyright 2013, Widen Enterprises, Inc. info@fineuploader.com * * Version: 4.2.1 * * Homepage: http://fineuploader.com * * Repository: git://github.com/Widen/fine-uploader.git * * Licensed under GNU GPL v3, see LICENSE */ /*globals window, navigator, document, FormData, File, HTMLInputElement, XMLHttpRequest, Blob, Storage, ActiveXObject */ var qq = function(element) { "use strict"; return { hide: function() { element.style.display = "none"; return this; }, /** Returns the function which detaches attached event */ attach: function(type, fn) { if (element.addEventListener){ element.addEventListener(type, fn, false); } else if (element.attachEvent){ element.attachEvent("on" + type, fn); } return function() { qq(element).detach(type, fn); }; }, detach: function(type, fn) { if (element.removeEventListener){ element.removeEventListener(type, fn, false); } else if (element.attachEvent){ element.detachEvent("on" + type, fn); } return this; }, contains: function(descendant) { // The [W3C spec](http://www.w3.org/TR/domcore/#dom-node-contains) // says a `null` (or ostensibly `undefined`) parameter // passed into `Node.contains` should result in a false return value. // IE7 throws an exception if the parameter is `undefined` though. if (!descendant) { return false; } // compareposition returns false in this case if (element === descendant) { return true; } if (element.contains){ return element.contains(descendant); } else { /*jslint bitwise: true*/ return !!(descendant.compareDocumentPosition(element) & 8); } }, /** * Insert this element before elementB. */ insertBefore: function(elementB) { elementB.parentNode.insertBefore(element, elementB); return this; }, remove: function() { element.parentNode.removeChild(element); return this; }, /** * Sets styles for an element. * Fixes opacity in IE6-8. */ css: function(styles) { /*jshint eqnull: true*/ if (element.style == null) { throw new qq.Error("Can't apply style to node as it is not on the HTMLElement prototype chain!"); } /*jshint -W116*/ if (styles.opacity != null){ if (typeof element.style.opacity !== "string" && typeof(element.filters) !== "undefined"){ styles.filter = "alpha(opacity=" + Math.round(100 * styles.opacity) + ")"; } } qq.extend(element.style, styles); return this; }, hasClass: function(name) { var re = new RegExp("(^| )" + name + "( |$)"); return re.test(element.className); }, addClass: function(name) { if (!qq(element).hasClass(name)){ element.className += " " + name; } return this; }, removeClass: function(name) { var re = new RegExp("(^| )" + name + "( |$)"); element.className = element.className.replace(re, " ").replace(/^\s+|\s+$/g, ""); return this; }, getByClass: function(className) { var candidates, result = []; if (element.querySelectorAll){ return element.querySelectorAll("." + className); } candidates = element.getElementsByTagName("*"); qq.each(candidates, function(idx, val) { if (qq(val).hasClass(className)){ result.push(val); } }); return result; }, children: function() { var children = [], child = element.firstChild; while (child){ if (child.nodeType === 1){ children.push(child); } child = child.nextSibling; } return children; }, setText: function(text) { element.innerText = text; element.textContent = text; return this; }, clearText: function() { return qq(element).setText(""); }, // Returns true if the attribute exists on the element // AND the value of the attribute is NOT "false" (case-insensitive) hasAttribute: function(attrName) { var attrVal; if (element.hasAttribute) { if (!element.hasAttribute(attrName)) { return false; } /*jshint -W116*/ return (/^false$/i).exec(element.getAttribute(attrName)) == null; } else { attrVal = element[attrName]; if (attrVal === undefined) { return false; } /*jshint -W116*/ return (/^false$/i).exec(attrVal) == null; } } }; }; (function(){ "use strict"; qq.log = function(message, level) { if (window.console) { if (!level || level === "info") { window.console.log(message); } else { if (window.console[level]) { window.console[level](message); } else { window.console.log("<" + level + "> " + message); } } } }; qq.isObject = function(variable) { return variable && !variable.nodeType && Object.prototype.toString.call(variable) === "[object Object]"; }; qq.isFunction = function(variable) { return typeof(variable) === "function"; }; /** * Check the type of a value. Is it an "array"? * * @param value value to test. * @returns true if the value is an array or associated with an `ArrayBuffer` */ qq.isArray = function(value) { return Object.prototype.toString.call(value) === "[object Array]" || (value && window.ArrayBuffer && value.buffer && value.buffer.constructor === ArrayBuffer); }; // Looks for an object on a `DataTransfer` object that is associated with drop events when utilizing the Filesystem API. qq.isItemList = function(maybeItemList) { return Object.prototype.toString.call(maybeItemList) === "[object DataTransferItemList]"; }; // Looks for an object on a `NodeList` or an `HTMLCollection`|`HTMLFormElement`|`HTMLSelectElement` // object that is associated with collections of Nodes. qq.isNodeList = function(maybeNodeList) { return Object.prototype.toString.call(maybeNodeList) === "[object NodeList]" || // If `HTMLCollection` is the actual type of the object, we must determine this // by checking for expected properties/methods on the object (maybeNodeList.item && maybeNodeList.namedItem); }; qq.isString = function(maybeString) { return Object.prototype.toString.call(maybeString) === "[object String]"; }; qq.trimStr = function(string) { if (String.prototype.trim) { return string.trim(); } return string.replace(/^\s+|\s+$/g,""); }; /** * @param str String to format. * @returns {string} A string, swapping argument values with the associated occurrence of {} in the passed string. */ qq.format = function(str) { var args = Array.prototype.slice.call(arguments, 1), newStr = str, nextIdxToReplace = newStr.indexOf("{}"); qq.each(args, function(idx, val) { var strBefore = newStr.substring(0, nextIdxToReplace), strAfter = newStr.substring(nextIdxToReplace+2); newStr = strBefore + val + strAfter; nextIdxToReplace = newStr.indexOf("{}", nextIdxToReplace + val.length); // End the loop if we have run out of tokens (when the arguments exceed the # of tokens) if (nextIdxToReplace < 0) { return false; } }); return newStr; }; qq.isFile = function(maybeFile) { return window.File && Object.prototype.toString.call(maybeFile) === "[object File]"; }; qq.isFileList = function(maybeFileList) { return window.FileList && Object.prototype.toString.call(maybeFileList) === "[object FileList]"; }; qq.isFileOrInput = function(maybeFileOrInput) { return qq.isFile(maybeFileOrInput) || qq.isInput(maybeFileOrInput); }; qq.isInput = function(maybeInput) { if (window.HTMLInputElement) { if (Object.prototype.toString.call(maybeInput) === "[object HTMLInputElement]") { if (maybeInput.type && maybeInput.type.toLowerCase() === "file") { return true; } } } if (maybeInput.tagName) { if (maybeInput.tagName.toLowerCase() === "input") { if (maybeInput.type && maybeInput.type.toLowerCase() === "file") { return true; } } } return false; }; qq.isBlob = function(maybeBlob) { return window.Blob && Object.prototype.toString.call(maybeBlob) === "[object Blob]"; }; qq.isXhrUploadSupported = function() { var input = document.createElement("input"); input.type = "file"; return ( input.multiple !== undefined && typeof File !== "undefined" && typeof FormData !== "undefined" && typeof (qq.createXhrInstance()).upload !== "undefined" ); }; // Fall back to ActiveX is native XHR is disabled (possible in any version of IE). qq.createXhrInstance = function() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } try { return new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch(error) { qq.log("Neither XHR or ActiveX are supported!", "error"); return null; } }; qq.isFolderDropSupported = function(dataTransfer) { return (dataTransfer.items && dataTransfer.items[0].webkitGetAsEntry); }; qq.isFileChunkingSupported = function() { return !qq.android() && //android's impl of Blob.slice is broken qq.isXhrUploadSupported() && (File.prototype.slice !== undefined || File.prototype.webkitSlice !== undefined || File.prototype.mozSlice !== undefined); }; qq.sliceBlob = function(fileOrBlob, start, end) { var slicer = fileOrBlob.slice || fileOrBlob.mozSlice || fileOrBlob.webkitSlice; return slicer.call(fileOrBlob, start, end); }; qq.arrayBufferToHex = function(buffer) { var bytesAsHex = "", bytes = new Uint8Array(buffer); qq.each(bytes, function(idx, byte) { var byteAsHexStr = byte.toString(16); if (byteAsHexStr.length < 2) { byteAsHexStr = "0" + byteAsHexStr; } bytesAsHex += byteAsHexStr; }); return bytesAsHex; }; qq.readBlobToHex = function(blob, startOffset, length) { var initialBlob = qq.sliceBlob(blob, startOffset, startOffset + length), fileReader = new FileReader(), promise = new qq.Promise(); fileReader.onload = function() { promise.success(qq.arrayBufferToHex(fileReader.result)); }; fileReader.readAsArrayBuffer(initialBlob); return promise; }; qq.extend = function(first, second, extendNested) { qq.each(second, function(prop, val) { if (extendNested && qq.isObject(val)) { if (first[prop] === undefined) { first[prop] = {}; } qq.extend(first[prop], val, true); } else { first[prop] = val; } }); return first; }; /** * Allow properties in one object to override properties in another, * keeping track of the original values from the target object. * * Note that the pre-overriden properties to be overriden by the source will be passed into the `sourceFn` when it is invoked. * * @param target Update properties in this object from some source * @param sourceFn A function that, when invoked, will return properties that will replace properties with the same name in the target. * @returns {object} The target object */ qq.override = function(target, sourceFn) { var super_ = {}, source = sourceFn(super_); qq.each(source, function(srcPropName, srcPropVal) { if (target[srcPropName] !== undefined) { super_[srcPropName] = target[srcPropName]; } target[srcPropName] = srcPropVal; }); return target; }; /** * Searches for a given element in the array, returns -1 if it is not present. * @param {Number} [from] The index at which to begin the search */ qq.indexOf = function(arr, elt, from){ if (arr.indexOf) { return arr.indexOf(elt, from); } from = from || 0; var len = arr.length; if (from < 0) { from += len; } for (; from < len; from+=1){ if (arr.hasOwnProperty(from) && arr[from] === elt){ return from; } } return -1; }; //this is a version 4 UUID qq.getUniqueId = function(){ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { /*jslint eqeq: true, bitwise: true*/ var r = Math.random()*16|0, v = c == "x" ? r : (r&0x3|0x8); return v.toString(16); }); }; // // Browsers and platforms detection qq.ie = function(){ return navigator.userAgent.indexOf("MSIE") !== -1; }; qq.ie7 = function(){ return navigator.userAgent.indexOf("MSIE 7") !== -1; }; qq.ie10 = function(){ return navigator.userAgent.indexOf("MSIE 10") !== -1; }; qq.ie11 = function(){ return (navigator.userAgent.indexOf("Trident") !== -1 && navigator.userAgent.indexOf("rv:11") !== -1); }; qq.safari = function(){ return navigator.vendor !== undefined && navigator.vendor.indexOf("Apple") !== -1; }; qq.chrome = function(){ return navigator.vendor !== undefined && navigator.vendor.indexOf("Google") !== -1; }; qq.opera = function(){ return navigator.vendor !== undefined && navigator.vendor.indexOf("Opera") !== -1; }; qq.firefox = function(){ return (!qq.ie11() && navigator.userAgent.indexOf("Mozilla") !== -1 && navigator.vendor !== undefined && navigator.vendor === ""); }; qq.windows = function(){ return navigator.platform === "Win32"; }; qq.android = function(){ return navigator.userAgent.toLowerCase().indexOf("android") !== -1; }; qq.ios7 = function() { return qq.ios() && navigator.userAgent.indexOf(" OS 7_") !== -1; }; qq.ios = function() { /*jshint -W014 */ return navigator.userAgent.indexOf("iPad") !== -1 || navigator.userAgent.indexOf("iPod") !== -1 || navigator.userAgent.indexOf("iPhone") !== -1; }; // // Events qq.preventDefault = function(e){ if (e.preventDefault){ e.preventDefault(); } else{ e.returnValue = false; } }; /** * Creates and returns element from html string * Uses innerHTML to create an element */ qq.toElement = (function(){ var div = document.createElement("div"); return function(html){ div.innerHTML = html; var element = div.firstChild; div.removeChild(element); return element; }; }()); //key and value are passed to callback for each entry in the iterable item qq.each = function(iterableItem, callback) { var keyOrIndex, retVal; if (iterableItem) { // Iterate through [`Storage`](http://www.w3.org/TR/webstorage/#the-storage-interface) items if (window.Storage && iterableItem.constructor === window.Storage) { for (keyOrIndex = 0; keyOrIndex < iterableItem.length; keyOrIndex++) { retVal = callback(iterableItem.key(keyOrIndex), iterableItem.getItem(iterableItem.key(keyOrIndex))); if (retVal === false) { break; } } } // `DataTransferItemList` & `NodeList` objects are array-like and should be treated as arrays // when iterating over items inside the object. else if (qq.isArray(iterableItem) || qq.isItemList(iterableItem) || qq.isNodeList(iterableItem)) { for (keyOrIndex = 0; keyOrIndex < iterableItem.length; keyOrIndex++) { retVal = callback(keyOrIndex, iterableItem[keyOrIndex]); if (retVal === false) { break; } } } else if (qq.isString(iterableItem)) { for (keyOrIndex = 0; keyOrIndex < iterableItem.length; keyOrIndex++) { retVal = callback(keyOrIndex, iterableItem.charAt(keyOrIndex)); if (retVal === false) { break; } } } else { for (keyOrIndex in iterableItem) { if (Object.prototype.hasOwnProperty.call(iterableItem, keyOrIndex)) { retVal = callback(keyOrIndex, iterableItem[keyOrIndex]); if (retVal === false) { break; } } } } } }; //include any args that should be passed to the new function after the context arg qq.bind = function(oldFunc, context) { if (qq.isFunction(oldFunc)) { var args = Array.prototype.slice.call(arguments, 2); return function() { var newArgs = qq.extend([], args); if (arguments.length) { newArgs = newArgs.concat(Array.prototype.slice.call(arguments)); } return oldFunc.apply(context, newArgs); }; } throw new Error("first parameter must be a function!"); }; /** * obj2url() takes a json-object as argument and generates * a querystring. pretty much like jQuery.param() * * how to use: * * `qq.obj2url({a:'b',c:'d'},'http://any.url/upload?otherParam=value');` * * will result in: * * `http://any.url/upload?otherParam=value&a=b&c=d` * * @param Object JSON-Object * @param String current querystring-part * @return String encoded querystring */ qq.obj2url = function(obj, temp, prefixDone){ /*jshint laxbreak: true*/ var uristrings = [], prefix = "&", add = function(nextObj, i){ var nextTemp = temp ? (/\[\]$/.test(temp)) // prevent double-encoding ? temp : temp+"["+i+"]" : i; if ((nextTemp !== "undefined") && (i !== "undefined")) { uristrings.push( (typeof nextObj === "object") ? qq.obj2url(nextObj, nextTemp, true) : (Object.prototype.toString.call(nextObj) === "[object Function]") ? encodeURIComponent(nextTemp) + "=" + encodeURIComponent(nextObj()) : encodeURIComponent(nextTemp) + "=" + encodeURIComponent(nextObj) ); } }; if (!prefixDone && temp) { prefix = (/\?/.test(temp)) ? (/\?$/.test(temp)) ? "" : "&" : "?"; uristrings.push(temp); uristrings.push(qq.obj2url(obj)); } else if ((Object.prototype.toString.call(obj) === "[object Array]") && (typeof obj !== "undefined") ) { qq.each(obj, function(idx, val) { add(val, idx); }); } else if ((typeof obj !== "undefined") && (obj !== null) && (typeof obj === "object")){ qq.each(obj, function(prop, val) { add(val, prop); }); } else { uristrings.push(encodeURIComponent(temp) + "=" + encodeURIComponent(obj)); } if (temp) { return uristrings.join(prefix); } else { return uristrings.join(prefix) .replace(/^&/, "") .replace(/%20/g, "+"); } }; qq.obj2FormData = function(obj, formData, arrayKeyName) { if (!formData) { formData = new FormData(); } qq.each(obj, function(key, val) { key = arrayKeyName ? arrayKeyName + "[" + key + "]" : key; if (qq.isObject(val)) { qq.obj2FormData(val, formData, key); } else if (qq.isFunction(val)) { formData.append(key, val()); } else { formData.append(key, val); } }); return formData; }; qq.obj2Inputs = function(obj, form) { var input; if (!form) { form = document.createElement("form"); } qq.obj2FormData(obj, { append: function(key, val) { input = document.createElement("input"); input.setAttribute("name", key); input.setAttribute("value", val); form.appendChild(input); } }); return form; }; qq.setCookie = function(name, value, days) { var date = new Date(), expires = ""; if (days) { date.setTime(date.getTime()+(days*24*60*60*1000)); expires = "; expires="+date.toGMTString(); } document.cookie = name+"="+value+expires+"; path=/"; }; qq.getCookie = function(name) { var nameEQ = name + "=", ca = document.cookie.split(";"), cookie; qq.each(ca, function(idx, part) { /*jshint -W116 */ var cookiePart = part; while (cookiePart.charAt(0) == " ") { cookiePart = cookiePart.substring(1, cookiePart.length); } if (cookiePart.indexOf(nameEQ) === 0) { cookie = cookiePart.substring(nameEQ.length, cookiePart.length); return false; } }); return cookie; }; qq.getCookieNames = function(regexp) { var cookies = document.cookie.split(";"), cookieNames = []; qq.each(cookies, function(idx, cookie) { cookie = qq.trimStr(cookie); var equalsIdx = cookie.indexOf("="); if (cookie.match(regexp)) { cookieNames.push(cookie.substr(0, equalsIdx)); } }); return cookieNames; }; qq.deleteCookie = function(name) { qq.setCookie(name, "", -1); }; qq.areCookiesEnabled = function() { var randNum = Math.random() * 100000, name = "qqCookieTest:" + randNum; qq.setCookie(name, 1); if (qq.getCookie(name)) { qq.deleteCookie(name); return true; } return false; }; /** * Not recommended for use outside of Fine Uploader since this falls back to an unchecked eval if JSON.parse is not * implemented. For a more secure JSON.parse polyfill, use Douglas Crockford's json2.js. */ qq.parseJson = function(json) { /*jshint evil: true*/ if (window.JSON && qq.isFunction(JSON.parse)) { return JSON.parse(json); } else { return eval("(" + json + ")"); } }; /** * Retrieve the extension of a file, if it exists. * * @param filename * @returns {string || undefined} */ qq.getExtension = function(filename) { var extIdx = filename.lastIndexOf(".") + 1; if (extIdx > 0) { return filename.substr(extIdx, filename.length - extIdx); } }; qq.getFilename = function(blobOrFileInput) { /*jslint regexp: true*/ if (qq.isInput(blobOrFileInput)) { // get input value and remove path to normalize return blobOrFileInput.value.replace(/.*(\/|\\)/, ""); } else if (qq.isFile(blobOrFileInput)) { if (blobOrFileInput.fileName !== null && blobOrFileInput.fileName !== undefined) { return blobOrFileInput.fileName; } } return blobOrFileInput.name; }; /** * A generic module which supports object disposing in dispose() method. * */ qq.DisposeSupport = function() { var disposers = []; return { /** Run all registered disposers */ dispose: function() { var disposer; do { disposer = disposers.shift(); if (disposer) { disposer(); } } while (disposer); }, /** Attach event handler and register de-attacher as a disposer */ attach: function() { var args = arguments; /*jslint undef:true*/ this.addDisposer(qq(args[0]).attach.apply(this, Array.prototype.slice.call(arguments, 1))); }, /** Add disposer to the collection */ addDisposer: function(disposeFunction) { disposers.push(disposeFunction); } }; }; }()); /* globals qq */ /** * Fine Uploader top-level Error container. Inherits from `Error`. */ (function() { "use strict"; qq.Error = function(message) { this.message = message; }; qq.Error.prototype = new Error(); }()); /*global qq */ qq.version="4.2.1"; /* globals qq */ qq.supportedFeatures = (function () { "use strict"; var supportsUploading, supportsAjaxFileUploading, supportsFolderDrop, supportsChunking, supportsResume, supportsUploadViaPaste, supportsUploadCors, supportsDeleteFileXdr, supportsDeleteFileCorsXhr, supportsDeleteFileCors, supportsFolderSelection, supportsImagePreviews; function testSupportsFileInputElement() { var supported = true, tempInput; try { tempInput = document.createElement("input"); tempInput.type = "file"; qq(tempInput).hide(); if (tempInput.disabled) { supported = false; } } catch (ex) { supported = false; } return supported; } //only way to test for Filesystem API support since webkit does not expose the DataTransfer interface function isChrome21OrHigher() { return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\/[2][1-9]|Chrome\/[3-9][0-9]/) !== undefined; } //only way to test for complete Clipboard API support at this time function isChrome14OrHigher() { return (qq.chrome() || qq.opera()) && navigator.userAgent.match(/Chrome\/[1][4-9]|Chrome\/[2-9][0-9]/) !== undefined; } //Ensure we can send cross-origin `XMLHttpRequest`s function isCrossOriginXhrSupported() { if (window.XMLHttpRequest) { var xhr = qq.createXhrInstance(); //Commonly accepted test for XHR CORS support. return xhr.withCredentials !== undefined; } return false; } //Test for (terrible) cross-origin ajax transport fallback for IE9 and IE8 function isXdrSupported() { return window.XDomainRequest !== undefined; } // CORS Ajax requests are supported if it is either possible to send credentialed `XMLHttpRequest`s, // or if `XDomainRequest` is an available alternative. function isCrossOriginAjaxSupported() { if (isCrossOriginXhrSupported()) { return true; } return isXdrSupported(); } function isFolderSelectionSupported() { // We know that folder selection is only supported in Chrome via this proprietary attribute for now return document.createElement("input").webkitdirectory !== undefined; } supportsUploading = testSupportsFileInputElement(); supportsAjaxFileUploading = supportsUploading && qq.isXhrUploadSupported(); supportsFolderDrop = supportsAjaxFileUploading && isChrome21OrHigher(); supportsChunking = supportsAjaxFileUploading && qq.isFileChunkingSupported(); supportsResume = supportsAjaxFileUploading && supportsChunking && qq.areCookiesEnabled(); supportsUploadViaPaste = supportsAjaxFileUploading && isChrome14OrHigher(); supportsUploadCors = supportsUploading && (window.postMessage !== undefined || supportsAjaxFileUploading); supportsDeleteFileCorsXhr = isCrossOriginXhrSupported(); supportsDeleteFileXdr = isXdrSupported(); supportsDeleteFileCors = isCrossOriginAjaxSupported(); supportsFolderSelection = isFolderSelectionSupported(); supportsImagePreviews = supportsAjaxFileUploading && window.FileReader !== undefined; return { uploading: supportsUploading, ajaxUploading: supportsAjaxFileUploading, fileDrop: supportsAjaxFileUploading, //NOTE: will also return true for touch-only devices. It's not currently possible to accurately test for touch-only devices folderDrop: supportsFolderDrop, chunking: supportsChunking, resume: supportsResume, uploadCustomHeaders: supportsAjaxFileUploading, uploadNonMultipart: supportsAjaxFileUploading, itemSizeValidation: supportsAjaxFileUploading, uploadViaPaste: supportsUploadViaPaste, progressBar: supportsAjaxFileUploading, uploadCors: supportsUploadCors, deleteFileCorsXhr: supportsDeleteFileCorsXhr, deleteFileCorsXdr: supportsDeleteFileXdr, //NOTE: will also return true in IE10, where XDR is also supported deleteFileCors: supportsDeleteFileCors, canDetermineSize: supportsAjaxFileUploading, folderSelection: supportsFolderSelection, imagePreviews: supportsImagePreviews, imageValidation: supportsImagePreviews, pause: supportsChunking }; }()); /*globals qq*/ qq.Promise = function() { "use strict"; var successArgs, failureArgs, successCallbacks = [], failureCallbacks = [], doneCallbacks = [], state = 0; qq.extend(this, { then: function(onSuccess, onFailure) { if (state === 0) { if (onSuccess) { successCallbacks.push(onSuccess); } if (onFailure) { failureCallbacks.push(onFailure); } } else if (state === -1) { onFailure && onFailure.apply(null, failureArgs); } else if (onSuccess) { onSuccess.apply(null,successArgs); } return this; }, done: function(callback) { if (state === 0) { doneCallbacks.push(callback); } else { callback.apply(null, failureArgs === undefined ? successArgs : failureArgs); } return this; }, success: function() { state = 1; successArgs = arguments; if (successCallbacks.length) { qq.each(successCallbacks, function(idx, callback) { callback.apply(null, successArgs); }); } if(doneCallbacks.length) { qq.each(doneCallbacks, function(idx, callback) { callback.apply(null, successArgs); }); } return this; }, failure: function() { state = -1; failureArgs = arguments; if (failureCallbacks.length) { qq.each(failureCallbacks, function(idx, callback) { callback.apply(null, failureArgs); }); } if(doneCallbacks.length) { qq.each(doneCallbacks, function(idx, callback) { callback.apply(null, failureArgs); }); } return this; } }); }; /*globals qq*/ /** * This module represents an upload or "Select File(s)" button. It's job is to embed an opaque `` * element as a child of a provided "container" element. This "container" element (`options.element`) is used to provide * a custom style for the `` element. The ability to change the style of the container element is also * provided here by adding CSS classes to the container on hover/focus. * * TODO Eliminate the mouseover and mouseout event handlers since the :hover CSS pseudo-class should now be * available on all supported browsers. * * @param o Options to override the default values */ qq.UploadButton = function(o) { "use strict"; var disposeSupport = new qq.DisposeSupport(), options = { // "Container" element element: null, // If true adds `multiple` attribute to `` multiple: false, // Corresponds to the `accept` attribute on the associated `` acceptFiles: null, // A true value allows folders to be selected, if supported by the UA folders: false, // `name` attribute of `` name: "qqfile", // Called when the browser invokes the onchange handler on the `` onChange: function(input) {}, // **This option will be removed** in the future as the :hover CSS pseudo-class is available on all supported browsers hoverClass: "qq-upload-button-hover", focusClass: "qq-upload-button-focus" }, input, buttonId; // Overrides any of the default option values with any option values passed in during construction. qq.extend(options, o); buttonId = qq.getUniqueId(); // Embed an opaque `` element as a child of `options.element`. function createInput() { var input = document.createElement("input"); input.setAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME, buttonId); if (options.multiple) { input.setAttribute("multiple", ""); } if (options.folders && qq.supportedFeatures.folderSelection) { // selecting directories is only possible in Chrome now, via a vendor-specific prefixed attribute input.setAttribute("webkitdirectory", ""); } if (options.acceptFiles) { input.setAttribute("accept", options.acceptFiles); } input.setAttribute("type", "file"); input.setAttribute("name", options.name); qq(input).css({ position: "absolute", // in Opera only 'browse' button // is clickable and it is located at // the right side of the input right: 0, top: 0, fontFamily: "Arial", // 4 persons reported this, the max values that worked for them were 243, 236, 236, 118 fontSize: "118px", margin: 0, padding: 0, cursor: "pointer", opacity: 0 }); options.element.appendChild(input); disposeSupport.attach(input, "change", function(){ options.onChange(input); }); // **These event handlers will be removed** in the future as the :hover CSS pseudo-class is available on all supported browsers disposeSupport.attach(input, "mouseover", function(){ qq(options.element).addClass(options.hoverClass); }); disposeSupport.attach(input, "mouseout", function(){ qq(options.element).removeClass(options.hoverClass); }); disposeSupport.attach(input, "focus", function(){ qq(options.element).addClass(options.focusClass); }); disposeSupport.attach(input, "blur", function(){ qq(options.element).removeClass(options.focusClass); }); // IE and Opera, unfortunately have 2 tab stops on file input // which is unacceptable in our case, disable keyboard access if (window.attachEvent) { // it is IE or Opera input.setAttribute("tabIndex", "-1"); } return input; } // Make button suitable container for input qq(options.element).css({ position: "relative", overflow: "hidden", // Make sure browse button is in the right side in Internet Explorer direction: "ltr" }); input = createInput(); // Exposed API qq.extend(this, { getInput: function() { return input; }, getButtonId: function() { return buttonId; }, setMultiple: function(isMultiple) { if (isMultiple !== options.multiple) { if (isMultiple) { input.setAttribute("multiple", ""); } else { input.removeAttribute("multiple"); } } }, setAcceptFiles: function(acceptFiles) { if (acceptFiles !== options.acceptFiles) { input.setAttribute("accept", acceptFiles); } }, reset: function(){ if (input.parentNode){ qq(input).remove(); } qq(options.element).removeClass(options.focusClass); input = createInput(); } }); }; qq.UploadButton.BUTTON_ID_ATTR_NAME = "qq-button-id"; /*globals qq */ qq.UploadData = function(uploaderProxy) { "use strict"; var data = [], byUuid = {}, byStatus = {}; function getDataByIds(idOrIds) { if (qq.isArray(idOrIds)) { var entries = []; qq.each(idOrIds, function(idx, id) { entries.push(data[id]); }); return entries; } return data[idOrIds]; } function getDataByUuids(uuids) { if (qq.isArray(uuids)) { var entries = []; qq.each(uuids, function(idx, uuid) { entries.push(data[byUuid[uuid]]); }); return entries; } return data[byUuid[uuids]]; } function getDataByStatus(status) { var statusResults = [], statuses = [].concat(status); qq.each(statuses, function(index, statusEnum) { var statusResultIndexes = byStatus[statusEnum]; if (statusResultIndexes !== undefined) { qq.each(statusResultIndexes, function(i, dataIndex) { statusResults.push(data[dataIndex]); }); } }); return statusResults; } qq.extend(this, { /** * Adds a new file to the data cache for tracking purposes. * * @param uuid Initial UUID for this file. * @param name Initial name of this file. * @param size Size of this file, -1 if this cannot be determined * @param status Initial `qq.status` for this file. If null/undefined, `qq.status.SUBMITTING`. * @returns {number} Internal ID for this file. */ addFile: function(uuid, name, size, status) { status = status || qq.status.SUBMITTING; var id = data.push({ name: name, originalName: name, uuid: uuid, size: size, status: status }) - 1; data[id].id = id; byUuid[uuid] = id; if (byStatus[status] === undefined) { byStatus[status] = []; } byStatus[status].push(id); uploaderProxy.onStatusChange(id, null, status); return id; }, retrieve: function(optionalFilter) { if (qq.isObject(optionalFilter) && data.length) { if (optionalFilter.id !== undefined) { return getDataByIds(optionalFilter.id); } else if (optionalFilter.uuid !== undefined) { return getDataByUuids(optionalFilter.uuid); } else if (optionalFilter.status) { return getDataByStatus(optionalFilter.status); } } else { return qq.extend([], data, true); } }, reset: function() { data = []; byUuid = {}; byStatus = {}; }, setStatus: function(id, newStatus) { var oldStatus = data[id].status, byStatusOldStatusIndex = qq.indexOf(byStatus[oldStatus], id); byStatus[oldStatus].splice(byStatusOldStatusIndex, 1); data[id].status = newStatus; if (byStatus[newStatus] === undefined) { byStatus[newStatus] = []; } byStatus[newStatus].push(id); uploaderProxy.onStatusChange(id, oldStatus, newStatus); }, uuidChanged: function(id, newUuid) { var oldUuid = data[id].uuid; data[id].uuid = newUuid; byUuid[newUuid] = id; delete byUuid[oldUuid]; }, updateName: function(id, newName) { data[id].name = newName; } }); }; qq.status = { SUBMITTING: "submitting", SUBMITTED: "submitted", REJECTED: "rejected", QUEUED: "queued", CANCELED: "canceled", PAUSED: "paused", UPLOADING: "uploading", UPLOAD_RETRYING: "retrying upload", UPLOAD_SUCCESSFUL: "upload successful", UPLOAD_FAILED: "upload failed", DELETE_FAILED: "delete failed", DELETING: "deleting", DELETED: "deleted" }; /*globals qq*/ /** * Defines the public API for FineUploaderBasic mode. */ (function(){ "use strict"; qq.basePublicApi = { log: function(str, level) { if (this._options.debug && (!level || level === "info")) { qq.log("[FineUploader " + qq.version + "] " + str); } else if (level && level !== "info") { qq.log("[FineUploader " + qq.version + "] " + str, level); } }, setParams: function(params, id) { /*jshint eqeqeq: true, eqnull: true*/ if (id == null) { this._options.request.params = params; } else { this._paramsStore.setParams(params, id); } }, setDeleteFileParams: function(params, id) { /*jshint eqeqeq: true, eqnull: true*/ if (id == null) { this._options.deleteFile.params = params; } else { this._deleteFileParamsStore.setParams(params, id); } }, // Re-sets the default endpoint, an endpoint for a specific file, or an endpoint for a specific button setEndpoint: function(endpoint, id) { /*jshint eqeqeq: true, eqnull: true*/ if (id == null) { this._options.request.endpoint = endpoint; } else { this._endpointStore.setEndpoint(endpoint, id); } }, getInProgress: function() { return this._uploadData.retrieve({ status: [ qq.status.UPLOADING, qq.status.UPLOAD_RETRYING, qq.status.QUEUED ] }).length; }, getNetUploads: function() { return this._netUploaded; }, uploadStoredFiles: function() { var idToUpload; if (this._storedIds.length === 0) { this._itemError("noFilesError"); } else { while (this._storedIds.length) { idToUpload = this._storedIds.shift(); this._handler.upload(idToUpload); } } }, clearStoredFiles: function(){ this._storedIds = []; }, retry: function(id) { return this._manualRetry(id); }, cancel: function(id) { this._handler.cancel(id); }, cancelAll: function() { var storedIdsCopy = [], self = this; qq.extend(storedIdsCopy, this._storedIds); qq.each(storedIdsCopy, function(idx, storedFileId) { self.cancel(storedFileId); }); this._handler.cancelAll(); }, reset: function() { this.log("Resetting uploader..."); this._handler.reset(); this._storedIds = []; this._autoRetries = []; this._retryTimeouts = []; this._preventRetries = []; this._thumbnailUrls = []; qq.each(this._buttons, function(idx, button) { button.reset(); }); this._paramsStore.reset(); this._endpointStore.reset(); this._netUploadedOrQueued = 0; this._netUploaded = 0; this._uploadData.reset(); this._buttonIdsForFileIds = []; this._pasteHandler && this._pasteHandler.reset(); this._options.session.refreshOnReset && this._refreshSessionData(); }, addFiles: function(filesOrInputs, params, endpoint) { var verifiedFilesOrInputs = [], fileOrInputIndex, fileOrInput, fileIndex; if (filesOrInputs) { if (!qq.isFileList(filesOrInputs)) { filesOrInputs = [].concat(filesOrInputs); } for (fileOrInputIndex = 0; fileOrInputIndex < filesOrInputs.length; fileOrInputIndex+=1) { fileOrInput = filesOrInputs[fileOrInputIndex]; if (qq.isFileOrInput(fileOrInput)) { if (qq.isInput(fileOrInput) && qq.supportedFeatures.ajaxUploading) { for (fileIndex = 0; fileIndex < fileOrInput.files.length; fileIndex++) { this._handleNewFile(fileOrInput.files[fileIndex], verifiedFilesOrInputs); } } else { this._handleNewFile(fileOrInput, verifiedFilesOrInputs); } } else { this.log(fileOrInput + " is not a File or INPUT element! Ignoring!", "warn"); } } this.log("Received " + verifiedFilesOrInputs.length + " files or inputs."); this._prepareItemsForUpload(verifiedFilesOrInputs, params, endpoint); } }, addBlobs: function(blobDataOrArray, params, endpoint) { if (blobDataOrArray) { var blobDataArray = [].concat(blobDataOrArray), verifiedBlobDataList = [], self = this; qq.each(blobDataArray, function(idx, blobData) { var blobOrBlobData; if (qq.isBlob(blobData) && !qq.isFileOrInput(blobData)) { blobOrBlobData = { blob: blobData, name: self._options.blobs.defaultName }; } else if (qq.isObject(blobData) && blobData.blob && blobData.name) { blobOrBlobData = blobData; } else { self.log("addBlobs: entry at index " + idx + " is not a Blob or a BlobData object", "error"); } blobOrBlobData && self._handleNewFile(blobOrBlobData, verifiedBlobDataList); }); this._prepareItemsForUpload(verifiedBlobDataList, params, endpoint); } else { this.log("undefined or non-array parameter passed into addBlobs", "error"); } }, getUuid: function(id) { return this._uploadData.retrieve({id: id}).uuid; }, setUuid: function(id, newUuid) { return this._uploadData.uuidChanged(id, newUuid); }, getResumableFilesData: function() { return this._handler.getResumableFilesData(); }, getSize: function(id) { return this._uploadData.retrieve({id: id}).size; }, getName: function(id) { return this._uploadData.retrieve({id: id}).name; }, setName: function(id, newName) { this._uploadData.updateName(id, newName); }, getFile: function(fileOrBlobId) { return this._handler.getFile(fileOrBlobId); }, deleteFile: function(id) { this._onSubmitDelete(id); }, setDeleteFileEndpoint: function(endpoint, id) { /*jshint eqeqeq: true, eqnull: true*/ if (id == null) { this._options.deleteFile.endpoint = endpoint; } else { this._deleteFileEndpointStore.setEndpoint(endpoint, id); } }, doesExist: function(fileOrBlobId) { return this._handler.isValid(fileOrBlobId); }, getUploads: function(optionalFilter) { return this._uploadData.retrieve(optionalFilter); }, getButton: function(fileId) { return this._getButton(this._buttonIdsForFileIds[fileId]); }, // Generate a variable size thumbnail on an img or canvas, // returning a promise that is fulfilled when the attempt completes. // Thumbnail can either be based off of a URL for an image returned // by the server in the upload response, or the associated `Blob`. drawThumbnail: function(fileId, imgOrCanvas, maxSize, fromServer) { if (this._imageGenerator) { var fileOrUrl = this._thumbnailUrls[fileId], options = { scale: maxSize > 0, maxSize: maxSize > 0 ? maxSize : null }; // If client-side preview generation is possible // and we are not specifically looking for the image URl returned by the server... if (!fromServer && qq.supportedFeatures.imagePreviews) { fileOrUrl = this.getFile(fileId); } /* jshint eqeqeq:false,eqnull:true */ if (fileOrUrl == null) { return new qq.Promise().failure(imgOrCanvas, "File or URL not found."); } return this._imageGenerator.generate(fileOrUrl, imgOrCanvas, options); } }, pauseUpload: function(id) { var uploadData = this._uploadData.retrieve({id: id}); if (!qq.supportedFeatures.pause || !this._options.chunking.enabled) { return false; } // Pause only really makes sense if the file is uploading or retrying if (qq.indexOf([qq.status.UPLOADING, qq.status.UPLOAD_RETRYING], uploadData.status) >= 0) { if (this._handler.pause(id)) { this._uploadData.setStatus(id, qq.status.PAUSED); return true; } else { qq.log(qq.format("Unable to pause file ID {} ({}).", id, this.getName(id)), "error"); } } else { qq.log(qq.format("Ignoring pause for file ID {} ({}). Not in progress.", id, this.getName(id)), "error"); } return false; }, continueUpload: function(id) { var uploadData = this._uploadData.retrieve({id: id}); if (!qq.supportedFeatures.pause || !this._options.chunking.enabled) { return false; } if (uploadData.status === qq.status.PAUSED) { qq.log(qq.format("Paused file ID {} ({}) will be continued. Not paused.", id, this.getName(id))); if (!this._handler.upload(id)) { this._uploadData.setStatus(id, qq.status.QUEUED); } return true; } else { qq.log(qq.format("Ignoring continue for file ID {} ({}). Not paused.", id, this.getName(id)), "error"); } return false; }, getRemainingAllowedItems: function() { var allowedItems = this._options.validation.itemLimit; if (allowedItems > 0) { return this._options.validation.itemLimit - this._netUploadedOrQueued; } return null; } }; /** * Defines the private (internal) API for FineUploaderBasic mode. */ qq.basePrivateApi = { // Attempts to refresh session data only if the `qq.Session` module exists // and a session endpoint has been specified. The `onSessionRequestComplete` // callback will be invoked once the refresh is complete. _refreshSessionData: function() { var self = this, options = this._options.session; /* jshint eqnull:true */ if (qq.Session && this._options.session.endpoint != null) { if (!this._session) { qq.extend(options, this._options.cors); options.log = qq.bind(this.log, this); options.addFileRecord = qq.bind(this._addCannedFile, this); this._session = new qq.Session(options); } setTimeout(function() { self._session.refresh().then(function(response, xhrOrXdr) { self._options.callbacks.onSessionRequestComplete(response, true, xhrOrXdr); }, function(response, xhrOrXdr) { self._options.callbacks.onSessionRequestComplete(response, false, xhrOrXdr); }); }, 0); } }, // Updates internal state with a file record (not backed by a live file). Returns the assigned ID. _addCannedFile: function(sessionData) { var id = this._uploadData.addFile(sessionData.uuid, sessionData.name, sessionData.size, qq.status.UPLOAD_SUCCESSFUL); sessionData.deleteFileEndpoint && this.setDeleteFileEndpoint(sessionData.deleteFileEndpoint, id); sessionData.deleteFileParams && this.setDeleteFileParams(sessionData.deleteFileParams, id); if (sessionData.thumbnailUrl) { this._thumbnailUrls[id] = sessionData.thumbnailUrl; } this._netUploaded++; this._netUploadedOrQueued++; return id; }, // Updates internal state when a new file has been received, and adds it along with its ID to a passed array. _handleNewFile: function(file, newFileWrapperList) { var size = -1, uuid = qq.getUniqueId(), name = qq.getFilename(file), id; if (file.size >= 0) { size = file.size; } else if (file.blob) { size = file.blob.size; } id = this._uploadData.addFile(uuid, name, size); this._handler.add(id, file); this._netUploadedOrQueued++; newFileWrapperList.push({id: id, file: file}); }, // Creates an internal object that tracks various properties of each extra button, // and then actually creates the extra button. _generateExtraButtonSpecs: function() { var self = this; this._extraButtonSpecs = {}; qq.each(this._options.extraButtons, function(idx, extraButtonOptionEntry) { var multiple = extraButtonOptionEntry.multiple, validation = qq.extend({}, self._options.validation, true), extraButtonSpec = qq.extend({}, extraButtonOptionEntry); if (multiple === undefined) { multiple = self._options.multiple; } if (extraButtonSpec.validation) { qq.extend(validation, extraButtonOptionEntry.validation, true); } qq.extend(extraButtonSpec, { multiple: multiple, validation: validation }, true); self._initExtraButton(extraButtonSpec); }); }, // Creates an extra button element _initExtraButton: function(spec) { var button = this._createUploadButton({ element: spec.element, multiple: spec.multiple, accept: spec.validation.acceptFiles, folders: spec.folders, allowedExtensions: spec.validation.allowedExtensions }); this._extraButtonSpecs[button.getButtonId()] = spec; }, /** * Gets the internally used tracking ID for a button. * * @param buttonOrFileInputOrFile `File`, ``, or a button container element * @returns {*} The button's ID, or undefined if no ID is recoverable * @private */ _getButtonId: function(buttonOrFileInputOrFile) { var inputs, fileInput; // If the item is a `Blob` it will never be associated with a button or drop zone. if (buttonOrFileInputOrFile && !buttonOrFileInputOrFile.blob && !qq.isBlob(buttonOrFileInputOrFile)) { if (qq.isFile(buttonOrFileInputOrFile)) { return buttonOrFileInputOrFile.qqButtonId; } else if (buttonOrFileInputOrFile.tagName.toLowerCase() === "input" && buttonOrFileInputOrFile.type.toLowerCase() === "file") { return buttonOrFileInputOrFile.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME); } inputs = buttonOrFileInputOrFile.getElementsByTagName("input"); qq.each(inputs, function(idx, input) { if (input.getAttribute("type") === "file") { fileInput = input; return false; } }); if (fileInput) { return fileInput.getAttribute(qq.UploadButton.BUTTON_ID_ATTR_NAME); } } }, _annotateWithButtonId: function(file, associatedInput) { if (qq.isFile(file)) { file.qqButtonId = this._getButtonId(associatedInput); } }, _getButton: function(buttonId) { var extraButtonsSpec = this._extraButtonSpecs[buttonId]; if (extraButtonsSpec) { return extraButtonsSpec.element; } else if (buttonId === this._defaultButtonId) { return this._options.button; } }, _handleCheckedCallback: function(details) { var self = this, callbackRetVal = details.callback(); if (callbackRetVal instanceof qq.Promise) { this.log(details.name + " - waiting for " + details.name + " promise to be fulfilled for " + details.identifier); return callbackRetVal.then( function(successParam) { self.log(details.name + " promise success for " + details.identifier); details.onSuccess(successParam); }, function() { if (details.onFailure) { self.log(details.name + " promise failure for " + details.identifier); details.onFailure(); } else { self.log(details.name + " promise failure for " + details.identifier); } }); } if (callbackRetVal !== false) { details.onSuccess(callbackRetVal); } else { if (details.onFailure) { this.log(details.name + " - return value was 'false' for " + details.identifier + ". Invoking failure callback."); details.onFailure(); } else { this.log(details.name + " - return value was 'false' for " + details.identifier + ". Will not proceed."); } } return callbackRetVal; }, /** * Generate a tracked upload button. * * @param spec Object containing a required `element` property * along with optional `multiple`, `accept`, and `folders`. * @returns {qq.UploadButton} * @private */ _createUploadButton: function(spec) { var self = this, acceptFiles = spec.accept || this._options.validation.acceptFiles, allowedExtensions = spec.allowedExtensions || this._options.validation.allowedExtensions; function allowMultiple() { if (qq.supportedFeatures.ajaxUploading) { // Workaround for bug in iOS7 (see #1039) if (qq.ios7() && self._isAllowedExtension(allowedExtensions, ".mov")) { return false; } if (spec.multiple === undefined) { return self._options.multiple; } return spec.multiple; } return false; } var button = new qq.UploadButton({ element: spec.element, folders: spec.folders, name: this._options.request.inputName, multiple: allowMultiple(), acceptFiles: acceptFiles, onChange: function(input) { self._onInputChange(input); }, hoverClass: this._options.classes.buttonHover, focusClass: this._options.classes.buttonFocus }); this._disposeSupport.addDisposer(function() { button.dispose(); }); self._buttons.push(button); return button; }, _createUploadHandler: function(additionalOptions, namespace) { var self = this, options = { debug: this._options.debug, maxConnections: this._options.maxConnections, cors: this._options.cors, demoMode: this._options.demoMode, paramsStore: this._paramsStore, endpointStore: this._endpointStore, chunking: this._options.chunking, resume: this._options.resume, blobs: this._options.blobs, log: qq.bind(self.log, self), onProgress: function(id, name, loaded, total){ self._onProgress(id, name, loaded, total); self._options.callbacks.onProgress(id, name, loaded, total); }, onComplete: function(id, name, result, xhr){ var retVal = self._onComplete(id, name, result, xhr); // If the internal `_onComplete` handler returns a promise, don't invoke the `onComplete` callback // until the promise has been fulfilled. if (retVal instanceof qq.Promise) { retVal.done(function() { self._options.callbacks.onComplete(id, name, result, xhr); }); } else { self._options.callbacks.onComplete(id, name, result, xhr); } }, onCancel: function(id, name) { return self._handleCheckedCallback({ name: "onCancel", callback: qq.bind(self._options.callbacks.onCancel, self, id, name), onSuccess: qq.bind(self._onCancel, self, id, name), identifier: id }); }, onUpload: function(id, name) { self._onUpload(id, name); self._options.callbacks.onUpload(id, name); }, onUploadChunk: function(id, name, chunkData) { self._onUploadChunk(id, chunkData); self._options.callbacks.onUploadChunk(id, name, chunkData); }, onUploadChunkSuccess: function(id, chunkData, result, xhr) { self._options.callbacks.onUploadChunkSuccess.apply(self, arguments); }, onResume: function(id, name, chunkData) { return self._options.callbacks.onResume(id, name, chunkData); }, onAutoRetry: function(id, name, responseJSON, xhr) { return self._onAutoRetry.apply(self, arguments); }, onUuidChanged: function(id, newUuid) { self.log("Server requested UUID change from '" + self.getUuid(id) + "' to '" + newUuid + "'"); self.setUuid(id, newUuid); }, getName: qq.bind(self.getName, self), getUuid: qq.bind(self.getUuid, self), getSize: qq.bind(self.getSize, self) }; qq.each(this._options.request, function(prop, val) { options[prop] = val; }); if (additionalOptions) { qq.each(additionalOptions, function(key, val) { options[key] = val; }); } return new qq.UploadHandler(options, namespace); }, _createDeleteHandler: function() { var self = this; return new qq.DeleteFileAjaxRequester({ method: this._options.deleteFile.method.toUpperCase(), maxConnections: this._options.maxConnections, uuidParamName: this._options.request.uuidName, customHeaders: this._options.deleteFile.customHeaders, paramsStore: this._deleteFileParamsStore, endpointStore: this._deleteFileEndpointStore, demoMode: this._options.demoMode, cors: this._options.cors, log: qq.bind(self.log, self), onDelete: function(id) { self._onDelete(id); self._options.callbacks.onDelete(id); }, onDeleteComplete: function(id, xhrOrXdr, isError) { self._onDeleteComplete(id, xhrOrXdr, isError); self._options.callbacks.onDeleteComplete(id, xhrOrXdr, isError); } }); }, _createPasteHandler: function() { var self = this; return new qq.PasteSupport({ targetElement: this._options.paste.targetElement, callbacks: { log: qq.bind(self.log, self), pasteReceived: function(blob) { self._handleCheckedCallback({ name: "onPasteReceived", callback: qq.bind(self._options.callbacks.onPasteReceived, self, blob), onSuccess: qq.bind(self._handlePasteSuccess, self, blob), identifier: "pasted image" }); } } }); }, _createUploadDataTracker: function() { var self = this; return new qq.UploadData({ getName: function(id) { return self.getName(id); }, getUuid: function(id) { return self.getUuid(id); }, getSize: function(id) { return self.getSize(id); }, onStatusChange: function(id, oldStatus, newStatus) { self._onUploadStatusChange(id, oldStatus, newStatus); self._options.callbacks.onStatusChange(id, oldStatus, newStatus); } }); }, _onUploadStatusChange: function(id, oldStatus, newStatus) { // Make sure a "queued" retry attempt is canceled if the upload has been paused if (newStatus === qq.status.PAUSED) { clearTimeout(this._retryTimeouts[id]); } }, _handlePasteSuccess: function(blob, extSuppliedName) { var extension = blob.type.split("/")[1], name = extSuppliedName; /*jshint eqeqeq: true, eqnull: true*/ if (name == null) { name = this._options.paste.defaultName; } name += "." + extension; this.addBlobs({ name: name, blob: blob }); }, _preventLeaveInProgress: function(){ var self = this; this._disposeSupport.attach(window, "beforeunload", function(e){ if (self.getInProgress()) { e = e || window.event; // for ie, ff e.returnValue = self._options.messages.onLeave; // for webkit return self._options.messages.onLeave; } }); }, _onSubmit: function(id, name) { //nothing to do yet in core uploader }, _onProgress: function(id, name, loaded, total) { //nothing to do yet in core uploader }, _onComplete: function(id, name, result, xhr) { if (!result.success) { this._netUploadedOrQueued--; this._uploadData.setStatus(id, qq.status.UPLOAD_FAILED); } else { if (result.thumbnailUrl) { this._thumbnailUrls[id] = result.thumbnailUrl; } this._netUploaded++; this._uploadData.setStatus(id, qq.status.UPLOAD_SUCCESSFUL); } this._maybeParseAndSendUploadError(id, name, result, xhr); return result.success ? true : false; }, _onCancel: function(id, name) { this._netUploadedOrQueued--; clearTimeout(this._retryTimeouts[id]); var storedItemIndex = qq.indexOf(this._storedIds, id); if (!this._options.autoUpload && storedItemIndex >= 0) { this._storedIds.splice(storedItemIndex, 1); } this._uploadData.setStatus(id, qq.status.CANCELED); }, _isDeletePossible: function() { if (!qq.DeleteFileAjaxRequester || !this._options.deleteFile.enabled) { return false; } if (this._options.cors.expected) { if (qq.supportedFeatures.deleteFileCorsXhr) { return true; } if (qq.supportedFeatures.deleteFileCorsXdr && this._options.cors.allowXdr) { return true; } return false; } return true; }, _onSubmitDelete: function(id, onSuccessCallback, additionalMandatedParams) { var uuid = this.getUuid(id), adjustedOnSuccessCallback; if (onSuccessCallback) { adjustedOnSuccessCallback = qq.bind(onSuccessCallback, this, id, uuid, additionalMandatedParams); } if (this._isDeletePossible()) { return this._handleCheckedCallback({ name: "onSubmitDelete", callback: qq.bind(this._options.callbacks.onSubmitDelete, this, id), onSuccess: adjustedOnSuccessCallback || qq.bind(this._deleteHandler.sendDelete, this, id, uuid, additionalMandatedParams), identifier: id }); } else { this.log("Delete request ignored for ID " + id + ", delete feature is disabled or request not possible " + "due to CORS on a user agent that does not support pre-flighting.", "warn"); return false; } }, _onDelete: function(id) { this._uploadData.setStatus(id, qq.status.DELETING); }, _onDeleteComplete: function(id, xhrOrXdr, isError) { var name = this.getName(id); if (isError) { this._uploadData.setStatus(id, qq.status.DELETE_FAILED); this.log("Delete request for '" + name + "' has failed.", "error"); // For error reporing, we only have accesss to the response status if this is not // an `XDomainRequest`. if (xhrOrXdr.withCredentials === undefined) { this._options.callbacks.onError(id, name, "Delete request failed", xhrOrXdr); } else { this._options.callbacks.onError(id, name, "Delete request failed with response code " + xhrOrXdr.status, xhrOrXdr); } } else { this._netUploadedOrQueued--; this._netUploaded--; this._handler.expunge(id); this._uploadData.setStatus(id, qq.status.DELETED); this.log("Delete request for '" + name + "' has succeeded."); } }, _onUpload: function(id, name) { this._uploadData.setStatus(id, qq.status.UPLOADING); }, _onUploadChunk: function(id, chunkData) { //nothing to do in the base uploader }, _onInputChange: function(input) { var fileIndex; if (qq.supportedFeatures.ajaxUploading) { for (fileIndex = 0; fileIndex < input.files.length; fileIndex++) { this._annotateWithButtonId(input.files[fileIndex], input); } this.addFiles(input.files); } // Android 2.3.x will fire `onchange` even if no file has been selected else if (input.value.length > 0) { this.addFiles(input); } qq.each(this._buttons, function(idx, button) { button.reset(); }); }, _onBeforeAutoRetry: function(id, name) { this.log("Waiting " + this._options.retry.autoAttemptDelay + " seconds before retrying " + name + "..."); }, /** * Attempt to automatically retry a failed upload. * * @param id The file ID of the failed upload * @param name The name of the file associated with the failed upload * @param responseJSON Response from the server, parsed into a javascript object * @param xhr Ajax transport used to send the failed request * @param callback Optional callback to be invoked if a retry is prudent. * Invoked in lieu of asking the upload handler to retry. * @returns {boolean} true if an auto-retry will occur * @private */ _onAutoRetry: function(id, name, responseJSON, xhr, callback) { var self = this; self._preventRetries[id] = responseJSON[self._options.retry.preventRetryResponseProperty]; if (self._shouldAutoRetry(id, name, responseJSON)) { self._maybeParseAndSendUploadError.apply(self, arguments); self._options.callbacks.onAutoRetry(id, name, self._autoRetries[id] + 1); self._onBeforeAutoRetry(id, name); self._retryTimeouts[id] = setTimeout(function() { self.log("Retrying " + name + "..."); self._autoRetries[id]++; self._uploadData.setStatus(id, qq.status.UPLOAD_RETRYING); if (callback) { callback(id); } else { self._handler.retry(id); } }, self._options.retry.autoAttemptDelay * 1000); return true; } }, _shouldAutoRetry: function(id, name, responseJSON) { var uploadData = this._uploadData.retrieve({id: id}); /*jshint laxbreak: true */ if (!this._preventRetries[id] && this._options.retry.enableAuto && uploadData.status !== qq.status.PAUSED) { if (this._autoRetries[id] === undefined) { this._autoRetries[id] = 0; } return this._autoRetries[id] < this._options.retry.maxAutoAttempts; } return false; }, //return false if we should not attempt the requested retry _onBeforeManualRetry: function(id) { var itemLimit = this._options.validation.itemLimit; if (this._preventRetries[id]) { this.log("Retries are forbidden for id " + id, "warn"); return false; } else if (this._handler.isValid(id)) { var fileName = this.getName(id); if (this._options.callbacks.onManualRetry(id, fileName) === false) { return false; } if (itemLimit > 0 && this._netUploadedOrQueued+1 > itemLimit) { this._itemError("retryFailTooManyItems"); return false; } this.log("Retrying upload for '" + fileName + "' (id: " + id + ")..."); return true; } else { this.log("'" + id + "' is not a valid file ID", "error"); return false; } }, /** * Conditionally orders a manual retry of a failed upload. * * @param id File ID of the failed upload * @param callback Optional callback to invoke if a retry is prudent. * In lieu of asking the upload handler to retry. * @returns {boolean} true if a manual retry will occur * @private */ _manualRetry: function(id, callback) { if (this._onBeforeManualRetry(id)) { this._netUploadedOrQueued++; this._uploadData.setStatus(id, qq.status.UPLOAD_RETRYING); if (callback) { callback(id); } else { this._handler.retry(id); } return true; } }, _maybeParseAndSendUploadError: function(id, name, response, xhr) { // Assuming no one will actually set the response code to something other than 200 // and still set 'success' to true... if (!response.success){ if (xhr && xhr.status !== 200 && !response.error) { this._options.callbacks.onError(id, name, "XHR returned response code " + xhr.status, xhr); } else { var errorReason = response.error ? response.error : this._options.text.defaultResponseError; this._options.callbacks.onError(id, name, errorReason, xhr); } } }, _prepareItemsForUpload: function(items, params, endpoint) { var validationDescriptors = this._getValidationDescriptors(items), buttonId = this._getButtonId(items[0].file), button = this._getButton(buttonId); this._handleCheckedCallback({ name: "onValidateBatch", callback: qq.bind(this._options.callbacks.onValidateBatch, this, validationDescriptors, button), onSuccess: qq.bind(this._onValidateBatchCallbackSuccess, this, validationDescriptors, items, params, endpoint, button), onFailure: qq.bind(this._onValidateBatchCallbackFailure, this, items), identifier: "batch validation" }); }, _upload: function(id, params, endpoint) { var name = this.getName(id); if (params) { this.setParams(params, id); } if (endpoint) { this.setEndpoint(endpoint, id); } this._handleCheckedCallback({ name: "onSubmit", callback: qq.bind(this._options.callbacks.onSubmit, this, id, name), onSuccess: qq.bind(this._onSubmitCallbackSuccess, this, id, name), onFailure: qq.bind(this._fileOrBlobRejected, this, id, name), identifier: id }); }, _onSubmitCallbackSuccess: function(id, name) { var buttonId; if (qq.supportedFeatures.ajaxUploading) { buttonId = this._handler.getFile(id).qqButtonId; } else { buttonId = this._getButtonId(this._handler.getInput(id)); } if (buttonId) { this._buttonIdsForFileIds[id] = buttonId; } this._onSubmit.apply(this, arguments); this._uploadData.setStatus(id, qq.status.SUBMITTED); this._onSubmitted.apply(this, arguments); this._options.callbacks.onSubmitted.apply(this, arguments); if (this._options.autoUpload) { if (!this._handler.upload(id)) { this._uploadData.setStatus(id, qq.status.QUEUED); } } else { this._storeForLater(id); } }, _onSubmitted: function(id) { //nothing to do in the base uploader }, _storeForLater: function(id) { this._storedIds.push(id); }, _onValidateBatchCallbackSuccess: function(validationDescriptors, items, params, endpoint, button) { var errorMessage, itemLimit = this._options.validation.itemLimit, proposedNetFilesUploadedOrQueued = this._netUploadedOrQueued; if (itemLimit === 0 || proposedNetFilesUploadedOrQueued <= itemLimit) { if (items.length > 0) { this._handleCheckedCallback({ name: "onValidate", callback: qq.bind(this._options.callbacks.onValidate, this, validationDescriptors[0], button), onSuccess: qq.bind(this._onValidateCallbackSuccess, this, items, 0, params, endpoint), onFailure: qq.bind(this._onValidateCallbackFailure, this, items, 0, params, endpoint), identifier: "Item '" + items[0].file.name + "', size: " + items[0].file.size }); } else { this._itemError("noFilesError"); } } else { this._onValidateBatchCallbackFailure(items); errorMessage = this._options.messages.tooManyItemsError .replace(/\{netItems\}/g, proposedNetFilesUploadedOrQueued) .replace(/\{itemLimit\}/g, itemLimit); this._batchError(errorMessage); } }, _onValidateBatchCallbackFailure: function(fileWrappers) { var self = this; qq.each(fileWrappers, function(idx, fileWrapper) { self._fileOrBlobRejected(fileWrapper.id); }); }, _onValidateCallbackSuccess: function(items, index, params, endpoint) { var self = this, nextIndex = index+1, validationDescriptor = this._getValidationDescriptor(items[index].file); this._validateFileOrBlobData(items[index], validationDescriptor) .then( function() { self._upload(items[index].id, params, endpoint); self._maybeProcessNextItemAfterOnValidateCallback(true, items, nextIndex, params, endpoint); }, function() { self._maybeProcessNextItemAfterOnValidateCallback(false, items, nextIndex, params, endpoint); } ); }, _onValidateCallbackFailure: function(items, index, params, endpoint) { var nextIndex = index+ 1; this._fileOrBlobRejected(items[0].id, items[0].file.name); this._maybeProcessNextItemAfterOnValidateCallback(false, items, nextIndex, params, endpoint); }, _maybeProcessNextItemAfterOnValidateCallback: function(validItem, items, index, params, endpoint) { var self = this; if (items.length > index) { if (validItem || !this._options.validation.stopOnFirstInvalidFile) { //use setTimeout to prevent a stack overflow with a large number of files in the batch & non-promissory callbacks setTimeout(function() { var validationDescriptor = self._getValidationDescriptor(items[index].file); self._handleCheckedCallback({ name: "onValidate", callback: qq.bind(self._options.callbacks.onValidate, self, items[index].file), onSuccess: qq.bind(self._onValidateCallbackSuccess, self, items, index, params, endpoint), onFailure: qq.bind(self._onValidateCallbackFailure, self, items, index, params, endpoint), identifier: "Item '" + validationDescriptor.name + "', size: " + validationDescriptor.size }); }, 0); } else if (!validItem) { for (; index < items.length; index++) { self._fileOrBlobRejected(items[index].id); } } } }, /** * Performs some internal validation checks on an item, defined in the `validation` option. * * @param fileWrapper Wrapper containing a `file` along with an `id` * @param validationDescriptor Normalized information about the item (`size`, `name`). * @returns qq.Promise with appropriate callbacks invoked depending on the validity of the file * @private */ _validateFileOrBlobData: function(fileWrapper, validationDescriptor) { var self = this, file = fileWrapper.file, name = validationDescriptor.name, size = validationDescriptor.size, buttonId = this._getButtonId(file), validationBase = this._getValidationBase(buttonId), validityChecker = new qq.Promise(); validityChecker.then( function() {}, function() { self._fileOrBlobRejected(fileWrapper.id, name); }); if (qq.isFileOrInput(file) && !this._isAllowedExtension(validationBase.allowedExtensions, name)) { this._itemError("typeError", name, file); return validityChecker.failure(); } if (size === 0) { this._itemError("emptyError", name, file); return validityChecker.failure(); } if (size && validationBase.sizeLimit && size > validationBase.sizeLimit) { this._itemError("sizeError", name, file); return validityChecker.failure(); } if (size && size < validationBase.minSizeLimit) { this._itemError("minSizeError", name, file); return validityChecker.failure(); } if (qq.ImageValidation && qq.supportedFeatures.imagePreviews && qq.isFile(file)) { new qq.ImageValidation(file, qq.bind(self.log, self)).validate(validationBase.image).then( validityChecker.success, function(errorCode) { self._itemError(errorCode + "ImageError", name, file); validityChecker.failure(); } ); } else { validityChecker.success(); } return validityChecker; }, _fileOrBlobRejected: function(id) { this._netUploadedOrQueued--; this._uploadData.setStatus(id, qq.status.REJECTED); }, /** * Constructs and returns a message that describes an item/file error. Also calls `onError` callback. * * @param code REQUIRED - a code that corresponds to a stock message describing this type of error * @param maybeNameOrNames names of the items that have failed, if applicable * @param item `File`, `Blob`, or `` * @private */ _itemError: function(code, maybeNameOrNames, item) { var message = this._options.messages[code], allowedExtensions = [], names = [].concat(maybeNameOrNames), name = names[0], buttonId = this._getButtonId(item), validationBase = this._getValidationBase(buttonId), extensionsForMessage, placeholderMatch; function r(name, replacement){ message = message.replace(name, replacement); } qq.each(validationBase.allowedExtensions, function(idx, allowedExtension) { /** * If an argument is not a string, ignore it. Added when a possible issue with MooTools hijacking the * `allowedExtensions` array was discovered. See case #735 in the issue tracker for more details. */ if (qq.isString(allowedExtension)) { allowedExtensions.push(allowedExtension); } }); extensionsForMessage = allowedExtensions.join(", ").toLowerCase(); r("{file}", this._options.formatFileName(name)); r("{extensions}", extensionsForMessage); r("{sizeLimit}", this._formatSize(validationBase.sizeLimit)); r("{minSizeLimit}", this._formatSize(validationBase.minSizeLimit)); placeholderMatch = message.match(/(\{\w+\})/g); if (placeholderMatch !== null) { qq.each(placeholderMatch, function(idx, placeholder) { r(placeholder, names[idx]); }); } this._options.callbacks.onError(null, name, message, undefined); return message; }, _batchError: function(message) { this._options.callbacks.onError(null, null, message, undefined); }, _isAllowedExtension: function(allowed, fileName) { var valid = false; if (!allowed.length) { return true; } qq.each(allowed, function(idx, allowedExt) { /** * If an argument is not a string, ignore it. Added when a possible issue with MooTools hijacking the * `allowedExtensions` array was discovered. See case #735 in the issue tracker for more details. */ if (qq.isString(allowedExt)) { /*jshint eqeqeq: true, eqnull: true*/ var extRegex = new RegExp("\\." + allowedExt + "$", "i"); if (fileName.match(extRegex) != null) { valid = true; return false; } } }); return valid; }, _formatSize: function(bytes){ var i = -1; do { bytes = bytes / 1000; i++; } while (bytes > 999); return Math.max(bytes, 0.1).toFixed(1) + this._options.text.sizeSymbols[i]; }, _wrapCallbacks: function() { var self, safeCallback; self = this; safeCallback = function(name, callback, args) { var errorMsg; try { return callback.apply(self, args); } catch (exception) { errorMsg = exception.message || exception.toString(); self.log("Caught exception in '" + name + "' callback - " + errorMsg, "error"); } }; /* jshint forin: false, loopfunc: true */ for (var prop in this._options.callbacks) { (function() { var callbackName, callbackFunc; callbackName = prop; callbackFunc = self._options.callbacks[callbackName]; self._options.callbacks[callbackName] = function() { return safeCallback(callbackName, callbackFunc, arguments); }; }()); } }, _parseFileOrBlobDataName: function(fileOrBlobData) { var name; if (qq.isFileOrInput(fileOrBlobData)) { if (fileOrBlobData.value) { // it is a file input // get input value and remove path to normalize name = fileOrBlobData.value.replace(/.*(\/|\\)/, ""); } else { // fix missing properties in Safari 4 and firefox 11.0a2 name = (fileOrBlobData.fileName !== null && fileOrBlobData.fileName !== undefined) ? fileOrBlobData.fileName : fileOrBlobData.name; } } else { name = fileOrBlobData.name; } return name; }, _parseFileOrBlobDataSize: function(fileOrBlobData) { var size; if (qq.isFileOrInput(fileOrBlobData)) { if (fileOrBlobData.value === undefined) { // fix missing properties in Safari 4 and firefox 11.0a2 size = (fileOrBlobData.fileSize !== null && fileOrBlobData.fileSize !== undefined) ? fileOrBlobData.fileSize : fileOrBlobData.size; } } else { size = fileOrBlobData.blob.size; } return size; }, _getValidationDescriptor: function(fileOrBlobData) { var fileDescriptor = {}, name = this._parseFileOrBlobDataName(fileOrBlobData), size = this._parseFileOrBlobDataSize(fileOrBlobData); fileDescriptor.name = name; if (size !== undefined) { fileDescriptor.size = size; } return fileDescriptor; }, _getValidationDescriptors: function(fileWrappers) { var self = this, fileDescriptors = []; qq.each(fileWrappers, function(idx, fileWrapper) { fileDescriptors.push(self._getValidationDescriptor(fileWrapper.file)); }); return fileDescriptors; }, _createParamsStore: function(type) { var paramsStore = {}, self = this; return { setParams: function(params, id) { var paramsCopy = {}; qq.extend(paramsCopy, params); paramsStore[id] = paramsCopy; }, getParams: function(id) { /*jshint eqeqeq: true, eqnull: true*/ var paramsCopy = {}; if (id != null && paramsStore[id]) { qq.extend(paramsCopy, paramsStore[id]); } else { qq.extend(paramsCopy, self._options[type].params); } return paramsCopy; }, remove: function(fileId) { return delete paramsStore[fileId]; }, reset: function() { paramsStore = {}; } }; }, _createEndpointStore: function(type) { var endpointStore = {}, self = this; return { setEndpoint: function(endpoint, id) { endpointStore[id] = endpoint; }, getEndpoint: function(id) { /*jshint eqeqeq: true, eqnull: true*/ if (id != null && endpointStore[id]) { return endpointStore[id]; } return self._options[type].endpoint; }, remove: function(fileId) { return delete endpointStore[fileId]; }, reset: function() { endpointStore = {}; } }; }, // Allows camera access on either the default or an extra button for iOS devices. _handleCameraAccess: function() { if (this._options.camera.ios && qq.ios()) { var acceptIosCamera = "image/*;capture=camera", button = this._options.camera.button, buttonId = button ? this._getButtonId(button) : this._defaultButtonId, optionRoot = this._options; // If we are not targeting the default button, it is an "extra" button if (buttonId && buttonId !== this._defaultButtonId) { optionRoot = this._extraButtonSpecs[buttonId]; } // Camera access won't work in iOS if the `multiple` attribute is present on the file input optionRoot.multiple = false; // update the options if (optionRoot.validation.acceptFiles === null) { optionRoot.validation.acceptFiles = acceptIosCamera; } else { optionRoot.validation.acceptFiles += "," + acceptIosCamera; } // update the already-created button qq.each(this._buttons, function(idx, button) { if (button.getButtonId() === buttonId) { button.setMultiple(optionRoot.multiple); button.setAcceptFiles(optionRoot.acceptFiles); return false; } }); } }, // Get the validation options for this button. Could be the default validation option // or a specific one assigned to this particular button. _getValidationBase: function(buttonId) { var extraButtonSpec = this._extraButtonSpecs[buttonId]; return extraButtonSpec ? extraButtonSpec.validation : this._options.validation; } }; }()); /*globals qq*/ (function(){ "use strict"; qq.FineUploaderBasic = function(o) { // These options define FineUploaderBasic mode. this._options = { debug: false, button: null, multiple: true, maxConnections: 3, disableCancelForFormUploads: false, autoUpload: true, request: { endpoint: "/server/upload", params: {}, paramsInBody: true, customHeaders: {}, forceMultipart: true, inputName: "qqfile", uuidName: "qquuid", totalFileSizeName: "qqtotalfilesize", filenameParam: "qqfilename" }, validation: { allowedExtensions: [], sizeLimit: 0, minSizeLimit: 0, itemLimit: 0, stopOnFirstInvalidFile: true, acceptFiles: null, image: { maxHeight: 0, maxWidth: 0, minHeight: 0, minWidth: 0 } }, callbacks: { onSubmit: function(id, name){}, onSubmitted: function(id, name){}, onComplete: function(id, name, responseJSON, maybeXhr){}, onCancel: function(id, name){}, onUpload: function(id, name){}, onUploadChunk: function(id, name, chunkData){}, onUploadChunkSuccess: function(id, chunkData, responseJSON, xhr){}, onResume: function(id, fileName, chunkData){}, onProgress: function(id, name, loaded, total){}, onError: function(id, name, reason, maybeXhrOrXdr) {}, onAutoRetry: function(id, name, attemptNumber) {}, onManualRetry: function(id, name) {}, onValidateBatch: function(fileOrBlobData) {}, onValidate: function(fileOrBlobData) {}, onSubmitDelete: function(id) {}, onDelete: function(id){}, onDeleteComplete: function(id, xhrOrXdr, isError){}, onPasteReceived: function(blob) {}, onStatusChange: function(id, oldStatus, newStatus) {}, onSessionRequestComplete: function(response, success, xhrOrXdr) {} }, messages: { typeError: "{file} has an invalid extension. Valid extension(s): {extensions}.", sizeError: "{file} is too large, maximum file size is {sizeLimit}.", minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.", emptyError: "{file} is empty, please select files again without it.", noFilesError: "No files to upload.", tooManyItemsError: "Too many items ({netItems}) would be uploaded. Item limit is {itemLimit}.", maxHeightImageError: "Image is too tall.", maxWidthImageError: "Image is too wide.", minHeightImageError: "Image is not tall enough.", minWidthImageError: "Image is not wide enough.", retryFailTooManyItems: "Retry failed - you have reached your file limit.", onLeave: "The files are being uploaded, if you leave now the upload will be canceled." }, retry: { enableAuto: false, maxAutoAttempts: 3, autoAttemptDelay: 5, preventRetryResponseProperty: "preventRetry" }, classes: { buttonHover: "qq-upload-button-hover", buttonFocus: "qq-upload-button-focus" }, chunking: { enabled: false, partSize: 2000000, paramNames: { partIndex: "qqpartindex", partByteOffset: "qqpartbyteoffset", chunkSize: "qqchunksize", totalFileSize: "qqtotalfilesize", totalParts: "qqtotalparts" } }, resume: { enabled: false, id: null, cookiesExpireIn: 7, //days paramNames: { resuming: "qqresume" } }, formatFileName: function(fileOrBlobName) { if (fileOrBlobName !== undefined && fileOrBlobName.length > 33) { fileOrBlobName = fileOrBlobName.slice(0, 19) + "..." + fileOrBlobName.slice(-14); } return fileOrBlobName; }, text: { defaultResponseError: "Upload failure reason unknown", sizeSymbols: ["kB", "MB", "GB", "TB", "PB", "EB"] }, deleteFile : { enabled: false, method: "DELETE", endpoint: "/server/upload", customHeaders: {}, params: {} }, cors: { expected: false, sendCredentials: false, allowXdr: false }, blobs: { defaultName: "misc_data" }, paste: { targetElement: null, defaultName: "pasted_image" }, camera: { ios: false, // if ios is true: button is null means target the default button, otherwise target the button specified button: null }, // This refers to additional upload buttons to be handled by Fine Uploader. // Each element is an object, containing `element` as the only required // property. The `element` must be a container that will ultimately // contain an invisible `` created by Fine Uploader. // Optional properties of each object include `multiple`, `validation`, // and `folders`. extraButtons: [], // Depends on the session module. Used to query the server for an initial file list // during initialization and optionally after a `reset`. session: { endpoint: null, params: {}, customHeaders: {}, refreshOnReset: true } }; // Replace any default options with user defined ones qq.extend(this._options, o, true); this._buttons = []; this._extraButtonSpecs = {}; this._buttonIdsForFileIds = []; this._wrapCallbacks(); this._disposeSupport = new qq.DisposeSupport(); this._storedIds = []; this._autoRetries = []; this._retryTimeouts = []; this._preventRetries = []; this._thumbnailUrls = []; this._netUploadedOrQueued = 0; this._netUploaded = 0; this._uploadData = this._createUploadDataTracker(); this._paramsStore = this._createParamsStore("request"); this._deleteFileParamsStore = this._createParamsStore("deleteFile"); this._endpointStore = this._createEndpointStore("request"); this._deleteFileEndpointStore = this._createEndpointStore("deleteFile"); this._handler = this._createUploadHandler(); this._deleteHandler = qq.DeleteFileAjaxRequester && this._createDeleteHandler(); if (this._options.button) { this._defaultButtonId = this._createUploadButton({element: this._options.button}).getButtonId(); } this._generateExtraButtonSpecs(); this._handleCameraAccess(); if (this._options.paste.targetElement) { if (qq.PasteSupport) { this._pasteHandler = this._createPasteHandler(); } else { qq.log("Paste support module not found", "info"); } } this._preventLeaveInProgress(); this._imageGenerator = qq.ImageGenerator && new qq.ImageGenerator(qq.bind(this.log, this)); this._refreshSessionData(); }; // Define the private & public API methods. qq.FineUploaderBasic.prototype = qq.basePublicApi; qq.extend(qq.FineUploaderBasic.prototype, qq.basePrivateApi); }()); /*globals qq, XDomainRequest*/ /** Generic class for sending non-upload ajax requests and handling the associated responses **/ qq.AjaxRequester = function (o) { "use strict"; var log, shouldParamsBeInQueryString, queue = [], requestData = [], options = { validMethods: ["POST"], method: "POST", contentType: "application/x-www-form-urlencoded", maxConnections: 3, customHeaders: {}, endpointStore: {}, paramsStore: {}, mandatedParams: {}, allowXRequestedWithAndCacheControl: true, successfulResponseCodes: { "DELETE": [200, 202, 204], "POST": [200, 204], "GET": [200] }, cors: { expected: false, sendCredentials: false }, log: function (str, level) {}, onSend: function (id) {}, onComplete: function (id, xhrOrXdr, isError) {} }; qq.extend(options, o); log = options.log; if (qq.indexOf(options.validMethods, options.method) < 0) { throw new Error("'" + options.method + "' is not a supported method for this type of request!"); } // [Simple methods](http://www.w3.org/TR/cors/#simple-method) // are defined by the W3C in the CORS spec as a list of methods that, in part, // make a CORS request eligible to be exempt from preflighting. function isSimpleMethod() { return qq.indexOf(["GET", "POST", "HEAD"], options.method) >= 0; } // [Simple headers](http://www.w3.org/TR/cors/#simple-header) // are defined by the W3C in the CORS spec as a list of headers that, in part, // make a CORS request eligible to be exempt from preflighting. function containsNonSimpleHeaders(headers) { var containsNonSimple = false; qq.each(containsNonSimple, function(idx, header) { if (qq.indexOf(["Accept", "Accept-Language", "Content-Language", "Content-Type"], header) < 0) { containsNonSimple = true; return false; } }); return containsNonSimple; } function isXdr(xhr) { //The `withCredentials` test is a commonly accepted way to determine if XHR supports CORS. return options.cors.expected && xhr.withCredentials === undefined; } // Returns either a new `XMLHttpRequest` or `XDomainRequest` instance. function getCorsAjaxTransport() { var xhrOrXdr; if (window.XMLHttpRequest || window.ActiveXObject) { xhrOrXdr = qq.createXhrInstance(); if (xhrOrXdr.withCredentials === undefined) { xhrOrXdr = new XDomainRequest(); } } return xhrOrXdr; } // Returns either a new XHR/XDR instance, or an existing one for the associated `File` or `Blob`. function getXhrOrXdr(id, dontCreateIfNotExist) { var xhrOrXdr = requestData[id].xhr; if (!xhrOrXdr && !dontCreateIfNotExist) { if (options.cors.expected) { xhrOrXdr = getCorsAjaxTransport(); } else { xhrOrXdr = qq.createXhrInstance(); } requestData[id].xhr = xhrOrXdr; } return xhrOrXdr; } // Removes element from queue, sends next request function dequeue(id) { var i = qq.indexOf(queue, id), max = options.maxConnections, nextId; delete requestData[id]; queue.splice(i, 1); if (queue.length >= max && i < max) { nextId = queue[max - 1]; sendRequest(nextId); } } function onComplete(id, xdrError) { var xhr = getXhrOrXdr(id), method = options.method, isError = xdrError === true; dequeue(id); if (isError) { log(method + " request for " + id + " has failed", "error"); } else if (!isXdr(xhr) && !isResponseSuccessful(xhr.status)) { isError = true; log(method + " request for " + id + " has failed - response code " + xhr.status, "error"); } options.onComplete(id, xhr, isError); } function getParams(id) { var onDemandParams = requestData[id].additionalParams, mandatedParams = options.mandatedParams, params; if (options.paramsStore.getParams) { params = options.paramsStore.getParams(id); } if (onDemandParams) { qq.each(onDemandParams, function (name, val) { params = params || {}; params[name] = val; }); } if (mandatedParams) { qq.each(mandatedParams, function (name, val) { params = params || {}; params[name] = val; }); } return params; } function sendRequest(id) { var xhr = getXhrOrXdr(id), method = options.method, params = getParams(id), payload = requestData[id].payload, url; options.onSend(id); url = createUrl(id, params); // XDR and XHR status detection APIs differ a bit. if (isXdr(xhr)) { xhr.onload = getXdrLoadHandler(id); xhr.onerror = getXdrErrorHandler(id); } else { xhr.onreadystatechange = getXhrReadyStateChangeHandler(id); } // The last parameter is assumed to be ignored if we are actually using `XDomainRequest`. xhr.open(method, url, true); // Instruct the transport to send cookies along with the CORS request, // unless we are using `XDomainRequest`, which is not capable of this. if (options.cors.expected && options.cors.sendCredentials && !isXdr(xhr)) { xhr.withCredentials = true; } setHeaders(id); log("Sending " + method + " request for " + id); if (payload) { xhr.send(payload); } else if (shouldParamsBeInQueryString || !params) { xhr.send(); } else if (params && options.contentType.toLowerCase().indexOf("application/x-www-form-urlencoded") >= 0) { xhr.send(qq.obj2url(params, "")); } else if (params && options.contentType.toLowerCase().indexOf("application/json") >= 0) { xhr.send(JSON.stringify(params)); } else { xhr.send(params); } } function createUrl(id, params) { var endpoint = options.endpointStore.getEndpoint(id), addToPath = requestData[id].addToPath; /*jshint -W116,-W041 */ if (addToPath != undefined) { endpoint += "/" + addToPath; } if (shouldParamsBeInQueryString && params) { return qq.obj2url(params, endpoint); } else { return endpoint; } } // Invoked by the UA to indicate a number of possible states that describe // a live `XMLHttpRequest` transport. function getXhrReadyStateChangeHandler(id) { return function () { if (getXhrOrXdr(id).readyState === 4) { onComplete(id); } }; } // This will be called by IE to indicate **success** for an associated // `XDomainRequest` transported request. function getXdrLoadHandler(id) { return function () { onComplete(id); }; } // This will be called by IE to indicate **failure** for an associated // `XDomainRequest` transported request. function getXdrErrorHandler(id) { return function () { onComplete(id, true); }; } function setHeaders(id) { var xhr = getXhrOrXdr(id), customHeaders = options.customHeaders, onDemandHeaders = requestData[id].additionalHeaders || {}, method = options.method, allHeaders = {}; // If XDomainRequest is being used, we can't set headers, so just ignore this block. if (!isXdr(xhr)) { // Only attempt to add X-Requested-With & Cache-Control if permitted if (options.allowXRequestedWithAndCacheControl) { // Do not add X-Requested-With & Cache-Control if this is a cross-origin request // OR the cross-origin request contains a non-simple method or header. // This is done to ensure a preflight is not triggered exclusively based on the // addition of these 2 non-simple headers. if (!options.cors.expected || (!isSimpleMethod() || containsNonSimpleHeaders(customHeaders))) { xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xhr.setRequestHeader("Cache-Control", "no-cache"); } } if (options.contentType && (method === "POST" || method === "PUT")) { xhr.setRequestHeader("Content-Type", options.contentType); } qq.extend(allHeaders, customHeaders); qq.extend(allHeaders, onDemandHeaders); qq.each(allHeaders, function (name, val) { xhr.setRequestHeader(name, val); }); } } function isResponseSuccessful(responseCode) { return qq.indexOf(options.successfulResponseCodes[options.method], responseCode) >= 0; } function prepareToSend(id, addToPath, additionalParams, additionalHeaders, payload) { requestData[id] = { addToPath: addToPath, additionalParams: additionalParams, additionalHeaders: additionalHeaders, payload: payload }; var len = queue.push(id); // if too many active connections, wait... if (len <= options.maxConnections) { sendRequest(id); } } shouldParamsBeInQueryString = options.method === "GET" || options.method === "DELETE"; qq.extend(this, { // Start the process of sending the request. The ID refers to the file associated with the request. initTransport: function(id) { var path, params, headers, payload; return { // Optionally specify the end of the endpoint path for the request. withPath: function(appendToPath) { path = appendToPath; return this; }, // Optionally specify additional parameters to send along with the request. // These will be added to the query string for GET/DELETE requests or the payload // for POST/PUT requests. The Content-Type of the request will be used to determine // how these parameters should be formatted as well. withParams: function(additionalParams) { params = additionalParams; return this; }, // Optionally specify additional headers to send along with the request. withHeaders: function(additionalHeaders) { headers = additionalHeaders; return this; }, // Optionally specify a payload/body for the request. withPayload: function(thePayload) { payload = thePayload; return this; }, // Send the constructed request. send: function() { prepareToSend(id, path, params, headers, payload); } }; } }); }; /*globals qq*/ /** * Base upload handler module. Delegates to more specific handlers. * * @param o Options. Passed along to the specific handler submodule as well. * @param namespace [optional] Namespace for the specific handler. */ qq.UploadHandler = function(o, namespace) { "use strict"; var queue = [], options, log, handlerImpl; // Default options, can be overridden by the user options = { debug: false, forceMultipart: true, paramsInBody: false, paramsStore: {}, endpointStore: {}, filenameParam: "qqfilename", cors: { expected: false, sendCredentials: false }, maxConnections: 3, // maximum number of concurrent uploads uuidName: "qquuid", totalFileSizeName: "qqtotalfilesize", chunking: { enabled: false, partSize: 2000000, //bytes paramNames: { partIndex: "qqpartindex", partByteOffset: "qqpartbyteoffset", chunkSize: "qqchunksize", totalParts: "qqtotalparts", filename: "qqfilename" } }, resume: { enabled: false, id: null, cookiesExpireIn: 7, //days paramNames: { resuming: "qqresume" } }, log: function(str, level) {}, onProgress: function(id, fileName, loaded, total){}, onComplete: function(id, fileName, response, xhr){}, onCancel: function(id, fileName){}, onUpload: function(id, fileName){}, onUploadChunk: function(id, fileName, chunkData){}, onUploadChunkSuccess: function(id, chunkData, response, xhr){}, onAutoRetry: function(id, fileName, response, xhr){}, onResume: function(id, fileName, chunkData){}, onUuidChanged: function(id, newUuid){}, getName: function(id) {} }; qq.extend(options, o); log = options.log; /** * Removes element from queue, starts upload of next */ function dequeue(id) { var i = qq.indexOf(queue, id), max = options.maxConnections, nextId; if (i >= 0) { queue.splice(i, 1); if (queue.length >= max && i < max){ nextId = queue[max-1]; handlerImpl.upload(nextId); } } } function cancelSuccess(id) { log("Cancelling " + id); options.paramsStore.remove(id); dequeue(id); } function determineHandlerImpl() { var handlerType = namespace ? qq[namespace] : qq, handlerModuleSubtype = qq.supportedFeatures.ajaxUploading ? "Xhr" : "Form"; handlerImpl = new handlerType["UploadHandler" + handlerModuleSubtype]( options, {onUploadComplete: dequeue, onUuidChanged: options.onUuidChanged, getName: options.getName, getUuid: options.getUuid, getSize: options.getSize, log: log} ); } qq.extend(this, { /** * Adds file or file input to the queue * @returns id **/ add: function(id, file) { return handlerImpl.add.apply(this, arguments); }, /** * Sends the file identified by id */ upload: function(id) { var len = queue.push(id); // if too many active uploads, wait... if (len <= options.maxConnections){ handlerImpl.upload(id); return true; } return false; }, retry: function(id) { var i = qq.indexOf(queue, id); if (i >= 0) { return handlerImpl.upload(id, true); } else { return this.upload(id); } }, /** * Cancels file upload by id */ cancel: function(id) { var cancelRetVal = handlerImpl.cancel(id); if (cancelRetVal instanceof qq.Promise) { cancelRetVal.then(function() { cancelSuccess(id); }); } else if (cancelRetVal !== false) { cancelSuccess(id); } }, /** * Cancels all queued or in-progress uploads */ cancelAll: function() { var self = this, queueCopy = []; qq.extend(queueCopy, queue); qq.each(queueCopy, function(idx, fileId) { self.cancel(fileId); }); queue = []; }, getFile: function(id) { if (handlerImpl.getFile) { return handlerImpl.getFile(id); } }, getInput: function(id) { if (handlerImpl.getInput) { return handlerImpl.getInput(id); } }, reset: function() { log("Resetting upload handler"); this.cancelAll(); queue = []; handlerImpl.reset(); }, expunge: function(id) { if (this.isValid(id)) { return handlerImpl.expunge(id); } }, /** * Determine if the file exists. */ isValid: function(id) { return handlerImpl.isValid(id); }, getResumableFilesData: function() { if (handlerImpl.getResumableFilesData) { return handlerImpl.getResumableFilesData(); } return []; }, /** * This may or may not be implemented, depending on the handler. For handlers where a third-party ID is * available (such as the "key" for Amazon S3), this will return that value. Otherwise, the return value * will be undefined. * * @param id Internal file ID * @returns {*} Some identifier used by a 3rd-party service involved in the upload process */ getThirdPartyFileId: function(id) { if (handlerImpl.getThirdPartyFileId && this.isValid(id)) { return handlerImpl.getThirdPartyFileId(id); } }, /** * Attempts to pause the associated upload if the specific handler supports this and the file is "valid". * @param id ID of the upload/file to pause * @returns {boolean} true if the upload was paused */ pause: function(id) { if (handlerImpl.pause && this.isValid(id) && handlerImpl.pause(id)) { dequeue(id); return true; } } }); determineHandlerImpl(); }; /* globals qq */ /** * Common APIs exposed to creators of upload via form/iframe handlers. This is reused and possibly overridden * in some cases by specific form upload handlers. * * @param internalApi Object that will be filled with internal API methods * @param spec Options/static values used to configure this handler * @param proxy Callbacks & methods used to query for or push out data/changes * @constructor */ qq.UploadHandlerFormApi = function(internalApi, spec, proxy) { "use strict"; var formHandlerInstanceId = qq.getUniqueId(), onloadCallbacks = {}, detachLoadEvents = {}, postMessageCallbackTimers = {}, publicApi = this, isCors = spec.isCors, fileState = spec.fileState, inputName = spec.inputName, onCancel = proxy.onCancel, onUuidChanged = proxy.onUuidChanged, getName = proxy.getName, getUuid = proxy.getUuid, log = proxy.log, corsMessageReceiver = new qq.WindowReceiveMessage({log: log}); /** * Remove any trace of the file from the handler. * * @param id ID of the associated file */ function expungeFile(id) { delete detachLoadEvents[id]; delete fileState[id]; // If we are dealing with CORS, we might still be waiting for a response from a loaded iframe. // In that case, terminate the timer waiting for a message from the loaded iframe // and stop listening for any more messages coming from this iframe. if (isCors) { clearTimeout(postMessageCallbackTimers[id]); delete postMessageCallbackTimers[id]; corsMessageReceiver.stopReceivingMessages(id); } var iframe = document.getElementById(internalApi.getIframeName(id)); if (iframe) { // To cancel request set src to something else. We use src="javascript:false;" // because it doesn't trigger ie6 prompt on https iframe.setAttribute("src", "java" + String.fromCharCode(115) + "cript:false;"); //deal with "JSLint: javascript URL" warning, which apparently cannot be turned off qq(iframe).remove(); } } /** * If we are in CORS mode, we must listen for messages (containing the server response) from the associated * iframe, since we cannot directly parse the content of the iframe due to cross-origin restrictions. * * @param iframe Listen for messages on this iframe. * @param callback Invoke this callback with the message from the iframe. */ function registerPostMessageCallback(iframe, callback) { var iframeName = iframe.id, fileId = getFileIdForIframeName(iframeName), uuid = getUuid(fileId); onloadCallbacks[uuid] = callback; // When the iframe has loaded (after the server responds to an upload request) // declare the attempt a failure if we don't receive a valid message shortly after the response comes in. detachLoadEvents[fileId] = qq(iframe).attach("load", function() { if (fileState[fileId].input) { log("Received iframe load event for CORS upload request (iframe name " + iframeName + ")"); postMessageCallbackTimers[iframeName] = setTimeout(function() { var errorMessage = "No valid message received from loaded iframe for iframe name " + iframeName; log(errorMessage, "error"); callback({ error: errorMessage }); }, 1000); } }); // Listen for messages coming from this iframe. When a message has been received, cancel the timer // that declares the upload a failure if a message is not received within a reasonable amount of time. corsMessageReceiver.receiveMessage(iframeName, function(message) { log("Received the following window message: '" + message + "'"); var fileId = getFileIdForIframeName(iframeName), response = internalApi.parseJsonResponse(fileId, message), uuid = response.uuid, onloadCallback; if (uuid && onloadCallbacks[uuid]) { log("Handling response for iframe name " + iframeName); clearTimeout(postMessageCallbackTimers[iframeName]); delete postMessageCallbackTimers[iframeName]; internalApi.detachLoadEvent(iframeName); onloadCallback = onloadCallbacks[uuid]; delete onloadCallbacks[uuid]; corsMessageReceiver.stopReceivingMessages(iframeName); onloadCallback(response); } else if (!uuid) { log("'" + message + "' does not contain a UUID - ignoring."); } }); } /** * Generates an iframe to be used as a target for upload-related form submits. This also adds the iframe * to the current `document`. Note that the iframe is hidden from view. * * @param name Name of the iframe. * @returns {HTMLIFrameElement} The created iframe */ function initIframeForUpload(name) { var iframe = qq.toElement("
    webcit-dfsg.orig/static/t/no_new_msgs.html0000644000175000017500000000011613223341037020733 0ustar michaelmichael
    webcit-dfsg.orig/static/t/load_attachments.html0000644000175000017500000000002613223341037021727 0ustar michaelmichael webcit-dfsg.orig/static/t/mailsummary_json_section.html0000644000175000017500000000033013223341037023530 0ustar michaelmichael[,"","",,"", ] webcit-dfsg.orig/static/t/paging/0000755000175000017500000000000013223341037016776 5ustar michaelmichaelwebcit-dfsg.orig/static/t/paging/failed_hook.html0000644000175000017500000000122113223341037022124 0ustar michaelmichael webcit-dfsg.orig/static/t/paging/anchor.html0000644000175000017500000000103013223341037021130 0ustar michaelmichael webcit-dfsg.orig/static/t/paging/now.html0000644000175000017500000000032513223341037020467 0ustar michaelmichael webcit-dfsg.orig/static/t/listsub/0000755000175000017500000000000013223341037017216 5ustar michaelmichaelwebcit-dfsg.orig/static/t/listsub/subscribeable_rooms.html0000644000175000017500000000020113223341037024121 0ustar michaelmichael webcit-dfsg.orig/static/t/listsub/display.html0000644000175000017500000000741713223341037021562 0ustar michaelmichael <?_("List subscription")>




    :

    ""


    :

    • already successfully confirmed your subscribe/unsubscribe request and are attempting to do it again.")>




       





    webcit-dfsg.orig/static/t/prefs/0000755000175000017500000000000013223341037016650 5ustar michaelmichaelwebcit-dfsg.orig/static/t/prefs/section_msg_handle_select.html0000644000175000017500000000017713223341037024727 0ustar michaelmichael webcit-dfsg.orig/static/t/prefs/section_msg_sender_name_select.html0000644000175000017500000000017513223341037025752 0ustar michaelmichael webcit-dfsg.orig/static/t/prefs/pushemail.html0000644000175000017500000000403613223341037021530 0ustar michaelmichael

    >

    >

    >

    >



    webcit-dfsg.orig/static/t/prefs/box.html0000644000175000017500000003332413223341037020333 0ustar michaelmichael
    >     >
    >     >
    >     >

    ">
    >     >
    > >
    >     >
    ">  ">
    webcit-dfsg.orig/static/t/prefs/section_msg_sender_from_select.html0000644000175000017500000000024513223341037025773 0ustar michaelmichael webcit-dfsg.orig/static/t/prefs/section_icontheme_select.html0000644000175000017500000000017313223341037024575 0ustar michaelmichael webcit-dfsg.orig/static/t/edit/0000755000175000017500000000000013223341037016456 5ustar michaelmichaelwebcit-dfsg.orig/static/t/edit/message/0000755000175000017500000000000013223341037020102 5ustar michaelmichaelwebcit-dfsg.orig/static/t/edit/message/upl_att.js0000644000175000017500000000026113223341037022107 0ustar michaelmichael{ "Error" : true "success": true, "UploadLength": }webcit-dfsg.orig/static/t/edit/message/json_attlist.js0000644000175000017500000000010613223341037023152 0ustar michaelmichael[ ]webcit-dfsg.orig/static/t/edit/message/attachments_pane.html0000644000175000017500000000652213223341037024313 0ustar michaelmichael

     

    webcit-dfsg.orig/static/t/edit/message/section_attach_list.js0000644000175000017500000000024113223341037024460 0ustar michaelmichael{ "name":"", "uuid":"", "size": } webcit-dfsg.orig/static/t/edit/message.html0000644000175000017500000001341413223341037020773 0ustar michaelmichael
    "> "> "> ">
    " size=45 maxlength=1000 />
    " size=45 maxlength=1000 />
    " size=45 maxlength=1000 />
    " size=45 maxlength=70>
    webcit-dfsg.orig/static/t/edit/markdown_epic.html0000644000175000017500000001022113223341037022162 0ustar michaelmichael

    "> "> "> ">
    webcit-dfsg.orig/static/t/box/0000755000175000017500000000000013223341037016321 5ustar michaelmichaelwebcit-dfsg.orig/static/t/box/begin.html0000644000175000017500000000022213223341037020267 0ustar michaelmichael
    webcit-dfsg.orig/static/t/box/end.html0000644000175000017500000000001513223341037017751 0ustar michaelmichael
    webcit-dfsg.orig/static/t/box/begin_nt.html0000644000175000017500000000030713223341037020774 0ustar michaelmichael " onMouseDown="CtdlMoveMsgMouseDown(event)"> webcit-dfsg.orig/static/t/files.html0000644000175000017500000000345613223341037017531 0ustar michaelmichael
    webcit-dfsg.orig/static/t/view_submessage.html0000644000175000017500000000054113223341037021607 0ustar michaelmichael
    ***

    webcit-dfsg.orig/static/t/who.html0000644000175000017500000000215713223341037017221 0ustar michaelmichael
    webcit-dfsg.orig/static/t/iconbar/0000755000175000017500000000000013223341037017146 5ustar michaelmichaelwebcit-dfsg.orig/static/t/iconbar/edit.html0000644000175000017500000001543213223341037020766 0ustar michaelmichael
    webcit-dfsg.orig/static/t/box/begin_1.html0000644000175000017500000000005113223341037020507 0ustar michaelmichael
    webcit-dfsg.orig/static/t/box/begin_2.html0000644000175000017500000000004013223341037020506 0ustar michaelmichael
    webcit-dfsg.orig/static/t/authpopup_finished.html0000644000175000017500000000021413223341037022312 0ustar michaelmichael webcit-dfsg.orig/static/t/display_main_menu.html0000644000175000017500000000121413223341037022112 0ustar michaelmichael
    webcit-dfsg.orig/static/t/msg_listselector_top.html0000644000175000017500000000125213223341037022663 0ustar michaelmichael

    >      >

    webcit-dfsg.orig/static/t/knrooms_rooms.html0000644000175000017500000000130413223341037021324 0ustar michaelmichael

     ">">
    > > >
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     
    >     >
     

    "> ">
    webcit-dfsg.orig/static/t/iconbar/user.css0000644000175000017500000000273513223341037020645 0ustar michaelmichael#global { left: 16%; } # { display: none !important; } webcit-dfsg.orig/static/t/iconbar/save.html0000644000175000017500000000077313223341037021001 0ustar michaelmichael
      (
    in order for changes to take effect")>)
    webcit-dfsg.orig/static/t/addressbook/0000755000175000017500000000000013223341037020031 5ustar michaelmichaelwebcit-dfsg.orig/static/t/addressbook/list_entry.html0000644000175000017500000000031713223341037023114 0ustar michaelmichael webcit-dfsg.orig/static/t/addressbook/namelist_button.html0000644000175000017500000000021713223341037024126 0ustar michaelmichael" onClick="AddContactsToTarget($(''),$('whichaddr'));"> webcit-dfsg.orig/static/t/addressbook/list.html0000644000175000017500000000142313223341037021672 0ustar michaelmichael
    webcit-dfsg.orig/static/t/addressbook/popup.html0000644000175000017500000000032113223341037022056 0ustar michaelmichael webcit-dfsg.orig/static/t/addressbook/namelist_entry.html0000644000175000017500000000007713223341037023760 0ustar michaelmichael webcit-dfsg.orig/static/t/addressbook/namelist.html0000644000175000017500000000043713223341037022537 0ustar michaelmichael
    webcit-dfsg.orig/static/t/newstartpage.html0000644000175000017500000000076113223341037021127 0ustar michaelmichael


    ).

    Back...
    webcit-dfsg.orig/static/t/section_mailsummary.html0000644000175000017500000000044113223341037022502 0ustar michaelmichael
    webcit-dfsg.orig/static/t/who/0000755000175000017500000000000013223341037016326 5ustar michaelmichaelwebcit-dfsg.orig/static/t/who/summary.html0000644000175000017500000000025213223341037020710 0ustar michaelmichael
     &SortBy=">" />  &SortBy=">" />  &SortBy=">" />  &SortBy=">" />
    webcit-dfsg.orig/static/t/who/edit.html0000644000175000017500000000263513223341037020147 0ustar michaelmichael

    ">
    ">
    ">
    ">
    webcit-dfsg.orig/static/t/who/iconbar_section.html0000644000175000017500000000023413223341037022354 0ustar michaelmichael
  • ">
  • webcit-dfsg.orig/static/t/who/section.html0000644000175000017500000000333613223341037020665 0ustar michaelmichael   (&edit_config_button=Edit+configuration&nonce=">)  (&edit_abe_button=Edit+address+book+entry">) (<?_()" title=""> "> (p) (<?_(s )" title="(s )"> (<?_()"> "> []

    webcit-dfsg.orig/static/t/who/active_smtpsessions.html0000644000175000017500000000020713223341037023320 0ustar michaelmichael
    webcit-dfsg.orig/static/t/who/summary_section.html0000644000175000017500000000161513223341037022440 0ustar michaelmichael "> (p) (<?_(s )"> (<?_()"> "> []
    webcit-dfsg.orig/static/t/who/bio.html0000644000175000017500000000150313223341037017764 0ustar michaelmichael
    " alt="" border=0>

    webcit-dfsg.orig/static/t/who/activesmtpsessions_one.html0000644000175000017500000000067313223341037024031 0ustar michaelmichael

      webcit-dfsg.orig/static/t/who/list_static_header.html0000644000175000017500000000005513223341037023046 0ustar michaelmichael webcit-dfsg.orig/static/t/who/iconbar.html0000644000175000017500000000006113223341037020626 0ustar michaelmichael webcit-dfsg.orig/static/t/who/box_list_static.html0000644000175000017500000000044113223341037022405 0ustar michaelmichael
    webcit-dfsg.orig/static/t/floors_edit_one.html0000644000175000017500000000216213223341037021572 0ustar michaelmichael

    ">
    ">
    webcit-dfsg.orig/static/t/login.html0000644000175000017500000000131713223341037017531 0ustar michaelmichael
    webcit-dfsg.orig/static/t/paging.html0000644000175000017500000000014713223341037017666 0ustar michaelmichael webcit-dfsg.orig/static/t/logout.html0000644000175000017500000000071713223341037017735 0ustar michaelmichael
    webcit-dfsg.orig/static/t/searchomatic.html0000644000175000017500000000060113223341037021056 0ustar michaelmichael
    type="text" name="query" id="srchquery" size="15" maxlength="128" class="inputbox">
    webcit-dfsg.orig/static/t/get_logged_in.html0000644000175000017500000001146613223341037021215 0ustar michaelmichael

    webcit-dfsg.orig/static/t/openid_manual_create.html0000644000175000017500000000163013223341037022555 0ustar michaelmichael
    ">
    " class="logbutton" > " class="logbutton">
    webcit-dfsg.orig/static/t/select_messageindex_all.html0000644000175000017500000000032313223341037023260 0ustar michaelmichael webcit-dfsg.orig/static/t/empty.html0000644000175000017500000000011013223341037017545 0ustar michaelmichael Empty Page webcit-dfsg.orig/static/t/files/0000755000175000017500000000000013223341037016633 5ustar michaelmichaelwebcit-dfsg.orig/static/t/files/section_onefile_picview.html0000644000175000017500000000044513223341037024417 0ustar michaelmichael
    ">
    download_file/
    webcit-dfsg.orig/static/t/files/section_onefile.html0000644000175000017500000000147513223341037022675 0ustar michaelmichael "> "><?_(">
    webcit-dfsg.orig/static/t/files/picview.js0000644000175000017500000000223313223341037020637 0ustar michaelmichael
    webcit-dfsg.orig/static/t/files/graphicsupload.html0000644000175000017500000000146713223341037022536 0ustar michaelmichael
    ">

    ">
    ">   " >   ">
    webcit-dfsg.orig/static/t/readinfo.html0000644000175000017500000000043213223341037020205 0ustar michaelmichael
    webcit-dfsg.orig/static/t/knrooms.html0000644000175000017500000000020513223341037020104 0ustar michaelmichael
    webcit-dfsg.orig/static/t/room/0000755000175000017500000000000013223341037016505 5ustar michaelmichaelwebcit-dfsg.orig/static/t/room/zap_this.html0000644000175000017500000000107713223341037021221 0ustar michaelmichael

    ">  ">
    webcit-dfsg.orig/static/t/room/display_private.html0000644000175000017500000000225613223341037022577 0ustar michaelmichael

    " maxlength="128">
    ">  ">
    webcit-dfsg.orig/static/t/room/edit_info.html0000644000175000017500000000140713223341037021335 0ustar michaelmichael
     
    webcit-dfsg.orig/static/t/room/result_json.html0000644000175000017500000000014613223341037021743 0ustar michaelmichael{ Message: "", success: } webcit-dfsg.orig/static/t/room/edit.html0000644000175000017500000000117413223341037020323 0ustar michaelmichael
    webcit-dfsg.orig/static/t/room/edit/0000755000175000017500000000000013223341037017432 5ustar michaelmichaelwebcit-dfsg.orig/static/t/room/edit/tab_admin.html0000644000175000017500000000073413223341037022242 0ustar michaelmichael webcit-dfsg.orig/static/t/room/edit/alias_domainname.html0000644000175000017500000000010513223341037023575 0ustar michaelmichael webcit-dfsg.orig/static/t/room/edit/rssclient_removal.html0000644000175000017500000000033013223341037024047 0ustar michaelmichael "> webcit-dfsg.orig/static/t/room/edit/er_config_tab_room_option_list.html0000644000175000017500000000017113223341037026557 0ustar michaelmichael webcit-dfsg.orig/static/t/room/edit/alias_removal.html0000644000175000017500000000027213223341037023137 0ustar michaelmichael?last_tabsel="> webcit-dfsg.orig/static/t/room/edit/tab_access.html0000644000175000017500000000376013223341037022415 0ustar michaelmichael
    webcit-dfsg.orig/static/t/room/edit/tab_config.html0000644000175000017500000001514013223341037022414 0ustar michaelmichael
    ">
    • " maxlength="127" />
      • onChange="if (this.form.type[0].checked == true) { this.form.er_floor.disabled = false; }" />
      • onChange="if (this.form.type[1].checked == true) { this.form.er_floor.disabled = false; }" />
      • onChange="this.form.er_floor.disabled = false; { (this.form.type[2].checked == true) }" /> " maxlength="9" />
      • onChange="if (this.form.type[3].checked == true) { this.form.er_floor.disabled = false; }" />
      • onChange="if (this.form.type[4].checked == true) { this.form.er_floor.disabled = true; }" />
    • />
    • />
    • />
    • />
      • " maxlength="14" />
      • />
      • />
      • />
      • />
    • />
    • />
    • />
      • >
      • />
      • />
    • " maxlength="25" /'>
    " />   " />
    webcit-dfsg.orig/static/t/room/edit/shared_room_removal.html0000644000175000017500000000175313223341037024355 0ustar michaelmichael
    |" /> " /> ')"><?_("resend messages to this node")>
    webcit-dfsg.orig/static/t/room/edit/shared_room_add.html0000644000175000017500000000103013223341037023424 0ustar michaelmichael
    "> |" /> " />
    webcit-dfsg.orig/static/t/room/edit/tab_feed.html0000644000175000017500000000422013223341037022047 0ustar michaelmichael

    ">

     
    " />


    ">

    " />
    webcit-dfsg.orig/static/t/room/edit/submit.html0000644000175000017500000000006013223341037021617 0ustar michaelmichael webcit-dfsg.orig/static/t/room/edit/tab_listserv.html0000644000175000017500000001514413223341037023026 0ustar michaelmichael
    The contents of this room are being mailed as individual messages to the following list recipients:

    ")>

    "> ">

    The contents of this room are being mailed in digest form to the following list recipients:

    ")>

    "> ">


    "> ">


    >
    >
    >
    :///listsub
    "> ">

    "> "> ">

    "> "> @ ">

    webcit-dfsg.orig/static/t/room/edit/username_list.html0000644000175000017500000000004413223341037023170 0ustar michaelmichael webcit-dfsg.orig/static/t/room/edit/pop3client_removal.html0000644000175000017500000000101013223341037024115 0ustar michaelmichael ***** "> webcit-dfsg.orig/static/t/room/edit/participate_removal.html0000644000175000017500000000030313223341037024346 0ustar michaelmichael?last_tabsel="> webcit-dfsg.orig/static/t/room/edit/tab_expire.html0000644000175000017500000000600013223341037022436 0ustar michaelmichael

    ">

    />   
    /> 
    /> 
    /> 
    ">



    /> 
    /> 
    /> 
    ">

    " />   " />
    webcit-dfsg.orig/static/t/room/edit/editroom.html0000644000175000017500000000106013223341037022137 0ustar michaelmichael
    webcit-dfsg.orig/static/t/room/edit/select_alias.html0000644000175000017500000000022513223341037022747 0ustar michaelmichael webcit-dfsg.orig/static/t/room/edit/listrecp_removal.html0000644000175000017500000000025313223341037023672 0ustar michaelmichael"> webcit-dfsg.orig/static/t/room/edit/digestrecp_removal.html0000644000175000017500000000030213223341037024171 0ustar michaelmichael?last_tabsel="> webcit-dfsg.orig/static/t/room/edit/tab_share.html0000644000175000017500000000341413223341037022252 0ustar michaelmichael


    • (<?_("resend messages to this node")>)

    webcit-dfsg.orig/static/t/room/view_picture.html0000644000175000017500000000276013223341037022105 0ustar michaelmichael <?_(" src="roompic?room="> webcit-dfsg.orig/static/t/room/select_targetfloor.html0000644000175000017500000000014313223341037023260 0ustar michaelmichael webcit-dfsg.orig/static/t/room/create_blog.html0000644000175000017500000000772313223341037021652 0ustar michaelmichael

    "> ">

      ">

    webcit-dfsg.orig/static/t/room/zap_entry.html0000644000175000017500000000103513223341037021405 0ustar michaelmichael "> "> <?_("> <?_(">
    webcit-dfsg.orig/static/t/room/info_status_json.html0000644000175000017500000000005013223341037022755 0ustar michaelmichael{ Message: "" } webcit-dfsg.orig/static/t/room/zapped_list.html0000644000175000017500000000054313223341037021713 0ustar michaelmichael


    webcit-dfsg.orig/static/t/room/create.html0000644000175000017500000001227113223341037020641 0ustar michaelmichael

    ">   ">

    webcit-dfsg.orig/static/t/view_blog/0000755000175000017500000000000013223341037017506 5ustar michaelmichaelwebcit-dfsg.orig/static/t/view_blog/comment_box.html0000644000175000017500000000214113223341037022704 0ustar michaelmichael
    ">
    disabled="disabled" />
    webcit-dfsg.orig/static/t/view_blog/comment.html0000644000175000017500000000240113223341037022033 0ustar michaelmichael webcit-dfsg.orig/static/t/view_blog/older_posts.html0000644000175000017500000000024013223341037022725 0ustar michaelmichael webcit-dfsg.orig/static/t/view_blog/show_no_comments.html0000644000175000017500000000054413223341037023760 0ustar michaelmichael |
    webcit-dfsg.orig/static/t/view_blog/sitemap.xml0000644000175000017500000000015313223341037021671 0ustar michaelmichael/readfwd?go=?p= webcit-dfsg.orig/static/t/view_blog/show_commentlink.html0000644000175000017500000000034313223341037023754 0ustar michaelmichael |
    webcit-dfsg.orig/static/t/view_blog/newer_posts.html0000644000175000017500000000024013223341037022740 0ustar michaelmichael webcit-dfsg.orig/static/t/view_blog/post.html0000644000175000017500000000274313223341037021367 0ustar michaelmichael
    Posted by "> "" <> "> @ on ');"> []
    webcit-dfsg.orig/static/t/msg_listview.html0000644000175000017500000000206013223341037021131 0ustar michaelmichael






    webcit-dfsg.orig/static/t/mail_vnoteitem.html0000644000175000017500000000144313223341037021435 0ustar michaelmichael
    webcit-dfsg.orig/static/t/menu/0000755000175000017500000000000013223341037016475 5ustar michaelmichaelwebcit-dfsg.orig/static/t/menu/your_info.html0000644000175000017500000000126313223341037021376 0ustar michaelmichael
    webcit-dfsg.orig/static/t/menu/advanced_roomcommands.html0000644000175000017500000000142513223341037023710 0ustar michaelmichael
    webcit-dfsg.orig/static/t/menu/change_pw.html0000644000175000017500000000150013223341037021312 0ustar michaelmichael
    ">   ">
    webcit-dfsg.orig/static/t/menu/basic_commands.html0000644000175000017500000000274113223341037022331 0ustar michaelmichael
    • unread messages")>
    • ()
    • and new")>
    webcit-dfsg.orig/static/t/view_message_edit.html0000644000175000017500000000031413223341037022100 0ustar michaelmichael webcit-dfsg.orig/static/t/iconbar.html0000644000175000017500000000777413223341037020053 0ustar michaelmichael webcit-dfsg.orig/static/t/loggedinas.html0000644000175000017500000000025113223341037020531 0ustar michaelmichael
    webcit-dfsg.orig/static/t/start_of_new_msgs.html0000644000175000017500000000035213223341037022142 0ustar michaelmichael
    ↑↑↑ ↑↑↑            ↓↓↓ ↓↓↓
    webcit-dfsg.orig/static/t/msg_listselector_bottom.html0000644000175000017500000000126313223341037023367 0ustar michaelmichael

    >      >

    webcit-dfsg.orig/static/t/display_message.html0000644000175000017500000000033213223341037021566 0ustar michaelmichael
    ").style.visibility="visible" onMouseOut=document.getElementById("msg").style.visibility="hidden" >
    webcit-dfsg.orig/static/t/vnoteitem.html0000644000175000017500000000562113223341037020435 0ustar michaelmichael
    # ')" src="static/webcit_icons/closewindow.gif" alt="x" >
    webcit-dfsg.orig/static/t/navbar.html0000644000175000017500000001775313223341037017705 0ustar michaelmichael webcit-dfsg.orig/static/t/ical/0000755000175000017500000000000013223341037016441 5ustar michaelmichaelwebcit-dfsg.orig/static/t/ical/attachment/0000755000175000017500000000000013223341037020571 5ustar michaelmichaelwebcit-dfsg.orig/static/t/ical/attachment/display.html0000644000175000017500000000736313223341037023135 0ustar michaelmichael
    webcit-dfsg.orig/static/t/ical/attachment/display_conflict.html0000644000175000017500000000073513223341037025012 0ustar michaelmichael
    '' ''
    webcit-dfsg.orig/static/t/ical/attachment/display_attendees.html0000644000175000017500000000147513223341037025167 0ustar michaelmichael
    (x)
    webcit-dfsg.orig/static/t/msg/0000755000175000017500000000000013223341037016317 5ustar michaelmichaelwebcit-dfsg.orig/static/t/msg/confirm_move.html0000644000175000017500000000112013223341037021662 0ustar michaelmichael


    ">   ">
    webcit-dfsg.orig/static/t/msg/confirm_move_one_targetroom.html0000644000175000017500000000011013223341037024764 0ustar michaelmichael webcit-dfsg.orig/static/t/view_message/0000755000175000017500000000000013223341037020207 5ustar michaelmichaelwebcit-dfsg.orig/static/t/view_message/wikiedit.html0000644000175000017500000000022413223341037022704 0ustar michaelmichael webcit-dfsg.orig/static/t/view_message/list_attach.html0000644000175000017500000000072313223341037023376 0ustar michaelmichael" border="0" align="middle" alt=""> (, bytes) [ " target="wc.."> | "> ]
    webcit-dfsg.orig/static/t/view_message/inline_attach.html0000644000175000017500000000110113223341037023670 0ustar michaelmichael
    " border="0" align="middle" alt=""> (, bytes) [')">| ">]
    " style="display:none">
    webcit-dfsg.orig/static/t/view_message/print.html0000644000175000017500000000206413223341037022233 0ustar michaelmichael <?CURRENT_USER>
    @ ***

    webcit-dfsg.orig/static/t/view_message/replyquote.html0000644000175000017500000000144713223341037023314 0ustar michaelmichael
    "" <> @ ***
    webcit-dfsg.orig/static/t/menubar.html0000644000175000017500000000466713223341037020065 0ustar michaelmichael


    Goto next room
    Skip this room
    Ungoto
    Read new messages
    Read all messages
    Enter a message
    Who is online?
    Page another user
    Advanced options
    Log off


    POWERED BY
    CITADEL
    webcit-dfsg.orig/static/t/summary/0000755000175000017500000000000013223341037017226 5ustar michaelmichaelwebcit-dfsg.orig/static/t/summary/page.html0000644000175000017500000000504413223341037021033 0ustar michaelmichael

    , , .
    webcit-dfsg.orig/static/t/aide/0000755000175000017500000000000013223341037016433 5ustar michaelmichaelwebcit-dfsg.orig/static/t/aide/floorconfig.html0000644000175000017500000000016713223341037021634 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_inetconf.html0000644000175000017500000000155613223341037022662 0ustar michaelmichael





    webcit-dfsg.orig/static/t/aide/global_config.html0000644000175000017500000000114313223341037022105 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_serverrestart_page_do.html0000644000175000017500000000223013223341037025434 0ustar michaelmichael <?CURRENT_USER> - <?SERV:HUMANNODE>
    webcit-dfsg.orig/static/t/aide/edituser/0000755000175000017500000000000013223341037020257 5ustar michaelmichaelwebcit-dfsg.orig/static/t/aide/edituser/box_select.html0000644000175000017500000000122213223341037023271 0ustar michaelmichael


    "> "> " onClick="return confirm('');">
    webcit-dfsg.orig/static/t/aide/edituser/section.html0000644000175000017500000000016613223341037022614 0ustar michaelmichael webcit-dfsg.orig/static/t/aide/edituser/detailview.html0000644000175000017500000000777313223341037023320 0ustar michaelmichael
    "> ">
    " maxlength="63">
    " maxlength="20">
    >
    " maxlength="63">
    " maxlength="512">
    ">  ">

    webcit-dfsg.orig/static/t/aide/edituser/add.html0000644000175000017500000000056313223341037021701 0ustar michaelmichael


    ">
    webcit-dfsg.orig/static/t/aide/edituser/select.html0000644000175000017500000000123113223341037022421 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_menu.html0000644000175000017500000000140413223341037022011 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_generic_result.html0000644000175000017500000000072113223341037024060 0ustar michaelmichael
    Command:
    Result:




    webcit-dfsg.orig/static/t/aide/display_generic_cmd.html0000644000175000017500000000210413223341037023302 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_sitewide_config.html0000644000175000017500000000200613223341037024206 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/ignetconf/0000755000175000017500000000000013223341037020407 5ustar michaelmichaelwebcit-dfsg.orig/static/t/aide/ignetconf/display_confirm_delete.html0000644000175000017500000000076113223341037026005 0ustar michaelmichael
    &index=">    
    webcit-dfsg.orig/static/t/aide/ignetconf/section.html0000644000175000017500000000053313223341037022742 0ustar michaelmichael &index="> webcit-dfsg.orig/static/t/aide/ignetconf/edit_node.html0000644000175000017500000000211413223341037023225 0ustar michaelmichael

    ">   ">
    webcit-dfsg.orig/static/t/aide/ignetconf/add.html0000644000175000017500000000173413223341037022032 0ustar michaelmichael

    ">   ">
    webcit-dfsg.orig/static/t/aide/usermanagement.html0000644000175000017500000000031313223341037022331 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/serverrestart/0000755000175000017500000000000013223341037021346 5ustar michaelmichaelwebcit-dfsg.orig/static/t/aide/serverrestart/box.html0000644000175000017500000000022013223341037023016 0ustar michaelmichael webcit-dfsg.orig/static/t/aide/serverrestart/box_page.html0000644000175000017500000000067513223341037024030 0ustar michaelmichael














    webcit-dfsg.orig/static/t/aide/serverrestart/box_page_do.html0000644000175000017500000000030513223341037024500 0ustar michaelmichael webcit-dfsg.orig/static/t/aide/display_logstatus.html0000644000175000017500000000136013223341037023073 0ustar michaelmichael

    webcit-dfsg.orig/static/t/aide/restart.html0000644000175000017500000000041713223341037021007 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_logstatus_line.html0000644000175000017500000000042013223341037024076 0ustar michaelmichael " onclick="ToggleLogEnable('')" > webcit-dfsg.orig/static/t/aide/display_serverrestart.html0000644000175000017500000000230113223341037023755 0ustar michaelmichael <?CURRENT_USER> - <?SERV:HUMANNODE>
    webcit-dfsg.orig/static/t/aide/siteconfig/0000755000175000017500000000000013223341037020565 5ustar michaelmichaelwebcit-dfsg.orig/static/t/aide/siteconfig/tab_imap.html0000644000175000017500000000131013223341037023222 0ustar michaelmichael

    >
    webcit-dfsg.orig/static/t/aide/siteconfig/tab_general.html0000644000175000017500000000272613223341037023725 0ustar michaelmichael

    webcit-dfsg.orig/static/t/aide/siteconfig/tab_pop3.html0000644000175000017500000000132613223341037023164 0ustar michaelmichael

    webcit-dfsg.orig/static/t/aide/siteconfig/tzsection.html0000644000175000017500000000022613223341037023475 0ustar michaelmichael webcit-dfsg.orig/static/t/aide/siteconfig/tab_access.html0000644000175000017500000001136113223341037023544 0ustar michaelmichael

    >
    >

    >

    >
    >

    ; >
    >
    webcit-dfsg.orig/static/t/aide/siteconfig/tab_smtp.html0000644000175000017500000000555413223341037023275 0ustar michaelmichael

    >
    >
    >
    • " />
    • " />
    • " />
    • " />

    ()
    webcit-dfsg.orig/static/t/aide/siteconfig/tab_indexing.html0000644000175000017500000000165313223341037024113 0ustar michaelmichael

    >
    >
    >
    webcit-dfsg.orig/static/t/aide/siteconfig/tab_autopurger.html0000644000175000017500000001726013223341037024504 0ustar michaelmichael


    " >
    " >
    " >

    " >
    " >
    " >
    " >


    webcit-dfsg.orig/static/t/aide/siteconfig/submit.html0000644000175000017500000000021513223341037022754 0ustar michaelmichael   webcit-dfsg.orig/static/t/aide/siteconfig/tab_setting.html0000644000175000017500000000460113223341037023757 0ustar michaelmichael



    >
    webcit-dfsg.orig/static/t/aide/siteconfig/tab_directory.html0000644000175000017500000000233513223341037024310 0ustar michaelmichael

    webcit-dfsg.orig/static/t/aide/siteconfig/tab_pushmail.html0000644000175000017500000000161613223341037024127 0ustar michaelmichael

    webcit-dfsg.orig/static/t/aide/display_serverrestart_page.html0000644000175000017500000000017713223341037024762 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/0000755000175000017500000000000013223341037017372 5ustar michaelmichaelwebcit-dfsg.orig/static/t/aide/inet/aliases.html0000644000175000017500000000114013223341037021675 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/notify.html0000644000175000017500000000126613223341037021575 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/clamav.html0000644000175000017500000000113313223341037021521 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/section.html0000644000175000017500000000051413223341037021724 0ustar michaelmichael ')" > webcit-dfsg.orig/static/t/aide/inet/masqdomains.html0000644000175000017500000000115113223341037022572 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/spamass.html0000644000175000017500000000114313223341037021726 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/dirnames.html0000644000175000017500000000114213223341037022060 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/fallbackhosts.html0000644000175000017500000000117613223341037023105 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/smarthosts.html0000644000175000017500000000116513223341037022472 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/inet/rbldns.html0000644000175000017500000000112213223341037021540 0ustar michaelmichael
    webcit-dfsg.orig/static/t/aide/display_ignetconf.html0000644000175000017500000000076413223341037023031 0ustar michaelmichael

    webcit-dfsg.orig/static/t/mailsummary_json.html0000644000175000017500000000042113223341037022005 0ustar michaelmichael{ "nummsgs": , "newmsgs": , "startmsg": , "roomname": "", "msgs": [ ] } webcit-dfsg.orig/static/t/sieve/0000755000175000017500000000000013223341037016644 5ustar michaelmichaelwebcit-dfsg.orig/static/t/sieve/display.html0000644000175000017500000000624513223341037021206 0ustar michaelmichael webcit-dfsg.orig/static/t/sieve/display_one_script.html0000644000175000017500000000030313223341037023420 0ustar michaelmichael webcit-dfsg.orig/static/t/sieve/list.html0000644000175000017500000000651313223341037020512 0ustar michaelmichael

     
    webcit-dfsg.orig/static/t/sieve/display_one.html0000644000175000017500000001367713223341037022056 0ustar michaelmichael
    >
    ">

    webcit-dfsg.orig/static/t/sieve/roomlist.html0000644000175000017500000000017513223341037021405 0ustar michaelmichael webcit-dfsg.orig/static/t/sieve/empty.html0000644000175000017500000000006013223341037020664 0ustar michaelmichael webcit-dfsg.orig/static/t/sieve/none.html0000644000175000017500000000063213223341037020472 0ustar michaelmichael

    Please contact your system administrator if you require this feature.
    ")>
    webcit-dfsg.orig/static/t/sieve/add.html0000644000175000017500000000271413223341037020266 0ustar michaelmichael









    webcit-dfsg.orig/static/t/sieve/script_select.html0000644000175000017500000000020413223341037022371 0ustar michaelmichael webcit-dfsg.orig/static/t/sieve/list_select_one.html0000644000175000017500000000020613223341037022703 0ustar michaelmichael webcit-dfsg.orig/static/favicon.ico0000644000175000017500000000157613223341037017420 0ustar michaelmichaelh( CD>CD>CD>CD>ӕnӕnӕnӕnӕnӕnӕnCD>CD>CD>CD>CD>xXԖpԖp՚tԚtϖqϖpϖqԚt՚tԖpԖpxXCD>CD>ԗr՘sٟyםv֛tt[gVGs[֛tםvٟy՘sԗrCD>CD>ՙtޥЙujÑoaTF^REaTFÑojЙuݦՙtCD>֛vܥ䪂lggq[VMCq[ggl䪂ܥ֛v֝y籌鬅ȗthl檂鬃檂lhȗu鬅籌֝yן{𼒐u_HF?p\믆믆r]HF?t^ן{ء™GG@CD>GG@GG@CD>GG@™ءؠ~٢ƟwbCD>r^𴊋r^CD>wbƟ٢ڤş˜͠}mx񺓹um͠}˜şڤڦ㴓ͦá§rsn§~ͦ㴓ڦCD>ۨȥֿƯƯжǤۨCD>CD>ܪݫ¶¶еݫܪCD>CD>ܫݭƭܫܫCD>CD>CD>ݬݬݬݬݬݬݬCD>CD>??webcit-dfsg.orig/static/styles/0000755000175000017500000000000013223341037016611 5ustar michaelmichaelwebcit-dfsg.orig/static/styles/box.css0000644000175000017500000000142613223341037020116 0ustar michaelmichael.box { background-color: transparent; width: 100%; padding: 0; margin: 0; } #content .box { text-align: center; } .boxlabel, .boxcontent { margin: 0 } #content .boxlabel, #global .boxlabel { padding: 0; width: 100%; text-align: center; } .boxlabel { background-color: #5C646B; color: #FEFFFC; font-weight: 700; text-align: center; padding: 0; border-radius: 8px 8px 0 0; -webkit-border-radius: 8px 8px 0 0; -moz-border-radius: 8px 8px 0 0; } .boxcontent { text-align: left; padding: 5px; background-color: #FEFFFC; color: #000; border: 2px solid #5C646B; border-radius: 0 0 8px 8px; -webkit-border-radius: 0 0 8px 8px; -moz-border-radius: 0 0 8px 8px; -webkit-box-shadow: #666 0px 1px 2px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; } webcit-dfsg.orig/static/styles/login.css0000644000175000017500000000334313223341037020436 0ustar michaelmichael#login_screen, #logout_screen { position: fixed; left: 0; right: 0; margin: 5em auto; width: 42em; overflow: auto; } /*because our current layout is a little complicated, we need this: */ #login_screen .box, #logout_screen .box { width: 40em; padding: 1em 0; } #login_screen .login_message, .login_hello, #login_screen #login_form { display: block; margin: 5px auto 5px auto; } #login_screen .login_message, .login_hello { width: 80% } #login_screen .login_image { width: 135px; margin: 0 auto; } #login_screen .login_image img { margin: 0 auto; } #login_screen #login_form { padding: 10px; width: 330px; } #login_form input, #login_form label, #login_form select { display: block; float: left; margin: 6pt; } #login_form label, #pname, #uname { width: 130px; text-align: left; } #login_form br { clear: left } .login_infos { bottom: 0; display: block; margin: 20px auto 0 auto; width: 80%; text-align: left; } #convlogin { text-align: center } #login_form{ background-color: #CCC} .login_message { color: #AD1C00; font-weight: 700; text-transform: uppercase; } #login_form #uname, #login_form #pname { background-color: #fbf4ca !important; /* needed for li.activeuser */ border: 1px solid #999; color: #333; } .logbuttons input { cursor: pointer; text-align: center; font-weight: bold; } .logbuttons, .registernow { width: 50%; margin: 1em auto; text-align: center; display: block; height: 2em; line-height: 2em; background-color: #4d555c; font-weight: bold; -khtml-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; behavior: url(static/styles/PIE.htc); } .logbuttons a:link, .registernow a:link { color: #f0feff; } webcit-dfsg.orig/static/styles/iconbar.css0000644000175000017500000000610413223341037020741 0ustar michaelmichael#iconbar { position: absolute; top: 0; left: 0; bottom: 0; width: 16%; /* when changing this, also change #banner width */ z-index: 0; overflow: auto; overflow-x: hidden !important; } #iconbar_container {} #citlogo { height: 76px; background: #4D555C; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#4D555C), to(#7D858C)); background: -moz-linear-gradient(#4D555C, #7D858C); background: linear-gradient(#4D555C, #7D858C); -pie-background: linear-gradient(#4D555C, #7D858C); behavior: url(/static/styles/PIE.htc); } .logo_citadel, li.ib_button a img { border: none; } .logo_citadel img{ padding: 3px; margin-top: 16px; background-color: #edede0; border: 2px solid #edede0; -khtml-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; behavior: url(/static/styles/PIE.htc); } .iconbar_text { height: 22px; font-size: 70%; font-weight: bold; color: #fff; background-color: #7d858c; border-top-color: #424b52; border-top-style: solid; border-top-width: 2px; border-bottom-color: #424b52; border-bottom-style: solid; border-bottom-width: 2px; } .iconbar_text > span { cursor: pointer } div.iconbar_text select { border: 1px solid #424b52; } #iconbar_menu {} #iconbar #button { padding: 0; margin: 5px 0; border: none; list-style: none; } .ib_button_link, .ib_button_link:visited, .ib_button_link:link, #online_users a { display: block; text-decoration: none; color: #F0FEFF; } .ib_button, .floor { margin: 0.2em; display: block; font-size: 90%; background-color: #4d555c; color: #F0FEFF; font-weight: bold; -khtml-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .logo, #citlogo, .iconbar_text, #online_users li { text-align: center; } #button li:hover, #ib_logoff:hover, #ib_login:hover { background-color: #5c646b; } #online_users { display: none; /* Hide by default */ border: 0; max-height: 200px; overflow: auto; padding-left: 0; padding-bottom: 5px; } #online_users li { list-style: none; margin: 0; padding: 2px; white-space: nowrap; border: none; border-top: 1px solid #777277; } #online_users li a { font-size: 80% !important } #online_users li.inactiveuser { background-color: #9c959d; } #online_users li.activeuser { background-color: #4d555c; } #online_users li:hover { /* separate in order for override */ } .ib_roomlist_floor, .ib_roomlist_new, .ib_roomlist_old { margin: 4px; padding: 0; } .ib_roomlist_floor, .ib_roomlist_new, .ib_roomlist_old { cursor: pointer; } .ib_roomlist_floor, .roomlist_new, .ib_roomlist_new { font-weight: 700; } .ib_roomlist_floor {} .ib_roomlist_new { color: #800; } .ib_roomlist_old { color: #008; } #iconbar_container #customize { margin: 0 9px; border: 2px solid #424b52; -khtml-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; behavior: url(/static/styles/PIE.htc); } #iconbar_container #customize a:active, #iconbar_container #customize a:link, #iconbar_container #customize a:visited { color: #fff; line-height:2em; display: block; } webcit-dfsg.orig/static/styles/rte.css0000644000175000017500000000110213223341037020107 0ustar michaelmichael/* * Copyright 2005 - 2009 The Citadel Team * Licensed under the GPL V3 */ .rteImage { background: #D3D3D3; border: 1px solid #D3D3D3; cursor: pointer; cursor: hand; } .rteImageRaised { background: #D3D3D3; border: 1px outset; cursor: pointer; cursor: hand; } .rteImageLowered { background: #D3D3D3; border: 1px inset; cursor: pointer; cursor: hand; } .rteVertSep { margin: 0 4px 0 4px; } .rteBack { background: #D3D3D3; border: 1px outset; letter-spacing: 0; padding: 2px; } .rteBack tbody tr td, .rteBack tr td { background: #D3D3D3; padding: 0; } webcit-dfsg.orig/static/styles/blog.css0000644000175000017500000000244013223341037020246 0ustar michaelmichael.blog_post { margin: 0.5em; width: 38em; } .blog_post hr { margin: 1em 0.25em; padding: 0 0.25em; border: 1px dotted #5C646B; } .blog_post_title a:link, .blog_post_title a:visited, .blog_post_title a:active { font-size: 150%; font-weight: bold; color: #000; } .blog_post_title a:hover { color: #0E73E3; } .blog_post_header a:link, .blog_comment_header a:link { font-style: italic; color: #000; } .blog_post_header { margin: 0 1em; /* adjust with .blog_show_comments_link */ font-size: smaller; } .blog_post_content, .blog_comment_content { font-family: serif; font-size: 90%; } a.blog_show_comments_link:link, a.blog_show_comments_link:active, a.blog_show_comments_link:visited { margin-left: 1em; color: #000; font-size: smaller; } .blog_permalink_link { font-size: smaller; } .blog_comment { margin: 0.5em; padding: 0.5em 0.25em 0.25em; width: 35em; border-top: 1px dotted grey; background-color: #EDEDE0; } .blog_comment_unread { margin: 0.5em; padding: 0.5em 0.25em 0.25em; width: 35em; border-top: 1px dotted grey; background-color: #EFEFE0; } .blog_comment_header { font-size: smaller; } .blog_comment_date {float:right} .blog_comment_content { margin: 0.25em; } .post_a_comment_title { font-size: 120%; } webcit-dfsg.orig/static/styles/global.css0000644000175000017500000000023513223341037020563 0ustar michaelmichael#global { margin-left: 0; padding: 0; position: absolute; bottom: 0; top: 0; right: 0; left: 0; overflow-y: hidden; } #global center { width: 80% } webcit-dfsg.orig/static/styles/webcit-tinymce.css0000644000175000017500000000346113223341037022252 0ustar michaelmichael/* styles applied to the TinyMCE editor component when used in WebCit */ body {font-size: 12px;} blockquote{ background-color: #deded0; } .message_header { font-size: x-small; padding: 0.5em; } .message_content { background-color: #fff; padding: 0.5em; clear: both; } .message_subject { font-size: medium; font-style: italic; float: left; } .message_header span, .message_header a { font-weight: bold; } .message_header p { margin: 3px 0; padding: 0; } .message_content > div > div { text-align: justify !important } .message form div label, .entmsg form div label { display: block; float: left; margin: 0.3em; width: 9em; text-align: right; } .message form div input, .message form div select, .entmsg form div input, .entmsg form div select { margin: 0.3em } /* make blockquotes in messages distingushable */ /* there is a lot of cascading happen io order to make it look beautiful */ .message_content blockquote { padding: 0.2em; margin: 0.3em 0.5em; } blockquote .message_header { padding: 0; background-color: #deded0; } .message_content blockquote .message_header span { display: inline-block; } .message_content blockquote .message_header span.message_subject { display: block; float: none; } blockquote .message_content { padding: 0; background-color: transparent; } blockquote { background-color: #f0f0f0 !important; color: navy !important; } blockquote blockquote { background-color: #ebebeb !important; color: maroon !important; } blockquote blockquote blockquote { background-color: #e1e1e1 !important; color: green !important; } blockquote blockquote blockquote blockquote { background-color: #d7d7d7 !important; color: purple !important; } .message img { max-width: 700px; padding: 10px; background-color: #fff; border: 1px solid #5C646B; } webcit-dfsg.orig/static/styles/PIE.htc0000644000175000017500000010165413223341037017735 0ustar michaelmichael webcit-dfsg.orig/static/styles/webcit.css0000644000175000017500000005755413223341037020620 0ustar michaelmichael/* * Copyright 2005 - 2011 The Citadel Team * Licensed under the GPL V3 */ /* These stylesheets were split from this one for convenience */ @import url("login.css"); @import url("global.css"); @import url("iconbar.css"); @import url("banner.css"); @import url("navbar.css"); @import url("content.css"); @import url("box.css"); @import url("message.css"); @import url("modal.css"); @import url("service.css"); @import url("blog.css"); @media print { input#toggler, .toolbar { display: none } } html, body { font-size: 100%; height:100%; width:100%; margin:0; padding:0; overflow:hidden; } .address_book_popup_title { font-size: 130% } #button, #content .button_link a, input#delbutton,.attachfile, .buttons input, .buttons a, .customize, .menubar_link, #banner ul.room_actions li, .selector_top, .selector_bottom, .banner .infos,li.search,li.view, .room_actions form select option, .selectbox, ul.adminitems li span, #message_list tr > td { font-size: 100%; } #message_list_hdr table { font-size: 80% } .mailbox_summary { font-size: 80% } /* Color */ body { background-color: #F3F6F2; font-family: sans-serif; } .marked_row { color: white; background-color: #69aaff !important; } .service form div,table.altern .odd, #message_list, #roomlist_div,.editednode,.mailbox_summary, .auth_validate, .event_background, .calendar_background, .calendar_view_background, .graphics_background, .messages_background, .paging_background, .preferences_background, .roomops_background, .sieve_background, .siteconfig_background, .smtpqueue_background, .tabs_background, .useredit_background, .userlist_background, .wiki_history_background, .wiki_pagelist_background, .downloads_background, .vcard_edit_background, div.auto_complete, div.auto_complete ul, #summary_view { background-color: #FFF; color: #000; } #message_list_hdr table, #resize_msglist, .vcard_edit_background_alt,.roomops_background_alt { background-color: #CCC; } #room_infos, #address_book_popup, .roomops_cell, .roomops_cell_edit, .mimepart { background-color: #deded0; color: #5C646B; } #room_infos, #address_book_popup, .mimepart, .room_actions form select { border: 1px solid #5C646B; overflow: scroll; } .buttons a,.tablabel,.treetitle { color: #000; font-weight: 700; } .mimepart div,.required { font-weight: 700 } .selector_top,.selector_bottom { background-color: #022750; border-top: 1px solid black; border-bottom: 1px solid black; color: #FFF; } #message_list_hdr form input { border: 0 } #message_list_hdr select { background-color: #3E65AF; color: #F1BD22; border: 1px solid #6C91A6; } #message_list_hdr table { font-style: italic } #resize_msglist { background-image: url(/static/webcit_icons/resizegrippy.gif); background-position: center; background-repeat: no-repeat; } #resize_msglist hr { background-color: #999; border: 0; color: #999; height: 3px; } .adminlist { list-style: none } .customize { background-color: #DDC; color: #004; font-style: italic; } .default { font-style: normal; text-decoration: underline; } .editednodeinput { background-color: #FFF; border: 1px solid #000; color: #000; height: 17px; width: 150px; } .error a:link, .error a:visited, .error a:active { background: none; color: #DC143C; text-decoration: underline; } .error strong { background: #FFD700; color: #DC143C; text-decoration: none; } .error strong a:link,.error strong a:visited,.error strong a:active { background: #FFD700; color: #DC143C; } .errormsg { background: none; color: #A00; font-style: italic; font-weight: 700; } .floors_config, .roomops_zap { background-color: #700; border: 0; } .imsg { background: none; color: #EEE; font-style: italic; font-weight: 700; text-align: center; } .menubar_bg { background-color: red } .mimepart div span { display: block; font-style: italic; } .mimepart dl dd, .mimepart dl dt { border-top: 1px solid #AAA; } .mailbox_summary td { /* border-top: 1px solid #AAA; */ white-space: nowrap; overflow: hidden; } .mimepart dl dt { font-weight: 700 } .roomops_cell_label, .tab_cell_label { background-color: #424b52; color: #EABB3A; font-size: 80%; font-weight: bold; border-radius: 8px 8px 0 0; -webkit-border-radius: 8px 8px 0 0; -moz-border-radius: 8px 8px 0 0; } .selectbox { background-color: #FF8000; } .tab_cell, .tab_cell_edit { background-color: #5c646b; color: #F9FDFB; font-size: 80%; font-weight: bold; border-radius: 8px 8px 0 0; -webkit-border-radius: 8px 8px 0 0; -moz-border-radius: 8px 8px 0 0; } .tabcontent { background-color: #FEFFFC; border: 2px solid #424B52; } .treetitleselectedblured { background-color: menu; color: windowtext; } .treetitleselectedfocused { background-color: highlight; color: highlighttext; } .warning a:link, .warning a:visited, .warning a:active, .warning { background: none; color: #FF4500; } .warning, .warning strong { text-decoration: none } .warning a:link,.warning a:visited,.warning a:active { text-decoration: underline; } .warning strong { background: #FFD700; color: #FF4500; } .warning strong a:link,.warning strong a:visited,.warning strong a:active { background: #FFD700; color: #FF4500; } blockquote { background-color: #f5f5f5 !important; color: navy !important; } blockquote blockquote { background-color: #ebebeb !important; color: maroon !important; } blockquote blockquote blockquote { background-color: #e1e1e1 !important; color: green !important; } blockquote blockquote blockquote blockquote { background-color: #d7d7d7 !important; color: purple !important; } blockquote blockquote blockquote blockquote blockquote { background-color: #cdcdcd !important; color: teal !important; } blockquote pre { margin-left: 1%; margin-right: 1%; } div.auto_complete ul { background: #fff; border: 1px solid #888; list-style-type: none; } div.auto_complete ul li.selected { background-color: #ffc; } div.auto_complete ul strong.highlight { color: #800 } table.altern { border-bottom: solid 2px #AAA; border-top: solid 2px #AAA; } table.altern .even { background-color: #DDD; } td li.frameset,.elements li.frameset { background: none; color: gray; font-weight: lighter; } td li.transitional,.elements li.transitional { background: none; color: #696969; font-weight: lighter; } ul.adminitems { list-style-type: disc; padding: 0; } ul.adminitems li { font-weight: 700 } ul.adminitems li span { color: #666 } var sub { font-style: normal } .week_of_year { background-color: #e1e1e1; font-size: 70%; } .day { font-weight: 700 } .calout { background-color: #DDDDDD } .calday { background-color: #FFFFFF } .calweekend { background-color: #EEEECC } .caltoday { background-color: #EEEEFF } .current_sort_mode { background-color: white } #loading { background-color: white } /* Message list in mailbox/summaryview */ .table-row { background-color: white } .table-alt-row { background-color: #DDDDDD } /* Links */ a { text-decoration: none } a:link, .calendar a:visited { color: #0e73e3 } /*color: #2F65DD;*/ a:active { color: #3E65AF } a:visited { color: #70342e } .roomlist_old { color: #424b52 } .roomlist_new { color: #ef7114 } .roomlist_new, .roomlist_old { font-size: medium; font-weight: bold; padding: 0.1em 0.3em; } .roomlist_new:hover, .roomlist_old:hover{ outline: 1px solid #7d858c; outline-radius: 5px; -khtml-outline-radius: 5px; -moz-outline-radius: 5px; behavior: url(/static/styles/PIE.htc); } #customize a:active, #customize a:link, #customize a:visited { color: black; } input, select, .room_actions form select, .room_actions li.search input, .address_book_popup_title { background-color: #efefe0; /*#fbf4ca;*/ border: 2px solid #5c646b; color: #333; } .buttons a:hover { background-color: #5c646b; } .button_link a, input#delbutton,.attachfile, .buttons input { background-color: #4d555c; } .button_link a, input#delbutton,.attachfile, .buttons input { border: 2px solid #5c646b; color: #F0FEFF; } .button_link a, input#delbutton,.attachfile, .buttons input { cursor: pointer; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; behavior: url(/static/styles/PIE.htc); text-align: center; } .button_link a, .attachfile,.buttons input { font-weight: bold; } input#delbutton { font-weight: normal } /* Layout */ * html { overflow: hidden } html { overflow: auto } body { height: 100%; overflow: hidden; text-align: center; margin-left: 0; padding: 0; } #important_message { background-color: #3E65AF; color: #FFF; position: absolute; top: 25px; z-index: 4; padding: 3px; margin: 0px auto; } #hellomsg, .fmout, .nomsgs { text-align: center; } #validate { text-align: center } #iconbar, #banner, #content, #message_list_hdr, #message_list, #preview_pane { text-align: left } /* Please avoid setting heights for any of the mailbox view elements (except summary_view * and resize). In particular, do NOT set any for message_list_hdr as its not good feng shui */ #message_listview th { border-right: 0.2em solid #fff; } #message_listview td { padding-left: 1em; } #message_list_hdr { display: block; padding-bottom: 0; margin-bottom: 0; background-color: #CCCCCC; } #summary_view { overflow-y: scroll; overflow-x: hidden; cursor: pointer; } #summary_headers { background-color: white; table-layout: fixed; } #summary_headers tr td { overflow-y: hidden; overflow-x: hidden; /* stop long subjects overflowing */ } #message_listview .col1 { width: 66% } #message_listview .col2 { width: 22% } #message_listview .col3 { width: 12% } .col1, .col2, .col3 { cursor: pointer; text-overflow: ellipsis; -o-text-overflow: ellipsis; } .new_message { font-weight: bold !important } #loading { text-align: center} #resize_msglist { width: 100%; overflow: hidden; cursor: s-resize; height: 6px; } #preview_pane { overflow: auto } .ctdlTemplate { display: none } #ctdlContextMenu { position: fixed; background-color: white; border: 1px solid black; } .draganddrop { position: fixed; display: block; border: 1px solid black; z-index: 65535; background-color: white; text-align: left; opacity: 0.9; } .draganddrop > ul { list-style: none; padding-left: 0; margin-left: 0; } .hidden { display: none } .floor { margin-left: 0px } .floor > ul { display: none } .floor-expanded > ul{ display: block !important } #roomlist > ul { margin: 0; padding: 0; } #roomlist > div > ul > li { margin: 0; padding: 0; } /* Override to disable list-style-image" */ .room a, .room a, .room a:visited, .room a:link { color: #f0feff } .room-private { list-style-image: url("/static/webcit_icons/essen/16x16/email.png") } .room-addr { list-style-image: url("/static/webcit_icons/essen/16x16/contact.png") } .room-cal { list-style-image: url("/static/webcit_icons/essen/16x16/calendar.png") } .room-tasks { list-style-image: url("/static/webcit_icons/essen/16x16/task.png") } .room-notes { list-style-image: url("/static/webcit_icons/essen/16x16/note.png") } .room-chat { list-style-image: url("/static/webcit_icons/essen/16x16/room.png") } .room-newmsgs { font-weight: bold } .room-emphasized { text-decoration: underline } #message_list_hdr table { width: 100% } .selector_top, .selector_bottom { text-align: center } .selector_top p,.selector_bottom p { margin: 0; padding: 2px; } .button_link a, .attachfile, .buttons input .logbutton { margin: 3px; padding: 2px 4px 2px 4px; } input#delbutton { margin: 0 3px 0 3px; padding: 2px 4px 2px 4px; } .mimepart { margin-top: 15px; margin-bottom: 15px; margin-left: 15%; width: 70%; padding: 0; } .mimepart img { vertical-align: middle; float: left; } .mimepart div { vertical-align: middle; margin: 0 0 15px 0 ; padding: 5px; } .mimepart div span { vertical-align: top } .mimepart dl { width: 100%; margin-left: 5px; padding: 5px; } .mimepart dl dt { width: 30%; float: left; margin: 0 0 0 0; padding: .5em; } .mimepart dl dd { float: left; width: 62%; margin: 0; padding: .5em; } .mimepart p { margin-top: 1em; margin-bottom: 0; clear: both; } .buttons a { text-align: center } .imgedit { vertical-align: middle } .edit_msg_table th { text-align: right; padding: 0px; padding-right: 5px; color: #333; width: 20%; } .edit_msg_table td { padding: 0px; } .edit_msg_table #recp_id, .edit_msg_table #cc_id, .edit_msg_table #bcc_id, .edit_msg_table #subject_id { width: 98%; } .note { font-size: 85%; margin-left: 10%; } .toolbar { text-align: center } .toolbar img { float: right } colgroup.entity { text-align: center } div.auto_complete ul { margin: 0; padding: 0; width: 100%; } div.auto_complete ul li { margin: 0; padding: 3px; } div.auto_complete ul strong.highlight { margin: 0; padding: 0; } .auth_validate, .event_background, .calendar_background, .calendar_view_background, .graphics_background, .messages_background, .paging_background, .preferences_background, .roomops_background, .sieve_background, .siteconfig_background, .smtpqueue_background, .tabs_background, .useredit_background, .userlist_background, .downloads_background, .vcard_edit_background, .vcard_edit_background_alt, .roomops_background_alt, .floors_config, .roomops_zap { width: 100%; } #address_book_popup { position: absolute; top: 100px; right: 25px; width: 320px; height: auto; z-index: 100; display: none; -webkit-box-shadow: #666 0px 2px 3px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; } #address_book_popup_container_div { position: relative; width: 100%; height: 100%; } #address_book_popup_middle_div { position: relative } #address_book_inner_div { margin: 5px } #address_book_inner_div select { width: 100% } #address_book_inner_div input { margin: 4px 5px 0 5px } #citlogo { display: none; /* Overriden later */ } .sort_ascending, .sort_descending { background-repeat: no-repeat; background-position: center right; } .sort_ascending { background-image: url("/static/webcit_icons/down_pointer.gif") } .sort_descending { background-image: url("/static/webcit_icons/up_pointer.gif") } #message_list_hdr > table { border-collapse: collapse } #summary_view > table { border-collapse: collapse } /* System Administration Menu */ ul.adminitems { margin: 15px; padding: 0; } ul.adminitems li { margin: 0.5em; padding: 0; } ul.adminitems li span { display: block } /* Mailq */ table.mailstatus {background-color: lightgray } td.mailstatus_0 {background-color: gray } td.mailstatus_1 {background-color: gray } td.mailstatus_2 {background-color: green } td.mailstatus_3 {background-color: orange } td.mailstatus_4 {background-color: yellow } td.mailstatus_5 {background-color: red } /* Room list - Tree Node */ .treetitle, .editednode, .treetitleselectedfocused, .treetitleselectedblured { padding: 2px; cursor: default; } table.altern { margin: 0 auto 0 auto; width: 98% } table.altern tr td { height: 2em; } /* Advanced menu */ table.advanced { margin: 0 auto 0 auto; width: 96%; border-collapse: separate; border-spacing: 15px; } .advanced .boxcontent ul { margin-left: 4em } .advanced .boxcontent .col1, .advanced .boxcontent .col2 { float: left; width: 33%; } .advanced .boxcontent .col2, .advanced .boxcontent .lastcol { margin-left: 0; margin-bottom: 4em; } /* Site configuration */ .tabs_background { margin-top: 0 } /* Links and buttons */ .buttons { margin: 2px auto 2px auto; width: 96%; text-align: center; } /* Tabs */ #TheTabs { margin: 3% auto 0 auto; width: 94%; } ul.tabbed_dialog { list-style: none; margin: 3% auto 0 auto; width: 96%; padding: 0; white-space: nowrap; text-align: center; vertical-align: middle; } ul.tabbed_dialog li { margin: 0 3% 0 3%; padding: 4px; float: left; } .tabcontent { margin: 0 auto 0 auto; width: 96%; padding: 10px; clear: both; } .tabcontent_submit { margin: 0 auto 0 auto; width: 96%; padding: 10px; text-align: center; } /* Calendar view */ .calendar { background-color: #424b52; margin: 0 auto; width: 98%; height: 302px; border-radius: 8px; -webkit-border-radius: 8px; -moz-border-radius: 8px; behavior: url(/static/styles/PIE.htc); } .calendar th { background-color: #424b52; border-color: #424b52; } #inner_day { padding: 0.1em; } td.events_of_the_day { width: 50% } .events_of_the_day dl { margin: 0; /* padding: 0; position: absolute; top: 0; left:0; */ width: 100%; } .events_of_the_day dl dt { background-color: #FFFFFF; margin: 0; width: 500px; border: 1px solid #CCC; } .events_of_the_day dl dt.hour { /* font-size: 160%; commenting out because we need to line it up with the actual size */ } .events_of_the_day dl dt.extrahour { /* font-size: 80%; commenting out because we need to line it up with the actual size */ } .hour_label, .extra_events dl dt { background-color: #CCCCDD; vertical-align: middle; text-align: left; } .hour_events, .extra_events { background-color: #FFFFFF; vertical-align: top; text-align: left; } .extra_events { border: 1px solid #ccc } .extra_events ul { list-style: none; padding: 0; margin: 0; } .extra_events ul li { margin: 4px } .calday, .calout, .calweekend, .caltoday { width: 14%; height: 60px; text-align: left; vertical-align: top; } .event_framed_unread { -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; behavior: url(/static/styles/PIE.htc); border: solid 1px red; background-color: yellow; z-index: 10; padding: 0 4px 0 4px; } li.event_framed_unread span, a.event_title { font-size: 100% } .event_framed_read { -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; behavior: url(/static/styles/PIE.htc); border: solid 1px red; background-color: yellow; z-index: 10; padding: 0 4px 0 4px; } li.event_framed_read span, a.event_title { font-size: 100% } .event_read {} li.event_read span, a.event_read_title { font-size: 100% } .event_unread {} li.event_unread span, a.event_read_title { font-size: 100% } .mini_calendar { color: #fff } .mini_calendar a { color: #fff } .mini_calendar a:link,.mini_calendar a:visited { color: #fff } .mini_calendar a:hover,.mini_calendar a:active { color: #3E65AF; background-color: #3E65AF; } .mini_calendar td a { color: #fff } .mini_calendar td a:link,.mini_calendar td a:visited { color: #fff } .mini_calendar td a:hover,.mini_calendar td a:active { color: #3E65AF; background-color: #3E65AF; } .menudesc { margin: 4px; padding: 4px; } .roompic { border: none; } .table-row, .table-alt-row { width: 100% } .stickynote_outer { position: absolute; width: 200px; height: 200px; border: 1px solid #333; background-color: #ffff00; overflow: hidden; -webkit-box-shadow: #666 0px 2px 3px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; behavior: url(/static/styles/PIE.htc); } .stickynote_titlebar { position: relative; width: 100%; height: 16px; top: 0px; left: 0px; background-color: #888800; font-size: 60%; } .stickynote_body { position: relative; font-family: "Comic Sans MS", sans-serif; } .stickynote_resize { position: absolute; background-image: url('resizecorner.png'); height: 16px; width: 16px; right: -1px; bottom: -1px; } .stickynote_palette { position: absolute; width: 48px; height: 48px; top: 16px; left: 0px; background-color: #ffffff; border: 1px solid #333; display: none; } .stickynote_palette table { margin: 0; padding: 0; } .stickynote_palette td { width: 16px; height: 16px; } .conftitle { font-size: 140%; font-weight: bold; text-align: center; } .confdescr { font-size: 110%; text-align: center; } #noscript_warning { position: fixed; z-index: 999; top: 0; right: 0; background-color: #FF0000; color: #FFFFFF; font-size: 120%; border: 2px solid #FF0000; } .chatrecv_history_class { position: absolute; top: 0.5em; left: 0.5%; width: 700px; height: 70%; background-color: #edede0; overflow: auto; border: 2px solid #424d52; border-radius: 8px; -khtml-border-radius: 8px; -moz-border-radius: 8px; behavior: url(/static/styles/PIE.htc); -webkit-box-shadow: #666 0px 1px 2px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; padding: 0.5em; } .chat_userlist_class { position: absolute; top: 0.5em; right: 0.5%; width: 110px; height: 92%; background-color: #edede0; overflow: auto; border: 2px solid #424d52; border-radius: 8px; -khtml-border-radius: 8px; -moz-border-radius: 8px; box-shadow: #666 0px 2px 3px; -webkit-box-shadow: #666 0px 1px 2px; -moz-box-shadow: #666 0px 2px 3px; behavior: url(/static/styles/PIE.htc); padding: 0.5em; } .chatrecv_class { display: none } .chatsend_class { position: absolute; left: 0.5%; bottom: 3%; height: 95px; width: 700px; border: 2px solid #424d52; border-radius: 8px; -khtml-border-radius: 8px; -moz-border-radius: 8px; box-shadow: #666 0px 2px 3px; -webkit-box-shadow: #666 0px 1px 2px; -moz-box-shadow: #666 0px 2px 3px; behavior: url(/static/styles/PIE.htc); background-color: #7d858c; padding: 0.5em; } .chat_myname_class { font-weight: bold; color: #ff0000; } .chat_notmyname_class { font-weight: bold; color: #0000ff; } .chat_text_class {} /*---------- bubble tooltips start -----------*/ a.event_title, a.event_unread, a.event_read { position:relative; z-index:24; } a.event_title span, a.event_unread span, a.event_read span { display: none; } /* background:; ie hack, something must be changed in a for ie to execute it */ a.event_title:hover, a.event_unread:hover, a.event_read:hover { z-index:25; } a.event_title:hover span.tooltip, a.event_unread:hover span.tooltip, a.event_read:hover span.tooltip { display:block; position:absolute; top:0px; left:0; padding: 15px 0 0 0; width:200px; text-align: center; } a.event_title:hover span.btttop, a.event_unread:hover span.btttop, a.event_read:hover span.btttop { display: block; padding: 30px 8px 0; background: url(/static/webcit_icons/bubble.gif) no-repeat top; } /* different middle bg for stretch */ a.event_title:hover span.bttmiddle, a.event_unread:hover span.bttmiddle, a.event_read:hover span.bttmiddle { display: block; padding: 0 8px; background: url(/static/webcit_icons/bubble_filler.gif) repeat bottom; color: #022750; font-size: 10px; } a.event_title:hover span.bttbottom, a.event_unread:hover span.bttbottom, a.event_read:hover span.bttbottom { display: block; padding:3px 8px 10px; background: url(/static/webcit_icons/bubble.gif) no-repeat bottom; } /*---------- styles for the attachments form -----------*/ #attachments_form { display:none; position:absolute; top:5%; bottom:5%; right:5%; left:5%; z-index: 10; padding: 5px; border-width: 1px; border-style: solid; border-color: #022750; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; background: #FFFFFF; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#FFFFFF), to(#DDDDEE)); background: -moz-linear-gradient(#FFFFFF, #DDDDEE); background: linear-gradient(#FFFFFF, #DDDDEE); -pie-background: linear-gradient(#FFFFFF, #DDDDEE); -webkit-box-shadow: #666 0px 2px 3px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; } /*---------- styles for the login modal box -----------*/ #loginbox_topline_container { position: relative; font-size: 110%; color: white; } #loginbox_title { float: left; width: 75%; text-align: center; background-color: #022750; border: 3px solid #022750; } #loginbox_closebutton { float: right; width: 23%; text-align: right; background-color: #ddd; border: 3px solid #ddd; } #auth_container { position: relative; border: 1px solid #777; } #authbar { top: 0; left: 0; width: 23%; z-index: 0; overflow: auto; overflow-x: hidden !important; } #authbar ul { margin-top: 1px; margin-bottom: 0; } .authbox { text-align: center; position: absolute; top: 0; right: 0; width: 75%; height: 100%; z-index: 0; overflow: auto; overflow-x: hidden !important; background-color: #ddd; } #ajax_username_password_form, #ajax_newuser_form { margin: auto; width: 20em; } #ajax_username_password_form label, #ajax_newuser_form label { float: left; width: 10em; } .openid_urlarea { background: url('../webcit_icons/openid-small.gif') no-repeat scroll 0pt 50%; padding-left: 18px; } webcit-dfsg.orig/static/styles/navbar.css0000644000175000017500000000152113223341037020573 0ustar michaelmichael#navbar { font-size: 70%; font-weight: bold; height: 2em; position: absolute; bottom: 0; width: 100%; background-color: #7D858C; border-top: 2px solid #424b52; color: #FFF; } #navbar ul, .selector_top, .selector_bottom { width: 100%; margin: 0 auto 0 auto; white-space: nowrap; text-align: center; vertical-align: middle; } #navbar ul li { display: inline; list-style: none; vertical-align: middle; padding: 0 0.2em; } #navbar ul li a { padding: 0.3em; display: inline-block; white-space: nowrap; } #navbar ul li a:hover { padding: 0.3em; background-color: #5c646b; border: 0px solid #5c646b; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; } #navbar ul li img { float: none; margin: 0 2px; } #navbar ul li a img { vertical-align: middle; border: none; } webcit-dfsg.orig/static/styles/rss_browser.css0000644000175000017500000000140113223341037021671 0ustar michaelmichael/* * Copyright 2005 - 2009 The Citadel Team * Licensed under the GPL V3 */ * { display: block; } :root { margin: 50px; } channel > title { font-size: x-large; text-align: center; } channel > title:after { display: block; padding: 50px; content: "This is an RSS feed, designed to be read in an RSS application."; background-color: grey; color: white; } item { margin: 25px 0 20px 0; } item > title { font-size: medium; margin-bottom: 20px; } item > link { font-size: small; margin-top: 6px; margin-bottom: 6px; } item > description { font-size: small; } item > pubDate { font-size: small; } channel > link, channel > copyright, channel > lastBuildDate, channel > generator, channel > docs, language, lastBuildDate, ttl, guid, category { display: none; } webcit-dfsg.orig/static/styles/service.css0000644000175000017500000000205013223341037020760 0ustar michaelmichael.service {} .service .edit_col, .service .host_col { display: none } .bio table { margin-top: 0.5em; padding: 0 0.5em; width: 95%; font-family: monospace; background-color: #fff; border: 1px solid #5C646B; -webkit-box-shadow: #666 0px 1px 2px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; behavior: url(/static/styles/PIE.htc); } .bio table table { border: 0; padding: 0; margin: 0.5em 0; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none; } .bio table table img { max-width: 250px; padding: 0.2em; background-color: #f0feff; border: 1px solid #5C646B; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none; } .bio h1 { float: right; } .who_is_online tr { height: 1.5em; padding: 0; margin: 0; } .who_is_online td { padding: 0 0.3em; } .who_is_online td img { border: none; margin: 0 auto; } .who_is_online .edit_col {} .who_is_online .host_col { font-family: monospace; font-size: 90%; } div#who_inner th.host_col { font-family: sans-serif; font-size: 100%; } webcit-dfsg.orig/static/styles/fineuploader.css0000644000175000017500000001155013223341037022002 0ustar michaelmichael/*! * Fine Uploader * * Copyright 2013, Widen Enterprises, Inc. info@fineuploader.com * * Version: 4.2.1 * * Homepage: http://fineuploader.com * * Repository: git://github.com/Widen/fine-uploader.git * * Licensed under GNU GPL v3, see LICENSE */ .qq-uploader { position: relative; width: 100%; } .qq-upload-button { display: block; width: 105px; padding: 7px 0; text-align: center; background: #880000; border-bottom: 1px solid #DDD; color: #FFF; } .qq-upload-button-hover { background: #CC0000; } .qq-upload-button-focus { outline: 1px dotted #000000; } .qq-upload-drop-area, .qq-upload-extra-drop-area { position: absolute; top: 0; left: 0; width: 100%; height: 100%; min-height: 30px; z-index: 2; background: #FF9797; text-align: center; } .qq-upload-drop-area span { display: block; position: absolute; top: 50%; width: 100%; margin-top: -8px; font-size: 16px; } .qq-upload-extra-drop-area { position: relative; margin-top: 50px; font-size: 16px; padding-top: 30px; height: 20px; min-height: 40px; } .qq-upload-drop-area-active { background: #FF7171; } .qq-upload-list { margin: 0; padding: 0; list-style: none; } .qq-upload-list li { margin: 0; padding: 9px; line-height: 15px; font-size: 16px; background-color: #FFF0BD; } .qq-upload-file, .qq-upload-spinner, .qq-upload-size, .qq-upload-cancel, .qq-upload-retry, .qq-upload-failed-text, .qq-upload-delete, .qq-upload-pause, .qq-upload-continue { margin-right: 12px; display: inline; } .qq-upload-file { } .qq-upload-spinner { display: inline-block; background: url("loading.gif"); width: 15px; height: 15px; vertical-align: text-bottom; } .qq-drop-processing { display: block; } .qq-drop-processing-spinner { display: inline-block; background: url("processing.gif"); width: 24px; height: 24px; vertical-align: text-bottom; } .qq-upload-delete, .qq-upload-pause, .qq-upload-continue { display: inline; } .qq-upload-retry, .qq-upload-delete, .qq-upload-cancel, .qq-upload-pause, .qq-upload-continue { color: #000000; } .qq-upload-retryable .qq-upload-retry { display: inline; } .qq-upload-size, .qq-upload-cancel, .qq-upload-retry, .qq-upload-delete, .qq-upload-pause, .qq-upload-continue { font-size: 12px; font-weight: normal; } .qq-upload-failed-text { display: none; font-style: italic; font-weight: bold; } .qq-upload-failed-icon { display:none; width:15px; height:15px; vertical-align:text-bottom; } .qq-upload-fail .qq-upload-failed-text { display: inline; } .qq-upload-retrying .qq-upload-failed-text { display: inline; color: #D60000; } .qq-upload-list li.qq-upload-success { background-color: #5DA30C; color: #FFFFFF; } .qq-upload-list li.qq-upload-fail { background-color: #D60000; color: #FFFFFF; } .qq-progress-bar { display: block; background: -moz-linear-gradient(top, rgba(30,87,153,1) 0%, rgba(41,137,216,1) 50%, rgba(32,124,202,1) 51%, rgba(125,185,232,1) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(51%,rgba(32,124,202,1)), color-stop(100%,rgba(125,185,232,1))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* IE10+ */ background: linear-gradient(to bottom, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* W3C */ width: 0%; height: 15px; border-radius: 6px; margin-bottom: 3px; } INPUT.qq-edit-filename { position: absolute; opacity: 0; filter: alpha(opacity=0); z-index: -1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; } .qq-upload-file.qq-editable { cursor: pointer; } .qq-edit-filename-icon.qq-editable { display: inline-block; cursor: pointer; } INPUT.qq-edit-filename.qq-editing { position: static; margin-top: -5px; margin-right: 10px; margin-bottom: -5px; opacity: 1; filter: alpha(opacity=100); -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; } .qq-edit-filename-icon { display: none; background: url("edit.gif"); width: 15px; height: 15px; vertical-align: text-bottom; margin-right: 5px; } INPUT.qq-edit-filename.qq-editing ~ .qq-upload-cancel { display: none; } .qq-hide { display: none; } /*! 2014-01-19 */ webcit-dfsg.orig/static/styles/ie_lte8.css0000644000175000017500000000057713223341037020665 0ustar michaelmichael.message, .box { zoom: 1; filter: progid:DXImageTransform.Microsoft.Shadow(color='#666666', Direction=135, Strength=4) progid:DXImageTransform.Microsoft.Shadow(color='#666666', Direction=180, Strength=5) progid:DXImageTransform.Microsoft.Shadow(color='#666666', Direction=225, Strength=2) progid:DXImageTransform.Microsoft.Shadow(color='#666666', Direction=260, Strength=1); } webcit-dfsg.orig/static/styles/iconbarpiconly.css0000644000175000017500000000045313223341037022340 0ustar michaelmichael/* * Copyright 2005 - 2011 The Citadel Team * Licensed under the GPL V3 * * Styles for the WebCit Iconbar in pics only mode. */ @import url("/static/styles/iconbaricns.css"); .ib_button { width: 35px; } .ib_button_link { padding-left: 0; } .ib_button_link span { display: none; } webcit-dfsg.orig/static/styles/banner.css0000644000175000017500000000451613223341037020576 0ustar michaelmichael#banner { background: #4D555C; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#4D555C), to(#7D858C)); background: -moz-linear-gradient(#4D555C, #7D858C); background: linear-gradient(#4D555C, #7D858C); -pie-background: linear-gradient(#4D555C, #7D858C); behavior: url(/static/styles/PIE.htc); border-bottom: 2px solid #424b52; color: #f0feff; margin: 0; padding: 0; top: 0; height: 100px; /* when changing this, also change #content */ position: fixed; width: 84%; /* when changing this, also change #iconbar and #content */ left: 16%; /* when changing this, also change #iconbar and #content */ z-index: 3; overflow: hidden; } #banner table { width: 100% } #banner a { color: #f0feff } #banner h1 { font-size: 160%; font-weight: 700; } #banner #rmname { white-space: nowrap; } #banner h2 { font-weight: 700} #banner h2, #banner .titlebar { font-size: 130% } #banner ul.room_actions li.start_page a { background-color: #5C646B; color: #FEFFFC; border: 1px solid black; } #banner .banner {} /* style for the rooom picture */ #banner td img { padding: 0; margin: 0.5em; max-height: 64px; float: left; } #banner h1, #banner h2 { padding: 0; margin: 0; } #banner .banner p { padding: 0; margin: 0; } /* style for the feed, file, etc picture */ #banner .banner td a > img { clear: both; padding: 0; margin: 0 0.3em; border: none; } #banner .infos{ margin: 0.5em } #room_infos { position: absolute; top: 0; left: 50%; width: 45%; z-index: 10; cursor: pointer; text-align: left; padding: 10px 2px 2px 2px; } #room_infos img.close_infos { float: right } #actiondiv { float: right; margin: 0; padding: 0; text-align: right; font-size: 70%; font-weight: bold; } #banner ul.room_actions { list-style: none; margin: 0; padding: 0; } #banner ul.room_actions li { white-space: nowrap; } #banner ul.room_actions li form { margin: 0; padding: 0; } #banner ul.room_actions li select, #banner ul.room_actions li input { margin-top: 2px; margin-right: 2px; } #room_banner_override { display: none; } #nummsgs, #numfiles { font-size: 75%; margin-left: 0.5em; } #selectpage.hidden { display: none !important } .banner .infos { cursor: help } .room_actions form select { cursor: pointer } .start_page { font-size: 50% } webcit-dfsg.orig/static/styles/mobile.css0000644000175000017500000000215413223341037020574 0ustar michaelmichael/* * Copyright 2005 - 2009 The Citadel Team * Licensed under the GPL V3 * styles for mobile clients */ body { } #button li { display: inline; padding-right: 5px; } #button li img { display: none; } img { border: none; text-decoration: none; } #message_list div div { border-bottom: 1px dotted black; padding: 5px 5px 5px 5px; /* background-color: white; */ } .subject { color: gray; } body[orient="portrait"] { max-width: 320px; } body { font-family: sans-serif; font-size: 11px; } .msgview { display: none; background-color: white !important; } .message_content { background-color: white; } #login_form label, #login_form input, #login_form select, #login_form div{ display: list-item; text-align: center !important; margin: 0px auto; } #navbar ul li { display: inline; padding-right: 5px; } #navbar ul li img { vertical-align: middle; } #navbar ul li a { text-decoration: none; } .sticky { background-color: gray; border: 1px solid black; width: 100%; } #vcontent { } .roomname { background-color: #022750; color: white; border-radius: 5px; } .roomname img{ vertical-align: middle; } webcit-dfsg.orig/static/styles/message.css0000644000175000017500000000417413223341037020755 0ustar michaelmichael.message, .entmsg{ background-color: #deded0; margin: 0.5em 1em; /* border: 1px solid #5C646B; */ -webkit-box-shadow: #666 0px 2px 3px; -moz-box-shadow: #666 0px 2px 3px; box-shadow: #666 0px 2px 3px; /* behavior: url(/static/styles/PIE.htc);*/ } .entmsg { height: 95%; } .message_header { font-size: x-small; padding: 0.5em; } .message_content { background-color: #fff; padding: 0.5em; clear: both; } .message_subject { font-size: medium; font-style: italic; float: left; } .message_header span, .message_header a { font-weight: bold; } .message_header p { margin: 3px 0; padding: 0; } .message_content > div > div { text-align: justify !important } .message form div label, .entmsg form div label { display: block; float: left; margin: 0.3em; width: 9em; text-align: right; } .message form div input, .message form div select, .entmsg form div input, .entmsg form div select { margin: 0.3em; } .msgbuttons { float: right; font-size: 80%; line-height: 2em; } .msgbuttons a { font-size: x-small; display: inline-block; margin-left: 0.3em; } /* Blockquotes in messages need to be distingushable */ /* there is a lot of cascading happen io order to make it look beautiful */ /* if you make changes here, port them to WEBCIT-TINYMCE.css! */ .message_content blockquote { /*border: 1px solid #5C646B;*/ padding: 0.2em; margin: 0.3em 0.5em; } .message_content blockquote .message_header span { display: inline-block; } .message_content blockquote .message_header span.message_subject { display: block; float: none; } /*top border of message headerrs in a blockquote need to be transparent*/ blockquote .message_header { padding: 0; background-color: #deded0; } /*make bottom border of content inside of a blockquote rounded, so it fits the blockquote*/ blockquote .message_content { padding: 0; background-color: transparent; margin: 0.3em; } /* --- End of blockquoting block --- */ .message img { max-width: 700px; padding: 10px; background-color: #fff; border: 1px solid #5C646B; box-shadow: #666 0px 2px 3px; -webkit-box-shadow: #666 0px 1px 2px; -moz-box-shadow: #666 0px 2px 3px; } webcit-dfsg.orig/static/styles/modal.css0000644000175000017500000000215413223341037020421 0ustar michaelmichael.md-overlay-decorator { background: #222; height: 100%; width: 100%; position: absolute; top:0; left:0; opacity:0.8; z-index:2000; *display:none; } .md-overlay-wrap { height:100%; width:100%; display:block; position:absolute; top:0; left:0; z-index:2001; overflow:auto; *overflow-x:hidden; *zoom:1; /* (0.8 * 255).toString(16) = cc */ *filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#cc222222,endColorstr=#cc222222); *background:transparent url(../pixel.gif); } .md-overlay { z-index:2001; position:relative; margin:0 auto; display:table; height:100%; vertical-align:middle; width:80%; z-index:9999; *width:100%; *text-align:center; *position:static; *display:block; } .md-dialog-wrap { display:table-cell; vertical-align:middle; *width:80%; *text-align:left; *zoom:1; *display:inline; } .md-dialog-decorator { display:none; *vertical-align:middle; *zoom:1; *display:inline; *height:100%; *width:0; *background:#022750; } #modal { display:none; } .modal #modal { display:block; } .md-dialog { background: white; border: 2px solid #022750; padding: 10px; } webcit-dfsg.orig/static/styles/datepicker.css0000644000175000017500000000361213223341037021440 0ustar michaelmichael/** * DatePicker widget using Prototype and Scriptaculous. * (c) 2007 Mathieu Jondet * Eulerian Technologies * * DatePicker is freely distributable under the same terms as Prototype. * */ div.datepicker { position: absolute; text-align: center; border: 1px #C4D5E3 solid; font-family: arial; background: #FFFFFF; font-size: 10px; padding: 0px; z-index: 4; } div.datepicker table { font-size: 10px; margin: 0px; padding: 0px; text-align: center; width: 180px; } div.datepicker table thead tr th { font-size: 12px; font-weight: bold; background: #e9eff4; border-bottom:1px solid #c4d5e3; padding: 0px; margin: 0px; } div.datepicker table tbody tr { border: 1px white solid; margin: 0px; padding: 0px; } div.datepicker table tbody tr td { border: 1px #eaeaea solid; margin: 0px; padding: 0px; text-align: center; } div.datepicker table tbody tr td:hover, div.datepicker table tbody tr td.outbound:hover, div.datepicker table tbody tr td.today:hover { border: 1px #c4d5e3 solid; background: #e9eff4; cursor: pointer; } div.datepicker table tbody tr td.wday { border: 1px #ffffff solid; background: #ffffff; cursor: text; } div.datepicker table tbody tr td.outbound { background: #e8e4e4; } div.datepicker table tbody tr td.today { border: 1px #16518e solid; background: #c4d5e3; } div.datepicker table tbody tr td.nclick, div.datepicker table tbody tr td.nclick_outbound { cursor:default; color:#aaa; } div.datepicker table tbody tr td.nclick_outbound { background:#E8E4E4; } div.datepicker table tbody tr td.nclick:hover, div.datepicker table tbody tr td.nclick_outbound:hover { border: 1px #eaeaea solid; background: #FFF; } div.datepicker table tbody tr td.nclick_outbound:hover { background:#E8E4E4; } div.datepicker table tfoot { font-size: 10px; background: #e9eff4; border-top:1px solid #c4d5e3; cursor: pointer; text-align: center; padding: 0px; } webcit-dfsg.orig/static/styles/iconbaricns.css0000644000175000017500000000312113223341037021612 0ustar michaelmichael/* * Copyright 2005 - 2009 The Citadel Team * Licensed under the GPL V3 * * Styles for the WebCit Iconbar. */ .ib_button { min-height: 38px; background-repeat: no-repeat !important; background-position: 7px 3px; vertical-align: middle; } .ib_button_link { padding-top: 0.8em; padding-left: 48px; height: 100%; min-height: 25px; /* Makes all of the 'button' to be clickable */ } #ib_summary { background-image: url("/static/webcit_icons/essen/32x32/summary.png"); } #ib_inbox { background-image: url("/static/webcit_icons/essen/32x32/email.png"); } #ib_calendar { background-image: url("/static/webcit_icons/essen/32x32/calendar.png"); } #ib_contacts { background-image: url("/static/webcit_icons/essen/32x32/contact.png"); } #ib_notes { background-image: url("/static/webcit_icons/essen/32x32/note.png"); } #ib_tasks { background-image: url("/static/webcit_icons/essen/32x32/task.png"); } #ib_rooms { background-image: url("/static/webcit_icons/essen/32x32/room.png"); } #ib_users { background-image: url("/static/webcit_icons/essen/32x32/user.png"); } #ib_chat { background-image: url("/static/webcit_icons/essen/32x32/chat.png"); } #ib_advanced, #ib_admin { background-image: url("/static/webcit_icons/essen/32x32/config.png"); } #ib_aide { background-image: url("/static/webcit_icons/essen/32x32/config.png"); } #ib_logoff { background-image: url("/static/webcit_icons/essen/32x32/logout.png"); } #ib_login { background-image: url("/static/webcit_icons/essen/32x32/login.png"); } #citlogo { display: block !important; } webcit-dfsg.orig/static/styles/content.css0000644000175000017500000000235213223341037020777 0ustar michaelmichael#content { position: fixed; top: 100px; /* when changing this, also change #banner and #iconbar */ left: 16%; /* when changing this, also change #banner and #iconbar */ bottom: 0; width: 84%; /* when changing this, also change #banner and #iconbar */ background: #F3F6F2; color: #000; z-index: 2; overflow-y: auto; padding-top: 0.5em; } .boxcontent table { margin: 0; padding: 0; } #content table .box { margin: 0; width: 100%; text-align: left; } .service, .who_is_online { text-align: center; width: 100%; } .service table { margin: 0 auto 0 auto; width: 100%; text-align: left; } .instructions { text-align: center; } .moreprompt { margin: 0 1em; text-align: center; font-size: small; background-color: #4d555c; color: #ddd; border: 2px solid #4d555c; /*in order to make the hover effect pop out nice */ /*border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; */ } .moreprompt_link { color: #ddd; font-weight: bold; } .moreprompt_link:hover { background-color: #ddd; color: #4d555c; border: 0px solid #5c646b; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; } /* a > div.moreprompt { border: none; border-radius: 0; } */ webcit-dfsg.orig/static/sound.js0000644000175000017500000000463013223341037016757 0ustar michaelmichael// script.aculo.us sound.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010 // Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // // Based on code created by Jules Gravinese (http://www.webveteran.com/) // // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ Sound = { tracks: {}, _enabled: true, template: new Template(''), enable: function(){ Sound._enabled = true; }, disable: function(){ Sound._enabled = false; }, play: function(url){ if(!Sound._enabled) return; var options = Object.extend({ track: 'global', url: url, replace: false }, arguments[1] || {}); if(options.replace && this.tracks[options.track]) { $R(0, this.tracks[options.track].id).each(function(id){ var sound = $('sound_'+options.track+'_'+id); sound.Stop && sound.Stop(); sound.remove(); }); this.tracks[options.track] = null; } if(!this.tracks[options.track]) this.tracks[options.track] = { id: 0 }; else this.tracks[options.track].id++; options.id = this.tracks[options.track].id; $$('body')[0].insert( Prototype.Browser.IE ? new Element('bgsound',{ id: 'sound_'+options.track+'_'+options.id, src: options.url, loop: 1, autostart: true }) : Sound.template.evaluate(options)); } }; if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){ if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 })) Sound.template = new Template(''); else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('Windows Media') != -1 })) Sound.template = new Template(''); else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('RealPlayer') != -1 })) Sound.template = new Template(''); else Sound.play = function(){}; } webcit-dfsg.orig/static/util.js0000644000175000017500000003322713223341037016610 0ustar michaelmichael// small but works-for-me stuff for testing javascripts // not ready for "production" use Object.inspect = function(obj) { var info = []; if(typeof obj in ["string","number"]) { return obj; } else { for(property in obj) if(typeof obj[property]!="function") info.push(property + ' => ' + (typeof obj[property] == "string" ? '"' + obj[property] + '"' : obj[property])); } return ("'" + obj + "' #" + typeof obj + ": {" + info.join(", ") + "}"); } // borrowed from http://www.schuerig.de/michael/javascript/stdext.js // Copyright (c) 2005, Michael Schuerig, michael@schuerig.de // License // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the // See http://www.gnu.org/copyleft/lesser.html Array.flatten = function(array, excludeUndefined) { if (excludeUndefined === undefined) { excludeUndefined = false; } var result = []; var len = array.length; for (var i = 0; i < len; i++) { var el = array[i]; if (el instanceof Array) { var flat = el.flatten(excludeUndefined); result = result.concat(flat); } else if (!excludeUndefined || el != undefined) { result.push(el); } } return result; }; if (!Array.prototype.flatten) { Array.prototype.flatten = function(excludeUndefined) { return Array.flatten(this, excludeUndefined); } } /*--------------------------------------------------------------------------*/ var Builder = { node: function(elementName) { var element = document.createElement('div'); element.innerHTML = "<" + elementName + ">"; // attributes (or text) if(arguments[1]) if(this._isStringOrNumber(arguments[1]) || (arguments[1] instanceof Array)) { this._children(element.firstChild, arguments[1]); } else { var attrs = this._attributes(arguments[1]); if(attrs.length) element.innerHTML = "<" +elementName + " " + attrs + ">"; } // text, or array of children if(arguments[2]) this._children(element.firstChild, arguments[2]); return element.firstChild; }, _text: function(text) { return document.createTextNode(text); }, _attributes: function(attributes) { var attrs = []; for(attribute in attributes) attrs.push((attribute=='className' ? 'class' : attribute) + '="' + attributes[attribute].toString().escapeHTML() + '"'); return attrs.join(" "); }, _children: function(element, children) { if(typeof children=='object') { // array can hold nodes and text children = children.flatten(); for(var i = 0; i 0 ? ' ' : '') + arguments[i]; } }, // returns true if all given classes exist in said element has: function(element) { element = $(element); if(!element || !element.className) return false; var regEx; for(var i = 1; i < arguments.length; i++) { if((typeof arguments[i] == 'object') && (arguments[i].constructor == Array)) { for(var j = 0; j < arguments[i].length; j++) { regEx = new RegExp("(^|\\s)" + arguments[i][j] + "(\\s|$)"); if(!regEx.test(element.className)) return false; } } else { regEx = new RegExp("(^|\\s)" + arguments[i] + "(\\s|$)"); if(!regEx.test(element.className)) return false; } } return true; }, // expects arrays of strings and/or strings as optional paramters // Element.Class.has_any(element, ['classA','classB','classC'], 'classD') has_any: function(element) { element = $(element); if(!element || !element.className) return false; var regEx; for(var i = 1; i < arguments.length; i++) { if((typeof arguments[i] == 'object') && (arguments[i].constructor == Array)) { for(var j = 0; j < arguments[i].length; j++) { regEx = new RegExp("(^|\\s)" + arguments[i][j] + "(\\s|$)"); if(regEx.test(element.className)) return true; } } else { regEx = new RegExp("(^|\\s)" + arguments[i] + "(\\s|$)"); if(regEx.test(element.className)) return true; } } return false; }, childrenWith: function(element, className) { var children = $(element).getElementsByTagName('*'); var elements = new Array(); for (var i = 0; i < children.length; i++) { if (Element.Class.has(children[i], className)) { elements.push(children[i]); break; } } return elements; } } /*--------------------------------------------------------------------------*/ String.prototype.parseQuery = function() { var str = this; if(str.substring(0,1) == '?') { str = this.substring(1); } var result = {}; var pairs = str.split('&'); for(var i = 0; i < pairs.length; i++) { var pair = pairs[i].split('='); result[pair[0]] = pair[1]; } return result; }webcit-dfsg.orig/static/unittest.js0000644000175000017500000004736113223341037017516 0ustar michaelmichael// script.aculo.us unittest.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010 // Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // (c) 2005-2010 Jon Tirsen (http://www.tirsen.com) // (c) 2005-2010 Michael Schuerig (http://www.schuerig.de/michael/) // // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ // experimental, Firefox-only Event.simulateMouse = function(element, eventName) { var options = Object.extend({ pointerX: 0, pointerY: 0, buttons: 0, ctrlKey: false, altKey: false, shiftKey: false, metaKey: false }, arguments[2] || {}); var oEvent = document.createEvent("MouseEvents"); oEvent.initMouseEvent(eventName, true, true, document.defaultView, options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, 0, $(element)); if(this.mark) Element.remove(this.mark); this.mark = document.createElement('div'); this.mark.appendChild(document.createTextNode(" ")); document.body.appendChild(this.mark); this.mark.style.position = 'absolute'; this.mark.style.top = options.pointerY + "px"; this.mark.style.left = options.pointerX + "px"; this.mark.style.width = "5px"; this.mark.style.height = "5px;"; this.mark.style.borderTop = "1px solid red;"; this.mark.style.borderLeft = "1px solid red;"; if(this.step) alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options)); $(element).dispatchEvent(oEvent); }; // Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2. // You need to downgrade to 1.0.4 for now to get this working // See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much Event.simulateKey = function(element, eventName) { var options = Object.extend({ ctrlKey: false, altKey: false, shiftKey: false, metaKey: false, keyCode: 0, charCode: 0 }, arguments[2] || {}); var oEvent = document.createEvent("KeyEvents"); oEvent.initKeyEvent(eventName, true, true, window, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.keyCode, options.charCode ); $(element).dispatchEvent(oEvent); }; Event.simulateKeys = function(element, command) { for(var i=0; i' + 'StatusTestMessage' + '' + ''; this.logsummary = $('logsummary'); this.loglines = $('loglines'); }, _toHTML: function(txt) { return txt.escapeHTML().replace(/\n/g,"
    "); }, addLinksToResults: function(){ $$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log td.title = "Run only this test"; Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;}); }); $$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log td.title = "Run all tests"; Event.observe(td, 'click', function(){ window.location.search = "";}); }); } }; Test.Unit.Runner = Class.create(); Test.Unit.Runner.prototype = { initialize: function(testcases) { this.options = Object.extend({ testLog: 'testlog' }, arguments[1] || {}); this.options.resultsURL = this.parseResultsURLQueryParameter(); this.options.tests = this.parseTestsQueryParameter(); if (this.options.testLog) { this.options.testLog = $(this.options.testLog) || null; } if(this.options.tests) { this.tests = []; for(var i = 0; i < this.options.tests.length; i++) { if(/^test/.test(this.options.tests[i])) { this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"])); } } } else { if (this.options.test) { this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])]; } else { this.tests = []; for(var testcase in testcases) { if(/^test/.test(testcase)) { this.tests.push( new Test.Unit.Testcase( this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, testcases[testcase], testcases["setup"], testcases["teardown"] )); } } } } this.currentTest = 0; this.logger = new Test.Unit.Logger(this.options.testLog); setTimeout(this.runTests.bind(this), 1000); }, parseResultsURLQueryParameter: function() { return window.location.search.parseQuery()["resultsURL"]; }, parseTestsQueryParameter: function(){ if (window.location.search.parseQuery()["tests"]){ return window.location.search.parseQuery()["tests"].split(','); }; }, // Returns: // "ERROR" if there was an error, // "FAILURE" if there was a failure, or // "SUCCESS" if there was neither getResult: function() { var hasFailure = false; for(var i=0;i 0) { return "ERROR"; } if (this.tests[i].failures > 0) { hasFailure = true; } } if (hasFailure) { return "FAILURE"; } else { return "SUCCESS"; } }, postResults: function() { if (this.options.resultsURL) { new Ajax.Request(this.options.resultsURL, { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false }); } }, runTests: function() { var test = this.tests[this.currentTest]; if (!test) { // finished! this.postResults(); this.logger.summary(this.summary()); return; } if(!test.isWaiting) { this.logger.start(test.name); } test.run(); if(test.isWaiting) { this.logger.message("Waiting for " + test.timeToWait + "ms"); setTimeout(this.runTests.bind(this), test.timeToWait || 1000); } else { this.logger.finish(test.status(), test.summary()); this.currentTest++; // tail recursive, hopefully the browser will skip the stackframe this.runTests(); } }, summary: function() { var assertions = 0; var failures = 0; var errors = 0; var messages = []; for(var i=0;i 0) return 'failed'; if (this.errors > 0) return 'error'; return 'passed'; }, assert: function(expression) { var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"'; try { expression ? this.pass() : this.fail(message); } catch(e) { this.error(e); } }, assertEqual: function(expected, actual) { var message = arguments[2] || "assertEqual"; try { (expected == actual) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + '", actual "' + Test.Unit.inspect(actual) + '"'); } catch(e) { this.error(e); } }, assertInspect: function(expected, actual) { var message = arguments[2] || "assertInspect"; try { (expected == actual.inspect()) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + '", actual "' + Test.Unit.inspect(actual) + '"'); } catch(e) { this.error(e); } }, assertEnumEqual: function(expected, actual) { var message = arguments[2] || "assertEnumEqual"; try { $A(expected).length == $A(actual).length && expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ? this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + ', actual ' + Test.Unit.inspect(actual)); } catch(e) { this.error(e); } }, assertNotEqual: function(expected, actual) { var message = arguments[2] || "assertNotEqual"; try { (expected != actual) ? this.pass() : this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); } catch(e) { this.error(e); } }, assertIdentical: function(expected, actual) { var message = arguments[2] || "assertIdentical"; try { (expected === actual) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + '", actual "' + Test.Unit.inspect(actual) + '"'); } catch(e) { this.error(e); } }, assertNotIdentical: function(expected, actual) { var message = arguments[2] || "assertNotIdentical"; try { !(expected === actual) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + '", actual "' + Test.Unit.inspect(actual) + '"'); } catch(e) { this.error(e); } }, assertNull: function(obj) { var message = arguments[1] || 'assertNull'; try { (obj==null) ? this.pass() : this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); } catch(e) { this.error(e); } }, assertMatch: function(expected, actual) { var message = arguments[2] || 'assertMatch'; var regex = new RegExp(expected); try { (regex.exec(actual)) ? this.pass() : this.fail(message + ' : regex: "' + Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); } catch(e) { this.error(e); } }, assertHidden: function(element) { var message = arguments[1] || 'assertHidden'; this.assertEqual("none", element.style.display, message); }, assertNotNull: function(object) { var message = arguments[1] || 'assertNotNull'; this.assert(object != null, message); }, assertType: function(expected, actual) { var message = arguments[2] || 'assertType'; try { (actual.constructor == expected) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + '", actual "' + (actual.constructor) + '"'); } catch(e) { this.error(e); } }, assertNotOfType: function(expected, actual) { var message = arguments[2] || 'assertNotOfType'; try { (actual.constructor != expected) ? this.pass() : this.fail(message + ': expected "' + Test.Unit.inspect(expected) + '", actual "' + (actual.constructor) + '"'); } catch(e) { this.error(e); } }, assertInstanceOf: function(expected, actual) { var message = arguments[2] || 'assertInstanceOf'; try { (actual instanceof expected) ? this.pass() : this.fail(message + ": object was not an instance of the expected type"); } catch(e) { this.error(e); } }, assertNotInstanceOf: function(expected, actual) { var message = arguments[2] || 'assertNotInstanceOf'; try { !(actual instanceof expected) ? this.pass() : this.fail(message + ": object was an instance of the not expected type"); } catch(e) { this.error(e); } }, assertRespondsTo: function(method, obj) { var message = arguments[2] || 'assertRespondsTo'; try { (obj[method] && typeof obj[method] == 'function') ? this.pass() : this.fail(message + ": object doesn't respond to [" + method + "]"); } catch(e) { this.error(e); } }, assertReturnsTrue: function(method, obj) { var message = arguments[2] || 'assertReturnsTrue'; try { var m = obj[method]; if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)]; m() ? this.pass() : this.fail(message + ": method returned false"); } catch(e) { this.error(e); } }, assertReturnsFalse: function(method, obj) { var message = arguments[2] || 'assertReturnsFalse'; try { var m = obj[method]; if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)]; !m() ? this.pass() : this.fail(message + ": method returned true"); } catch(e) { this.error(e); } }, assertRaise: function(exceptionName, method) { var message = arguments[2] || 'assertRaise'; try { method(); this.fail(message + ": exception expected but none was raised"); } catch(e) { ((exceptionName == null) || (e.name==exceptionName)) ? this.pass() : this.error(e); } }, assertElementsMatch: function() { var expressions = $A(arguments), elements = $A(expressions.shift()); if (elements.length != expressions.length) { this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions'); return false; } elements.zip(expressions).all(function(pair, index) { var element = $(pair.first()), expression = pair.last(); if (element.match(expression)) return true; this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect()); }.bind(this)) && this.pass(); }, assertElementMatches: function(element, expression) { this.assertElementsMatch([element], expression); }, benchmark: function(operation, iterations) { var startAt = new Date(); (iterations || 1).times(operation); var timeTaken = ((new Date())-startAt); this.info((arguments[2] || 'Operation') + ' finished ' + iterations + ' iterations in ' + (timeTaken/1000)+'s' ); return timeTaken; }, _isVisible: function(element) { element = $(element); if(!element.parentNode) return true; this.assertNotNull(element); if(element.style && Element.getStyle(element, 'display') == 'none') return false; return this._isVisible(element.parentNode); }, assertNotVisible: function(element) { this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1])); }, assertVisible: function(element) { this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1])); }, benchmark: function(operation, iterations) { var startAt = new Date(); (iterations || 1).times(operation); var timeTaken = ((new Date())-startAt); this.info((arguments[2] || 'Operation') + ' finished ' + iterations + ' iterations in ' + (timeTaken/1000)+'s' ); return timeTaken; } }; Test.Unit.Testcase = Class.create(); Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), { initialize: function(name, test, setup, teardown) { Test.Unit.Assertions.prototype.initialize.bind(this)(); this.name = name; if(typeof test == 'string') { test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,'); test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)'); this.test = function() { eval('with(this){'+test+'}'); } } else { this.test = test || function() {}; } this.setup = setup || function() {}; this.teardown = teardown || function() {}; this.isWaiting = false; this.timeToWait = 1000; }, wait: function(time, nextPart) { this.isWaiting = true; this.test = nextPart; this.timeToWait = time; }, run: function() { try { try { if (!this.isWaiting) this.setup.bind(this)(); this.isWaiting = false; this.test.bind(this)(); } finally { if(!this.isWaiting) { this.teardown.bind(this)(); } } } catch(e) { this.error(e); } } }); // *EXPERIMENTAL* BDD-style testing to please non-technical folk // This draws many ideas from RSpec http://rspec.rubyforge.org/ Test.setupBDDExtensionMethods = function(){ var METHODMAP = { shouldEqual: 'assertEqual', shouldNotEqual: 'assertNotEqual', shouldEqualEnum: 'assertEnumEqual', shouldBeA: 'assertType', shouldNotBeA: 'assertNotOfType', shouldBeAn: 'assertType', shouldNotBeAn: 'assertNotOfType', shouldBeNull: 'assertNull', shouldNotBeNull: 'assertNotNull', shouldBe: 'assertReturnsTrue', shouldNotBe: 'assertReturnsFalse', shouldRespondTo: 'assertRespondsTo' }; var makeAssertion = function(assertion, args, object) { this[assertion].apply(this,(args || []).concat([object])); }; Test.BDDMethods = {}; $H(METHODMAP).each(function(pair) { Test.BDDMethods[pair.key] = function() { var args = $A(arguments); var scope = args.shift(); makeAssertion.apply(scope, [pair.value, args, this]); }; }); [Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each( function(p){ Object.extend(p, Test.BDDMethods) } ); }; Test.context = function(name, spec, log){ Test.setupBDDExtensionMethods(); var compiledSpec = {}; var titles = {}; for(specName in spec) { switch(specName){ case "setup": case "teardown": compiledSpec[specName] = spec[specName]; break; default: var testName = 'test'+specName.gsub(/\s+/,'-').camelize(); var body = spec[specName].toString().split('\n').slice(1); if(/^\{/.test(body[0])) body = body.slice(1); body.pop(); body = body.map(function(statement){ return statement.strip() }); compiledSpec[testName] = body.join('\n'); titles[testName] = specName; } } new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name }); }; webcit-dfsg.orig/static/scriptaculous.js0000644000175000017500000000556313223341037020535 0ustar michaelmichael// script.aculo.us scriptaculous.js v1.9.0, Thu Dec 23 16:54:48 -0500 2010 // Copyright (c) 2005-2010 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // For details, see the script.aculo.us web site: http://script.aculo.us/ var Scriptaculous = { Version: '1.9.0', require: function(libraryName) { try{ // inserting via DOM fails in Safari 2.0, so brute force approach document.write('