# Romanian translation of fetchmail. # Copyright (C) 2020 - 2023 Eric S. Raymond (msgids) # This file is distributed under the same license as the fetchmail package. # # Florentina Mușat , 2020. # Remus-Gabriel Chelu , 2022-2023. # # Cronologia traducerii fișierului „fetchmail”: # Traducera inițială, făcută de FM, pentru versiunea fetchmail 6.4.5-rc2. # Actualizare a algoritmului formelor de plural (de la „trei-vechi” la „trei-nou”). # NU și a mesajelor traduse (acestea au rămas neschimbate). # Eliminare a mesajelor ce-au dispărut în ultima versiune. # Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. # Actualizare a algoritmului formelor de plural (de la „trei” la „patru”, experimental). # Actualizare a traducerii pentru versiunea 6.4.25.rc1, făcută de R-GC, 2022. # Actualizare a traducerii pentru versiunea 6.4.31, făcută de R-GC, 2022. # Actualizare a traducerii pentru versiunea 6.4.35, făcută de R-GC, 2023. # Actualizare a traducerii pentru versiunea Y, făcută de X, Z(anul). # msgid "" msgstr "" "Project-Id-Version: fetchmail 6.4.35\n" "Report-Msgid-Bugs-To: fetchmail-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2023-01-04 12:06+0100\n" "PO-Revision-Date: 2023-01-04 18:48+0100\n" "Last-Translator: Remus-Gabriel Chelu \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" "Plural-Forms: nplurals=4; plural=((n==1) ? 0 : (n==2) ? 1 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 2 : 3);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.2.2\n" # R-GC, scrie: # „node”, se referă la nodul de rețea, ce # este reprezentat de-o adresă IP a unui # dispozitiv hardware. Adică, o mașină. #: checkalias.c:174 #, c-format msgid "Checking if %s is really the same node as %s\n" msgstr "Se verifică dacă %s și %s sunt într-adevăr aceeași mașină\n" #: checkalias.c:178 msgid "Yes, their IP addresses match\n" msgstr "Da, adresele lor IP se potrivesc\n" #: checkalias.c:182 msgid "No, their IP addresses don't match\n" msgstr "Nu, adresele lor IP nu se potrivesc\n" #: checkalias.c:207 #, c-format msgid "nameserver failure while looking for '%s' during poll of %s: %s\n" msgstr "serverul de nume a eșuat la rezolvarea numelui pentru „%s” în timpul sondajului %s: %s\n" #: checkalias.c:230 #, c-format msgid "nameserver failure while looking for `%s' during poll of %s.\n" msgstr "serverul de nume a eșuat la rezolvarea numelui pentru „%s” în timpul sondajului %s.\n" #: cram.c:95 ntlmsubr.c:65 msgid "could not decode BASE64 challenge\n" msgstr "nu s-a putut decodifica provocarea BASE64\n" #: cram.c:103 #, c-format msgid "decoded as %s\n" msgstr "decodificat ca %s\n" #: driver.c:199 #, c-format msgid "kerberos error %s\n" msgstr "eroare kerberos %s\n" #: driver.c:259 driver.c:265 #, c-format msgid "krb5_sendauth: %s [server says '%s']\n" msgstr "krb5_sendauth: %s [serverul spune „%s”]\n" # R-GC, scrie: # mesajul, într-o versiune anterioară, era: # msgid "Subject: Fetchmail oversized-messages warning" # *** # aici se putea deduce mai clar, că # avertismentul este făcut de «fetchmail», # care „sesizează” că, mesajele primite, sunt # supradimensionate; și avizează asupra acestui lucru. # *** # Traducerea anterioară, făcută de către FM, era: # „Avertisment de mesaje supradimensionate fetchmail”, care mi se # pare cam ambiguă, utilizatorul poate să # înțeleagă că: «mesajele (de avertisment # ale) lui fetchmail sunt supradimensionate» # *** # Am „în mînecă”, o altă traducere, # a aceluiași mesaj: # „Fetchmail avertizează: mesaje supradimensionate” # *** # Opinii/Idei? # După revizarea fișierului, DȘ, zice: # „→ propunerea din comentariu este mai bună decât traducerea...” # === # modificare aplicată; textul dinainte: # „Avertisment fetchmail: mesaje supradimensionate” #: driver.c:345 msgid "Fetchmail oversized-messages warning" msgstr "Fetchmail avertizează: mesaje supradimensionate" #: driver.c:349 #, c-format msgid "The following oversized messages were deleted on server %s account %s:" msgstr "Următoarele mesaje supradimensionate au fost șterse de pe serverul %s, contul %s:" #: driver.c:353 #, c-format msgid "The following oversized messages remain on server %s account %s:" msgstr "Următoarele mesaje supradimensionate rămân pe serverul %s, contul %s:" # R-GC, scrie: # cred c-ar trebui modificată traducerea de la: # „... lung de %d octeți ...”, la: # „... lung de %d de octeți ...” # datorită „teoriei probabilităților”, cîte # probabilități sunt ca mesajul să fie mai scurt # de 20 de octeți, și cîte, în comparativă, mai # lungi de 20 de octeți? # Valabil bineînțeles, și pentru mesajele # următoare... (modificarea) # *** # Opinii/Idei? # După revizarea fișierului, DȘ, zice: # „→ cred că ar trebui lăsat fără „de” pentru că nu știm sigur câți sunt, # așa că lăsăm mesajul generic” # === # am verificat că un email gol, doar cu un antet scurt, are dimensiunea mai mare de # 300 de Octeți; motiv pentru care voi # aplica modificările: „... +de octeți” #: driver.c:372 #, c-format msgid " %d message %d octets long deleted by fetchmail." msgid_plural " %d messages %d octets long deleted by fetchmail." msgstr[0] " un mesaj lung de %d de octeți șters de fetchmail." msgstr[1] " două mesaje lungi de %d de octeți șterse de fetchmail." msgstr[2] " %d mesaje lungi de %d de octeți șterse de fetchmail." msgstr[3] " %d de mesaje lungi de %d de octeți șterse de fetchmail." #: driver.c:377 #, c-format msgid " %d message %d octets long skipped by fetchmail." msgid_plural " %d messages %d octets long skipped by fetchmail." msgstr[0] " un mesaj lung de %d de octeți omis de fetchmail." msgstr[1] " două mesaje lungi de %d de octeți omise de fetchmail." msgstr[2] " %d mesaje lungi de %d de octeți omise de fetchmail." msgstr[3] " %d de mesaje lungi de %d de octeți omise de fetchmail." #: driver.c:522 #, c-format msgid "skipping message %s@%s:%d" msgstr "se omite mesajul %s@%s:%d" #: driver.c:577 #, c-format msgid "skipping message %s@%s:%d (%d octets)" msgstr "se omite mesajul %s@%s:%d (%d octeți)" #: driver.c:593 msgid " (length -1)" msgstr " (lungime -1)" #: driver.c:596 msgid " (oversized)" msgstr " (supradimensionat)" #: driver.c:614 #, c-format msgid "couldn't fetch headers, message %s@%s:%d (%d octets)\n" msgstr "nu s-au putut aduce antetele, mesajul %s@%s:%d (%d octeți)\n" #: driver.c:632 #, c-format msgid "reading message %s@%s:%d of %d" msgstr "se citește mesajul %s@%s:%d din %d" #: driver.c:637 #, c-format msgid " (%d octets)" msgstr " (%d octeți)" #: driver.c:638 #, c-format msgid " (%d header octets)" msgstr " (%d de octeți în antetul mesajului)" #: driver.c:708 #, c-format msgid " (%d body octets)" msgstr " (%d de octeți în corpul mesajului)" #: driver.c:770 #, c-format msgid "message %s@%s:%d was not the expected length (%d actual != %d expected)\n" msgstr "mesajul %s@%s:%d nu a fost de lungimea așteptată (%d actual != %d așteptat)\n" #: driver.c:802 msgid " retained\n" msgstr " reținut\n" #: driver.c:812 msgid " flushed\n" msgstr " golit\n" #: driver.c:824 msgid " not flushed\n" msgstr " negolit\n" # R-GC, scrie: # la traducerea formelor de singular, plural, # de forma: „un mesaj”, respectiv „două # mesaje”, Poedit s-a opus. # . # Bănuiesc c-ar fi unele diferențe în codul # sursă între acest mesaj și celelalte unde a # acceptat această formă de traducere... # *** # Nu știu dacă „left on”, nu ar fi trebuit # tradus ca: „lăsat pe”, în loc de „rămas pe”. # Este o diferență subtilă... #: driver.c:842 #, c-format msgid "fetchlimit %d reached; %d message left on server %s account %s\n" msgid_plural "fetchlimit %d reached; %d messages left on server %s account %s\n" msgstr[0] "limita de aducere %d atinsă; %d mesaj rămas pe serverul %s contul %s\n" msgstr[1] "limita de aducere %d atinsă; %d mesaje rămase pe serverul %s contul %s\n" msgstr[2] "limita de aducere %d atinsă; %d mesaje rămase pe serverul %s contul %s\n" msgstr[3] "limita de aducere %d atinsă; %d de mesaje rămase pe serverul %s contul %s\n" # R-Gc, scrie: # cum traducerea inițială mi s-a părut neclară: # „limită de timp după %d secunde așteptând să se conecteze la serverul %s.”, # am modificat-o la: # „după %d secunde, a expirat timpul de așteptare pentru conectarea la serverul %s.”, care transmite # un mesaj clar, utilizatorului. # *** # am modificat de aceași formă, restul mesajelor # pe „aceeași temă”. #: driver.c:900 #, c-format msgid "timeout after %d seconds waiting to connect to server %s.\n" msgstr "după %d secunde, a expirat timpul de așteptare pentru conectarea la serverul %s.\n" #: driver.c:904 #, c-format msgid "timeout after %d seconds waiting for server %s.\n" msgstr "după %d secunde, a expirat timpul de așteptare pentru serverul %s.\n" #: driver.c:908 #, c-format msgid "timeout after %d seconds waiting for %s.\n" msgstr "după %d secunde, a expirat timpul de așteptare pentru %s.\n" # R-GC, scrie: # nu-mi prea place cum sună fraza asta cu # „ascultătorul”; am impresia că acest # „ascultător”, este o funcție-demon a # serverului fetchmail... # Așa că, aș schimba fraza în: # „... pentru ca demonul/serverul fetchmail să răspundă.” # Notă: acesta nu este singurul mesaj din fișier # unde apare termenul «listener», dar este # primul în ordinea redactării fișierului. # *** # Opinii/Idei? #: driver.c:913 #, c-format msgid "timeout after %d seconds waiting for listener to respond.\n" msgstr "după %d secunde, a expirat timpul de așteptare pentru ca ascultătorul să răspundă.\n" #: driver.c:916 #, c-format msgid "timeout after %d seconds.\n" msgstr "limită de timp atinsă, după %d secunde.\n" #: driver.c:928 msgid "fetchmail sees repeated timeouts" msgstr "fetchmail notează repetate depășiri ale limitei de timp" #: driver.c:931 #, c-format msgid "Fetchmail saw more than %d timeouts while attempting to get mail from %s@%s.\n" msgstr "Fetchmail a notat mai mult de %d depășiri ale limitei de timp, în timp ce încerca să obțină mesaje de email de la %s@%s.\n" #: driver.c:935 msgid "" "This could mean that your mailserver is stuck, or that your SMTP\n" "server is wedged, or that your mailbox file on the server has been\n" "corrupted by a server error. You can run `fetchmail -v -v' to\n" "diagnose the problem.\n" "\n" "Fetchmail won't poll this mailbox again until you restart it.\n" msgstr "" "Aceasta poate să însemne că serverul de mail este blocat, sau că serverul\n" "SMTP este înțepenit, sau că fișierul căsuței de mail de pe server a fost\n" "corupt de o eroare a serverului. Puteți rula «fetchmail -v -v» pentru a\n" "diagnostica problema.\n" "\n" "Fetchmail nu va sonda această căsuță de email din nou până ce nu îl reporniți.\n" #: driver.c:961 #, c-format msgid "pre-connection command terminated with signal %d\n" msgstr "comandă de pre-conectare terminată cu semnalul %d\n" #: driver.c:964 #, c-format msgid "pre-connection command failed with status %d\n" msgstr "comanda de pre-conectare a eșuat cu starea %d\n" #: driver.c:994 #, c-format msgid "couldn't find HESIOD pobox for %s\n" msgstr "nu s-a putut găsi căsuța poștală HESIOD pentru %s\n" #: driver.c:1015 msgid "Lead server has no name.\n" msgstr "Serverul principal nu are un nume.\n" #: driver.c:1042 #, c-format msgid "couldn't find canonical DNS name of %s (%s): %s\n" msgstr "nu s-a putut găsi numele DNS canonic pentru %s (%s): %s\n" #: driver.c:1089 #, c-format msgid "%s connection to %s failed" msgstr "conexiunea %s la %s a eșuat" #: driver.c:1118 msgid "SSL connection failed.\n" msgstr "Conexiunea SSL a eșuat.\n" #: driver.c:1172 #, c-format msgid "Lock-busy error on %s@%s\n" msgstr "Eroare de blocare-ocupat pe %s@%s\n" #: driver.c:1176 #, c-format msgid "Server busy error on %s@%s\n" msgstr "Eroare de server ocupat pe %s@%s\n" #: driver.c:1181 #, c-format msgid "Authorization failure on %s@%s%s\n" msgstr "Eșec de autorizare pe %s@%s%s\n" #: driver.c:1184 msgid " (previously authorized)" msgstr " (autorizat anterior)" #: driver.c:1187 msgid "For help, see http://www.fetchmail.info/fetchmail-FAQ.html#R15\n" msgstr "Pentru ajutor, consultați http://www.fetchmail.info/fetchmail-FAQ.html#R15\n" #: driver.c:1208 #, c-format msgid "fetchmail authentication failed on %s@%s" msgstr "autentificarea fetchmail a eșuat pe %s@%s" #: driver.c:1212 #, c-format msgid "Fetchmail could not get mail from %s@%s.\n" msgstr "Fetchmail nu a putut obține mesajele de email de la %s@%s.\n" #: driver.c:1216 msgid "" "The attempt to get authorization failed.\n" "Since we have already succeeded in getting authorization for this\n" "connection, this is probably another failure mode (such as busy server)\n" "that fetchmail cannot distinguish because the server didn't send a useful\n" "error message." msgstr "" "Încercarea de a obține autorizarea a eșuat.\n" "Deoarece s-a reușit deja mai demult obținerea autorizării pentru această\n" "conexiune, probabil există un alt motiv de eșuare (precum un server ocupat)\n" "pe care fetchmail nu îl poate distinge pentru că serverul nu a trimis un mesaj\n" "de eroare util." #: driver.c:1222 msgid "" "\n" "However, if you HAVE changed your account details since starting the\n" "fetchmail daemon, you need to stop the daemon, change your configuration\n" "of fetchmail, and then restart the daemon.\n" "\n" "The fetchmail daemon will continue running and attempt to connect\n" "at each cycle. No future notifications will be sent until service\n" "is restored." msgstr "" "\n" "În orice caz, dacă AȚI schimbat detaliile contului după pornirea\n" "serviciului fetchmail, trebuie să opriți serviciul, să modificați configurarea\n" "lui fetchmail, și apoi să reporniți demonul.\n" "\n" "Serviciul fetchmail va continua să ruleze și să încerce să se conecteze\n" "la fiecare ciclu. Nu se vor trimite înștiințări viitoare până când serviciul\n" "este restabilit." #: driver.c:1232 msgid "" "The attempt to get authorization failed.\n" "This probably means your password is invalid, but some servers have\n" "other failure modes that fetchmail cannot distinguish from this\n" "because they don't send useful error messages on login failure.\n" "\n" "The fetchmail daemon will continue running and attempt to connect\n" "at each cycle. No future notifications will be sent until service\n" "is restored." msgstr "" "Încercarea de a obține autorizare a eșuat.\n" "Acest lucru probabil înseamnă că parola nu este validă, dar unele servere au\n" "alte moduri de eșuare pe care fetchmail nu le poate distinge de acestea\n" "pentru că ele nu trimit mesaje de eroare utile la eșuarea autentificării\n" "\n" "Serviciul fetchmail va continua să ruleze și să încerce să se conecteze\n" "la fiecare ciclu. Nu se vor trimite înștiințări viitoare până când serviciul\n" "nu este restabilit." #: driver.c:1248 #, c-format msgid "Repoll immediately on %s@%s\n" msgstr "Sondează din nou imediat pe %s@%s\n" #: driver.c:1254 #, c-format msgid "Socket or TLS error on %s@%s\n" msgstr "Eroare de soclu sau TLS pe %s@%s\n" #: driver.c:1260 #, c-format msgid "Unknown login or authentication error on %s@%s\n" msgstr "Eroare necunoscută de conectare la cont sau de autentificare pe %s@%s\n" #: driver.c:1285 #, c-format msgid "Authorization OK on %s@%s\n" msgstr "Autorizarea este OK pe %s@%s\n" #: driver.c:1291 #, c-format msgid "fetchmail authentication OK on %s@%s" msgstr "autentificarea fetchmail OK pe %s@%s" #: driver.c:1295 #, c-format msgid "Fetchmail was able to log into %s@%s.\n" msgstr "Fetchmail a putut să se autentifice la %s@%s.\n" #: driver.c:1299 msgid "Service has been restored.\n" msgstr "Serviciul a fost restabilit.\n" #: driver.c:1332 #, c-format msgid "selecting or re-polling folder %s\n" msgstr "se selectează sau se sondează din nou dosarul %s\n" #: driver.c:1334 msgid "selecting or re-polling default folder\n" msgstr "se selectează sau se sondează din nou dosarul implicit\n" #: driver.c:1346 #, c-format msgid "%s at %s (folder %s)" msgstr "%s la %s (dosarul %s)" #: driver.c:1349 rcfile_y.y:390 #, c-format msgid "%s at %s" msgstr "%s la %s" #: driver.c:1354 #, c-format msgid "Polling %s\n" msgstr "Se sondează %s\n" # R-GC, scrie: # alt mesaj la care Poedit se opune la # aplicarea formelor de singular/plural. #: driver.c:1358 #, c-format msgid "%d message (%d %s) for %s" msgid_plural "%d messages (%d %s) for %s" msgstr[0] "%d mesaj (%d %s) pentru %s" msgstr[1] "%d mesaje (%d %s) pentru %s" msgstr[2] "%d mesaje (%d %s) pentru %s" msgstr[3] "%d de mesaje (%d %s) pentru %s" #: driver.c:1361 msgid "seen" msgid_plural "seen" msgstr[0] "văzut" msgstr[1] "văzute" msgstr[2] "văzute" msgstr[3] "văzute" # R-GC, scrie: # alt mesaj la care Poedit se opune la # aplicarea formelor de singular/plural. #: driver.c:1364 #, c-format msgid "%d message for %s" msgid_plural "%d messages for %s" msgstr[0] "%d mesaj pentru %s" msgstr[1] "%d mesaje pentru %s" msgstr[2] "%d mesaje pentru %s" msgstr[3] "%d de mesaje pentru %s" #: driver.c:1371 #, c-format msgid " (%d octets).\n" msgstr " (%d octeți).\n" #: driver.c:1377 #, c-format msgid "No mail for %s\n" msgstr "Nu există niciun mesaj de email pentru %s\n" #: driver.c:1410 msgid "bogus message count!" msgstr "număr de mesaje fals!" #: driver.c:1462 #, c-format msgid "Too many mails skipped (%d > %d) due to transient errors for %s\n" msgstr "Prea multe mesaje de email omise (%d > %d) din cauza erorilor tranzitorii pentru %s\n" #: driver.c:1568 msgid "socket" msgstr "soclu" #: driver.c:1571 msgid "missing or bad RFC822 header" msgstr "antet RFC822 defect sau care lipsește" #: driver.c:1574 msgid "MDA" msgstr "MDA" #: driver.c:1577 msgid "client/server synchronization" msgstr "sincronizare client/server" #: driver.c:1580 msgid "client/server protocol" msgstr "protocol client/server" # R-GC, scrie: # nu știu exact dacă este vorba de-o blocare # de tipul ușii de WC din tren, de exemplu, sau # este vorba că acțiunea de blocarea este # ocupată cu altceva... # *** # Idei? #: driver.c:1583 msgid "lock busy on server" msgstr "blocare-ocupat pe server" #: driver.c:1586 msgid "SMTP transaction" msgstr "Tranzacție SMTP" #: driver.c:1589 msgid "DNS lookup" msgstr "Căutare DNS" #: driver.c:1592 msgid "undefined" msgstr "nedefinit" #: driver.c:1598 #, c-format msgid "%s error while fetching from %s@%s and delivering to SMTP host %s\n" msgstr "eroare %s în timpul aducerii de la %s@%s și livrării la gazda SMTP %s\n" #: driver.c:1600 msgid "unknown" msgstr "necunoscut" #: driver.c:1602 #, c-format msgid "%s error while fetching from %s@%s\n" msgstr "eroare %s în timpul aducerii de la %s@%s\n" #: driver.c:1614 #, c-format msgid "post-connection command terminated with signal %d\n" msgstr "comanda post-conexiune terminată cu semnalul %d\n" #: driver.c:1616 #, c-format msgid "post-connection command failed with status %d\n" msgstr "comanda post-conexiune a eșuat cu starea %d\n" # R-GC, scrie: # se pare că este vorba de opțiunile de compilare, nu au fost activate și de aceea suportul respectiv nu poate fi „conectat”. #: driver.c:1635 msgid "Kerberos V4 support not linked.\n" msgstr "Suportul V4 Kerberos nu este conectat.\n" #: driver.c:1643 msgid "Kerberos V5 support not linked.\n" msgstr "Suportul V5 Kerberos nu este conectat.\n" #: driver.c:1654 #, c-format msgid "Option --flush is not supported with %s\n" msgstr "Opțiunea „--flush” nu este suportată cu %s\n" #: driver.c:1660 #, c-format msgid "Option --all is not supported with %s\n" msgstr "Opțiunea „--all” nu este suportată cu %s\n" #: driver.c:1669 #, c-format msgid "Option --limit is not supported with %s\n" msgstr "Opțiunea „--limit” nu este suportată cu %s\n" #: env.c:58 #, c-format msgid "" "%s: The QMAILINJECT environment variable is set.\n" "This is dangerous as it can make qmail-inject or qmail's sendmail wrapper\n" "tamper with your From: or Message-ID: headers.\n" "Try \"env QMAILINJECT= %s YOUR ARGUMENTS HERE\"\n" "%s: Abort.\n" msgstr "" "%s: Variabila de mediu QMAILINJECT este stabilită.\n" "Acest lucru este periculos, deoarece poate face ca qmail-inject sau scriptul\n" "de sendmail al qmail să modifice antetele dvs. De la: sau ID-mesaj:.\n" "Încercați «env QMAILINJECT= %s ARGUMENTELE AICI»\n" "%s: Se renunță.\n" #: env.c:70 #, c-format msgid "" "%s: The NULLMAILER_FLAGS environment variable is set.\n" "This is dangerous as it can make nullmailer-inject or nullmailer's\n" "sendmail wrapper tamper with your From:, Message-ID: or Return-Path: headers.\n" "Try \"env NULLMAILER_FLAGS= %s YOUR ARGUMENTS HERE\"\n" "%s: Abort.\n" msgstr "" "%s: Variabila de mediu NULLMAILER_FLAGS este stabilită.\n" "Acest lucru este periculos, deoarece poate face ca nullmailer-inject sau scriptul de\n" "sendmail al nullmailer să modifice antetele dvs. De la:, ID-mesaj: sau Cale-Întoarcere:.\n" "Încercați «env NULLMAILER_FLAGS= %s ARGUMENTELE AICI»\n" "%s: Se renunță.\n" #: env.c:82 #, c-format msgid "%s: You don't exist. Go away.\n" msgstr "%s: Nu existați. Plecați.\n" #: env.c:143 msgid "Cannot find absolute path for user's home directory.\n" msgstr "Nu se poate găsi calea absolută pentru directorul personal al utilizatorului.\n" #: env.c:167 msgid "Cannot find absolute path for fetchmail's home directory.\n" msgstr "Nu se poate găsi calea absolută pentru directorul personal al fetchmail.\n" #: env.c:200 #, c-format msgid "%s: can't determine your host!" msgstr "%s: nu se poate determina gazda!" #: env.c:223 #, c-format msgid "getaddrinfo failed for \"%s\": %s\n" msgstr "getaddrinfo() a eșuat pentru „%s”: %s\n" #: env.c:224 msgid "Cannot find my own host in hosts database to qualify it!\n" msgstr "Nu se poate găsi propria gazdă în baza de date de gazde pentru a o califica!\n" #: env.c:228 msgid "" "Trying to continue with unqualified hostname.\n" "DO NOT report broken Received: headers, HELO/EHLO lines or similar problems!\n" "DO repair your /etc/hosts, DNS, NIS or LDAP instead.\n" msgstr "" "Se încearcă să se continue cu un nume de gazdă necalificat.\n" "NU raportați antetele „Received”: nevalide, liniile HELO/EHLO sau problemele similare!\n" "REPARAȚI, în schimb, /etc/hosts, DNS, NIS sau LDAP.\n" #: etrn.c:49 odmr.c:61 #, c-format msgid "%s's SMTP listener does not support ESMTP\n" msgstr "Ascultătorul SMTP al lui %s nu suportă ESMTP\n" #: etrn.c:55 #, c-format msgid "%s's SMTP listener does not support ETRN\n" msgstr "Ascultătorul SMTP al lui %s nu suportă ETRN\n" #: etrn.c:79 #, c-format msgid "Queuing for %s started\n" msgstr "Statul la coadă pentru %s a început\n" #: etrn.c:84 #, c-format msgid "No messages waiting for %s\n" msgstr "Niciun mesaj în așteptare pentru %s\n" #: etrn.c:90 #, c-format msgid "Pending messages for %s started\n" msgstr "Mesajele în așteptare pentru %s au început\n" #: etrn.c:94 #, c-format msgid "Unable to queue messages for node %s\n" msgstr "Nu se pot plasa în coadă mesajele pentru nodul %s\n" #: etrn.c:98 #, c-format msgid "Node %s not allowed: %s\n" msgstr "Nodul %s nu este permis: %s\n" #: etrn.c:102 msgid "ETRN syntax error\n" msgstr "Eroare de sintaxă ETRN\n" #: etrn.c:106 msgid "ETRN syntax error in parameters\n" msgstr "Eroare de sintaxă ETRN în parametri\n" #: etrn.c:110 #, c-format msgid "Unknown ETRN error %d\n" msgstr "Eroare ETRN necunoscută %d\n" #: etrn.c:156 msgid "Option --keep is not supported with ETRN\n" msgstr "Opțiunea „--keep” nu este suportată cu ETRN\n" #: etrn.c:160 msgid "Option --flush is not supported with ETRN\n" msgstr "Opțiunea „--flush” nu este suportată cu ETRN\n" #: etrn.c:164 msgid "Option --folder is not supported with ETRN\n" msgstr "Opțiunea „--folder” nu este suportată cu ETRN\n" #: etrn.c:168 msgid "Option --check is not supported with ETRN\n" msgstr "Opțiunea „--check” nu este suportată cu ETRN\n" #: fetchmail.c:144 #, c-format msgid "" "Copyright (C) 2002, 2003 Eric S. Raymond\n" "Copyright (C) 2004 Matthias Andree, Eric S. Raymond,\n" " Robert M. Funk, Graham Wilson\n" "Copyright (C) 2005 - 2012 Sunil Shetye\n" "Copyright (C) 2005 - %d Matthias Andree\n" msgstr "" "Drepturi de autor (C) 2002, 2003 Eric S. Raymond\n" "Drepturi de autor (C) 2004 Matthias Andree, Eric S. Raymond,\n" " Robert M. Funk, Graham Wilson\n" "Drepturi de autor (C) 2005 - 2012 Sunil Shetye\n" "Drepturi de autor (C) 2005 - %d Matthias Andree\n" #: fetchmail.c:150 msgid "" "Fetchmail comes with ABSOLUTELY NO WARRANTY. This is free software, and you\n" "are welcome to redistribute it under certain conditions. For details,\n" "please see the file COPYING in the source or documentation directory.\n" msgstr "" "Fetchmail vine cu ABSOLUT NICIO GARANȚIE. Acesta este software liber, și sunteți\n" "binevenit să îl redistribuiți sub anumite condiții. Pentru detalii,\n" "consultați fișierul COPYING în directorul sursă sau documentație.\n" #: fetchmail.c:190 msgid "WARNING: Running as root is discouraged.\n" msgstr "AVERTISMENT: Rularea ca root este descurajată.\n" #: fetchmail.c:202 msgid "fetchmail: invoked with" msgstr "fetchmail: invocat cu" #: fetchmail.c:225 msgid "could not get current working directory\n" msgstr "nu s-a putut obține directorul de lucru curent\n" #: fetchmail.c:310 #, c-format msgid "This is fetchmail release %s" msgstr "Aceasta este versiunea de fetchmail: %s" #: fetchmail.c:313 #, c-format msgid "" "Compiled with SSL library %#lx \"%s\"\n" "Run-time uses SSL library %#lx \"%s\"\n" msgstr "" "Compilat cu biblioteca SSL %#lx „%s”\n" "În timpul rulării utilizează biblioteca SSL %#lx „%s”\n" #: fetchmail.c:317 #, c-format msgid "" "OpenSSL: %s\n" "Engines: %s\n" msgstr "" "OpenSSL: %s\n" "Motoare: %s\n" #: fetchmail.c:321 msgid "WARNING: Your SSL/TLS library does not support TLS v1.3.\n" msgstr "AVERTISMENT: Biblioteca dvs. SSL/TLS, nu suportă TLS v1.3.\n" #: fetchmail.c:326 msgid "ERROR: Compiled against LibreSSL, which is a copyright violation for lack of GPL clause 2b exception. See COPYING. Aborting.\n" msgstr "EROARE: Compilat cu LibreSSL, care încalcă drepturile de autor prin lipsa excepției din clauza 2b a GPL. Consultați fișierul COPYING. Se renunță.\n" #: fetchmail.c:330 msgid "WARNING: Compiled without SSL/TLS.\n" msgstr "AVERTISMENT: Compilat fără SSL/TLS.\n" #: fetchmail.c:356 msgid "The nodetach option is in effect, ignoring logfile option.\n" msgstr "Opțiunea „--nodetach” este activă; se ignoră opțiunea „--logfile”.\n" #: fetchmail.c:363 msgid "Not running in daemon mode, ignoring logfile option.\n" msgstr "Nu rulează în modul demon, se ignoră opțiunea „--logfile”.\n" #: fetchmail.c:370 #, c-format msgid "Logfile \"%s\" does not exist, ignoring logfile option.\n" msgstr "Fișierul de jurnal „%s” nu există, se ignoră opțiunea „--logfile”.\n" #: fetchmail.c:376 #, c-format msgid "Logfile \"%s\" is not writable, aborting.\n" msgstr "Fișierul de jurnal
/*
 * options.c -- command-line option processing
 *
 * Copyright 1998 by Eric S. Raymond.
 * For license terms, see the file COPYING in this directory.
 */

#include "config.h"
#include "fetchmail.h"

#include <stdio.h>
#include <pwd.h>
#include <string.h>
#include <errno.h>
#if defined(STDC_HEADERS)
#include  <stdlib.h>
#include  <limits.h>
#else
#include  <ctype.h>
#endif

#include "getopt.h"
#include "fetchmail.h"
#include "i18n.h"

enum {
    LA_INVISIBLE = 256,
    LA_PIDFILE,
    LA_SYSLOG,
    LA_NOSYSLOG,
    LA_POSTMASTER,
    LA_NOBOUNCE,
    LA_AUTH,
    LA_FETCHDOMAINS,
    LA_BSMTP,
    LA_LMTP,
    LA_PLUGIN,
    LA_PLUGOUT,
    LA_CONFIGDUMP,
    LA_SMTPNAME,
    LA_SHOWDOTS,
    LA_PRINCIPAL,
    LA_TRACEPOLLS,
    LA_SSL,
    LA_SSLKEY,
    LA_SSLCERT,
    LA_SSLPROTO,
    LA_SSLCERTCK,
    LA_NOSSLCERTCK,
    LA_SSLCERTFILE,
    LA_SSLCERTPATH,
    LA_SSLCOMMONNAME,
    LA_SSLFINGERPRINT,
    LA_FETCHSIZELIMIT,
    LA_FASTUIDL,
    LA_LIMITFLUSH,
    LA_IDLE,
    LA_NOSOFTBOUNCE,
    LA_SOFTBOUNCE,
    LA_BADHEADER
};

/* options still left: ACgGhHjJoORTWxXYz */
static const char *shortoptions = 
	"?Vcsvd:NqL:f:i:p:UP:t:E:Q:u:akKFnl:r:S:Z:b:B:e:m:I:M:yw:D:";

static const struct option longoptions[] = {
/* this can be const because all flag fields are 0 and will never get set */
  {"help",	no_argument,	   (int *) 0, '?' },
  {"version",	no_argument,	   (int *) 0, 'V' },
  {"check",	no_argument,	   (int *) 0, 'c' },
  {"silent",	no_argument,	   (int *) 0, 's' },
  {"verbose",	no_argument,	   (int *) 0, 'v' },
  {"daemon",	required_argument, (int *) 0, 'd' },
  {"nodetach",	no_argument,	   (int *) 0, 'N' },
  {"quit",	no_argument,	   (int *) 0, 'q' },
  {"logfile",	required_argument, (int *) 0, 'L' },
  {"invisible",	no_argument,	   (int *) 0, LA_INVISIBLE },
  {"showdots",	no_argument,	   (int *) 0, LA_SHOWDOTS },
  {"syslog",	no_argument,	   (int *) 0, LA_SYSLOG },
  {"nosyslog",	no_argument,	   (int *) 0, LA_NOSYSLOG },
  {"fetchmailrc",required_argument,(int *) 0, 'f' },
  {"idfile",	required_argument, (int *) 0, 'i' },
  {"pidfile",	required_argument, (int *) 0, LA_PIDFILE },
  {"postmaster",required_argument, (int *) 0, LA_POSTMASTER },
  {"nobounce",	no_argument,	   (int *) 0, LA_NOBOUNCE },
  {"nosoftbounce", no_argument,	   (int *) 0, LA_NOSOFTBOUNCE },
  {"softbounce", no_argument,	   (int *) 0, LA_SOFTBOUNCE },

  {"protocol",	required_argument, (int *) 0, 'p' },
  {"proto",	required_argument, (int *) 0, 'p' },
  {"uidl",	no_argument,	   (int *) 0, 'U' },
  {"idle",	no_argument,	   (int *) 0, LA_IDLE},
  {"port",	required_argument, (int *) 0, 'P' },
  {"service",	required_argument, (int *) 0, 'P' },
  {"auth",	required_argument, (int *) 0, LA_AUTH},
  {"timeout",	required_argument, (int *) 0, 't' },
  {"envelope",	required_argument, (int *) 0, 'E' },
  {"qvirtual",	required_argument, (int *) 0, 'Q' },
  {"bad-header",required_argument, (int *) 0, LA_BADHEADER},

  {"user",	required_argument, (int *) 0, 'u' },
  {"username",	required_argument, (int *) 0, 'u' },

  {"all",	no_argument,	   (int *) 0, 'a' },
  {"fetchall",	no_argument,	   (int *) 0, 'a' },
  {"nokeep",	no_argument,	   (int *) 0, 'K' },
  {"keep",	no_argument,	   (int *) 0, 'k' },
  {"flush",	no_argument,	   (int *) 0, 'F' },
  {"limitflush",	no_argument, (int *) 0, LA_LIMITFLUSH },
  {"norewrite",	no_argument,	   (int *) 0, 'n' },
  {"limit",	required_argument, (int *) 0, 'l' },
  {"warnings",	required_argument, (int *) 0, 'w' },

  {"folder",	required_argument, (int *) 0, 'r' },
  {"smtphost",	required_argument, (int *) 0, 'S' },
  {"fetchdomains",	required_argument, (int *) 0, LA_FETCHDOMAINS },
  {"smtpaddress", required_argument, (int *) 0, 'D' },
  {"smtpname",	required_argument, (int *) 0, LA_SMTPNAME },
  {"antispam",	required_argument, (int *) 0, 'Z' },

  {"batchlimit",required_argument, (int *) 0, 'b' },
  {"fetchlimit",required_argument, (int *) 0, 'B' },
  {"fetchsizelimit",required_argument, (int *) 0, LA_FETCHSIZELIMIT },
  {"fastuidl",	required_argument, (int *) 0, LA_FASTUIDL },
  {"expunge",	required_argument, (int *) 0, 'e' },
  {"mda",	required_argument, (int *) 0, 'm' },
  {"bsmtp",	required_argument, (int *) 0, LA_BSMTP },
  {"lmtp",	no_argument,	   (int *) 0, LA_LMTP },

#ifdef SSL_ENABLE
  {"ssl",	no_argument,	   (int *) 0, LA_SSL },
  {"sslkey",	required_argument, (int *) 0, LA_SSLKEY },
  {"sslcert",	required_argument, (int *) 0, LA_SSLCERT },
  {"sslproto",	 required_argument, (int *) 0, LA_SSLPROTO },
  {"sslcertck", no_argument,	   (int *) 0, LA_SSLCERTCK },
  {"nosslcertck", no_argument,	   (int *) 0, LA_NOSSLCERTCK },
  {"sslcertfile",   required_argument, (int *) 0, LA_SSLCERTFILE },
  {"sslcertpath",   required_argument, (int *) 0, LA_SSLCERTPATH },
  {"sslcommonname",    required_argument, (int *) 0, LA_SSLCOMMONNAME },
  {"sslfingerprint",   required_argument, (int *) 0, LA_SSLFINGERPRINT },
#endif

  {"principal", required_argument, (int *) 0, LA_PRINCIPAL },

#ifdef CAN_MONITOR
  {"interface",	required_argument, (int *) 0, 'I' },
  {"monitor",	required_argument, (int *) 0, 'M' },
#endif /* CAN_MONITOR */
  {"plugin",	required_argument, (int *) 0, LA_PLUGIN },
  {"plugout",	required_argument, (int *) 0, LA_PLUGOUT },

  {"configdump",no_argument,	   (int *) 0, LA_CONFIGDUMP },

  {"yydebug",	no_argument,	   (int *) 0, 'y' },

  {"tracepolls",no_argument,	   (int *) 0, LA_TRACEPOLLS },

  {(char *) 0,	no_argument,	   (int *) 0, 0 }
};

static int xatoi(char *s, int *errflagptr)
/* do safe conversion from string to number */
{
#if defined (STDC_HEADERS) && defined (LONG_MAX) && defined (INT_MAX)
    /* parse and convert numbers, but also check for invalid characters in
     * numbers
     */

    char *endptr;
    long value;

    errno = 0;

    value = strtol(s, &endptr, 0);

    /* any invalid chars in string? */
    if ( (endptr == s) || (*endptr != '\0') ) {
    	(void) fprintf(stderr, GT_("String '%s' is not a valid number string.\n"), s);
	(*errflagptr)++;
	return 0;
    }

    /* is the range valid? */
    if ( (((value == LONG_MAX) || (value == LONG_MIN)) && (errno == ERANGE)) ||
				(value > INT_MAX) || (value < INT_MIN)) {

    	(void) fprintf(stderr, GT_("Value of string '%s' is %s than %d.\n"), s,
					(value < 0) ? GT_("smaller"): GT_("larger"),
					(value < 0) ? INT_MIN : INT_MAX);
	(*errflagptr)++;
	return 0;
    }

    return (int) value;  /* shut up, I know what I'm doing */
#else
    int	i;
    char *dp;
# if defined (STDC_HEADERS)
    size_t	len;
# else
    int		len;
# endif

    /* We do only base 10 conversions here (atoi)! */

    len = strlen(s);
    /* check for leading white spaces */
    for (i = 0; (i < len) && isspace((unsigned char)s[i]); i++)
    	;

    dp = &s[i];

    /* check for +/- */
    if (i < len && (s[i] == '+' || s[i] == '-'))	i++;

    /* skip over digits */
    for ( /* no init */ ; (i < len) && isdigit((unsigned char)s[i]); i++)
    	;

    /* check for trailing garbage */
    if (i != len) {
    	(void) fprintf(stderr, GT_("String '%s' is not a valid number string.\n"), s);
    	(*errflagptr)++;
	return 0;
    }

    /* atoi should be safe by now, except for number range over/underflow */
    return atoi(dp);
#endif
}

/** parse and validate the command line options */
int parsecmdline (int argc /** argument count */,
		  char **argv /** argument strings */,
		  struct runctl *rctl /** global run controls to modify */,
		  struct query *ctl /** option record to initialize */,
		  flag *safewithbg /** set to whether options are
				     compatible with another copy
				     running in the background */)
{
    /*
     * return value: if positive, argv index of last parsed option + 1
     * (presumes one or more server names follows).  if zero, the
     * command line switches are such that no server names are
     * required (e.g. --version).  if negative, the command line is
     * has one or more syntax errors.
     */

    int c;
    int ocount = 0;	/* count of destinations specified */
    int errflag = 0;	/* TRUE when a syntax error is detected */
    int helpflag = 0;	/* TRUE when option help was explicitly requested */
    int option_index;
    int option_safe;	/* to track if option currently parsed is safe
			   with a background copy */
    char *buf, *cp;

    rctl->poll_interval = -1;
    *safewithbg = TRUE;

    memset(ctl, '\0', sizeof(struct query));    /* start clean */
    ctl->smtp_socket = -1;

    while (!errflag && 
	   (c = getopt_long(argc,argv,shortoptions,
			    longoptions, &option_index)) != -1)
    {
	option_safe = FALSE;

	switch (c) {
	case 'V':
	    versioninfo = TRUE;
	    option_safe = TRUE;
	    break;
	case 'c':
	    check_only = TRUE;
	    break;
	case 's':
	    outlevel = O_SILENT;
	    option_safe = 1;
	    break;
	case 'v':
	    if (outlevel >= O_VERBOSE)
		outlevel = O_DEBUG;
	    else
		outlevel = O_VERBOSE;
	    option_safe = TRUE;
	    break;
	case 'd':
	    rctl->poll_interval = xatoi(optarg, &errflag);
	    break;
	case 'N':
	    nodetach = TRUE;
	    break;
	case 'q':
	    quitmode = TRUE;
	    quitind = optind;
	    break;
	case 'L':
	    rctl->logfile = prependdir (optarg, currentwd);
	    break;
	case LA_INVISIBLE:
	    rctl->invisible = FLAG_TRUE;
	    break;
	case LA_SHOWDOTS:
	    rctl->showdots = FLAG_TRUE;
	    break;
	case 'f':
	    xfree(rcfile);
	    rcfile = prependdir (optarg, currentwd);
	    break;
	case 'i':
	    rctl->idfile = prependdir (optarg, currentwd);
	    break;
	case LA_PIDFILE:
	    rctl->pidfile = prependdir (optarg, currentwd);
	    break;
	case LA_POSTMASTER:
	    rctl->postmaster = (char *) xstrdup(optarg);
	    break;
	case LA_NOBOUNCE:
	    rctl->bouncemail = FLAG_FALSE;
	    break;
	case LA_NOSOFTBOUNCE:
	    rctl->softbounce = FLAG_FALSE;
	    break;
	case LA_SOFTBOUNCE:
	    rctl->softbounce = FLAG_TRUE;
	    break;
	case LA_BADHEADER:
	    if (strcasecmp(optarg,"accept") == 0) {
		ctl->server.badheader = BHACCEPT;
	    } else if (strcasecmp(optarg,"reject") == 0) {
		ctl->server.badheader = BHREJECT;
	    } else {
		fprintf(stderr,GT_("Invalid bad-header policy `%s' specified.\n"), optarg);
		errflag++;
	    }
	    break;

	case 'p':
	    /* XXX -- should probably use a table lookup here */
	    if (strcasecmp(optarg,"auto") == 0)
		ctl->server.protocol = P_AUTO;
	    else if (strcasecmp(optarg,"pop2") == 0)
		ctl->server.protocol = P_POP2;
#ifdef SDPS_ENABLE
	    else if (strcasecmp(optarg,"sdps") == 0)
	    {
		ctl->server.protocol = P_POP3; 
		ctl->server.sdps = TRUE;
	    }
#endif /* SDPS_ENABLE */
	    else if (strcasecmp(optarg,"pop3") == 0)
		ctl->server.protocol = P_POP3;
	    else if (strcasecmp(optarg,"apop") == 0)
		ctl->server.protocol = P_APOP;
	    else if (strcasecmp(optarg,"rpop") == 0)
		ctl->server.protocol = P_RPOP;
	    else if (strcasecmp(optarg,"kpop") == 0)
	    {
		ctl->server.protocol = P_POP3;
		ctl->server.service = xstrdup(KPOP_PORT);
#ifdef KERBEROS_V5
		ctl->server.authenticate =  A_KERBEROS_V5;
#else
		ctl->server.authenticate =  A_KERBEROS_V4;
#endif /* KERBEROS_V5 */
	    }
	    else if (strcasecmp(optarg,"imap") == 0)
		ctl->server.protocol = P_IMAP;
	    else if (strcasecmp(optarg,"etrn") == 0)
		ctl->server.protocol = P_ETRN;
	    else if (strcasecmp(optarg,"odmr") == 0)
		ctl->server.protocol = P_ODMR;
	    else {
		fprintf(stderr,GT_("Invalid protocol `%s' specified.\n"), optarg);
		errflag++;
	    }
	    break;
	case 'U':
	    ctl->server.uidl = FLAG_TRUE;
	    break;
	case LA_IDLE:
	    ctl->idle = FLAG_TRUE;
	    break;
	case 'P':
	    ctl->server.service = optarg;
	    break;
	case LA_AUTH:
	    if (strcmp(optarg, "password") == 0)
		ctl->server.authenticate = A_PASSWORD;
	    else if (strcmp(optarg, "kerberos") == 0)
#ifdef KERBEROS_V5
		ctl->server.authenticate = A_KERBEROS_V5;
#else
		ctl->server.authenticate = A_KERBEROS_V4;