diff --git a/po/ro.po b/po/ro.po index 44b080e104ba..1f6e3df4b8da 100644 --- a/po/ro.po +++ b/po/ro.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: Comprehensive Rust 🦀\n" -"POT-Creation-Date: 2024-05-15T20:58:33+03:00\n" -"PO-Revision-Date: 2024-05-15 22:17+0300\n" +"POT-Creation-Date: 2024-09-10T13:08:26+03:00\n" +"PO-Revision-Date: 2024-09-19 14:14+0300\n" "Last-Translator: Razvan Stefanescu \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -11,7 +11,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Poedit 3.4.4\n" +"X-Generator: Poedit 3.5\n" #: src/SUMMARY.md src/index.md msgid "Welcome to Comprehensive Rust 🦀" @@ -101,11 +101,10 @@ msgstr "Exercițiu: Fibonacci" #: src/control-flow-basics/solution.md src/tuples-and-arrays/solution.md #: src/references/solution.md src/user-defined-types/solution.md #: src/pattern-matching/solution.md src/methods-and-traits/solution.md -#: src/generics/solution.md src/std-types/solution.md -#: src/std-traits/solution.md src/memory-management/solution.md -#: src/smart-pointers/solution.md src/borrowing/solution.md -#: src/lifetimes/solution.md src/iterators/solution.md src/modules/solution.md -#: src/testing/solution.md src/error-handling/solution.md +#: src/generics/solution.md src/std-types/solution.md src/std-traits/solution.md +#: src/memory-management/solution.md src/smart-pointers/solution.md +#: src/borrowing/solution.md src/lifetimes/solution.md src/iterators/solution.md +#: src/modules/solution.md src/testing/solution.md src/error-handling/solution.md #: src/unsafe-rust/solution.md msgid "Solution" msgstr "Soluție" @@ -140,11 +139,11 @@ msgstr "Etichete" #: src/SUMMARY.md src/control-flow-basics/blocks-and-scopes.md msgid "Blocks and Scopes" -msgstr "Blocuri și scopuri" +msgstr "Blocuri și domenii de aplicare" #: src/SUMMARY.md src/control-flow-basics/blocks-and-scopes/scopes.md msgid "Scopes and Shadowing" -msgstr "Scopuri și mascări" +msgstr "Domenii de aplicare și mascări" #: src/SUMMARY.md src/control-flow-basics/functions.md msgid "Functions" @@ -227,22 +226,21 @@ msgstr "Structuri Tupluri" msgid "Enums" msgstr "Enumerări (enums)" -#: src/SUMMARY.md -msgid "Static" -msgstr "Static" - #: src/SUMMARY.md msgid "Const" msgstr "Const" +#: src/SUMMARY.md +msgid "Static" +msgstr "Static" + #: src/SUMMARY.md src/user-defined-types/aliases.md msgid "Type Aliases" msgstr "Aliasuri de tip" #: src/SUMMARY.md src/user-defined-types/exercise.md -#, fuzzy msgid "Exercise: Elevator Events" -msgstr "Exercițiu: Evaluarea expresiilor" +msgstr "Exercițiu: Evenimente lift" #: src/SUMMARY.md msgid "Day 2: Morning" @@ -257,7 +255,6 @@ msgid "Matching Values" msgstr "Potrivirea valorilor" #: src/SUMMARY.md -#, fuzzy msgid "Destructuring Structs" msgstr "Destructurări" @@ -302,7 +299,6 @@ msgid "Deriving" msgstr "Derivarea" #: src/SUMMARY.md -#, fuzzy msgid "Exercise: Generic Logger" msgstr "Exercițiu: Logger generic" @@ -334,6 +330,10 @@ msgstr "Limite de trăsături" msgid "`impl Trait`" msgstr "`impl Trait`" +#: src/SUMMARY.md src/generics/dyn-trait.md +msgid "`dyn Trait`" +msgstr "`din Trait`" + #: src/SUMMARY.md src/generics/exercise.md msgid "Exercise: Generic `min`" msgstr "Exercițiu: 'min' generic" @@ -354,7 +354,7 @@ msgstr "Documentație" msgid "`Option`" msgstr "'Option'" -#: src/SUMMARY.md +#: src/SUMMARY.md src/error-handling/result.md msgid "`Result`" msgstr "`Result`" @@ -379,8 +379,7 @@ msgstr "Exercițiu: numărător" msgid "Standard Library Traits" msgstr "Biblioteca standard de trăsături" -#: src/SUMMARY.md src/std-traits/comparisons.md -#: src/concurrency/welcome-async.md +#: src/SUMMARY.md src/std-traits/comparisons.md src/concurrency/welcome-async.md msgid "Comparisons" msgstr "Comparații" @@ -398,7 +397,7 @@ msgstr "Transformarea" #: src/SUMMARY.md src/std-traits/read-and-write.md msgid "`Read` and `Write`" -msgstr "Citire și scriere" +msgstr "`Read` și `Write`" #: src/SUMMARY.md msgid "`Default`, struct update syntax" @@ -466,8 +465,8 @@ msgid "`Rc`" msgstr "`Rc`" #: src/SUMMARY.md src/smart-pointers/trait-objects.md -msgid "Trait Objects" -msgstr "Obiecte cu trăsături" +msgid "Owned Trait Objects" +msgstr "Obiecte cu trăsături proprii" #: src/SUMMARY.md src/smart-pointers/exercise.md msgid "Exercise: Binary Tree" @@ -490,9 +489,8 @@ msgid "Borrow Checking" msgstr "Verificarea împrumuturilor" #: src/SUMMARY.md src/borrowing/examples.md -#, fuzzy msgid "Borrow Errors" -msgstr "Împrumutați erorile" +msgstr "Erori de împrumutări" #: src/SUMMARY.md src/borrowing/interior-mutability.md msgid "Interior Mutability" @@ -524,7 +522,7 @@ msgstr "Exercițiu: Parsarea Protobuf" #: src/SUMMARY.md msgid "Day 4: Morning" -msgstr "Ziua 1: Dimineața" +msgstr "Ziua 4: Dimineața" #: src/SUMMARY.md src/iterators.md msgid "Iterators" @@ -675,18 +673,16 @@ msgid "AIDL" msgstr "AIDL" #: src/SUMMARY.md src/android/aidl/birthday-service.md -#, fuzzy msgid "Birthday Service Tutorial" -msgstr "/** Interfață de serviciu de ziua de naștere. */" +msgstr "Tutorial cu un serviciu pentru ziua de naștere" #: src/SUMMARY.md msgid "Interface" msgstr "Interfață" #: src/SUMMARY.md -#, fuzzy msgid "Service API" -msgstr "Serviciul API" +msgstr "API pentru serviciu" #: src/SUMMARY.md msgid "Service" @@ -709,37 +705,30 @@ msgid "Changing API" msgstr "Schimbarea API-ului" #: src/SUMMARY.md -#, fuzzy msgid "Updating Implementations" -msgstr "Implementare" +msgstr "Actualizarea implementărilor" #: src/SUMMARY.md -#, fuzzy msgid "AIDL Types" -msgstr "Tipuri" +msgstr "Tipuri AIDL" #: src/SUMMARY.md src/android/aidl/types/primitives.md -#, fuzzy msgid "Primitive Types" msgstr "Tipuri primitive" #: src/SUMMARY.md src/android/aidl/types/arrays.md -#, fuzzy msgid "Array Types" -msgstr "Array-uri" +msgstr "Tipuri de matrici" #: src/SUMMARY.md src/android/aidl/types/objects.md -#, fuzzy msgid "Sending Objects" -msgstr "Obiecte cu trăsături" +msgstr "Trimiterea de obiecte" #: src/SUMMARY.md src/android/aidl/types/parcelables.md -#, fuzzy msgid "Parcelables" -msgstr "Variabile" +msgstr "Obiecte Parcel" #: src/SUMMARY.md src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "Sending Files" msgstr "Trimiterea fișierelor" @@ -938,8 +927,7 @@ msgid "Build Scripts Which Build C++ or Take Arbitrary Actions" msgstr "" "Scripturi de construire care construiesc C++ sau efectuează acțiuni arbitrare" -#: src/SUMMARY.md -#: src/chromium/adding-third-party-crates/depending-on-a-crate.md +#: src/SUMMARY.md src/chromium/adding-third-party-crates/depending-on-a-crate.md msgid "Depending on a Crate" msgstr "Dependințe de crater" @@ -948,7 +936,6 @@ msgid "Reviews and Audits" msgstr "Revizuiri și audituri" #: src/SUMMARY.md -#, fuzzy msgid "Checking into Chromium Source Code" msgstr "Modificări în codul sursă Chromium" @@ -1078,7 +1065,7 @@ msgstr "Un driver UART mai bun" msgid "Using It" msgstr "Utilizarea acestuia" -#: src/SUMMARY.md src/bare-metal/aps/exceptions.md +#: src/SUMMARY.md src/error-handling/result.md src/bare-metal/aps/exceptions.md msgid "Exceptions" msgstr "Excepții" @@ -1120,12 +1107,11 @@ msgstr "Concurență: Dimineața" #: src/SUMMARY.md src/concurrency/threads.md msgid "Threads" -msgstr "Conversatii" +msgstr "Fire de execuție" #: src/SUMMARY.md src/concurrency/threads/plain.md -#, fuzzy msgid "Plain Threads" -msgstr "Conversatii" +msgstr "Fire de execuție simple" #: src/SUMMARY.md src/concurrency/threads/scoped.md msgid "Scoped Threads" @@ -1136,7 +1122,6 @@ msgid "Channels" msgstr "Canale" #: src/SUMMARY.md src/concurrency/channels/senders-receivers.md -#, fuzzy msgid "Senders and Receivers" msgstr "Expeditori și destinatari" @@ -1153,9 +1138,8 @@ msgid "`Send` and `Sync`" msgstr "`Send` și `Sync`" #: src/SUMMARY.md src/concurrency/send-sync/marker-traits.md -#, fuzzy msgid "Marker Traits" -msgstr "Mai multe trăsături" +msgstr "Trăsături marker" #: src/SUMMARY.md src/concurrency/send-sync/send.md msgid "`Send`" @@ -1182,8 +1166,7 @@ msgid "`Mutex`" msgstr "`Mutex`" #: src/SUMMARY.md src/memory-management/review.md -#: src/error-handling/try-conversions.md -#: src/concurrency/shared-state/example.md +#: src/error-handling/try-conversions.md src/concurrency/shared-state/example.md msgid "Example" msgstr "Exemplu" @@ -1213,7 +1196,6 @@ msgid "Futures" msgstr "Futures" #: src/SUMMARY.md src/concurrency/async/runtimes.md -#, fuzzy msgid "Runtimes" msgstr "Timpi de execuție" @@ -1227,9 +1209,8 @@ msgid "Tasks" msgstr "Task-uri" #: src/SUMMARY.md src/concurrency/async-control-flow.md -#, fuzzy msgid "Channels and Control Flow" -msgstr "Fluxul de control" +msgstr "Canale și flux de control" #: src/SUMMARY.md src/concurrency/async-control-flow/channels.md msgid "Async Channels" @@ -1290,57 +1271,66 @@ msgstr "Credite" #: src/index.md msgid "" -"[![Build workflow](https://img.shields.io/github/actions/workflow/status/" +"[![Build workflow](https://img.shields.io/github/actions/workflow/status/google/" +"comprehensive-rust/build.yml?style=flat-square)](https://github.com/google/" +"comprehensive-rust/actions/workflows/build.yml?query=branch%3Amain) [![GitHub " +"contributors](https://img.shields.io/github/contributors/google/comprehensive-" +"rust?style=flat-square)](https://github.com/google/comprehensive-rust/graphs/" +"contributors) [![GitHub stars](https://img.shields.io/github/stars/google/" +"comprehensive-rust?style=flat-square)](https://github.com/google/comprehensive-" +"rust/stargazers)" +msgstr "" +"[![Fluxul de construcție](https://img.shields.io/github/actions/workflow/status/" "google/comprehensive-rust/build.yml?style=flat-square)](https://github.com/" "google/comprehensive-rust/actions/workflows/build.yml?query=branch%3Amain) [!" -"[GitHub contributors](https://img.shields.io/github/contributors/google/" -"comprehensive-rust?style=flat-square)](https://github.com/google/" -"comprehensive-rust/graphs/contributors) [![GitHub stars](https://img.shields." -"io/github/stars/google/comprehensive-rust?style=flat-square)](https://github." -"com/google/comprehensive-rust/stargazers)" -msgstr "" -"[![Fluxul de construcție](https://img.shields.io/github/actions/workflow/" -"status/google/comprehensive-rust/build.yml?style=flat-square)](https://" -"github.com/google/comprehensive-rust/actions/workflows/build.yml?" -"query=branch%3Amain) [![Contribuitori GitHub](https://img.shields.io/github/" -"contributors/google/comprehensive-rust?style=flat-square)](https://github." -"com/google/comprehensive-rust/graphs/contributors) [![Stele GitHub](https://" -"img.shields.io/github/stars/google/comprehensive-rust?style=flat-square)]" -"(https://github.com/google/comprehensive-rust/stargazers)" +"[Contribuitori GitHub](https://img.shields.io/github/contributors/google/" +"comprehensive-rust?style=flat-square)](https://github.com/google/comprehensive-" +"rust/graphs/contributors) [![Stele GitHub](https://img.shields.io/github/stars/" +"google/comprehensive-rust?style=flat-square)](https://github.com/google/" +"comprehensive-rust/stargazers)" #: src/index.md msgid "" -"This is a free Rust course developed by the Android team at Google. The " -"course covers the full spectrum of Rust, from basic syntax to advanced " -"topics like generics and error handling." +"This is a free Rust course developed by the Android team at Google. The course " +"covers the full spectrum of Rust, from basic syntax to advanced topics like " +"generics and error handling." msgstr "" -"Acesta este un curs gratuit de Rust dezvoltat de echipa Android de la " -"Google. Cursul acoperă întregul spectru Rust, de la sintaxa de bază până la " -"subiecte avansate, cum ar fi genericele și gestionarea erorilor." +"Acesta este un curs gratuit de Rust dezvoltat de echipa Android de la Google. " +"Cursul acoperă întregul spectru Rust, de la sintaxa de bază până la subiecte " +"avansate, cum ar fi genericele și gestionarea erorilor." #: src/index.md msgid "" "The latest version of the course can be found at . If you are reading somewhere else, please check there " -"for updates." +"comprehensive-rust/>. If you are reading somewhere else, please check there for " +"updates." msgstr "" -"Cea mai recentă versiune a cursului poate fi găsită la adresa . Dacă citiți în altă parte, vă rugăm " -"să verificați acolo pentru actualizări." +"Cea mai recentă versiune a cursului poate fi găsită la adresa . Dacă citiți în altă parte, vă rugăm să " +"verificați acolo pentru actualizări." + +#: src/index.md +msgid "" +"The course is available in other languages. Select your preferred language in " +"the top right corner of the page or check the [Translations](running-the-course/" +"translations.md) page for a list of all available translations." +msgstr "" +"Cursul este disponibil și în alte limbi. Selectați limba preferată în colțul " +"din dreapta sus al paginii sau consultați pagina cu [traduceri](running-the-" +"course/translations.md) pentru o listă a tuturor traducerilor disponibile." #: src/index.md -#, fuzzy msgid "The course is also available [as a PDF](comprehensive-rust.pdf)." msgstr "" "Cursul este, de asemenea, disponibil [în format PDF](comprehensive-rust.pdf)." #: src/index.md msgid "" -"The goal of the course is to teach you Rust. We assume you don't know " -"anything about Rust and hope to:" +"The goal of the course is to teach you Rust. We assume you don't know anything " +"about Rust and hope to:" msgstr "" -"Scopul cursului este de a vă învăța Rust. Presupunem că nu știți nimic " -"despre Rust și, la sfârșit, sperăm să:" +"Scopul cursului este de a vă învăța Rust. Presupunem că nu știți nimic despre " +"Rust și, la sfârșit, sperăm să:" #: src/index.md msgid "Give you a comprehensive understanding of the Rust syntax and language." @@ -1377,13 +1367,13 @@ msgstr "" #: src/index.md msgid "" -"[Chromium](chromium.md): a half-day course on using Rust within Chromium " -"based browsers. This includes interoperability with C++ and how to include " -"third-party crates in Chromium." +"[Chromium](chromium.md): a half-day course on using Rust within Chromium based " +"browsers. This includes interoperability with C++ and how to include third-" +"party crates in Chromium." msgstr "" "[Chromium](chromium.md): un curs de o jumătate de zi despre utilizarea Rust " -"pentru navigatoarele bazate pe Chromium. Acesta include interoperabilitatea " -"cu C++ și utilizarea crate-urilor terțe în Chromium." +"pentru navigatoarele bazate pe Chromium. Acesta include interoperabilitatea cu " +"C++ și utilizarea crate-urilor terțe în Chromium." #: src/index.md msgid "" @@ -1397,15 +1387,15 @@ msgstr "" #: src/index.md msgid "" -"[Concurrency](concurrency.md): a whole-day class on concurrency in Rust. We " -"cover both classical concurrency (preemptively scheduling using threads and " -"mutexes) and async/await concurrency (cooperative multitasking using " -"futures)." +"[Concurrency](concurrency/welcome.md): a whole-day class on concurrency in " +"Rust. We cover both classical concurrency (preemptively scheduling using " +"threads and mutexes) and async/await concurrency (cooperative multitasking " +"using futures)." msgstr "" -"[Concurrency](concurrency.md): un curs de o zi întreagă despre concurența în " -"Rust. Acoperim atât concurența clasică (programarea preemptivă folosind fire " -"de execuție și mutexuri), cât și concurența async/await (multitasking " -"cooperativ folosind futures)." +"[Concurența](concurrency.md): un curs de o zi întreagă despre concurența în " +"Rust. Acoperim atât concurența clasică (programarea preemptivă folosind fire de " +"execuție și mutexuri), cât și concurența async/await (multitasking cooperativ " +"folosind futures)." #: src/index.md msgid "Non-Goals" @@ -1413,8 +1403,8 @@ msgstr "Alte obiective decât cele de bază" #: src/index.md msgid "" -"Rust is a large language and we won't be able to cover all of it in a few " -"days. Some non-goals of this course are:" +"Rust is a large language and we won't be able to cover all of it in a few days. " +"Some non-goals of this course are:" msgstr "" "Rust este un limbaj mare și nu vom putea acoperi toate aspectele în câteva " "zile. Câteva dintre non-obiectivele acestui curs sunt:" @@ -1436,13 +1426,13 @@ msgstr "Ipoteze" #: src/index.md msgid "" -"The course assumes that you already know how to program. Rust is a " -"statically-typed language and we will sometimes make comparisons with C and " -"C++ to better explain or contrast the Rust approach." +"The course assumes that you already know how to program. Rust is a statically-" +"typed language and we will sometimes make comparisons with C and C++ to better " +"explain or contrast the Rust approach." msgstr "" -"Cursul pornește de la premisa că știți deja să programați. Rust este un " -"limbaj cu tipare statică și uneori vom face comparații cu C și C++ pentru a " -"explica mai bine sau a contrasta abordarea Rust." +"Cursul pornește de la premisa că știți deja să programați. Rust este un limbaj " +"cu tipare statică și uneori vom face comparații cu C și C++ pentru a explica " +"mai bine sau a contrasta abordarea Rust." #: src/index.md msgid "" @@ -1455,13 +1445,13 @@ msgstr "" #: src/index.md msgid "" "This is an example of a _speaker note_. We will use these to add additional " -"information to the slides. This could be key points which the instructor " -"should cover as well as answers to typical questions which come up in class." +"information to the slides. This could be key points which the instructor should " +"cover as well as answers to typical questions which come up in class." msgstr "" -"Acesta este un exemplu de _notițe pentru prezentator_. Le vom folosi pentru " -"a adăuga informații suplimentare la diapozitive. Acestea pot fi puncte cheie " -"pe care instructorul ar trebui să le abordeze, precum și răspunsuri la " -"întrebări tipice care apar în clasă." +"Acesta este un exemplu de _notițe pentru prezentator_. Le vom folosi pentru a " +"adăuga informații suplimentare la diapozitive. Acestea pot fi puncte cheie pe " +"care instructorul ar trebui să le abordeze, precum și răspunsuri la întrebări " +"tipice care apar în clasă." #: src/running-the-course.md src/running-the-course/course-structure.md msgid "This page is for the course instructor." @@ -1469,23 +1459,23 @@ msgstr "Această pagină este destinată instructorului de curs." #: src/running-the-course.md msgid "" -"Here is a bit of background information about how we've been running the " -"course internally at Google." +"Here is a bit of background information about how we've been running the course " +"internally at Google." msgstr "" "Iată câteva informații de fond despre modul în care am desfășurat cursul în " "cadrul Google." #: src/running-the-course.md msgid "" -"We typically run classes from 9:00 am to 4:00 pm, with a 1 hour lunch break " -"in the middle. This leaves 3 hours for the morning class and 3 hours for the " -"afternoon class. Both sessions contain multiple breaks and time for students " -"to work on exercises." +"We typically run classes from 9:00 am to 4:00 pm, with a 1 hour lunch break in " +"the middle. This leaves 3 hours for the morning class and 3 hours for the " +"afternoon class. Both sessions contain multiple breaks and time for students to " +"work on exercises." msgstr "" "De obicei, cursurile se desfășoară între orele 9:00 și 16:00, cu o pauză de " "masă de o oră la mijloc. Astfel, rămân 3 ore pentru cursul de dimineață și 3 " -"ore pentru cursul de după-amiază. Ambele sesiuni includ multiple pauze " -"pentru a le permite cursanților să lucreze la exerciții." +"ore pentru cursul de după-amiază. Ambele sesiuni includ multiple pauze pentru a " +"le permite cursanților să lucreze la exerciții." #: src/running-the-course.md msgid "Before you run the course, you will want to:" @@ -1493,89 +1483,88 @@ msgstr "Înainte de a parcurge cursul, veți dori să:" #: src/running-the-course.md msgid "" -"Make yourself familiar with the course material. We've included speaker " -"notes to help highlight the key points (please help us by contributing more " -"speaker notes!). When presenting, you should make sure to open the speaker " -"notes in a popup (click the link with a little arrow next to \"Speaker " -"Notes\"). This way you have a clean screen to present to the class." +"Make yourself familiar with the course material. We've included speaker notes " +"to help highlight the key points (please help us by contributing more speaker " +"notes!). When presenting, you should make sure to open the speaker notes in a " +"popup (click the link with a little arrow next to \"Speaker Notes\"). This way " +"you have a clean screen to present to the class." msgstr "" -"Vă familiarizați cu materialul de curs. Am inclus note ale vorbitorului " -"pentru a evidenția punctele cheie (vă rugăm să ne ajutați contribuind cu mai " -"multe note pentru prezentare!). Atunci când prezentați, asigurați-vă că " -"deschideți notele prezentatorului într-o fereastră pop-up (faceți clic pe " -"link-ul cu o săgeată mică de lângă \"Speaker Notes\"). În acest fel, veți " -"avea un ecran curat pentru a prezenta în fața clasei." +"Vă familiarizați cu materialul de curs. Am inclus note ale vorbitorului pentru " +"a evidenția punctele cheie (vă rugăm să ne ajutați contribuind cu mai multe " +"note pentru prezentare!). Atunci când prezentați, asigurați-vă că deschideți " +"notele prezentatorului într-o fereastră pop-up (faceți clic pe link-ul cu o " +"săgeată mică de lângă \"Speaker Notes\"). În acest fel, veți avea un ecran " +"curat pentru a prezenta în fața clasei." #: src/running-the-course.md msgid "" "Decide on the dates. Since the course takes four days, we recommend that you " -"schedule the days over two weeks. Course participants have said that they " -"find it helpful to have a gap in the course since it helps them process all " -"the information we give them." +"schedule the days over two weeks. Course participants have said that they find " +"it helpful to have a gap in the course since it helps them process all the " +"information we give them." msgstr "" "Decideți datele. Deoarece cursul durează patru zile\\i, vă recomandăm să " -"programați zilele pe parcursul a două săptămâni. Participanții la curs au " -"spus că li se pare util să existe un interval în timpul cursului, deoarece " -"îi ajută să proceseze toate informațiile pe care le oferim." +"programați zilele pe parcursul a două săptămâni. Participanții la curs au spus " +"că li se pare util să existe o pauză în timpul cursului, deoarece îi ajută să " +"proceseze toate informațiile pe care le oferim." #: src/running-the-course.md msgid "" -"Find a room large enough for your in-person participants. We recommend a " -"class size of 15-25 people. That's small enough that people are comfortable " -"asking questions --- it's also small enough that one instructor will have " -"time to answer the questions. Make sure the room has _desks_ for yourself " -"and for the students: you will all need to be able to sit and work with your " -"laptops. In particular, you will be doing a lot of live-coding as an " -"instructor, so a lectern won't be very helpful for you." +"Find a room large enough for your in-person participants. We recommend a class " +"size of 15-25 people. That's small enough that people are comfortable asking " +"questions --- it's also small enough that one instructor will have time to " +"answer the questions. Make sure the room has _desks_ for yourself and for the " +"students: you will all need to be able to sit and work with your laptops. In " +"particular, you will be doing a lot of live-coding as an instructor, so a " +"lectern won't be very helpful for you." msgstr "" -"Găsiți o sală suficient de mare pentru participanții prezenți. Vă recomandăm " -"o clasă de 15-25 de persoane. Este suficient de mică pentru ca oamenii să se " +"Găsiți o sală suficient de mare pentru participanții prezenți. Vă recomandăm o " +"clasă de 15-25 de persoane. Este suficient de mică pentru ca oamenii să se " "simtă confortabil să pună întrebări --- este, de asemenea, suficient de mică " -"pentru ca un instructor să aibă timp să răspundă la întrebări. Asigurați-vă " -"că sala are _locuri/birouri pentru dumneavoastră și pentru studenți: cu " -"toții veți avea nevoie să puteți sta jos și să lucrați cu laptopurile. În " -"special, în calitate de instructor, veți face o mulțime de live-coding, așa " -"că un pupitru nu vă va fi de mare ajutor." +"pentru ca un instructor să aibă timp să răspundă la întrebări. Asigurați-vă că " +"sala are _locuri/birouri pentru dumneavoastră și pentru cursanți: cu toții veți " +"avea nevoie să puteți sta jos și să lucrați cu laptopurile. În special, în " +"calitate de instructor, veți face o mulțime de live-coding, așa că un pupitru " +"nu vă va fi de mare ajutor." #: src/running-the-course.md msgid "" -"On the day of your course, show up to the room a little early to set things " -"up. We recommend presenting directly using `mdbook serve` running on your " -"laptop (see the [installation instructions](https://github.com/google/" -"comprehensive-rust#building)). This ensures optimal performance with no lag " -"as you change pages. Using your laptop will also allow you to fix typos as " -"you or the course participants spot them." +"On the day of your course, show up to the room a little early to set things up. " +"We recommend presenting directly using `mdbook serve` running on your laptop " +"(see the [installation instructions](https://github.com/google/comprehensive-" +"rust#building)). This ensures optimal performance with no lag as you change " +"pages. Using your laptop will also allow you to fix typos as you or the course " +"participants spot them." msgstr "" "Ajungeți în sală cu suficient timp înainte pentru a pregăti totul. Vă " "recomandăm să prezentați direct folosind `mdbook serve` care rulează pe " -"laptopul dumneavoastră (consultați [instrucțiuni de instalare](https://" -"github.com/google/comprehensive-rust#building)). Acest lucru asigură o " -"performanță optimă, fără întârzieri în timp ce schimbați paginile. Folosirea " -"laptopului vă va permite, de asemenea, să corectați greșelile de tipar pe " -"măsură ce dumneavoastră sau participanții la curs le descoperiți." +"laptopul dumneavoastră (consultați [instrucțiuni de instalare](https://github." +"com/google/comprehensive-rust#building)). Acest lucru asigură o performanță " +"optimă, fără întârzieri în timp ce schimbați paginile. Folosirea laptopului vă " +"va permite, de asemenea, să corectați greșelile de tipar pe măsură ce " +"dumneavoastră sau participanții la curs le descoperiți." #: src/running-the-course.md msgid "" -"Let people solve the exercises by themselves or in small groups. We " -"typically spend 30-45 minutes on exercises in the morning and in the " -"afternoon (including time to review the solutions). Make sure to ask people " -"if they're stuck or if there is anything you can help with. When you see " -"that several people have the same problem, call it out to the class and " -"offer a solution, e.g., by showing people where to find the relevant " -"information in the standard library." +"Let people solve the exercises by themselves or in small groups. We typically " +"spend 30-45 minutes on exercises in the morning and in the afternoon (including " +"time to review the solutions). Make sure to ask people if they're stuck or if " +"there is anything you can help with. When you see that several people have the " +"same problem, call it out to the class and offer a solution, e.g., by showing " +"people where to find the relevant information in the standard library." msgstr "" -"Lăsați participanții să rezolve exercițiile singuri sau în grupuri mici. În " -"mod obișnuit, dedicăm 30-45 de minute exercițiilor dimineața și după-amiaza " +"Lăsați participanții să rezolve exercițiile singuri sau în grupuri mici. În mod " +"obișnuit, dedicăm 30-45 de minute exercițiilor dimineața și după-amiaza " "(inclusiv timpul necesar pentru revizuirea soluțiilor). Asigurați-vă că îi " -"întrebați pe cursanți dacă s-au blocat sau dacă există ceva cu care îi " -"puteți ajuta. Când vedeți că mai multe persoane au aceeași problemă, " -"anunțați clasa și oferiți o soluție, de exemplu, arătând unde se pot găsi " -"informațiile relevante în biblioteca standard." +"întrebați pe cursanți dacă s-au blocat sau dacă există ceva cu care îi puteți " +"ajuta. Când vedeți că mai multe persoane au aceeași problemă, anunțați clasa și " +"oferiți o soluție, de exemplu, arătând unde se pot găsi informațiile relevante " +"în biblioteca standard." #: src/running-the-course.md msgid "" -"That is all, good luck running the course! We hope it will be as much fun " -"for you as it has been for us!" +"That is all, good luck running the course! We hope it will be as much fun for " +"you as it has been for us!" msgstr "" "Asta e tot, mult succes în prezentarea cursului! Sperăm că va fi la fel de " "distractiv pentru voi cum a fost pentru noi!" @@ -1583,15 +1572,15 @@ msgstr "" #: src/running-the-course.md msgid "" "Please [provide feedback](https://github.com/google/comprehensive-rust/" -"discussions/86) afterwards so that we can keep improving the course. We " -"would love to hear what worked well for you and what can be made better. " -"Your students are also very welcome to [send us feedback](https://github.com/" -"google/comprehensive-rust/discussions/100)!" +"discussions/86) afterwards so that we can keep improving the course. We would " +"love to hear what worked well for you and what can be made better. Your " +"students are also very welcome to [send us feedback](https://github.com/google/" +"comprehensive-rust/discussions/100)!" msgstr "" "Vă rugăm să [oferiți sugestii](https://github.com/google/comprehensive-rust/" -"discussions/86) după aceea, astfel încât să putem îmbunătăți cursul. Dorim " -"să aflăm ce a funcționat bine pentru dumneavoastră și ce putem îmbunătăți. " -"Studenții dumneavoastră sunt, de asemenea, foarte bineveniți să [ne trimită " +"discussions/86) după aceea, astfel încât să putem îmbunătăți cursul. Dorim să " +"aflăm ce a funcționat bine pentru dumneavoastră și ce putem îmbunătăți. " +"Cursanții dumneavoastră sunt, de asemenea, foarte bineveniți să [ne trimită " "feedback](https://github.com/google/comprehensive-rust/discussions/100)!" #: src/running-the-course/course-structure.md @@ -1600,137 +1589,117 @@ msgstr "Fundamentele Rust" #: src/running-the-course/course-structure.md msgid "" -"The first four days make up [Rust Fundamentals](../welcome-day-1.md). The " -"days are fast paced and we cover a lot of ground!" +"The first four days make up [Rust Fundamentals](../welcome-day-1.md). The days " +"are fast paced and we cover a lot of ground!" msgstr "" -"Primele patru zile alcătuiesc [Fundamentele Rust](../welcome-day-1.md). " -"Cursul se desfășoară într-un ritm rapid și acoperim o mulțime de subiecte!" +"Primele patru zile alcătuiesc [Fundamentele Rust](../welcome-day-1.md). Cursul " +"se desfășoară într-un ritm rapid și acoperim o mulțime de subiecte!" #: src/running-the-course/course-structure.md msgid "Course schedule:" msgstr "Programul cursului:" #: src/running-the-course/course-structure.md -#, fuzzy msgid "Day 1 Morning (2 hours and 5 minutes, including breaks)" -msgstr "Ziua 3 Dimineața (2 ore și 15 minute, inclusiv pauzele)" +msgstr "Ziua 1 Dimineața (2 ore și 5 minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md msgid "[Welcome](../welcome-day-1.md) (5 minutes)" msgstr "[Introducere](../welcome-day-1.md) (5 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Hello, World](../hello-world.md) (15 minutes)" -msgstr "[Hello, World](../hello-world.md) (20 minute)" +msgstr "[Bună lume](../hello-world.md) (15 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Types and Values](../types-and-values.md) (40 minutes)" -msgstr "[Tipuri și valori](../types-and-values.md) (1 oră și 5 minute)" +msgstr "[Tipuri și valori](../types-and-values.md) (40 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Control Flow Basics](../control-flow-basics.md) (40 minutes)" -msgstr "[Bazele fluxului de control](../control-flow-basics.md) (1 oră)" +msgstr "[Bazele fluxului de control](../control-flow-basics.md) (40 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "Day 1 Afternoon (2 hours and 35 minutes, including breaks)" -msgstr "Ziua 1 După-amiaza (2 ore și 55 de minute, inclusiv pauzele)" +msgstr "Ziua 1 După-amiaza (2 ore și 35 de minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Tuples and Arrays](../tuples-and-arrays.md) (35 minutes)" -msgstr "[Tupluri și array-uri](../tupluri-și-array-uri.md) (1 oră)" +msgstr "[Tupluri și matrici](../tuples-and-arrays.md) (35 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[References](../references.md) (55 minutes)" -msgstr "[Referințe](../references.md) (50 minute)" +msgstr "[Referințe](../references.md) (55 minute)" #: src/running-the-course/course-structure.md msgid "[User-Defined Types](../user-defined-types.md) (50 minutes)" msgstr "[Tipuri definite de utilizator](../user-defined-types.md) (50 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "Day 2 Morning (2 hours and 10 minutes, including breaks)" -msgstr "Ziua 2 Dimineața (3 ore și 5 minute, inclusiv pauzele)" +msgstr "Ziua 2 Dimineața (2 ore și 10 minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md msgid "[Welcome](../welcome-day-2.md) (3 minutes)" msgstr "[Introducere](../welcome-day-2.md) (3 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Pattern Matching](../pattern-matching.md) (1 hour)" -msgstr "[Potrivirea șabloanelor](../pattern-matching.md) (50 minute)" +msgstr "[Potrivirea șabloanelor](../pattern-matching.md) (1 oră)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Methods and Traits](../methods-and-traits.md) (50 minutes)" -msgstr "[Metode și trăsături](../methods-and-traits.md) (55 minute)" +msgstr "[Metode și trăsături](../methods-and-traits.md) (50 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy -msgid "Day 2 Afternoon (4 hours, including breaks)" -msgstr "Ziua 3 După-amiaza (2 ore și 20 de minute, inclusiv pauzele)" +msgid "Day 2 Afternoon (3 hours and 15 minutes, including breaks)" +msgstr "Ziua 2 După-amiaza (3 ore și 15 de minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md -#, fuzzy -msgid "[Generics](../generics.md) (40 minutes)" +msgid "[Generics](../generics.md) (45 minutes)" msgstr "[Generice](../generics.md) (45 minute)" #: src/running-the-course/course-structure.md -#, fuzzy -msgid "[Standard Library Types](../std-types.md) (1 hour and 20 minutes)" -msgstr "[Tipuri de bibliotecă standard](../std-types.md) (1 oră și 10 minute)" +msgid "[Standard Library Types](../std-types.md) (1 hour)" +msgstr "[Tipuri din biblioteca standard](../std-types.md) (1 oră)" #: src/running-the-course/course-structure.md -msgid "[Standard Library Traits](../std-traits.md) (1 hour and 40 minutes)" +msgid "[Standard Library Traits](../std-traits.md) (1 hour and 10 minutes)" msgstr "" -"[Trăsături ale bibliotecii standard](../std-traits.md) (1 oră și 40 de " +"[Trăsături incluse în biblioteca standard](../std-traits.md) (1 oră și 10 de " "minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "Day 3 Morning (2 hours and 20 minutes, including breaks)" -msgstr "Ziua 3 Dimineața (2 ore și 15 minute, inclusiv pauzele)" +msgstr "Ziua 3 Dimineața (2 ore și 20 de minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md msgid "[Welcome](../welcome-day-3.md) (3 minutes)" msgstr "[Introducere](../welcome-day-3.md) (3 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Memory Management](../memory-management.md) (1 hour)" -msgstr "[Managementul memoriei](../memory-management.md) (1 oră și 10 minute)" +msgstr "[Managementul memoriei](../memory-management.md) (1 oră)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Smart Pointers](../smart-pointers.md) (55 minutes)" -msgstr "[Pointeri inteligenți](../smart-pointers.md) (45 minute)" +msgstr "[Pointeri inteligenți](../smart-pointers.md) (55 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "Day 3 Afternoon (1 hour and 55 minutes, including breaks)" -msgstr "Ziua 3 După-amiaza (2 ore și 20 de minute, inclusiv pauzele)" +msgstr "Ziua 3 După-amiaza (1 oră și 55 de minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Borrowing](../borrowing.md) (55 minutes)" -msgstr "[Împrumut](../împrumut.md) (1 oră)" +msgstr "[Împrumutarea](../borrowing.md) (55 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Lifetimes](../lifetimes.md) (50 minutes)" -msgstr "[Referințe](../references.md) (50 minute)" +msgstr "[Durată de viață](../lifetimes.md) (50 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "Day 4 Morning (2 hours and 40 minutes, including breaks)" -msgstr "Ziua 4 Dimineața (3 ore și 5 minute, inclusiv pauzele)" +msgstr "Ziua 4 Dimineața (2 ore și 40 de minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md msgid "[Welcome](../welcome-day-4.md) (3 minutes)" @@ -1745,19 +1714,16 @@ msgid "[Modules](../modules.md) (40 minutes)" msgstr "[Module](../modules.md) (40 minute)" #: src/running-the-course/course-structure.md -#, fuzzy msgid "[Testing](../testing.md) (45 minutes)" -msgstr "[Testare](../testing.md) (1 oră și 5 minute)" +msgstr "[Testare](../testing.md) (45 de minute)" #: src/running-the-course/course-structure.md -#, fuzzy -msgid "Day 4 Afternoon (2 hours and 10 minutes, including breaks)" -msgstr "Ziua 3 După-amiaza (2 ore și 20 de minute, inclusiv pauzele)" +msgid "Day 4 Afternoon (2 hours and 15 minutes, including breaks)" +msgstr "Ziua 4 După-amiaza (2 ore și 15 minute, inclusiv pauzele)" #: src/running-the-course/course-structure.md -#, fuzzy -msgid "[Error Handling](../error-handling.md) (55 minutes)" -msgstr "[Gestionarea erorilor](../error-handling.md) (45 minute)" +msgid "[Error Handling](../error-handling.md) (1 hour)" +msgstr "[Gestionarea erorilor](../error-handling.md) (1 oră)" #: src/running-the-course/course-structure.md msgid "[Unsafe Rust](../unsafe-rust.md) (1 hour and 5 minutes)" @@ -1782,8 +1748,8 @@ msgstr "Rust în Android" #: src/running-the-course/course-structure.md msgid "" "The [Rust in Android](../android.md) deep dive is a half-day course on using " -"Rust for Android platform development. This includes interoperability with " -"C, C++, and Java." +"Rust for Android platform development. This includes interoperability with C, C+" +"+, and Java." msgstr "" "[Rust în Android](../android.md) este un curs de o jumătate de zi despre " "utilizarea Rust pentru dezvoltarea platformei Android. Acesta include " @@ -1791,29 +1757,28 @@ msgstr "" #: src/running-the-course/course-structure.md msgid "" -"You will need an [AOSP checkout](https://source.android.com/docs/setup/" -"download/downloading). Make a checkout of the [course repository](https://" -"github.com/google/comprehensive-rust) on the same machine and move the `src/" -"android/` directory into the root of your AOSP checkout. This will ensure " -"that the Android build system sees the `Android.bp` files in `src/android/`." +"You will need an [AOSP checkout](https://source.android.com/docs/setup/download/" +"downloading). Make a checkout of the [course repository](https://github.com/" +"google/comprehensive-rust) on the same machine and move the `src/android/` " +"directory into the root of your AOSP checkout. This will ensure that the " +"Android build system sees the `Android.bp` files in `src/android/`." msgstr "" "Veți avea nevoie de un [sursele AOSP](https://source.android.com/docs/setup/" -"download/downloading). Efectuați o descărcare a [resurselor cursului]" -"(https://github.com/google/comprehensive-rust) pe aceeași mașină și mutați " -"directorul `src/android/` în rădăcina surselor AOSP. Acest lucru va asigura " -"că sistemul de compilare Android vede fișierele `Android.bp` din `src/" -"android/`." +"download/downloading). Efectuați o descărcare a [resurselor cursului](https://" +"github.com/google/comprehensive-rust) pe aceeași mașină și mutați directorul " +"`src/android/` în rădăcina surselor AOSP. Acest lucru va asigura că sistemul de " +"compilare Android vede fișierele `Android.bp` din `src/android/`." #: src/running-the-course/course-structure.md msgid "" "Ensure that `adb sync` works with your emulator or real device and pre-build " -"all Android examples using `src/android/build_all.sh`. Read the script to " -"see the commands it runs and make sure they work when you run them by hand." +"all Android examples using `src/android/build_all.sh`. Read the script to see " +"the commands it runs and make sure they work when you run them by hand." msgstr "" -"Asigurați-vă că `adb sync` funcționează cu emulatorul sau cu dispozitivul " -"real și precompilați toate exemplele Android folosind `src/android/build_all." -"sh`. Citiți scriptul pentru a vedea comenzile pe care le execută și " -"asigurați-vă că acestea funcționează atunci când le executați manual." +"Asigurați-vă că `adb sync` funcționează cu emulatorul sau cu dispozitivul real " +"și precompilați toate exemplele Android folosind `src/android/build_all.sh`. " +"Citiți scriptul pentru a vedea comenzile pe care le execută și asigurați-vă că " +"acestea funcționează atunci când le executați manual." #: src/running-the-course/course-structure.md msgid "Rust in Chromium" @@ -1821,25 +1786,25 @@ msgstr "Rust în Chromium" #: src/running-the-course/course-structure.md msgid "" -"The [Rust in Chromium](../chromium.md) deep dive is a half-day course on " -"using Rust as part of the Chromium browser. It includes using Rust in " -"Chromium's `gn` build system, bringing in third-party libraries (\"crates\") " -"and C++ interoperability." +"The [Rust in Chromium](../chromium.md) deep dive is a half-day course on using " +"Rust as part of the Chromium browser. It includes using Rust in Chromium's `gn` " +"build system, bringing in third-party libraries (\"crates\") and C++ " +"interoperability." msgstr "" -"[Rust în Chromium](../chromium.md) este un curs aprofundat de o jumătate de " -"zi despre utilizarea Rust ca parte a browserului Chromium. Acesta include " +"[Rust în Chromium](../chromium.md) este un curs aprofundat de o jumătate de zi " +"despre utilizarea Rust ca parte a browserului Chromium. Acesta include " "utilizarea Rust în sistemul de compilare `gn` al Chromium, aducerea de " "biblioteci terțe (\"crates\") și interoperabilitatea C++." #: src/running-the-course/course-structure.md msgid "" "You will need to be able to build Chromium --- a debug, component build is " -"[recommended](../chromium/setup.md) for speed but any build will work. " -"Ensure that you can run the Chromium browser that you've built." +"[recommended](../chromium/setup.md) for speed but any build will work. Ensure " +"that you can run the Chromium browser that you've built." msgstr "" -"Va trebui să puteți construi Chromium --- este [recomandat](../chromium/" -"setup.md) un build de depanare, de componente pentru viteză, dar orice build " -"va funcționa. Asigurați-vă că puteți rula browserul Chromium pe care l-ați " +"Va trebui să puteți construi Chromium --- este [recomandat](../chromium/setup." +"md) un build de depanare, de componente pentru viteză, dar orice build va " +"funcționa. Asigurați-vă că puteți rula browserul Chromium pe care l-ați " "construit." #: src/running-the-course/course-structure.md @@ -1848,25 +1813,25 @@ msgstr "Rust direct pe placă" #: src/running-the-course/course-structure.md msgid "" -"The [Bare-Metal Rust](../bare-metal.md) deep dive is a full day class on " -"using Rust for bare-metal (embedded) development. Both microcontrollers and " +"The [Bare-Metal Rust](../bare-metal.md) deep dive is a full day class on using " +"Rust for bare-metal (embedded) development. Both microcontrollers and " "application processors are covered." msgstr "" -"[Rust direct pe placă](../bare-metal.md) este un curs de o zi întreagă " -"despre utilizarea Rust pentru dezvoltarea bare-metal (embedded). Sunt " -"acoperite atât microcontrolerele, cât și procesoarele de aplicații." +"[Rust direct pe placă](../bare-metal.md) este un curs de o zi întreagă despre " +"utilizarea Rust pentru dezvoltarea bare-metal (embedded). Sunt acoperite atât " +"microcontrolerele, cât și procesoarele de aplicații." #: src/running-the-course/course-structure.md msgid "" -"For the microcontroller part, you will need to buy the [BBC micro:bit]" -"(https://microbit.org/) v2 development board ahead of time. Everybody will " -"need to install a number of packages as described on the [welcome page](../" -"bare-metal.md)." +"For the microcontroller part, you will need to buy the [BBC micro:bit](https://" +"microbit.org/) v2 development board ahead of time. Everybody will need to " +"install a number of packages as described on the [welcome page](../bare-metal." +"md)." msgstr "" "Pentru partea de microcontroler, va trebui să cumpărați din timp placa de " -"dezvoltare [BBC micro:bit](https://microbit.org/) v2. Toată lumea va trebui " -"să instaleze o serie de pachete, așa cum este descris pe [pagina de bun " -"venit](../bare-metal.md)." +"dezvoltare [BBC micro:bit](https://microbit.org/) v2. Toată lumea va trebui să " +"instaleze o serie de pachete, așa cum este descris pe [pagina de bun venit](../" +"bare-metal.md)." #: src/running-the-course/course-structure.md msgid "Concurrency in Rust" @@ -1874,24 +1839,23 @@ msgstr "Concurență în Rust" #: src/running-the-course/course-structure.md msgid "" -"The [Concurrency in Rust](../concurrency.md) deep dive is a full day class " -"on classical as well as `async`/`await` concurrency." +"The [Concurrency in Rust](../concurrency/welcome.md) deep dive is a full day " +"class on classical as well as `async`/`await` concurrency." msgstr "" -"[Concurența în Rust] (../concurrency.md) este un curs de o zi întreagă " -"despre concurența clasică, precum și despre concurența `async`/`await`." +"[Concurența în Rust] (../concurrency.md) este un curs de o zi întreagă despre " +"concurența clasică, precum și despre concurența `async`/`await`." #: src/running-the-course/course-structure.md msgid "" -"You will need a fresh crate set up and the dependencies downloaded and ready " -"to go. You can then copy/paste the examples into `src/main.rs` to experiment " -"with them:" +"You will need a fresh crate set up and the dependencies downloaded and ready to " +"go. You can then copy/paste the examples into `src/main.rs` to experiment with " +"them:" msgstr "" "Veți avea nevoie de un nou crate configurat și de dependențele descărcate și " "pregătite. Puteți apoi să copiați exemplele în `src/main.rs` pentru a " "experimenta cu ele:" #: src/running-the-course/course-structure.md -#, fuzzy msgid "{{%course outline Concurrency}}" msgstr "{{%course outline Concurrency}}" @@ -1904,8 +1868,8 @@ msgid "" "The course is meant to be very interactive and we recommend letting the " "questions drive the exploration of Rust!" msgstr "" -"Cursul se dorește a fi foarte interactiv și vă recomandăm să lăsați " -"întrebările să conducă explorarea Rust!" +"Cursul se dorește a fi foarte interactiv și vă recomandăm să lăsați întrebările " +"să conducă explorarea Rust!" #: src/running-the-course/keyboard-shortcuts.md msgid "There are several useful keyboard shortcuts in mdBook:" @@ -1952,48 +1916,57 @@ msgstr "" #: src/running-the-course/translations.md msgid "" -"[Brazilian Portuguese](https://google.github.io/comprehensive-rust/pt-BR/) " -"by [@rastringer](https://github.com/rastringer), [@hugojacob](https://github." -"com/hugojacob), [@joaovicmendes](https://github.com/joaovicmendes), and " -"[@henrif75](https://github.com/henrif75)." +"[Brazilian Portuguese](https://google.github.io/comprehensive-rust/pt-BR/) by " +"[@rastringer](https://github.com/rastringer), [@hugojacob](https://github.com/" +"hugojacob), [@joaovicmendes](https://github.com/joaovicmendes), and [@henrif75]" +"(https://github.com/henrif75)." msgstr "" -"[Braziliană portugheză](https://google.github.io/comprehensive-rust/pt-BR/) " -"de [@rastringer](https://github.com/rastringer), [@hugojacob](https://github." -"com/hugojacob), [@joaovicmendes](https://github.com/joaovicmendes) și " -"[@henrif75](https://github.com/henrif75)." +"[Braziliană portugheză](https://google.github.io/comprehensive-rust/pt-BR/) de " +"[@rastringer](https://github.com/rastringer), [@hugojacob](https://github.com/" +"hugojacob), [@joaovicmendes](https://github.com/joaovicmendes) și [@henrif75]" +"(https://github.com/henrif75)." #: src/running-the-course/translations.md msgid "" -"[Chinese (Simplified)](https://google.github.io/comprehensive-rust/zh-CN/) " -"by [@suetfei](https://github.com/suetfei), [@wnghl](https://github.com/" -"wnghl), [@anlunx](https://github.com/anlunx), [@kongy](https://github.com/" -"kongy), [@noahdragon](https://github.com/noahdragon), [@superwhd](https://" -"github.com/superwhd), [@SketchK](https://github.com/SketchK), and [@nodmp]" -"(https://github.com/nodmp)." +"[Chinese (Simplified)](https://google.github.io/comprehensive-rust/zh-CN/) by " +"[@suetfei](https://github.com/suetfei), [@wnghl](https://github.com/wnghl), " +"[@anlunx](https://github.com/anlunx), [@kongy](https://github.com/kongy), " +"[@noahdragon](https://github.com/noahdragon), [@superwhd](https://github.com/" +"superwhd), @SketchK, and [@nodmp](https://github.com/nodmp)." msgstr "" -"[Chineză (simplificată)](https://google.github.io/comprehensive-rust/zh-CN/) " -"de [@suetfei](https://github.com/suetfei), [@wnghl](https://github.com/" -"wnghl), [@anlunx](https://github.com/anlunx), [@kongy](https://github.com/" -"kongy), [@noahdragon](https://github.com/noahdragon), [@superwhd](https://" -"github.com/superwhd), [@SketchK](https://github.com/SketchK), și [@nodmp]" -"(https://github.com/nodmp)." +"[Chineză (simplificată)](https://google.github.io/comprehensive-rust/zh-CN/) de " +"[@suetfei](https://github.com/suetfei), [@wnghl](https://github.com/wnghl), " +"[@anlunx](https://github.com/anlunx), [@kongy](https://github.com/kongy), " +"[@noahdragon](https://github.com/noahdragon), [@superwhd](https://github.com/" +"superwhd), @SketchK și [@nodmp](https://github.com/nodmp)." #: src/running-the-course/translations.md msgid "" -"[Chinese (Traditional)](https://google.github.io/comprehensive-rust/zh-TW/) " -"by [@hueich](https://github.com/hueich), [@victorhsieh](https://github.com/" +"[Chinese (Traditional)](https://google.github.io/comprehensive-rust/zh-TW/) by " +"[@hueich](https://github.com/hueich), [@victorhsieh](https://github.com/" "victorhsieh), [@mingyc](https://github.com/mingyc), [@kuanhungchen](https://" "github.com/kuanhungchen), and [@johnathan79717](https://github.com/" "johnathan79717)." msgstr "" -"[Chineză (tradițională)](https://google.github.io/comprehensive-rust/zh-TW/) " -"de [@hueich](https://github.com/hueich), [@victorhsieh](https://github.com/" +"[Chineză (tradițională)](https://google.github.io/comprehensive-rust/zh-TW/) de " +"[@hueich](https://github.com/hueich), [@victorhsieh](https://github.com/" "victorhsieh), [@mingyc](https://github.com/mingyc), [@kuanhungchen](https://" "github.com/kuanhungchen), și [@johnathan79717](https://github.com/" "johnathan79717)." #: src/running-the-course/translations.md -#, fuzzy +msgid "" +"[Japanese](https://google.github.io/comprehensive-rust/ja/) by [@CoinEZ-JPN]" +"(https://github.com/CoinEZ), [@momotaro1105](https://github.com/momotaro1105), " +"[@HidenoriKobayashi](https://github.com/HidenoriKobayashi) and [@kantasv]" +"(https://github.com/kantasv)." +msgstr "" +"[Japoneză](https://google.github.io/comprehensive-rust/ja/) de [@CoinEZ-JPN]" +"(https://github.com/CoinEZ), [@momotaro1105](https://github.com/momotaro1105), " +"[@HidenoriKobayashi](https://github.com/HidenoriKobayashi) și [@kantasv]" +"(https://github.com/kantasv)." + +#: src/running-the-course/translations.md msgid "" "[Korean](https://google.github.io/comprehensive-rust/ko/) by [@keispace]" "(https://github.com/keispace), [@jiyongp](https://github.com/jiyongp), " @@ -2001,23 +1974,34 @@ msgid "" "com/namhyung)." msgstr "" "[Coreană](https://google.github.io/comprehensive-rust/ko/) de [@keispace]" -"(https://github.com/keispace), [@jiyongp](https://github.com/jiyongp) și " -"[@jooyunghan](https://github.com/jooyunghan)." +"(https://github.com/keispace), [@jiyongp](https://github.com/jiyongp), " +"[@jooyunghan](https://github.com/jooyunghan) și [@namhyung](https://github.com/" +"namhyung)." #: src/running-the-course/translations.md msgid "" -"[Spanish](https://google.github.io/comprehensive-rust/es/) by [@deavid]" -"(https://github.com/deavid)." +"[Spanish](https://google.github.io/comprehensive-rust/es/) by [@deavid](https://" +"github.com/deavid)." msgstr "" "[Spaniolă](https://google.github.io/comprehensive-rust/es/) de [@deavid]" "(https://github.com/deavid)." +#: src/running-the-course/translations.md +msgid "" +"[Ukrainian](https://google.github.io/comprehensive-rust/uk/) by [@git-user-cpp]" +"(https://github.com/git-user-cpp), [@yaremam](https://github.com/yaremam) and " +"[@reta](https://github.com/reta)." +msgstr "" +"[Ucraineană](https://google.github.io/comprehensive-rust/uk/) by [@git-user-cpp]" +"(https://github.com/git-user-cpp), [@yaremam](https://github.com/yaremam) și " +"[@reta](https://github.com/reta)." + #: src/running-the-course/translations.md msgid "" "Use the language picker in the top-right corner to switch between languages." msgstr "" -"Utilizați selectorul de limbă din colțul din dreapta sus pentru a comuta " -"între limbi." +"Utilizați selectorul de limbă din colțul din dreapta sus pentru a comuta între " +"limbi." #: src/running-the-course/translations.md msgid "Incomplete Translations" @@ -2028,81 +2012,99 @@ msgid "" "There is a large number of in-progress translations. We link to the most " "recently updated translations:" msgstr "" -"Există un număr mare de traduceri în curs de realizare. Iată cele mai " -"recente traduceri actualizate:" +"Există un număr mare de traduceri în curs de realizare. Iată cele mai recente " +"traduceri actualizate:" + +#: src/running-the-course/translations.md +msgid "" +"[Arabic](https://google.github.io/comprehensive-rust/ar/) by [@younies](https://" +"github.com/younies)" +msgstr "" +"[Arabă](https://google.github.io/comprehensive-rust/ar/) de [@younies](https://" +"github.com/younies)" #: src/running-the-course/translations.md msgid "" "[Bengali](https://google.github.io/comprehensive-rust/bn/) by [@raselmandol]" "(https://github.com/raselmandol)." msgstr "" -"[Bengaleză](https://google.github.io/comprehensive-rust/bn/) de " -"[@raselmandol](https://github.com/raselmandol)." +"[Bengaleză](https://google.github.io/comprehensive-rust/bn/) de [@raselmandol]" +"(https://github.com/raselmandol)." + +#: src/running-the-course/translations.md +msgid "" +"[Farsi](https://google.github.io/comprehensive-rust/fa/) by [@Alix1383](https://" +"github.com/alix1383), [@DannyRavi](https://github.com/DannyRavi), [@hamidrezakp]" +"(https://github.com/hamidrezakp), [@javad-jafari](https://github.com/javad-" +"jafari) and [@moaminsharifi](https://github.com/moaminsharifi)." +msgstr "" +"[Farsi](https://google.github.io/comprehensive-rust/fa/) by [@Alix1383](https://" +"github.com/alix1383), [@DannyRavi](https://github.com/DannyRavi), [@hamidrezakp]" +"(https://github.com/hamidrezakp), [@javad-jafari](https://github.com/javad-" +"jafari) and [@moaminsharifi](https://github.com/moaminsharifi)." #: src/running-the-course/translations.md -#, fuzzy msgid "" -"[French](https://google.github.io/comprehensive-rust/fr/) by [@KookaS]" -"(https://github.com/KookaS), [@vcaen](https://github.com/vcaen) and " -"[@AdrienBaudemont](https://github.com/AdrienBaudemont)." +"[French](https://google.github.io/comprehensive-rust/fr/) by [@KookaS](https://" +"github.com/KookaS), [@vcaen](https://github.com/vcaen) and [@AdrienBaudemont]" +"(https://github.com/AdrienBaudemont)." msgstr "" "[Franceză](https://google.github.io/comprehensive-rust/fr/) de [@KookaS]" "(https://github.com/KookaS) și [@vcaen](https://github.com/vcaen)." #: src/running-the-course/translations.md msgid "" -"[German](https://google.github.io/comprehensive-rust/de/) by [@Throvn]" -"(https://github.com/Throvn) and [@ronaldfw](https://github.com/ronaldfw)." +"[German](https://google.github.io/comprehensive-rust/de/) by [@Throvn](https://" +"github.com/Throvn) and [@ronaldfw](https://github.com/ronaldfw)." msgstr "" -"[Germană](https://google.github.io/comprehensive-rust/de/) de [@Throvn]" -"(https://github.com/Throvn) și [@ronaldfw](https://github.com/ronaldfw)." +"[Germană](https://google.github.io/comprehensive-rust/de/) de [@Throvn](https://" +"github.com/Throvn) și [@ronaldfw](https://github.com/ronaldfw)." #: src/running-the-course/translations.md msgid "" -"[Japanese](https://google.github.io/comprehensive-rust/ja/) by [@CoinEZ-JPN]" -"(https://github.com/CoinEZ) and [@momotaro1105](https://github.com/" -"momotaro1105)." +"[Italian](https://google.github.io/comprehensive-rust/it/) by [@henrythebuilder]" +"(https://github.com/henrythebuilder) and [@detro](https://github.com/detro)." msgstr "" -"[Japoneză](https://google.github.io/comprehensive-rust/ja/) de [@CoinEZ-JPN]" -"(https://github.com/CoinEZ) și [@momotaro1105](https://github.com/" -"momotaro1105)." +"[Germană](https://google.github.io/comprehensive-rust/de/) de [@Throvn](https://" +"github.com/Throvn) și [@ronaldfw](https://github.com/ronaldfw)." #: src/running-the-course/translations.md -#, fuzzy msgid "" -"[Italian](https://google.github.io/comprehensive-rust/it/) by " -"[@henrythebuilder](https://github.com/henrythebuilder) and [@detro](https://" -"github.com/detro)." +"The full list of translations with their current status is also available " +"either [as of their last update](https://google.github.io/comprehensive-rust/" +"translation-report.html) or [synced to the latest version of the course]" +"(https://google.github.io/comprehensive-rust/synced-translation-report.html)." msgstr "" -"[Germană](https://google.github.io/comprehensive-rust/de/) de [@Throvn]" -"(https://github.com/Throvn) și [@ronaldfw](https://github.com/ronaldfw)." +"Lista completă a traducerilor cu starea lor actuală este, de asemenea, " +"disponibilă fie [de la ultima actualizare](https://google.github.io/" +"comprehensive-rust/translation-report.html), fie [sincronizate cu cea mai " +"recentă versiune a cursului](https://google.github.io/comprehensive-rust/synced-" +"translation-report.html)." #: src/running-the-course/translations.md msgid "" "If you want to help with this effort, please see [our instructions](https://" -"github.com/google/comprehensive-rust/blob/main/TRANSLATIONS.md) for how to " -"get going. Translations are coordinated on the [issue tracker](https://" -"github.com/google/comprehensive-rust/issues/282)." +"github.com/google/comprehensive-rust/blob/main/TRANSLATIONS.md) for how to get " +"going. Translations are coordinated on the [issue tracker](https://github.com/" +"google/comprehensive-rust/issues/282)." msgstr "" "Dacă doriți să contribuiți la acest efort, vă rugăm să consultați " -"[instrucțiunile noastre](https://github.com/google/comprehensive-rust/blob/" -"main/TRANSLATIONS.md) pentru a afla cum să începeți. Traducerile sunt " -"coordonate pe [issue tracker](https://github.com/google/comprehensive-rust/" -"issues/282)." +"[instrucțiunile noastre](https://github.com/google/comprehensive-rust/blob/main/" +"TRANSLATIONS.md) pentru a afla cum să începeți. Traducerile sunt coordonate pe " +"[issue tracker](https://github.com/google/comprehensive-rust/issues/282)." #: src/cargo.md msgid "" -"When you start reading about Rust, you will soon meet [Cargo](https://doc." -"rust-lang.org/cargo/), the standard tool used in the Rust ecosystem to build " -"and run Rust applications. Here we want to give a brief overview of what " -"Cargo is and how it fits into the wider ecosystem and how it fits into this " -"training." +"When you start reading about Rust, you will soon meet [Cargo](https://doc.rust-" +"lang.org/cargo/), the standard tool used in the Rust ecosystem to build and run " +"Rust applications. Here we want to give a brief overview of what Cargo is and " +"how it fits into the wider ecosystem and how it fits into this training." msgstr "" "Când începeți să citiți despre Rust, veți face cunoștință cu [Cargo](https://" -"doc.rust-lang.org/cargo/), instrumentul standard utilizat în ecosistemul " -"Rust pentru a construi și rula aplicații Rust. Aici dorim să oferim o scurtă " -"prezentare generală a ceea ce este Cargo și a modului în care se integrează " -"în ecosistemul mai larg și cum se încadrează în acest curs de formare." +"doc.rust-lang.org/cargo/), instrumentul standard utilizat în ecosistemul Rust " +"pentru a construi și rula aplicații Rust. Aici dorim să oferim o scurtă " +"prezentare generală a ceea ce este Cargo și a modului în care se integrează în " +"ecosistemul mai larg și cum se încadrează în acest curs de formare." #: src/cargo.md msgid "Installation" @@ -2115,44 +2117,54 @@ msgstr "**Vă rugăm să urmați instrucțiunile de pe .**" #: src/cargo.md msgid "" "This will give you the Cargo build tool (`cargo`) and the Rust compiler " -"(`rustc`). You will also get `rustup`, a command line utility that you can " -"use to install to different compiler versions." +"(`rustc`). You will also get `rustup`, a command line utility that you can use " +"to install to different compiler versions." msgstr "" "Astfel veți avea acces la instrumentul de compilare Cargo (`cargo`) și " -"compilatorul Rust (`rustc`). De asemenea, veți obține `rustup`, un utilitar " -"de linie de comandă pe care îl puteți utiliza pentru a instala la diferite " +"compilatorul Rust (`rustc`). De asemenea, veți obține `rustup`, un utilitar de " +"linie de comandă pe care îl puteți utiliza pentru a instala la diferite " "versiuni de compilator." #: src/cargo.md msgid "" "After installing Rust, you should configure your editor or IDE to work with " -"Rust. Most editors do this by talking to [rust-analyzer](https://rust-" -"analyzer.github.io/), which provides auto-completion and jump-to-definition " +"Rust. Most editors do this by talking to [rust-analyzer](https://rust-analyzer." +"github.io/), which provides auto-completion and jump-to-definition " "functionality for [VS Code](https://code.visualstudio.com/), [Emacs](https://" -"rust-analyzer.github.io/manual.html#emacs), [Vim/Neovim](https://rust-" -"analyzer.github.io/manual.html#vimneovim), and many others. There is also a " -"different IDE available called [RustRover](https://www.jetbrains.com/rust/)." +"rust-analyzer.github.io/manual.html#emacs), [Vim/Neovim](https://rust-analyzer." +"github.io/manual.html#vimneovim), and many others. There is also a different " +"IDE available called [RustRover](https://www.jetbrains.com/rust/)." msgstr "" "După instalarea Rust, trebuie să vă configurați editorul sau IDE-ul pentru a " "lucra cu Rust. Majoritatea editorilor fac acest lucru comunicând cu [rust-" "analyzer](https://rust-analyzer.github.io/), care oferă funcționalitate de " "autocompletare și de salt la definiție pentru [VS Code](https://code." -"visualstudio.com/), [Emacs](https://rust-analyzer.github.io/manual." -"html#emacs), [Vim/Neovim](https://rust-analyzer.github.io/manual." -"html#vimneovim) și multe altele. Există, de asemenea, un alt IDE disponibil, " -"numit [RustRover](https://www.jetbrains.com/rust/)." +"visualstudio.com/), [Emacs](https://rust-analyzer.github.io/manual.html#emacs), " +"[Vim/Neovim](https://rust-analyzer.github.io/manual.html#vimneovim) și multe " +"altele. Există, de asemenea, un alt IDE disponibil, numit [RustRover](https://" +"www.jetbrains.com/rust/)." #: src/cargo.md msgid "" "On Debian/Ubuntu, you can also install Cargo, the Rust source and the [Rust " -"formatter](https://github.com/rust-lang/rustfmt) via `apt`. However, this " -"gets you an outdated rust version and may lead to unexpected behavior. The " -"command would be:" +"formatter](https://github.com/rust-lang/rustfmt) via `apt`. However, this gets " +"you an outdated rust version and may lead to unexpected behavior. The command " +"would be:" msgstr "" "Pe Debian/Ubuntu, puteți instala, de asemenea, Cargo, sursele Rust și " "[instrumentul de formatare Rust](https://github.com/rust-lang/rustfmt) prin " -"`apt`. Dar veți avea acces la o versiune Rust învechită care poate duce la " -"un comportament neașteptat. Comanda ar fi:" +"`apt`. Dar veți avea acces la o versiune Rust învechită care poate duce la un " +"comportament neașteptat. Comanda ar fi:" + +#: src/cargo.md +msgid "" +"On macOS, you can use [Homebrew](https://brew.sh/) to install Rust, but this " +"may provide an outdated version. Therefore, it is recommended to install Rust " +"from the official site." +msgstr "" +"Pe macOS, puteți utiliza [Homebrew](https://brew.sh/) pentru a instala Rust, " +"dar acest lucru poate oferi o versiune învechită. Prin urmare, este recomandat " +"să instalați Rust de pe site-ul oficial." #: src/cargo/rust-ecosystem.md msgid "The Rust Ecosystem" @@ -2170,36 +2182,36 @@ msgid "" "`rustc`: the Rust compiler which turns `.rs` files into binaries and other " "intermediate formats." msgstr "" -"`rustc`: compilatorul Rust care transformă fișierele `.rs` în fișiere binare " -"și alte formate intermediare." +"`rustc`: compilatorul Rust care transformă fișierele `.rs` în fișiere binare și " +"alte formate intermediare." #: src/cargo/rust-ecosystem.md msgid "" "`cargo`: the Rust dependency manager and build tool. Cargo knows how to " -"download dependencies, usually hosted on , and it will " -"pass them to `rustc` when building your project. Cargo also comes with a " -"built-in test runner which is used to execute unit tests." +"download dependencies, usually hosted on , and it will pass " +"them to `rustc` when building your project. Cargo also comes with a built-in " +"test runner which is used to execute unit tests." msgstr "" "`cargo`: managerul de dependențe Rust și instrumentul de construcție. Cargo " -"știe cum să descarce dependențele, de obicei găzduite pe , și le va transmite la `rustc` atunci când vă construiți proiectul. " -"Cargo vine, de asemenea, cu un instrument de rulat testele încorporat care " -"este folosit pentru a executa testele unitare." +"știe cum să descarce dependențele, de obicei găzduite pe , " +"și le va transmite la `rustc` atunci când vă construiți proiectul. Cargo vine, " +"de asemenea, cu un instrument de rulat testele încorporat care este folosit " +"pentru a executa testele unitare." #: src/cargo/rust-ecosystem.md msgid "" "`rustup`: the Rust toolchain installer and updater. This tool is used to " -"install and update `rustc` and `cargo` when new versions of Rust are " -"released. In addition, `rustup` can also download documentation for the " -"standard library. You can have multiple versions of Rust installed at once " -"and `rustup` will let you switch between them as needed." -msgstr "" -"`rustup`: programul de instalare și actualizare a lanțului de instrumente " -"Rust. Acest instrument este utilizat pentru a instala și actualiza `rustc` " -"și `cargo` atunci când sunt lansate noi versiuni de Rust. În plus, `rustup` " -"poate descărca și documentația pentru biblioteca standard. Puteți avea mai " -"multe versiuni de Rust instalate în același timp, iar `rustup` vă va permite " -"să treceți de la una la alta în funcție de necesități." +"install and update `rustc` and `cargo` when new versions of Rust are released. " +"In addition, `rustup` can also download documentation for the standard library. " +"You can have multiple versions of Rust installed at once and `rustup` will let " +"you switch between them as needed." +msgstr "" +"`rustup`: programul de instalare și actualizare a lanțului de instrumente Rust. " +"Acest instrument este utilizat pentru a instala și actualiza `rustc` și `cargo` " +"atunci când sunt lansate noi versiuni de Rust. În plus, `rustup` poate descărca " +"și documentația pentru biblioteca standard. Puteți avea mai multe versiuni de " +"Rust instalate în același timp, iar `rustup` vă va permite să treceți de la una " +"la alta în funcție de necesități." #: src/cargo/rust-ecosystem.md src/types-and-values/hello-world.md #: src/references/exclusive.md src/memory-management/move.md @@ -2211,39 +2223,37 @@ msgstr "Puncte-cheie:" #: src/cargo/rust-ecosystem.md msgid "" "Rust has a rapid release schedule with a new release coming out every six " -"weeks. New releases maintain backwards compatibility with old releases --- " -"plus they enable new functionality." +"weeks. New releases maintain backwards compatibility with old releases --- plus " +"they enable new functionality." msgstr "" -"Rust are un program de actualizare rapidă, cu o nouă versiune la fiecare " -"șase săptămâni. Noile versiuni mențin compatibilitatea cu versiunile vechi " -"și adaugă noi funcționalități." +"Rust are un program de actualizare rapidă, cu o nouă versiune la fiecare șase " +"săptămâni. Noile versiuni mențin compatibilitatea cu versiunile vechi și adaugă " +"noi funcționalități." #: src/cargo/rust-ecosystem.md -msgid "" -"There are three release channels: \"stable\", \"beta\", and \"nightly\"." -msgstr "" -"Există trei canale de actualizare: \"stable\", \"beta\" și \"nightly\"." +msgid "There are three release channels: \"stable\", \"beta\", and \"nightly\"." +msgstr "Există trei canale de actualizare: \"stable\", \"beta\" și \"nightly\"." #: src/cargo/rust-ecosystem.md msgid "" "New features are being tested on \"nightly\", \"beta\" is what becomes " "\"stable\" every six weeks." msgstr "" -"Noile caracteristici sunt testate pe \"nightly\", \"beta\" este ceea ce " -"devine \"stabil\" la fiecare șase săptămâni." +"Noile caracteristici sunt testate pe \"nightly\", \"beta\" este ceea ce devine " +"\"stabil\" la fiecare șase săptămâni." #: src/cargo/rust-ecosystem.md msgid "" "Dependencies can also be resolved from alternative [registries](https://doc." "rust-lang.org/cargo/reference/registries.html), git, folders, and more." msgstr "" -"De asemenea, dependențele pot fi rezolvate din [registre](https://doc.rust-" -"lang.org/cargo/reference/registries.html) alternative, git, dosare și altele." +"De asemenea, dependențele pot fi rezolvate din [registre](https://doc.rust-lang." +"org/cargo/reference/registries.html) alternative, git, dosare și altele." #: src/cargo/rust-ecosystem.md msgid "" -"Rust also has [editions](https://doc.rust-lang.org/edition-guide/): the " -"current edition is Rust 2021. Previous editions were Rust 2015 and Rust 2018." +"Rust also has [editions](https://doc.rust-lang.org/edition-guide/): the current " +"edition is Rust 2021. Previous editions were Rust 2015 and Rust 2018." msgstr "" "Rust are, de asemenea, [ediții](https://doc.rust-lang.org/edition-guide/): " "ediția curentă este Rust 2021. Edițiile anterioare au fost Rust 2015 și Rust " @@ -2251,28 +2261,26 @@ msgstr "" #: src/cargo/rust-ecosystem.md msgid "" -"The editions are allowed to make backwards incompatible changes to the " -"language." +"The editions are allowed to make backwards incompatible changes to the language." msgstr "" -"Noile edițiile au dreptul de a face modificări ale limbajului incompatibile " -"cu versiuni mai vechi." +"Noile edițiile au dreptul de a face modificări ale limbajului incompatibile cu " +"versiuni mai vechi." #: src/cargo/rust-ecosystem.md msgid "" -"To prevent breaking code, editions are opt-in: you select the edition for " -"your crate via the `Cargo.toml` file." +"To prevent breaking code, editions are opt-in: you select the edition for your " +"crate via the `Cargo.toml` file." msgstr "" -"Pentru a preveni stricarea codului, edițiile sunt opționale: selectați " -"ediția pentru crate-ul dumneavoastră prin intermediul fișierului `Cargo." -"toml`." +"Pentru a preveni stricarea codului, edițiile sunt opționale: selectați ediția " +"pentru crate-ul dumneavoastră prin intermediul fișierului `Cargo.toml`." #: src/cargo/rust-ecosystem.md msgid "" "To avoid splitting the ecosystem, Rust compilers can mix code written for " "different editions." msgstr "" -"Pentru a evita divizarea ecosistemului, compilatoarele Rust pot amesteca " -"coduri scrise pentru ediții diferite." +"Pentru a evita divizarea ecosistemului, compilatoarele Rust pot amesteca coduri " +"scrise pentru ediții diferite." #: src/cargo/rust-ecosystem.md msgid "" @@ -2285,8 +2293,8 @@ msgstr "" #: src/cargo/rust-ecosystem.md msgid "" "It might be worth alluding that Cargo itself is an extremely powerful and " -"comprehensive tool. It is capable of many advanced features including but " -"not limited to:" +"comprehensive tool. It is capable of many advanced features including but not " +"limited to:" msgstr "" "Cargo este un instrument extrem de puternic și cuprinzător. Acesta are multe " "caracteristici avansate, incluzând:" @@ -2303,16 +2311,15 @@ msgstr "" #: src/cargo/rust-ecosystem.md msgid "Dev Dependencies and Runtime Dependency management/caching" msgstr "" -"Gestionarea/arhivarea dependențelor de dezvoltare și a dependențelor de timp " -"de execuție" +"Gestionarea/arhivarea dependențelor de dezvoltare și a dependențelor de timp de " +"execuție" #: src/cargo/rust-ecosystem.md msgid "" -"[build scripting](https://doc.rust-lang.org/cargo/reference/build-scripts." -"html)" +"[build scripting](https://doc.rust-lang.org/cargo/reference/build-scripts.html)" msgstr "" -"[scripturile de build](https://doc.rust-lang.org/cargo/reference/build-" -"scripts.html)" +"[scripturile de build](https://doc.rust-lang.org/cargo/reference/build-scripts." +"html)" #: src/cargo/rust-ecosystem.md msgid "" @@ -2324,18 +2331,16 @@ msgstr "" #: src/cargo/rust-ecosystem.md msgid "" -"It is also extensible with sub command plugins as well (such as [cargo " -"clippy](https://github.com/rust-lang/rust-clippy))." +"It is also extensible with sub command plugins as well (such as [cargo clippy]" +"(https://github.com/rust-lang/rust-clippy))." msgstr "" "Este, de asemenea, extensibil cu pluginuri de subcomandă (cum ar fi [cargo " "clippy](https://github.com/rust-lang/rust-clippy))." #: src/cargo/rust-ecosystem.md -msgid "" -"Read more from the [official Cargo Book](https://doc.rust-lang.org/cargo/)" +msgid "Read more from the [official Cargo Book](https://doc.rust-lang.org/cargo/)" msgstr "" -"Citiți mai multe din [cartea oficială Cargo](https://doc.rust-lang.org/" -"cargo/)" +"Citiți mai multe din [cartea oficială Cargo](https://doc.rust-lang.org/cargo/)" #: src/cargo/code-samples.md msgid "Code Samples in This Training" @@ -2348,19 +2353,19 @@ msgid "" "and ensures a consistent experience for everyone." msgstr "" "În cadrul acestui curs, vom explora limbajul Rust în principal prin exemple " -"care pot fi executate prin intermediul browserului dumneavoastră. Acest " -"lucru face configurarea mult mai ușoară și asigură o experiență coerentă " -"pentru toată lumea." +"care pot fi executate prin intermediul browserului dumneavoastră. Acest lucru " +"face configurarea mult mai ușoară și asigură o experiență coerentă pentru toată " +"lumea." #: src/cargo/code-samples.md msgid "" -"Installing Cargo is still encouraged: it will make it easier for you to do " -"the exercises. On the last day, we will do a larger exercise which shows you " -"how to work with dependencies and for that you need Cargo." +"Installing Cargo is still encouraged: it will make it easier for you to do the " +"exercises. On the last day, we will do a larger exercise which shows you how to " +"work with dependencies and for that you need Cargo." msgstr "" "Instalarea Cargo este în continuare încurajată: vă va fi mai ușor să faceți " -"exercițiile. În ultima zi, vom face un exercițiu mai amplu care vă va arăta " -"cum să lucrați cu dependențele și pentru care aveți nevoie de Cargo." +"exercițiile. În ultima zi, vom face un exercițiu mai amplu care vă va arăta cum " +"să lucrați cu dependențele și pentru care aveți nevoie de Cargo." #: src/cargo/code-samples.md msgid "The code blocks in this course are fully interactive:" @@ -2383,28 +2388,28 @@ msgid "" "Most code samples are editable like shown above. A few code samples are not " "editable for various reasons:" msgstr "" -"Majoritatea mostrelor de cod sunt editabile, așa cum se arată mai sus. " -"Câteva mostre de cod nu sunt editabile din diverse motive:" +"Majoritatea mostrelor de cod sunt editabile, așa cum se arată mai sus. Câteva " +"mostre de cod nu sunt editabile din diverse motive:" #: src/cargo/code-samples.md msgid "" "The embedded playgrounds cannot execute unit tests. Copy-paste the code and " "open it in the real Playground to demonstrate unit tests." msgstr "" -"Zonele de încercare încorporate nu pot executa teste unitare. Copiați și " -"lipiți codul și deschideți-l în locul de zona de lucru locală pentru a " -"demonstra testele unitare." +"Zonele de încercare încorporate nu pot executa teste unitare. Copiați și lipiți " +"codul și deschideți-l în locul de zona de lucru locală pentru a demonstra " +"testele unitare." #: src/cargo/code-samples.md msgid "" -"The embedded playgrounds lose their state the moment you navigate away from " -"the page! This is the reason that the students should solve the exercises " -"using a local Rust installation or via the Playground." +"The embedded playgrounds lose their state the moment you navigate away from the " +"page! This is the reason that the students should solve the exercises using a " +"local Rust installation or via the Playground." msgstr "" -"Zonele de încercare încorporate își pierd starea în momentul în care " -"navigați în afara paginii! Acesta este motivul pentru care elevii trebuie să " -"rezolve exercițiile folosind o instalare locală de Rust sau prin intermediul " -"zonei de încercare." +"Zonele de încercare încorporate își pierd starea în momentul în care navigați " +"în afara paginii! Acesta este motivul pentru care elevii trebuie să rezolve " +"exercițiile folosind o instalare locală de Rust sau prin intermediul zonei de " +"încercare." #: src/cargo/running-locally.md msgid "Running Code Locally with Cargo" @@ -2412,30 +2417,29 @@ msgstr "Rularea codului la nivel local cu Cargo" #: src/cargo/running-locally.md msgid "" -"If you want to experiment with the code on your own system, then you will " -"need to first install Rust. Do this by following the [instructions in the " -"Rust Book](https://doc.rust-lang.org/book/ch01-01-installation.html). This " -"should give you a working `rustc` and `cargo`. At the time of writing, the " -"latest stable Rust release has these version numbers:" +"If you want to experiment with the code on your own system, then you will need " +"to first install Rust. Do this by following the [instructions in the Rust Book]" +"(https://doc.rust-lang.org/book/ch01-01-installation.html). This should give " +"you a working `rustc` and `cargo`. At the time of writing, the latest stable " +"Rust release has these version numbers:" msgstr "" "Dacă doriți să experimentați cu codul pe propriul sistem, va trebui să " -"instalați mai întâi Rust. Faceți acest lucru urmând [instrucțiunile din " -"Cartea Rust](https://doc.rust-lang.org/book/ch01-01-installation.html). Veți " -"avea astfel un `rustc` și un `cargo` funcțional. La momentul scrierii " -"acestui articol, cea mai recentă versiune stabilă Rust are versiunea:" +"instalați mai întâi Rust. Faceți acest lucru urmând [instrucțiunile din Cartea " +"Rust](https://doc.rust-lang.org/book/ch01-01-installation.html). Veți avea " +"astfel un `rustc` și un `cargo` funcțional. La momentul scrierii acestui " +"articol, cea mai recentă versiune stabilă Rust are versiunea:" #: src/cargo/running-locally.md msgid "" -"You can use any later version too since Rust maintains backwards " -"compatibility." +"You can use any later version too since Rust maintains backwards compatibility." msgstr "" "Puteți utiliza și orice versiune ulterioară, deoarece Rust păstrează " "compatibilitatea cu versiunile anterioare." #: src/cargo/running-locally.md msgid "" -"With this in place, follow these steps to build a Rust binary from one of " -"the examples in this training:" +"With this in place, follow these steps to build a Rust binary from one of the " +"examples in this training:" msgstr "" "Ulterior urmați acești pași pentru a construi un binar Rust din unul dintre " "exemplele din acest curs de instruire:" @@ -2443,15 +2447,15 @@ msgstr "" #: src/cargo/running-locally.md msgid "Click the \"Copy to clipboard\" button on the example you want to copy." msgstr "" -"Apăsați pe butonul \"Copy to clipboard\" (Copiere în clipboard) al " -"exemplului pe care doriți să îl copiați." +"Apăsați pe butonul \"Copy to clipboard\" (Copiere în clipboard) al exemplului " +"pe care doriți să îl copiați." #: src/cargo/running-locally.md msgid "" "Use `cargo new exercise` to create a new `exercise/` directory for your code:" msgstr "" -"Utilizați `cargo new exercise` pentru a crea un nou director `exercise/` " -"pentru codul dumneavoastră:" +"Utilizați `cargo new exercise` pentru a crea un nou director `exercise/` pentru " +"codul dumneavoastră:" #: src/cargo/running-locally.md msgid "" @@ -2462,12 +2466,11 @@ msgstr "" #: src/cargo/running-locally.md msgid "" -"Replace the boiler-plate code in `src/main.rs` with your own code. For " -"example, using the example on the previous page, make `src/main.rs` look like" +"Replace the boiler-plate code in `src/main.rs` with your own code. For example, " +"using the example on the previous page, make `src/main.rs` look like" msgstr "" -"Înlocuiți codul generic din `src/main.rs` cu propriul cod. De exemplu, " -"folosind exemplul de pe pagina anterioară, faceți`src/main.rs` să arate " -"astfel" +"Înlocuiți codul generic din `src/main.rs` cu propriul cod. De exemplu, folosind " +"exemplul de pe pagina anterioară, faceți`src/main.rs` să arate astfel" #: src/cargo/running-locally.md msgid "Use `cargo run` to build and run your updated binary:" @@ -2475,26 +2478,26 @@ msgstr "Utilizați `cargo run` pentru a construi și rula binarul actualizat:" #: src/cargo/running-locally.md msgid "" -"Use `cargo check` to quickly check your project for errors, use `cargo " -"build` to compile it without running it. You will find the output in `target/" -"debug/` for a normal debug build. Use `cargo build --release` to produce an " -"optimized release build in `target/release/`." +"Use `cargo check` to quickly check your project for errors, use `cargo build` " +"to compile it without running it. You will find the output in `target/debug/` " +"for a normal debug build. Use `cargo build --release` to produce an optimized " +"release build in `target/release/`." msgstr "" -"Folosiți `cargo check` pentru a verifica rapid dacă proiectul dumneavoastră " -"are erori, folosiți `cargo build` pentru a-l compila fără a-l rula. Veți " -"găsi rezultatul în `target/debug/` pentru o compilare normală de depanare. " -"Folosiți `cargo build --release` pentru a produce o compilare optimizată de " -"lansare în `target/release/`." +"Folosiți `cargo check` pentru a verifica rapid dacă proiectul dumneavoastră are " +"erori, folosiți `cargo build` pentru a-l compila fără a-l rula. Veți găsi " +"rezultatul în `target/debug/` pentru o compilare normală de depanare. Folosiți " +"`cargo build --release` pentru a produce o compilare optimizată de lansare în " +"`target/release/`." #: src/cargo/running-locally.md msgid "" -"You can add dependencies for your project by editing `Cargo.toml`. When you " -"run `cargo` commands, it will automatically download and compile missing " +"You can add dependencies for your project by editing `Cargo.toml`. When you run " +"`cargo` commands, it will automatically download and compile missing " "dependencies for you." msgstr "" "Puteți adăuga dependențe pentru proiectul dumneavoastră prin editarea `Cargo." -"toml`. Când executați comenzile `cargo`, acesta va descărca și compila " -"automat dependențele lipsă pentru dumneavoastră." +"toml`. Când executați comenzile `cargo`, acesta va descărca și compila automat " +"dependențele lipsă pentru dumneavoastră." #: src/cargo/running-locally.md msgid "" @@ -2512,8 +2515,7 @@ msgstr "Bine ați venit la Ziua 1" #: src/welcome-day-1.md msgid "" -"This is the first day of Rust Fundamentals. We will cover a lot of ground " -"today:" +"This is the first day of Rust Fundamentals. We will cover a lot of ground today:" msgstr "" "Aceasta este prima zi a cursului Rust Fundamentals. Vom acoperi o mulțime de " "subiecte astăzi:" @@ -2541,7 +2543,7 @@ msgstr "Tipuri definite de utilizator: structurile și enumerațiile." #: src/welcome-day-1.md msgid "Pattern matching: destructuring enums, structs, and arrays." msgstr "" -"Găsirea de tipare: destructurarea enumerațiilor, structurilor și a " +"Găsirea de șabloane: destructurarea enumerațiilor, structurilor și a " "tablourilor." #: src/welcome-day-1.md src/welcome-day-2.md src/welcome-day-3.md @@ -2563,53 +2565,44 @@ msgid "[Welcome](./welcome-day-1.md) (5 minutes)" msgstr "[Introducere](./welcome-day-1.md) (5 minute)" #: src/welcome-day-1.md -#, fuzzy msgid "[Hello, World](./hello-world.md) (15 minutes)" -msgstr "[Hello, World](./hello-world.md) (20 minute)" +msgstr "[Bună lume](./hello-world.md) (15 minute)" #: src/welcome-day-1.md -#, fuzzy msgid "[Types and Values](./types-and-values.md) (40 minutes)" -msgstr "[Tipuri și valori](./types-and-values.md) (1 oră și 5 minute)" +msgstr "[Tipuri și valori](./types-and-values.md) (40 de minute)" #: src/welcome-day-1.md -#, fuzzy msgid "[Control Flow Basics](./control-flow-basics.md) (40 minutes)" -msgstr "[Bazele fluxului de control](./control-flow-basics.md) (1 oră)" +msgstr "[Bazele fluxului de control](./control-flow-basics.md) (40 de minute)" #: src/welcome-day-1.md -#, fuzzy msgid "" -"Including 10 minute breaks, this session should take about 2 hours and 5 " -"minutes" +"Including 10 minute breaks, this session should take about 2 hours and 5 minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 2 ore și 55 de minute" +"Această sesiune, inclusiv pauzele, ar trebui să dureze aproximativ 2 ore și 5 " +"minute" #: src/welcome-day-1.md msgid "Please remind the students that:" msgstr "Vă rugăm să le reamintiți cursanților că:" #: src/welcome-day-1.md -msgid "" -"They should ask questions when they get them, don't save them to the end." +msgid "They should ask questions when they get them, don't save them to the end." msgstr "" -"Ar trebui să pună întrebări atunci când le primesc, nu să le lase pentru " -"final." +"Ar trebui să pună întrebări atunci când le primesc, nu să le lase pentru final." #: src/welcome-day-1.md msgid "" -"The class is meant to be interactive and discussions are very much " -"encouraged!" -msgstr "" -"Clasa se dorește a fi interactivă, iar discuțiile sunt foarte încurajate!" +"The class is meant to be interactive and discussions are very much encouraged!" +msgstr "Clasa se dorește a fi interactivă, iar discuțiile sunt foarte încurajate!" #: src/welcome-day-1.md msgid "" -"As an instructor, you should try to keep the discussions relevant, i.e., " -"keep the discussions related to how Rust does things vs some other language. " -"It can be hard to find the right balance, but err on the side of allowing " -"discussions since they engage people much more than one-way communication." +"As an instructor, you should try to keep the discussions relevant, i.e., keep " +"the discussions related to how Rust does things vs some other language. It can " +"be hard to find the right balance, but err on the side of allowing discussions " +"since they engage people much more than one-way communication." msgstr "" "În calitate de instructor, ar trebui să încercați să păstrați discuțiile " "relevante, adică să păstrați discuțiile legate de modul în care Rust face " @@ -2626,38 +2619,36 @@ msgstr "" #: src/welcome-day-1.md msgid "" -"This is perfectly okay! Repetition is an important part of learning. " -"Remember that the slides are just a support and you are free to skip them as " -"you like." +"This is perfectly okay! Repetition is an important part of learning. Remember " +"that the slides are just a support and you are free to skip them as you like." msgstr "" "Acest lucru este perfect în regulă! Repetiția este o parte importantă a " -"învățării. Nu uitați că diapozitivele sunt doar un suport și că sunteți " -"liberi să le săriți după cum doriți." +"învățării. Nu uitați că diapozitivele sunt doar un suport și că sunteți liberi " +"să le săriți după cum doriți." #: src/welcome-day-1.md msgid "" -"The idea for the first day is to show the \"basic\" things in Rust that " -"should have immediate parallels in other languages. The more advanced parts " -"of Rust come on the subsequent days." +"The idea for the first day is to show the \"basic\" things in Rust that should " +"have immediate parallels in other languages. The more advanced parts of Rust " +"come on the subsequent days." msgstr "" "Ideea pentru prima zi este de a arăta lucrurile \"de bază\" din Rust care ar " -"trebui să aibă paralele imediate cu alte limbaje. Părțile mai avansate din " -"Rust vor fi prezentate în zilele următoare." +"trebui să aibă paralele imediate cu alte limbaje. Părțile mai avansate din Rust " +"vor fi prezentate în zilele următoare." #: src/welcome-day-1.md msgid "" "If you're teaching this in a classroom, this is a good place to go over the " -"schedule. Note that there is an exercise at the end of each segment, " -"followed by a break. Plan to cover the exercise solution after the break. " -"The times listed here are a suggestion in order to keep the course on " -"schedule. Feel free to be flexible and adjust as necessary!" +"schedule. Note that there is an exercise at the end of each segment, followed " +"by a break. Plan to cover the exercise solution after the break. The times " +"listed here are a suggestion in order to keep the course on schedule. Feel free " +"to be flexible and adjust as necessary!" msgstr "" "Dacă predați acest curs în clasă, acesta este un loc bun pentru a trece în " "revistă programul. Rețineți că există un exercițiu la sfârșitul fiecărui " -"segment, urmat de o pauză. Planificați să acoperiți soluția exercițiului " -"după pauză. Orele listate aici sunt o sugestie pentru a menține cursul în " -"program. Nu ezitați să fiți flexibili și să vă adaptați după cum este " -"necesar!" +"segment, urmat de o pauză. Planificați să acoperiți soluția exercițiului după " +"pauză. Orele listate aici sunt o sugestie pentru a menține cursul în program. " +"Nu ezitați să fiți flexibili și să vă adaptați după cum este necesar!" #: src/hello-world.md src/types-and-values.md src/control-flow-basics.md #: src/tuples-and-arrays.md src/references.md src/user-defined-types.md @@ -2691,8 +2682,8 @@ msgstr "Acest segment ar trebui să dureze aproximativ 15 minute" #: src/hello-world/what-is-rust.md msgid "" -"Rust is a new programming language which had its [1.0 release in 2015]" -"(https://blog.rust-lang.org/2015/05/15/Rust-1.0.html):" +"Rust is a new programming language which had its [1.0 release in 2015](https://" +"blog.rust-lang.org/2015/05/15/Rust-1.0.html):" msgstr "" "Rust este un nou limbaj de programare care a avut [versiunea 1.0 în 2015]" "(https://blog.rust-lang.org/2015/05/15/Rust-1.0.html):" @@ -2710,8 +2701,8 @@ msgid "" "Rust supports many [platforms and architectures](https://doc.rust-lang.org/" "nightly/rustc/platform-support.html):" msgstr "" -"Rust suportă multe [platforme și arhitecturi](https://doc.rust-lang.org/" -"nightly/rustc/platform-support.html):" +"Rust suportă multe [platforme și arhitecturi](https://doc.rust-lang.org/nightly/" +"rustc/platform-support.html):" #: src/hello-world/what-is-rust.md msgid "x86, ARM, WebAssembly, ..." @@ -2758,8 +2749,7 @@ msgid "High level of control." msgstr "Nivel ridicat de control." #: src/hello-world/what-is-rust.md -msgid "" -"Can be scaled down to very constrained devices such as microcontrollers." +msgid "Can be scaled down to very constrained devices such as microcontrollers." msgstr "" "Poate fi redus pentru a rula pe dispozitive foarte limitate, cum ar fi " "microcontrolerele." @@ -2770,8 +2760,7 @@ msgstr "Nu are nevoie de mediu de execuție și nici de colectare de gunoi." #: src/hello-world/what-is-rust.md msgid "Focuses on reliability and safety without sacrificing performance." -msgstr "" -"Se concentrează pe fiabilitate și siguranță fără a sacrifica performanța." +msgstr "Se concentrează pe fiabilitate și siguranță fără a sacrifica performanța." #: src/hello-world/benefits.md msgid "Some unique selling points of Rust:" @@ -2818,8 +2807,8 @@ msgid "" "_No undefined runtime behavior_ - what a Rust statement does is never left " "unspecified" msgstr "" -"_Fără comportament nedefinit în timp de execuție_ - ceea ce face o " -"declarație Rust nu este niciodată nespecificat" +"_Fără comportament nedefinit în timp de execuție_ - ceea ce face o declarație " +"Rust nu este niciodată nespecificat" #: src/hello-world/benefits.md msgid "Array access is bounds checked." @@ -2834,8 +2823,8 @@ msgid "" "_Modern language features_ - as expressive and ergonomic as higher-level " "languages" msgstr "" -"_Caracteristicile limbajelor moderne_ - la fel de expresive și ergonomice ca " -"și limbajele de nivel superior" +"_Caracteristicile limbajelor moderne_ - la fel de expresive și ergonomice ca și " +"limbajele de nivel superior" #: src/hello-world/benefits.md msgid "Enums and pattern matching." @@ -2871,65 +2860,65 @@ msgstr "Suport excelent pentru protocolul serverului de limbă." #: src/hello-world/benefits.md msgid "" -"Do not spend much time here. All of these points will be covered in more " -"depth later." +"Do not spend much time here. All of these points will be covered in more depth " +"later." msgstr "" "Nu petreceți mult timp aici. Toate aceste puncte vor fi abordate mai în " "profunzime mai târziu." #: src/hello-world/benefits.md msgid "" -"Make sure to ask the class which languages they have experience with. " -"Depending on the answer you can highlight different features of Rust:" +"Make sure to ask the class which languages they have experience with. Depending " +"on the answer you can highlight different features of Rust:" msgstr "" -"Nu uitați să întrebați elevii din clasă cu ce limbaje au experiență. În " -"funcție de răspuns, puteți evidenția diferite caracteristici ale Rust:" +"Nu uitați să întrebați elevii din clasă cu ce limbaje au experiență. În funcție " +"de răspuns, puteți evidenția diferite caracteristici ale Rust:" #: src/hello-world/benefits.md msgid "" -"Experience with C or C++: Rust eliminates a whole class of _runtime errors_ " -"via the borrow checker. You get performance like in C and C++, but you don't " -"have the memory unsafety issues. In addition, you get a modern language with " +"Experience with C or C++: Rust eliminates a whole class of _runtime errors_ via " +"the borrow checker. You get performance like in C and C++, but you don't have " +"the memory unsafety issues. In addition, you get a modern language with " "constructs like pattern matching and built-in dependency management." msgstr "" "Experiență cu C sau C++: Rust elimină o întreagă clasă de erori de execuție " -"prin intermediul verificatorului de împrumuturi. Obțineți performanțe ca în " -"C și C++, dar nu aveți probleme de nesiguranță a memoriei. În plus, obțineți " -"un limbaj modern, cu construcții precum șabloane de potrivire și gestionarea " +"prin intermediul verificatorului de împrumuturi. Obțineți performanțe ca în C " +"și C++, dar nu aveți probleme de nesiguranță a memoriei. În plus, obțineți un " +"limbaj modern, cu construcții precum șabloane de potrivire și gestionarea " "integrată a dependențelor." #: src/hello-world/benefits.md msgid "" -"Experience with Java, Go, Python, JavaScript...: You get the same memory " -"safety as in those languages, plus a similar high-level language feeling. In " -"addition you get fast and predictable performance like C and C++ (no garbage " -"collector) as well as access to low-level hardware (should you need it)" +"Experience with Java, Go, Python, JavaScript...: You get the same memory safety " +"as in those languages, plus a similar high-level language feeling. In addition " +"you get fast and predictable performance like C and C++ (no garbage collector) " +"as well as access to low-level hardware (should you need it)." msgstr "" "Experiență cu Java, Go, Python, JavaScript...: Obțineți aceeași siguranță a " -"memoriei ca în aceste limbaje, plus o senzație similară de limbaj de nivel " -"înalt. În plus, obțineți performanțe rapide și previzibile ca în C și C++ " -"(fără colector de memorie), precum și acces la hardware de nivel scăzut " -"(dacă aveți nevoie)" +"memoriei ca în aceste limbaje și o senzație similară de limbaj de nivel înalt. " +"În plus, obțineți performanțe rapide și previzibile ca în C și C++ (fără " +"colector de memorie), precum și acces la hardware de nivel scăzut (dacă aveți " +"nevoie)" #: src/hello-world/playground.md msgid "" -"The [Rust Playground](https://play.rust-lang.org/) provides an easy way to " -"run short Rust programs, and is the basis for the examples and exercises in " -"this course. Try running the \"hello-world\" program it starts with. It " -"comes with a few handy features:" +"The [Rust Playground](https://play.rust-lang.org/) provides an easy way to run " +"short Rust programs, and is the basis for the examples and exercises in this " +"course. Try running the \"hello-world\" program it starts with. It comes with a " +"few handy features:" msgstr "" -"[Rust Playground](https://play.rust-lang.org/) oferă o modalitate ușoară de " -"a rula programe Rust scurte și reprezintă baza pentru exemplele și " -"exercițiile din acest curs. Încercați să rulați programul \"hello-world\" cu " -"care începe. Acesta vine cu câteva caracteristici utile:" +"[Rust Playground](https://play.rust-lang.org/) oferă o modalitate ușoară de a " +"rula programe Rust scurte și reprezintă baza pentru exemplele și exercițiile " +"din acest curs. Încercați să rulați programul \"hello-world\" cu care începe. " +"Acesta vine cu câteva caracteristici utile:" #: src/hello-world/playground.md msgid "" "Under \"Tools\", use the `rustfmt` option to format your code in the " "\"standard\" way." msgstr "" -"În secțiunea \"Tools\", utilizați opțiunea `rustfmt` pentru a formata codul " -"în mod \"standard\"." +"În secțiunea \"Tools\", utilizați opțiunea `rustfmt` pentru a formata codul în " +"mod \"standard\"." #: src/hello-world/playground.md msgid "" @@ -2938,63 +2927,55 @@ msgid "" "optimization). These are accessible under \"Debug\" at the top." msgstr "" "Rust are două \"profiluri\" principale pentru generarea de cod: Debug " -"(verificări suplimentare în timpul execuției, mai puțină optimizare) și " -"Release (mai puține verificări în timpul execuției, multă optimizare). " -"Acestea sunt accesibile sub \"Debug\" în partea de sus." +"(verificări suplimentare în timpul execuției, mai puțină optimizare) și Release " +"(mai puține verificări în timpul execuției, multă optimizare). Acestea sunt " +"accesibile sub \"Debug\" în partea de sus." #: src/hello-world/playground.md msgid "" -"If you're interested, use \"ASM\" under \"...\" to see the generated " -"assembly code." +"If you're interested, use \"ASM\" under \"...\" to see the generated assembly " +"code." msgstr "" -"Dacă sunteți interesați, utilizați \"ASM\" sub \"...\" pentru a vedea codul " -"de asamblare generat." +"Dacă sunteți interesați, utilizați \"ASM\" sub \"...\" pentru a vedea codul de " +"asamblare generat." #: src/hello-world/playground.md msgid "" -"As students head into the break, encourage them to open up the playground " -"and experiment a little. Encourage them to keep the tab open and try things " -"out during the rest of the course. This is particularly helpful for advanced " -"students who want to know more about Rust's optimizations or generated " -"assembly." +"As students head into the break, encourage them to open up the playground and " +"experiment a little. Encourage them to keep the tab open and try things out " +"during the rest of the course. This is particularly helpful for advanced " +"students who want to know more about Rust's optimizations or generated assembly." msgstr "" -"Încurajați cursanții să experimenteze în mediul de lucru virtual pe " -"parcursul restului cursului. Acest lucru este deosebit de util pentru " -"studenții avansați care doresc să afle mai multe despre optimizările Rust " -"sau despre codul în limbaj de asamblare generat." +"Încurajați cursanții să experimenteze în mediul de lucru virtual pe parcursul " +"restului cursului. Acest lucru este deosebit de util pentru cursanții avansați " +"care doresc să afle mai multe despre optimizările Rust sau despre codul în " +"limbaj de asamblare generat." #: src/types-and-values.md -#, fuzzy msgid "[Hello, World](./types-and-values/hello-world.md) (5 minutes)" -msgstr "[Hello, World](./hello-world/hello-world.md) (5 minute)" +msgstr "[Bună lume](./hello-world/hello-world.md) (5 minute)" #: src/types-and-values.md msgid "[Variables](./types-and-values/variables.md) (5 minutes)" msgstr "[Variabile](./types-and-values/variables.md) (5 minute)" #: src/types-and-values.md -#, fuzzy msgid "[Values](./types-and-values/values.md) (5 minutes)" -msgstr "[Valori](./types-and-values/values.md) (10 minute)" +msgstr "[Valori](./types-and-values/values.md) (5 minute)" #: src/types-and-values.md -#, fuzzy msgid "[Arithmetic](./types-and-values/arithmetic.md) (3 minutes)" -msgstr "[Aritmetică](./types-and-values/arithmetic.md) (5 minute)" +msgstr "[Aritmetică](./types-and-values/arithmetic.md) (3 minute)" #: src/types-and-values.md -#, fuzzy msgid "[Type Inference](./types-and-values/inference.md) (3 minutes)" -msgstr "[Inferență de tip](./types-and-values/inference.md) (5 minute)" +msgstr "[Inferența tipurilor](./types-and-values/inference.md) (3 minute)" #: src/types-and-values.md -#, fuzzy msgid "[Exercise: Fibonacci](./types-and-values/exercise.md) (15 minutes)" -msgstr "[Exercițiu: Fibonacci](./types-and-values/exercise.md) (30 minute)" +msgstr "[Exercițiu: Fibonacci](./types-and-values/exercise.md) (15 minute)" -#: src/types-and-values.md src/control-flow-basics.md src/generics.md -#: src/modules.md -#, fuzzy +#: src/types-and-values.md src/control-flow-basics.md src/modules.md msgid "This segment should take about 40 minutes" msgstr "Acest segment ar trebui să dureze aproximativ 40 de minute" @@ -3003,8 +2984,7 @@ msgid "" "Let us jump into the simplest possible Rust program, a classic Hello World " "program:" msgstr "" -"Să trecem la cel mai simplu program Rust posibil, un program clasic Bună " -"Lume:" +"Să trecem la cel mai simplu program Rust posibil, un program clasic Bună Lume:" #: src/types-and-values/hello-world.md msgid "\"Hello 🌍!\"" @@ -3033,18 +3013,17 @@ msgstr "Rust are macro-uri igienice, `println!` este un exemplu în acest sens." #: src/types-and-values/hello-world.md msgid "Rust strings are UTF-8 encoded and can contain any Unicode character." msgstr "" -"Șirurile de caractere Rust sunt codificate UTF-8 și pot conține orice " -"caracter Unicode." +"Șirurile de caractere Rust sunt codificate UTF-8 și pot conține orice caracter " +"Unicode." #: src/types-and-values/hello-world.md msgid "" -"This slide tries to make the students comfortable with Rust code. They will " -"see a ton of it over the next four days so we start small with something " -"familiar." +"This slide tries to make the students comfortable with Rust code. They will see " +"a ton of it over the next four days so we start small with something familiar." msgstr "" -"Această pagină încearcă să îi facă pe cursanți să se simtă confortabil cu " -"codul Rust. Ei vor vedea o mulțime de astfel de fișiere în următoarele trei " -"zile, așa că vom începe cu ceva familiar." +"Această pagină încearcă să îi facă pe cursanți să se simtă confortabil cu codul " +"Rust. Ei vor vedea o mulțime de astfel de fișiere în următoarele trei zile, așa " +"că vom începe cu ceva familiar." #: src/types-and-values/hello-world.md msgid "" @@ -3064,21 +3043,20 @@ msgid "" "Rust uses macros for situations where you want to have a variable number of " "arguments (no function [overloading](../control-flow-basics/functions.md))." msgstr "" -"Rust folosește macrocomenzi pentru situațiile în care doriți să aveți un " -"număr variabil de argumente (fără [supraîncărcare](basic-syntax/functions-" -"interlude.md) de funcții )." +"Rust folosește macrocomenzi pentru situațiile în care doriți să aveți un număr " +"variabil de argumente (fără [supraîncărcare](basic-syntax/functions-interlude." +"md) de funcții )." #: src/types-and-values/hello-world.md msgid "" -"Macros being 'hygienic' means they don't accidentally capture identifiers " -"from the scope they are used in. Rust macros are actually only [partially " -"hygienic](https://veykril.github.io/tlborm/decl-macros/minutiae/hygiene." -"html)." +"Macros being 'hygienic' means they don't accidentally capture identifiers from " +"the scope they are used in. Rust macros are actually only [partially hygienic]" +"(https://veykril.github.io/tlborm/decl-macros/minutiae/hygiene.html)." msgstr "" "Fiind \"igienice\", macrourile înseamnă că nu captează accidental " "identificatori din domeniul de aplicare în care sunt utilizate. Macro-urile " -"Rust sunt de fapt doar [parțial igienice](https://veykril.github.io/tlborm/" -"decl-macros/minutiae/hygiene.html)." +"Rust sunt de fapt doar [parțial igienice](https://veykril.github.io/tlborm/decl-" +"macros/minutiae/hygiene.html)." #: src/types-and-values/hello-world.md msgid "" @@ -3090,8 +3068,7 @@ msgstr "" "Rust este multi-paradigmă. De exemplu, are [caracteristici puternice de " "programare orientată pe obiecte](https://doc.rust-lang.org/book/ch17-00-oop." "html) și, deși nu este un limbaj funcțional, include o serie de [concepte " -"funcționale](https://doc.rust-lang.org/book/ch13-00-functional-features." -"html)." +"funcționale](https://doc.rust-lang.org/book/ch13-00-functional-features.html)." #: src/types-and-values/variables.md msgid "" @@ -3116,30 +3093,29 @@ msgstr "" #: src/types-and-values/variables.md msgid "" -"Uncomment the `x = 20` to demonstrate that variables are immutable by " -"default. Add the `mut` keyword to allow changes." +"Uncomment the `x = 20` to demonstrate that variables are immutable by default. " +"Add the `mut` keyword to allow changes." msgstr "" -"Scoateți comentariul `x = 20` pentru a demonstra că variabilele sunt " -"imuabile în mod implicit. Adăugați cuvântul cheie `mut` pentru a permite " -"modificări." +"Scoateți comentariul `x = 20` pentru a demonstra că variabilele sunt imuabile " +"în mod implicit. Adăugați cuvântul cheie `mut` pentru a permite modificări." #: src/types-and-values/variables.md msgid "" -"The `i32` here is the type of the variable. This must be known at compile " -"time, but type inference (covered later) allows the programmer to omit it in " -"many cases." +"The `i32` here is the type of the variable. This must be known at compile time, " +"but type inference (covered later) allows the programmer to omit it in many " +"cases." msgstr "" -"Aici `i32` este tipul variabilei. Acesta trebuie să fie cunoscut la " -"compilare, dar inferența de tip (abordată mai târziu) permite " -"programatorului să o omită în multe cazuri." +"Aici `i32` este tipul variabilei. Acesta trebuie să fie cunoscut la compilare, " +"dar inferența de tip (abordată mai târziu) permite programatorului să o omită " +"în multe cazuri." #: src/types-and-values/values.md msgid "" -"Here are some basic built-in types, and the syntax for literal values of " -"each type." +"Here are some basic built-in types, and the syntax for literal values of each " +"type." msgstr "" -"Iată câteva tipuri de bază încorporate și sintaxa pentru valorile literale " -"ale fiecărui tip." +"Iată câteva tipuri de bază încorporate și sintaxa pentru valorile literale ale " +"fiecărui tip." #: src/types-and-values/values.md src/unsafe-rust/exercise.md msgid "Types" @@ -3236,8 +3212,8 @@ msgstr "Există câteva elemente de sintaxă care nu sunt prezentate mai sus:" #: src/types-and-values/values.md msgid "" "All underscores in numbers can be left out, they are for legibility only. So " -"`1_000` can be written as `1000` (or `10_00`), and `123_i64` can be written " -"as `123i64`." +"`1_000` can be written as `1000` (or `10_00`), and `123_i64` can be written as " +"`123i64`." msgstr "" "Toate sublinierile din numere pot fi omise, ele sunt folosite doar pentru " "lizibilitate. Astfel, `1_000` poate fi scris ca `1000` (sau `10_00`), iar " @@ -3249,14 +3225,13 @@ msgstr "\"result: {}\"" #: src/types-and-values/arithmetic.md msgid "" -"This is the first time we've seen a function other than `main`, but the " -"meaning should be clear: it takes three integers, and returns an integer. " -"Functions will be covered in more detail later." +"This is the first time we've seen a function other than `main`, but the meaning " +"should be clear: it takes three integers, and returns an integer. Functions " +"will be covered in more detail later." msgstr "" "Aceasta este prima dată când vedem o altă funcție decât `main`, dar " -"semnificația ar trebui să fie clară: primește trei numere întregi și " -"returnează un număr întreg. Funcțiile vor fi tratate mai în detaliu mai " -"târziu." +"semnificația ar trebui să fie clară: primește trei numere întregi și returnează " +"un număr întreg. Funcțiile vor fi tratate mai în detaliu mai târziu." #: src/types-and-values/arithmetic.md msgid "Arithmetic is very similar to other languages, with similar precedence." @@ -3267,98 +3242,92 @@ msgstr "" #: src/types-and-values/arithmetic.md msgid "" "What about integer overflow? In C and C++ overflow of _signed_ integers is " -"actually undefined, and might do different things on different platforms or " -"compilers. In Rust, it's defined." +"actually undefined, and might do unknown things at runtime. In Rust, it's " +"defined." msgstr "" -"Cum rămâne cu depășirea de numere întregi? În C și C++, depășirea numărului " -"de numere întregi cu semn este, de fapt, nedefinită și poate avea efecte " -"diferite pe diferite platforme sau compilatoare. În Rust, este definită." +"Cum rămâne cu depășirea de numere întregi? În C și C++, depășirea numărului de " +"numere întregi cu semn este, de fapt, nedefinită și poate avea efecte diferite " +"pe diferite platforme sau compilatoare. În Rust, este definită." #: src/types-and-values/arithmetic.md -#, fuzzy msgid "" -"Change the `i32`'s to `i16` to see an integer overflow, which panics " -"(checked) in a debug build and wraps in a release build. There are other " -"options, such as overflowing, saturating, and carrying. These are accessed " -"with method syntax, e.g., `(a * b).saturating_add(b * c).saturating_add(c * " -"a)`." +"Change the `i32`'s to `i16` to see an integer overflow, which panics (checked) " +"in a debug build and wraps in a release build. There are other options, such as " +"overflowing, saturating, and carrying. These are accessed with method syntax, e." +"g., `(a * b).saturating_add(b * c).saturating_add(c * a)`." msgstr "" "Schimbați `i32` în `i16` pentru a vedea o depășire de număr întreg, care " -"intră în panică (verificată) într-o compilare de depanare și care se " -"înfășoară într-o compilare de release. Există și alte opțiuni, cum ar fi " -"depășirea, saturarea și reținerea depășirii. Acestea sunt accesate cu " -"sintaxa metodei, de exemplu, `(a * b).saturating_add(b * c).saturating_add(c " -"* a)`." +"generează panică (verificată) într-o compilare de depanare și care o ia de la " +"capăt într-o compilare de lansare. Există și alte opțiuni, cum ar fi depășirea, " +"saturarea și reținerea depășirii. Acestea sunt accesate cu sintaxa metodei, de " +"exemplu, `(a * b).saturating_add(b * c).saturating_add(c * a)`." #: src/types-and-values/arithmetic.md msgid "" "In fact, the compiler will detect overflow of constant expressions, which is " "why the example requires a separate function." msgstr "" -"De fapt, compilatorul va detecta depășirea expresiilor constante, motiv " -"pentru care exemplul necesită o funcție separată." +"De fapt, compilatorul va detecta depășirea expresiilor constante, motiv pentru " +"care exemplul necesită o funcție separată." #: src/types-and-values/inference.md msgid "Rust will look at how the variable is _used_ to determine the type:" msgstr "" -"Rust se va uita la modul în care variabila este _utilizată_ pentru a " -"determina tipul:" +"Rust se va uita la modul în care variabila este _utilizată_ pentru a determina " +"tipul:" #: src/types-and-values/inference.md msgid "" -"This slide demonstrates how the Rust compiler infers types based on " -"constraints given by variable declarations and usages." +"This slide demonstrates how the Rust compiler infers types based on constraints " +"given by variable declarations and usages." msgstr "" -"Această pagină demonstrează modul în care compilatorul Rust deduce tipurile " -"pe baza constrângerilor date de declarațiile și utilizările variabilelor." +"Această pagină demonstrează modul în care compilatorul Rust deduce tipurile pe " +"baza constrângerilor date de declarațiile și utilizările variabilelor." #: src/types-and-values/inference.md msgid "" -"It is very important to emphasize that variables declared like this are not " -"of some sort of dynamic \"any type\" that can hold any data. The machine " -"code generated by such declaration is identical to the explicit declaration " -"of a type. The compiler does the job for us and helps us write more concise " -"code." +"It is very important to emphasize that variables declared like this are not of " +"some sort of dynamic \"any type\" that can hold any data. The machine code " +"generated by such declaration is identical to the explicit declaration of a " +"type. The compiler does the job for us and helps us write more concise code." msgstr "" -"Este foarte important să subliniem că variabilele declarate astfel nu sunt " -"de un fel de \"tip dinamic\" care poate conține orice date. Codul mașină " -"generat de o astfel de declarație este identic cu declarația explicită a " -"unui tip. Compilatorul face treaba în locul nostru și ne ajută să scriem un " -"cod mai concis." +"Este foarte important să subliniem că variabilele declarate astfel nu sunt de " +"un fel de \"tip dinamic\" care poate conține orice date. Codul mașină generat " +"de o astfel de declarație este identic cu declarația explicită a unui tip. " +"Compilatorul face treaba în locul nostru și ne ajută să scriem un cod mai " +"concis." #: src/types-and-values/inference.md msgid "" -"When nothing constrains the type of an integer literal, Rust defaults to " -"`i32`. This sometimes appears as `{integer}` in error messages. Similarly, " -"floating-point literals default to `f64`." +"When nothing constrains the type of an integer literal, Rust defaults to `i32`. " +"This sometimes appears as `{integer}` in error messages. Similarly, floating-" +"point literals default to `f64`." msgstr "" -"Atunci când nu există constrângeri pentru tipul unui literal de număr " -"întreg, Rust folosește în mod implicit `i32`. Acest lucru apare uneori ca " -"`{integer}` în mesajele de eroare. În mod similar, literalii în virgulă " -"mobilă sunt în mod implicit `f64`." +"Atunci când nu există constrângeri pentru tipul unui literal de număr întreg, " +"Rust folosește în mod implicit `i32`. Acest lucru apare uneori ca `{integer}` " +"în mesajele de eroare. În mod similar, literalii în virgulă mobilă sunt în mod " +"implicit `f64`." #: src/types-and-values/inference.md msgid "// ERROR: no implementation for `{float} == {integer}`\n" msgstr "// EROARE: nicio implementare pentru `{float} == {integer}`\n" #: src/types-and-values/exercise.md -#, fuzzy msgid "" -"The Fibonacci sequence begins with `[0,1]`. For n>1, the n'th Fibonacci " -"number is calculated recursively as the sum of the n-1'th and n-2'th " -"Fibonacci numbers." +"The Fibonacci sequence begins with `[0,1]`. For n>1, the n'th Fibonacci number " +"is calculated recursively as the sum of the n-1'th and n-2'th Fibonacci numbers." msgstr "" -"Primul și al doilea număr Fibonacci sunt ambele `1`. Pentru n>2, cel de-al n-" +"Primul și al doilea număr Fibonacci sunt ambele `1`. Pentru n>1, cel de-al n-" "lea număr Fibonacci se calculează recursiv ca sumă a celor două numere " "anterioare." #: src/types-and-values/exercise.md msgid "" -"Write a function `fib(n)` that calculates the n'th Fibonacci number. When " -"will this function panic?" +"Write a function `fib(n)` that calculates the n'th Fibonacci number. When will " +"this function panic?" msgstr "" -"Scrieți o funcție `fib(n)` care să calculeze al n-lea număr Fibonacci. Când " -"va intra în panică această funcție?" +"Scrieți o funcție `fib(n)` care să calculeze al n-lea număr Fibonacci. Când va " +"intra în panică această funcție?" #: src/types-and-values/exercise.md msgid "// The base case.\n" @@ -3367,42 +3336,37 @@ msgstr "// Cazul de bază.\n" #: src/types-and-values/exercise.md src/control-flow-basics/exercise.md msgid "\"Implement this\"" msgstr "" -"Încercați să rezolvați mai întâi problema în mod \"simplu\", folosind " -"buclele `for` și numere întregi. Apoi, revedeți soluția și încercați să o " -"implementați cu iteratori." +"Încercați să rezolvați mai întâi problema în mod \"simplu\", folosind buclele " +"`for` și numere întregi. Apoi, revedeți soluția și încercați să o implementați " +"cu iteratori." #: src/types-and-values/exercise.md msgid "// The recursive case.\n" msgstr "// Cazul recursiv.\n" #: src/types-and-values/exercise.md src/types-and-values/solution.md -#, fuzzy msgid "\"fib({n}) = {}\"" -msgstr "\"fib(n) = {}\"" +msgstr "\"fib({n}) = {}\"" #: src/control-flow-basics.md -#, fuzzy msgid "[if Expressions](./control-flow-basics/if.md) (4 minutes)" -msgstr "[Macrouri](./control-flow-basics/macros.md) (2 minute)" +msgstr "[Expresii `if`](./control-flow-basics/if.md) (4 minute)" #: src/control-flow-basics.md msgid "[Loops](./control-flow-basics/loops.md) (5 minutes)" msgstr "[Bucle](./control-flow-basics/loops.md) (5 minute)" #: src/control-flow-basics.md -#, fuzzy -msgid "" -"[break and continue](./control-flow-basics/break-continue.md) (4 minutes)" +msgid "[break and continue](./control-flow-basics/break-continue.md) (4 minutes)" msgstr "" -"[`break` și `continue`](./control-flow-basics/break-continue.md) (5 minute)" +"[`break` și `continue`](./control-flow-basics/break-continue.md) (4 minute)" #: src/control-flow-basics.md -#, fuzzy msgid "" "[Blocks and Scopes](./control-flow-basics/blocks-and-scopes.md) (5 minutes)" msgstr "" -"[Blocuri și domenii de aplicare](./control-flow-basics/blocks-and-scopes.md) " -"(10 minute)" +"[Blocuri și domenii de aplicare](./control-flow-basics/blocks-and-scopes.md) (5 " +"minute)" #: src/control-flow-basics.md msgid "[Functions](./control-flow-basics/functions.md) (3 minutes)" @@ -3413,11 +3377,10 @@ msgid "[Macros](./control-flow-basics/macros.md) (2 minutes)" msgstr "[Macrouri](./control-flow-basics/macros.md) (2 minute)" #: src/control-flow-basics.md -#, fuzzy msgid "" "[Exercise: Collatz Sequence](./control-flow-basics/exercise.md) (15 minutes)" msgstr "" -"[Exercițiu: Secvența Collatz](./control-flow-basics/exercițiu.md) (30 minute)" +"[Exercițiu: Secvența Collatz](./control-flow-basics/exercise.md) (15 minute)" #: src/control-flow-basics/if.md msgid "`if` expressions" @@ -3425,20 +3388,18 @@ msgstr "Expresii 'if'" #: src/control-flow-basics/if.md msgid "" -"You use [`if` expressions](https://doc.rust-lang.org/reference/expressions/" -"if-expr.html#if-expressions) exactly like `if` statements in other languages:" +"You use [`if` expressions](https://doc.rust-lang.org/reference/expressions/if-" +"expr.html#if-expressions) exactly like `if` statements in other languages:" msgstr "" "[Expresiile `if`](https://doc.rust-lang.org/reference/expressions/if-expr." "html#if-expressions) se utilizează exact ca și instrucțiunile `if` din alte " "limbaje:" #: src/control-flow-basics/if.md -#, fuzzy msgid "\"zero!\"" msgstr "\"zero!\"" #: src/control-flow-basics/if.md -#, fuzzy msgid "\"biggish\"" msgstr "\"măricel\"" @@ -3469,27 +3430,26 @@ msgstr "\"dimensiunea numărului: {}\"" #: src/control-flow-basics/if.md msgid "" "Because `if` is an expression and must have a particular type, both of its " -"branch blocks must have the same type. Show what happens if you add `;` " -"after `\"small\"` in the second example." +"branch blocks must have the same type. Show what happens if you add `;` after " +"`\"small\"` in the second example." msgstr "" -"Deoarece `if` este o expresie și trebuie să aibă un anumit tip, ambele " -"blocuri de ramificare trebuie să aibă același tip. Să vedem ce se întâmplă " -"dacă adăugați `;` după `x / 2` în al doilea exemplu." +"Deoarece `if` este o expresie și trebuie să aibă un anumit tip, ambele blocuri " +"de ramificare trebuie să aibă același tip. Să vedem ce se întâmplă dacă " +"adăugați `;` după `x / 2` în al doilea exemplu." #: src/control-flow-basics/if.md msgid "" -"When `if` is used in an expression, the expression must have a `;` to " -"separate it from the next statement. Remove the `;` before `println!` to see " -"the compiler error." +"An `if` expression should be used in the same way as the other expressions. For " +"example, when it is used in a `let` statement, the statement must be terminated " +"with a `;` as well. Remove the `;` before `println!` to see the compiler error." msgstr "" -"Atunci când `if` este utilizat într-o expresie, expresia trebuie să aibă un " -"`;` pentru a o separa de următoarea declarație. Eliminați `;` înainte de " -"`println!` pentru a vedea eroarea de compilare." +"O expresie `if` trebuie utilizată ca și celelalte expresii. De exemplu, atunci " +"când este utilizată într-o instrucțiune `let` trebuie să se termine cu ';'. " +"Ștergeți `;` dinaintea `println!` pentru a vedea eroarea de compilare." #: src/control-flow-basics/loops.md msgid "There are three looping keywords in Rust: `while`, `loop`, and `for`:" -msgstr "" -"În Rust există trei cuvinte cheie pentru bucle: `while`, `loop` și `for`:" +msgstr "În Rust există trei cuvinte cheie pentru bucle: `while`, `loop` și `for`:" #: src/control-flow-basics/loops.md msgid "`while`" @@ -3497,50 +3457,47 @@ msgstr "Bucle `while let`" #: src/control-flow-basics/loops.md msgid "" -"The [`while` keyword](https://doc.rust-lang.org/reference/expressions/loop-" -"expr.html#predicate-loops) works much like in other languages, executing the " -"loop body as long as the condition is true." +"The [`while` keyword](https://doc.rust-lang.org/reference/expressions/loop-expr." +"html#predicate-loops) works much like in other languages, executing the loop " +"body as long as the condition is true." msgstr "" -"Cuvântul cheie [`while`](https://doc.rust-lang.org/reference/expressions/" -"loop-expr.html#predicate-loops) funcționează foarte asemănător cu alte " -"limbaje, executând bucla cât timp condiția este adevărată." +"Cuvântul cheie [`while`](https://doc.rust-lang.org/reference/expressions/loop-" +"expr.html#predicate-loops) funcționează foarte asemănător cu alte limbaje, " +"executând bucla cât timp condiția este adevărată." #: src/control-flow-basics/loops.md msgid "\"Final x: {x}\"" msgstr "\"Final x: {x}\"" #: src/control-flow-basics/loops/for.md -#, fuzzy msgid "" -"The [`for` loop](https://doc.rust-lang.org/std/keyword.for.html) iterates " -"over ranges of values or the items in a collection:" +"The [`for` loop](https://doc.rust-lang.org/std/keyword.for.html) iterates over " +"ranges of values or the items in a collection:" msgstr "" -"Buclele [`for`](https://doc.rust-lang.org/std/keyword.for.html) sunt " -"utilizate pentru a itera peste o gamă de valori:" +"Buclele [`for`](https://doc.rust-lang.org/std/keyword.for.html) sunt utilizate " +"pentru a itera peste o gamă de valori sau pentru elementele dintr-o colecție:" #: src/control-flow-basics/loops/for.md -#, fuzzy msgid "\"elem: {elem}\"" msgstr "\"elem: {elem}\"" #: src/control-flow-basics/loops/for.md -#, fuzzy msgid "" "Under the hood `for` loops use a concept called \"iterators\" to handle " "iterating over different kinds of ranges/collections. Iterators will be " "discussed in more detail later." msgstr "" -"În cadrul buclelor `for` se utilizează un concept numit \"iteratori\" pentru " -"a gestiona iterația peste diferite tipuri de intervale/colecții. Iteratorii " -"vor fi discutați mai în detaliu mai târziu." +"În cadrul buclelor `for` se utilizează un concept numit \"iteratori\" pentru a " +"gestiona iterația peste diferite tipuri de intervale/colecții. Iteratorii vor " +"fi discutați mai în detaliu mai târziu." #: src/control-flow-basics/loops/for.md msgid "" -"Note that the `for` loop only iterates to `4`. Show the `1..=5` syntax for " -"an inclusive range." +"Note that the first `for` loop only iterates to `4`. Show the `1..=5` syntax " +"for an inclusive range." msgstr "" -"Rețineți că bucla `for` va itera doar până la `4`. Prezentați sintaxa `1.." -"=5` pentru un interval inclusiv." +"Rețineți că bucla `for` va itera doar până la `4`. Prezentați sintaxa `1..=5` " +"pentru un interval inclusiv." #: src/control-flow-basics/loops/loop.md msgid "" @@ -3565,10 +3522,9 @@ msgstr "" #: src/control-flow-basics/break-continue.md msgid "" -"If you want to exit any kind of loop early, use [`break`](https://doc.rust-" -"lang.org/reference/expressions/loop-expr.html#break-expressions). For " -"`loop`, this can take an optional expression that becomes the value of the " -"`loop` expression." +"If you want to exit any kind of loop early, use [`break`](https://doc.rust-lang." +"org/reference/expressions/loop-expr.html#break-expressions). With `loop`, this " +"can take an optional expression that becomes the value of the `loop` expression." msgstr "" "Dacă doriți să ieșiți mai devreme dintr-o buclă, utilizați [`break`](https://" "doc.rust-lang.org/reference/expressions/loop-expr.html#break-expressions). " @@ -3583,29 +3539,30 @@ msgstr "" msgid "\"{}\"" msgstr "\"{}\"" +#: src/control-flow-basics/break-continue.md +msgid "" +"Note that `loop` is the only looping construct which can return a non-trivial " +"value. This is because it's guaranteed to only return at a `break` statement " +"(unlike `while` and `for` loops, which can also return when the condition " +"fails)." +msgstr "" +"Rețineți că `loop` este singura construcție care ciclează ce poate returna o " +"valoare non-trivială. Acest lucru se datorează faptului că este garantat să " +"returneze doar la o declarație `break` (spre deosebire de buclele `while` și " +"`for`, care pot returna și atunci când condiția eșuează)." + #: src/control-flow-basics/break-continue/labels.md msgid "" -"Both `continue` and `break` can optionally take a label argument which is " -"used to break out of nested loops:" +"Both `continue` and `break` can optionally take a label argument which is used " +"to break out of nested loops:" msgstr "" "Atât `continue`, cât și `break` pot primi opțional un argument de tip label, " "care este utilizat pentru a ieși din buclele imbricate:" #: src/control-flow-basics/break-continue/labels.md -#, fuzzy msgid "\"elements searched: {elements_searched}\"" msgstr "\"elemente căutate: {elements_searched}\"" -#: src/control-flow-basics/break-continue/labels.md -msgid "" -"Note that `loop` is the only looping construct which returns a non-trivial " -"value. This is because it's guaranteed to be entered at least once (unlike " -"`while` and `for` loops)." -msgstr "" -"Rețineți că `loop` este singura construcție de buclă care returnează o " -"valoare non-trivială. Garantează că bocla este rulată cel puțin o dată (spre " -"deosebire de buclele `while` și `for`)." - #: src/control-flow-basics/blocks-and-scopes.md msgid "Blocks" msgstr "Blocuri" @@ -3616,8 +3573,8 @@ msgid "" "Each block has a value and a type, which are those of the last expression of " "the block:" msgstr "" -"Un bloc în Rust conține o secvență de expresii. Fiecare bloc are o valoare " -"și un tip, care sunt cele ale ultimei expresii din bloc:" +"Un bloc în Rust conține o secvență de expresii. Fiecare bloc are o valoare și " +"un tip, care sunt cele ale ultimei expresii din bloc:" #: src/control-flow-basics/blocks-and-scopes.md msgid "\"y: {y}\"" @@ -3625,11 +3582,10 @@ msgstr "\"y: {y}\"" #: src/control-flow-basics/blocks-and-scopes.md msgid "" -"If the last expression ends with `;`, then the resulting value and type is " -"`()`." +"If the last expression ends with `;`, then the resulting value and type is `()`." msgstr "" -"Dacă ultima expresie se termină cu `;`, atunci valoarea și tipul rezultat " -"este `()`." +"Dacă ultima expresie se termină cu `;`, atunci valoarea și tipul rezultat este " +"`()`." #: src/control-flow-basics/blocks-and-scopes.md msgid "" @@ -3647,11 +3603,11 @@ msgstr "" #: src/control-flow-basics/blocks-and-scopes/scopes.md msgid "" -"You can shadow variables, both those from outer scopes and variables from " -"the same scope:" +"You can shadow variables, both those from outer scopes and variables from the " +"same scope:" msgstr "" -"Puteți dedubla variabilele, atât cele din domenii de aplicare exterioare, " -"cât și variabilele din același domeniu de aplicare:" +"Puteți dedubla variabilele, atât cele din domenii de aplicare exterioare, cât " +"și variabilele din același domeniu de aplicare:" #: src/control-flow-basics/blocks-and-scopes/scopes.md msgid "\"before: {a}\"" @@ -3659,9 +3615,8 @@ msgstr "\"înainte: {a}\"" #: src/control-flow-basics/blocks-and-scopes/scopes.md src/generics/exercise.md #: src/generics/solution.md src/std-traits/from-and-into.md -#: src/lifetimes/solution.md msgid "\"hello\"" -msgstr "\"hello\"" +msgstr "\"salut\"" #: src/control-flow-basics/blocks-and-scopes/scopes.md msgid "\"inner scope: {a}\"" @@ -3677,23 +3632,22 @@ msgstr "\"đupă: {a}\"" #: src/control-flow-basics/blocks-and-scopes/scopes.md msgid "" -"Show that a variable's scope is limited by adding a `b` in the inner block " -"in the last example, and then trying to access it outside that block." +"Show that a variable's scope is limited by adding a `b` in the inner block in " +"the last example, and then trying to access it outside that block." msgstr "" -"Arătați că domeniul de aplicare al unei variabile este limitat prin " -"adăugarea unui `b` în blocul interior din ultimul exemplu și apoi prin " -"încercarea de a o accesa în afara blocului." +"Arătați că domeniul de aplicare al unei variabile este limitat prin adăugarea " +"unui `b` în blocul interior din ultimul exemplu și apoi prin încercarea de a o " +"accesa în afara blocului." #: src/control-flow-basics/blocks-and-scopes/scopes.md msgid "" -"Shadowing is different from mutation, because after shadowing both " -"variable's memory locations exist at the same time. Both are available under " -"the same name, depending where you use it in the code." +"Shadowing is different from mutation, because after shadowing both variables' " +"memory locations exist at the same time. Both are available under the same " +"name, depending where you use it in the code." msgstr "" -"Definiție: Dedublarea este diferită de mutație, deoarece după dedublare " -"ambele locații de memorie ale variabilei există în același timp. Ambele sunt " -"disponibile sub același nume, în funcție de locul în care se utilizează în " -"cod." +"Dedublarea este diferită de mutație, deoarece după dedublare ambele locații de " +"memorie ale variabilei există în același timp. Ambele sunt disponibile sub " +"același nume, în funcție de locul în care se utilizează în cod." #: src/control-flow-basics/blocks-and-scopes/scopes.md msgid "A shadowing variable can have a different type." @@ -3709,67 +3663,63 @@ msgstr "" #: src/control-flow-basics/functions.md msgid "" -"Declaration parameters are followed by a type (the reverse of some " -"programming languages), then a return type." +"Declaration parameters are followed by a type (the reverse of some programming " +"languages), then a return type." msgstr "" -"Parametrii de declarație sunt urmați de un tip (invers decât în alte limbaje " -"de programare), apoi de tipul valorii returnate." +"Parametrii de declarație sunt urmați de un tip (invers decât în alte limbaje de " +"programare), apoi de tipul valorii returnate." #: src/control-flow-basics/functions.md msgid "" -"The last expression in a function body (or any block) becomes the return " -"value. Simply omit the `;` at the end of the expression. The `return` " -"keyword can be used for early return, but the \"bare value\" form is " -"idiomatic at the end of a function (refactor `gcd` to use a `return`)." +"The last expression in a function body (or any block) becomes the return value. " +"Simply omit the `;` at the end of the expression. The `return` keyword can be " +"used for early return, but the \"bare value\" form is idiomatic at the end of a " +"function (refactor `gcd` to use a `return`)." msgstr "" -"Ultima expresie din corpul unei funcții (sau din orice bloc) devine valoarea " -"de returnare. Pur și simplu omiteți `;` de la sfârșitul expresiei. Cuvântul " -"cheie `return` se poate folosi pentru a ieși anticipat din funcție, dar " -"\"valoarea brută\" este idiomatică la sfârșitul funcției (rescrieți `gcr` " -"pentru a utiliza un `return`)." +"Ultima expresie din corpul unei funcții (sau din orice bloc) devine valoarea de " +"returnare. Pur și simplu omiteți `;` de la sfârșitul expresiei. Cuvântul cheie " +"`return` se poate folosi pentru a ieși anticipat din funcție, dar \"valoarea " +"brută\" este idiomatică la sfârșitul funcției (rescrieți `gcr` pentru a utiliza " +"un `return`)." #: src/control-flow-basics/functions.md msgid "" "Some functions have no return value, and return the 'unit type', `()`. The " -"compiler will infer this if the `-> ()` return type is omitted." +"compiler will infer this if the return type is omitted." msgstr "" "Unele funcții nu au nicio valoare de retur și returnează \"tipul unitate\", " -"`()`. Compilatorul va deduce acest lucru în cazul în care tipul de returnare " -"`-> ()` este omis." +"`()`. Compilatorul va deduce acest lucru dacă tipul valorii returnate este omis." #: src/control-flow-basics/functions.md -msgid "" -"Overloading is not supported -- each function has a single implementation." +msgid "Overloading is not supported -- each function has a single implementation." msgstr "" -"Supraîncărcarea nu este suportată — fiecare funcție are o singură " -"implementare." +"Supraîncărcarea nu este suportată — fiecare funcție are o singură implementare." #: src/control-flow-basics/functions.md msgid "" -"Always takes a fixed number of parameters. Default arguments are not " -"supported. Macros can be used to support variadic functions." +"Always takes a fixed number of parameters. Default arguments are not supported. " +"Macros can be used to support variadic functions." msgstr "" "Acceptă întotdeauna un număr fix de parametri. Argumentele implicite nu sunt " "acceptate. Se pot utiliza macrocomenzi pentru a sprijini funcțiile variadice." #: src/control-flow-basics/functions.md msgid "" -"Always takes a single set of parameter types. These types can be generic, " -"which will be covered later." +"Always takes a single set of parameter types. These types can be generic, which " +"will be covered later." msgstr "" "Acceptă întotdeauna un singur set de tipuri de parametri. Acestea pot fi " "generice, despre care vom discuta mai târziu." #: src/control-flow-basics/macros.md msgid "" -"Macros are expanded into Rust code during compilation, and can take a " -"variable number of arguments. They are distinguished by a `!` at the end. " -"The Rust standard library includes an assortment of useful macros." +"Macros are expanded into Rust code during compilation, and can take a variable " +"number of arguments. They are distinguished by a `!` at the end. The Rust " +"standard library includes an assortment of useful macros." msgstr "" -"Macrocomenzile sunt expandate în codul Rust în timpul compilării și pot " -"primi un număr variabil de argumente. Ele se disting prin adăugarea unui `!` " -"la sfârșit. Biblioteca standard Rust include o gamă întreagă de macro-uri " -"utile." +"Macrocomenzile sunt expandate în codul Rust în timpul compilării și pot primi " +"un număr variabil de argumente. Ele se disting prin adăugarea unui `!` la " +"sfârșit. Biblioteca standard Rust include o gamă întreagă de macro-uri utile." #: src/control-flow-basics/macros.md msgid "" @@ -3777,8 +3727,8 @@ msgid "" "described in [`std::fmt`](https://doc.rust-lang.org/std/fmt/index.html)." msgstr "" "`println!(format, ..)` afișează o linie la ieșirea standard, aplicând " -"formatarea specificată în [`std::fmt`](https://doc.rust-lang.org/std/fmt/" -"index.html)." +"formatarea specificată în [`std::fmt`](https://doc.rust-lang.org/std/fmt/index." +"html)." #: src/control-flow-basics/macros.md msgid "" @@ -3802,11 +3752,10 @@ msgstr "" #: src/control-flow-basics/macros.md msgid "" -"`unreachable!()` marks a bit of code as unreachable. If executed, it will " -"panic." +"`unreachable!()` marks a bit of code as unreachable. If executed, it will panic." msgstr "" -"`unreachable!()` marchează un fragment de cod ca fiind inaccesibil. Dacă " -"este executat, programul va intra în panică." +"`unreachable!()` marchează un fragment de cod ca fiind inaccesibil. Dacă este " +"executat, programul va intra în panică." #: src/control-flow-basics/macros.md msgid "\"{n}! = {}\"" @@ -3814,16 +3763,14 @@ msgstr "\"{n}! = {}\"" #: src/control-flow-basics/macros.md msgid "" -"The takeaway from this section is that these common conveniences exist, and " -"how to use them. Why they are defined as macros, and what they expand to, is " -"not especially critical." +"The takeaway from this section is that these common conveniences exist, and how " +"to use them. Why they are defined as macros, and what they expand to, is not " +"especially critical." msgstr "" "Trebuie să rețineți cum să folosiți aceste facilități comune. De ce sunt " -"definite ca macro-uri și la ce se extind acestea nu este deosebit de " -"important." +"definite ca macro-uri și la ce se extind acestea nu este deosebit de important." #: src/control-flow-basics/macros.md -#, fuzzy msgid "" "The course does not cover defining macros, but a later section will describe " "use of derive macros." @@ -3981,7 +3928,7 @@ msgstr "8" #: src/control-flow-basics/exercise.md msgid "_ = 1; and" -msgstr "_ = 1; and" +msgstr "_ = 1; și" #: src/control-flow-basics/exercise.md msgid "the sequence terminates." @@ -3992,8 +3939,8 @@ msgid "" "Write a function to calculate the length of the collatz sequence for a given " "initial `n`." msgstr "" -"Scrieți o funcție care să calculeze lungimea secvenței Collatz pentru un " -"anumit `n` inițial." +"Scrieți o funcție care să calculeze lungimea secvenței Collatz pentru un anumit " +"`n` inițial." #: src/control-flow-basics/exercise.md src/control-flow-basics/solution.md msgid "/// Determine the length of the collatz sequence beginning at `n`.\n" @@ -4009,80 +3956,69 @@ msgid "Welcome Back" msgstr "Bine ați revenit" #: src/welcome-day-1-afternoon.md -#, fuzzy msgid "[Tuples and Arrays](./tuples-and-arrays.md) (35 minutes)" -msgstr "[Tupluri și vectori](./tuples-and-arrays.md) (1 oră)" +msgstr "[Tupluri și matrici](./tuples-and-arrays.md) (35 de minute)" #: src/welcome-day-1-afternoon.md -#, fuzzy msgid "[References](./references.md) (55 minutes)" -msgstr "[Referințe](../references.md) (50 minute)" +msgstr "[Referințe](../references.md) (55 de minute)" #: src/welcome-day-1-afternoon.md msgid "[User-Defined Types](./user-defined-types.md) (50 minutes)" msgstr "[Tipuri definite de utilizator](../user-defined-types.md) (50 minute)" #: src/welcome-day-1-afternoon.md -#, fuzzy msgid "" "Including 10 minute breaks, this session should take about 2 hours and 35 " "minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 2 ore și 55 de minute" +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " +"aproximativ 2 ore și 35 de minute" #: src/tuples-and-arrays.md -#, fuzzy msgid "[Arrays](./tuples-and-arrays/arrays.md) (5 minutes)" -msgstr "" -"[Tupluri și vectori](./tuples-and-arrays/tuples-and-arrays.md) (10 minute)" +msgstr "[Matrici](./tuples-and-arrays/arrays.md) (5 minute)" #: src/tuples-and-arrays.md -#, fuzzy msgid "[Tuples](./tuples-and-arrays/tuples.md) (5 minutes)" -msgstr "" -"[Tupluri și vectori](./tuples-and-arrays/tuples-and-arrays.md) (10 minute)" +msgstr "[Tupluri](./tuples-and-arrays/tuples.md) (5 minute)" #: src/tuples-and-arrays.md msgid "[Array Iteration](./tuples-and-arrays/iteration.md) (3 minutes)" msgstr "[Iterarea pe vectori](./tuples-and-arrays/iteration.md) (3 minute)" #: src/tuples-and-arrays.md -#, fuzzy msgid "" -"[Patterns and Destructuring](./tuples-and-arrays/destructuring.md) (5 " -"minutes)" -msgstr "[Destructurare](./tuples-and-arrays/destructuring.md) (5 minute)" +"[Patterns and Destructuring](./tuples-and-arrays/destructuring.md) (5 minutes)" +msgstr "" +"[Șabloane și Destructurare](./tuples-and-arrays/destructuring.md) (5 minute)" #: src/tuples-and-arrays.md -#, fuzzy msgid "[Exercise: Nested Arrays](./tuples-and-arrays/exercise.md) (15 minutes)" msgstr "" -"[Exercițiu: vectori imbricați](./tuples-and-arrays/exercise.mds) (30 minute)" +"[Exercițiu: vectori imbricați](./tuples-and-arrays/exercise.mds) (15 minute)" #: src/tuples-and-arrays.md -#, fuzzy msgid "This segment should take about 35 minutes" -msgstr "Acest segment ar trebui să dureze aproximativ 55 de minute" +msgstr "Acest segment ar trebui să dureze aproximativ 35 de minute" #: src/tuples-and-arrays/arrays.md msgid "" -"A value of the array type `[T; N]` holds `N` (a compile-time constant) " -"elements of the same type `T`. Note that the length of the array is _part of " -"its type_, which means that `[u8; 3]` and `[u8; 4]` are considered two " -"different types. Slices, which have a size determined at runtime, are " -"covered later." +"A value of the array type `[T; N]` holds `N` (a compile-time constant) elements " +"of the same type `T`. Note that the length of the array is _part of its type_, " +"which means that `[u8; 3]` and `[u8; 4]` are considered two different types. " +"Slices, which have a size determined at runtime, are covered later." msgstr "" -"O valoare de tip tablou `[T; N]` conține `N` (o constantă de timp de " -"compilare) elemente de același tip `T`. Rețineți că lungimea tabloului este " -"_parte a tipului său_, ceea ce înseamnă că `[u8; 3]` și `[u8; 4]` sunt " -"considerate două tipuri diferite." +"O valoare de tip tablou `[T; N]` conține `N` (o constantă de timp de compilare) " +"elemente de același tip `T`. Rețineți că lungimea tabloului este _parte a " +"tipului său_, ceea ce înseamnă că `[u8; 3]` și `[u8; 4]` sunt considerate două " +"tipuri diferite." #: src/tuples-and-arrays/arrays.md msgid "" "Try accessing an out-of-bounds array element. Array accesses are checked at " -"runtime. Rust can usually optimize these checks away, and they can be " -"avoided using unsafe Rust." +"runtime. Rust can usually optimize these checks away, and they can be avoided " +"using unsafe Rust." msgstr "" "Încercați să accesați un element de tablou în afara limitelor. Accesările " "elementelor din tablou sunt verificate în timpul execuției. De obicei, Rust " @@ -4096,24 +4032,23 @@ msgstr "Putem utiliza literali pentru a atribui valori la matrice." #: src/tuples-and-arrays/arrays.md msgid "" "The `println!` macro asks for the debug implementation with the `?` format " -"parameter: `{}` gives the default output, `{:?}` gives the debug output. " -"Types such as integers and strings implement the default output, but arrays " -"only implement the debug output. This means that we must use debug output " -"here." +"parameter: `{}` gives the default output, `{:?}` gives the debug output. Types " +"such as integers and strings implement the default output, but arrays only " +"implement the debug output. This means that we must use debug output here." msgstr "" -"Macroul `println!` solicită implementarea de depanare cu parametrul de " -"format `?`: `{}` oferă ieșirea implicită, `{:?}` oferă ieșirea de depanare. " -"Tipuri precum întregi și șiruri de caractere implementează ieșirea " -"implicită, dar matricile implementează doar ieșirea de depanare. Aceasta " -"înseamnă că trebuie să folosim aici ieșirea de depanare." +"Macroul `println!` solicită implementarea de depanare cu parametrul de format `?" +"`: `{}` oferă ieșirea implicită, `{:?}` oferă ieșirea de depanare. Tipuri " +"precum întregi și șiruri de caractere implementează ieșirea implicită, dar " +"matricile implementează doar ieșirea de depanare. Aceasta înseamnă că trebuie " +"să folosim aici ieșirea de depanare." #: src/tuples-and-arrays/arrays.md msgid "" "Adding `#`, eg `{a:#?}`, invokes a \"pretty printing\" format, which can be " "easier to read." msgstr "" -"Adăugând `#`, de exemplu `{a:#?}`, se invocă un format de tipărire " -"\"frumos\", care poate fi mai ușor de citit." +"Adăugând `#`, de exemplu `{a:#?}`, se invocă un format de tipărire \"frumos\", " +"care poate fi mai ușor de citit." #: src/tuples-and-arrays/tuples.md msgid "Like arrays, tuples have a fixed length." @@ -4125,105 +4060,96 @@ msgstr "Tuplurile grupează valori de tipuri diferite într-un tip compus." #: src/tuples-and-arrays/tuples.md msgid "" -"Fields of a tuple can be accessed by the period and the index of the value, " -"e.g. `t.0`, `t.1`." +"Fields of a tuple can be accessed by the period and the index of the value, e." +"g. `t.0`, `t.1`." msgstr "" -"Câmpurile unui tuplu pot fi accesate prin punct și indicele valorii, de " -"exemplu `t.0`, `t.1`." +"Câmpurile unui tuplu pot fi accesate prin punct și indicele valorii, de exemplu " +"`t.0`, `t.1`." #: src/tuples-and-arrays/tuples.md -#, fuzzy msgid "" -"The empty tuple `()` is referred to as the \"unit type\" and signifies " -"absence of a return value, akin to `void` in other languages." +"The empty tuple `()` is referred to as the \"unit type\" and signifies absence " +"of a return value, akin to `void` in other languages." msgstr "" -"Tupla goală `()` este denumită \"tip unitate\" și semnifică absența unei " -"valori de returnare, asemănătoare cu `void` din alte limbaje." +"Tuplul gol `()` este \"tipul unitate\" și semnifică absența unei valori de " +"returnare, asemănătoare cu `void` din alte limbaje." #: src/tuples-and-arrays/iteration.md msgid "The `for` statement supports iterating over arrays (but not tuples)." msgstr "" -"Instrucțiunea `for` permite iterația peste tablouri (dar nu și peste " -"tupluri)." +"Instrucțiunea `for` permite iterația peste tablouri (dar nu și peste tupluri)." #: src/tuples-and-arrays/iteration.md msgid "" -"This functionality uses the `IntoIterator` trait, but we haven't covered " -"that yet." +"This functionality uses the `IntoIterator` trait, but we haven't covered that " +"yet." msgstr "" "Această funcționalitate utilizează trăsătura `IntoIterator`, dar încă nu am " "abordată-o în cadrul cursului." #: src/tuples-and-arrays/iteration.md msgid "" -"The `assert_ne!` macro is new here. There are also `assert_eq!` and `assert!" -"` macros. These are always checked while, debug-only variants like " -"`debug_assert!` compile to nothing in release builds." +"The `assert_ne!` macro is new here. There are also `assert_eq!` and `assert!` " +"macros. These are always checked, while debug-only variants like `debug_assert!" +"` compile to nothing in release builds." msgstr "" -"Macroul `assert_ne!` este nou aici. Există, de asemenea, macrourile " -"`assert_eq!` și `assert!`. Acestea sunt întotdeauna verificate, în timp ce " -"variantele destinate depanării, cum ar fi `debug_assert!`, nu se compilează " -"în versiunile de lansare." +"Macroul `assert_ne!` este nou aici. Există, de asemenea, macrourile `assert_eq!" +"` și `assert!`. Acestea sunt întotdeauna verificate, în timp ce variantele " +"destinate depanării, cum ar fi `debug_assert!`, nu se compilează în versiunile " +"de lansare." #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "" "When working with tuples and other structured values it's common to want to " "extract the inner values into local variables. This can be done manually by " "directly accessing the inner values:" msgstr "" -"Atunci când se lucrează cu tupluri și alte valori structurate, este obișnuit " -"să se dorească extragerea valorilor interioare în variabile locale. Acest " -"lucru se poate face manual prin accesarea directă a valorilor interioare:" +"Atunci când se lucrează cu tupluri și alte valori structurate, este obișnuit să " +"se dorească extragerea valorilor interioare în variabile locale. Acest lucru se " +"poate face manual prin accesarea directă a valorilor interioare:" #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "\"left: {left}, right: {right}\"" msgstr "\"stânga: {left}, dreapta: {right}\"" #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "" "However, Rust also supports using pattern matching to destructure a larger " "value into its constituent parts:" msgstr "" -"Cu toate acestea, Rust suportă, de asemenea, utilizarea potrivirii de tipare " -"pentru a destructura o valoare mai mare în părțile sale constitutive:" +"Rust suportă, de asemenea, utilizarea potrivirii de șabloane pentru a " +"destructura o valoare mai mare în părțile sale constitutive:" #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "" "The patterns used here are \"irrefutable\", meaning that the compiler can " -"statically verify that the value on the right of `=` has the same structure " -"as the pattern." +"statically verify that the value on the right of `=` has the same structure as " +"the pattern." msgstr "" -"Tiparele utilizate aici sunt \"irefutabile\", ceea ce înseamnă că " -"compilatorul poate verifica static că valoarea din dreapta lui `=` are " -"aceeași structură ca și modelul." +"Șabloanele utilizate aici sunt \"irefutabile\", ceea ce înseamnă că " +"compilatorul poate verifica static că valoarea din dreapta lui `=` are aceeași " +"structură ca și modelul." #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "" -"A variable name is an irrefutable pattern that always matches any value, " -"hence why we can also use `let` to declare a single variable." +"A variable name is an irrefutable pattern that always matches any value, hence " +"why we can also use `let` to declare a single variable." msgstr "" -"Un nume de variabilă este un model irefutabil care se potrivește întotdeauna " -"cu orice valoare, de aceea putem folosi și `let` pentru a declara o singură " +"Un nume de variabilă este un model irefutabil care se potrivește întotdeauna cu " +"orice valoare, de aceea putem folosi și `let` pentru a declara o singură " "variabilă." #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "" "Rust also supports using patterns in conditionals, allowing for equality " -"comparison and destructuring to happen at the same time. This form of " -"pattern matching will be discussed in more detail later." +"comparison and destructuring to happen at the same time. This form of pattern " +"matching will be discussed in more detail later." msgstr "" "Rust acceptă, de asemenea, utilizarea modelelor în condiționale, permițând " "compararea egalității și destructurarea în același timp. Această formă de " "potrivire a modelelor va fi discutată mai în detaliu mai târziu." #: src/tuples-and-arrays/destructuring.md -#, fuzzy msgid "" "Edit the examples above to show the compiler error when the pattern doesn't " "match the value being matched on." @@ -4244,24 +4170,22 @@ msgid "" "Use an array such as the above to write a function `transpose` which will " "transpose a matrix (turn rows into columns):" msgstr "" -"Folosiți cele de mai sus pentru a scrie o funcție `transpose` care va " -"transpune o matrice (transformă rândurile în coloane):" +"Folosiți cele de mai sus pentru a scrie o funcție `transpose` care va transpune " +"o matrice (transformă rândurile în coloane):" #: src/tuples-and-arrays/exercise.md -#, fuzzy msgid "" "Copy the code below to and implement the " "function. This function only operates on 3x3 matrices." msgstr "" "Copiați codul de mai jos în și implementați " -"funcția." +"funcția. Aceasta operează doar pe matrici 3x3." #: src/tuples-and-arrays/exercise.md src/borrowing/exercise.md #: src/unsafe-rust/exercise.md msgid "// TODO: remove this when you're done with your implementation.\n" msgstr "" -"// TODO: eliminați acest comentariu atunci când ați terminat cu " -"implementarea.\n" +"// TODO: eliminați acest comentariu atunci când ați terminat cu implementarea.\n" #: src/tuples-and-arrays/exercise.md src/tuples-and-arrays/solution.md msgid "//\n" @@ -4288,160 +4212,138 @@ msgid "[Exclusive References](./references/exclusive.md) (10 minutes)" msgstr "[Referințe exclusive](./references/exclusive.md) (10 minute)" #: src/references.md -#, fuzzy msgid "[Slices: &\\[T\\]](./references/slices.md) (10 minutes)" -msgstr "[Slices: &\\[T\\]](./slices-and-lifetimes/slices.md) (10 minute)" +msgstr "[Felii: &\\[T\\]](./references/slices.md) (10 minute)" #: src/references.md -#, fuzzy msgid "[Strings](./references/strings.md) (10 minutes)" -msgstr "[Șiruri](./types-and-values/strings.md) (10 minute)" +msgstr "[Șiruri](./references/strings.md) (10 minute)" #: src/references.md -#, fuzzy msgid "[Exercise: Geometry](./references/exercise.md) (15 minutes)" -msgstr "[Exercițiu: Geometrie](./references/exercise.md) (30 minute)" +msgstr "[Exercițiu: Geometrie](./references/exercise.md) (15 minute)" #: src/references.md src/smart-pointers.md src/borrowing.md -#: src/error-handling.md src/concurrency/async-pitfalls.md -#, fuzzy +#: src/concurrency/async-pitfalls.md msgid "This segment should take about 55 minutes" msgstr "Acest segment ar trebui să dureze aproximativ 55 de minute" #: src/references/shared.md -#, fuzzy msgid "" -"A reference provides a way to access another value without taking " -"responsibility for the value, and is also called \"borrowing\". Shared " -"references are read-only, and the referenced data cannot change." +"A reference provides a way to access another value without taking ownership of " +"the value, and is also called \"borrowing\". Shared references are read-only, " +"and the referenced data cannot change." msgstr "" "O referință oferă o modalitate de a accesa o altă valoare fără a prelua " -"responsabilitatea pentru valoarea respectivă, fiind denumită și " -"\"împrumut\". Referințele partajate sunt numai pentru citire, iar datele la " -"care se face referire nu se pot modifica." +"responsabilitatea pentru valoarea respectivă, fiind denumită și \"împrumut\". " +"Referințele partajate sunt numai pentru citire, iar datele la care se face " +"referire nu se pot modifica." #: src/references/shared.md -#, fuzzy msgid "" -"A shared reference to a type `T` has type `&T`. A reference value is made " -"with the `&` operator. The `*` operator \"dereferences\" a reference, " -"yielding its value." +"A shared reference to a type `T` has type `&T`. A reference value is made with " +"the `&` operator. The `*` operator \"dereferences\" a reference, yielding its " +"value." msgstr "" -"O referință partajată la un tip `T` are tipul `&T`. O valoare de referință " -"se realizează cu ajutorul operatorului `&`. Operatorul `*` \"de-" -"referențiază\" o referință, obținând valoarea acesteia." +"O referință partajată la un tip `T` are tipul `&T`. O valoare de referință se " +"realizează cu ajutorul operatorului `&`. Operatorul `*` \"de-referențiază\" o " +"referință, obținând valoarea acesteia." #: src/references/shared.md msgid "Rust will statically forbid dangling references:" -msgstr "Rust va interzice în mod static referințele invalide:" +msgstr "Rust va interzice în mod static referințele orfane:" #: src/references/shared.md -#, fuzzy msgid "" "A reference is said to \"borrow\" the value it refers to, and this is a good " "model for students not familiar with pointers: code can use the reference to " -"access the value, but is still \"owned\" by the original variable. The " -"course will get into more detail on ownership in day 3." +"access the value, but is still \"owned\" by the original variable. The course " +"will get into more detail on ownership in day 3." msgstr "" "Se spune că o referință \"împrumută\" valoarea la care se referă, iar acesta " -"este un model bun pentru elevii care nu sunt familiarizați cu indicatoarele: " -"codul poate folosi referința pentru a accesa valoarea, dar este în " -"continuare \"deținută\" de variabila originală. Cursul va intra în mai multe " -"detalii despre proprietate în ziua 3." +"este un model bun pentru cursanții care nu sunt familiarizați cu pointerii: " +"codul poate folosi referința pentru a accesa valoarea, dar este în continuare " +"\"deținută\" de variabila originală. Cursul va intra în mai multe detalii " +"despre posesie în ziua 3." #: src/references/shared.md -#, fuzzy msgid "" -"References are implemented as pointers, and a key advantage is that they can " -"be much smaller than the thing they point to. Students familiar with C or C+" -"+ will recognize references as pointers. Later parts of the course will " -"cover how Rust prevents the memory-safety bugs that come from using raw " -"pointers." +"References are implemented as pointers, and a key advantage is that they can be " +"much smaller than the thing they point to. Students familiar with C or C++ will " +"recognize references as pointers. Later parts of the course will cover how Rust " +"prevents the memory-safety bugs that come from using raw pointers." msgstr "" -"Referințele sunt implementate sub formă de pointeri, iar un avantaj cheie " -"este că pot fi mult mai mici decât obiectul spre care indică. Studenții " +"Referințele sunt implementate sub formă de pointeri, iar un avantaj cheie este " +"că pot fi mult mai mici decât obiectul spre care indică. Cursanții " "familiarizați cu C sau C++ vor recunoaște referințele ca fiind pointeri. " -"Părțile ulterioare ale cursului vor acoperi modul în care Rust previne " -"erorile de siguranță a memoriei care apar în cazul utilizării de pointeri " -"brute." +"Părțile ulterioare ale cursului vor acoperi modul în care Rust previne erorile " +"de siguranță a memoriei care apar în cazul utilizării de pointeri brute." #: src/references/shared.md -#, fuzzy msgid "" "Rust does not automatically create references for you - the `&` is always " "required." msgstr "" -"Rust nu creează automat referințe pentru dumneavoastră - `&` este " -"întotdeauna necesar." +"Rust nu creează automat referințe pentru dumneavoastră - `&` este întotdeauna " +"necesar." #: src/references/shared.md -#, fuzzy msgid "" -"Rust will auto-dereference in some cases, in particular when invoking " -"methods (try `r.is_ascii()`). There is no need for an `->` operator like in " -"C++." +"Rust will auto-dereference in some cases, in particular when invoking methods " +"(try `r.is_ascii()`). There is no need for an `->` operator like in C++." msgstr "" -"Rust va face auto-dereferențiere în unele cazuri, în special atunci când " -"invocă metode (încercați `ref_x.count_ones()`)." +"Rust va face auto-dereferențiere în unele cazuri, în special atunci când invocă " +"metode (încercați `ref_x.count_ones()`)." #: src/references/shared.md -#, fuzzy msgid "" -"In this example, `r` is mutable so that it can be reassigned (`r = &b`). " -"Note that this re-binds `r`, so that it refers to something else. This is " -"different from C++, where assignment to a reference changes the referenced " -"value." +"In this example, `r` is mutable so that it can be reassigned (`r = &b`). Note " +"that this re-binds `r`, so that it refers to something else. This is different " +"from C++, where assignment to a reference changes the referenced value." msgstr "" -"În acest exemplu, `r` este mutabil, astfel încât poate fi realocat (`r = " -"&b`). Rețineți că acest lucru reia `r`, astfel încât acesta se referă la " +"În acest exemplu, `r` este mutabil, astfel încât poate fi realocat (`r = &b`). " +"Rețineți că acest lucru refolosește `r`, astfel încât acesta se referă la " "altceva. Acest lucru este diferit de C++, unde atribuirea unei referințe " "modifică valoarea la care se face referire." #: src/references/shared.md -#, fuzzy msgid "" "A shared reference does not allow modifying the value it refers to, even if " "that value was mutable. Try `*r = 'X'`." msgstr "" -"O referință partajată nu permite modificarea valorii la care se referă, " -"chiar dacă valoarea respectivă era mutabilă. Încercați `*r = 'X'`." +"O referință partajată nu permite modificarea valorii la care se referă, chiar " +"dacă valoarea respectivă era mutabilă. Încercați `*r = 'X'`." #: src/references/shared.md -#, fuzzy msgid "" "Rust is tracking the lifetimes of all references to ensure they live long " -"enough. Dangling references cannot occur in safe Rust. `x_axis` would return " -"a reference to `point`, but `point` will be deallocated when the function " +"enough. Dangling references cannot occur in safe Rust. `x_axis` would return a " +"reference to `point`, but `point` will be deallocated when the function " "returns, so this will not compile." msgstr "" "Rust urmărește durata de viață a tuturor referințelor pentru a se asigura că " -"acestea trăiesc suficient de mult. În Rust sigur nu pot apărea referințe " -"care să stea în suspensie. `x_axis` ar trebui să returneze o referință la " -"`point`, dar `point` va fi dezalocat atunci când funcția se întoarce, deci " -"nu va fi compilat." +"acestea există suficient de mult. În Rust sigur nu pot apărea referințe orfane. " +"`x_axis` ar trebui să returneze o referință la `point`, dar `point` va fi " +"dealocat atunci când funcția se întoarce, deci nu va fi compilat." #: src/references/shared.md msgid "We will talk more about borrowing when we get to ownership." -msgstr "" -"Vom vorbi mai multe despre împrumuturi atunci când vom ajunge la posesie." +msgstr "Vom vorbi mai multe despre împrumuturi atunci când vom ajunge la posesie." #: src/references/exclusive.md -#, fuzzy msgid "" "Exclusive references, also known as mutable references, allow changing the " "value they refer to. They have type `&mut T`." msgstr "" -"Referințele exclusive, cunoscute și sub denumirea de referințe mutabile, " -"permit modificarea valorii la care se referă. Ele au tipul `&mut T`." +"Referințele exclusive, cunoscute și sub denumirea de referințe mutabile, permit " +"modificarea valorii la care se referă. Ele au tipul `&mut T`." #: src/references/exclusive.md -#, fuzzy msgid "" -"\"Exclusive\" means that only this reference can be used to access the " -"value. No other references (shared or exclusive) can exist at the same time, " -"and the referenced value cannot be accessed while the exclusive reference " -"exists. Try making an `&point.0` or changing `point.0` while `x_coord` is " -"alive." +"\"Exclusive\" means that only this reference can be used to access the value. " +"No other references (shared or exclusive) can exist at the same time, and the " +"referenced value cannot be accessed while the exclusive reference exists. Try " +"making an `&point.0` or changing `point.0` while `x_coord` is alive." msgstr "" "\"Exclusiv\" înseamnă că numai această referință poate fi utilizată pentru a " "accesa valoarea. Nici o altă referință (partajată sau exclusivă) nu poate " @@ -4450,12 +4352,11 @@ msgstr "" "`&punct.0` sau să modificați `punct.0` în timp ce `x_coord` este în viață." #: src/references/exclusive.md -#, fuzzy msgid "" "Be sure to note the difference between `let mut x_coord: &i32` and `let " "x_coord: &mut i32`. The first one represents a shared reference which can be " -"bound to different values, while the second represents an exclusive " -"reference to a mutable value." +"bound to different values, while the second represents an exclusive reference " +"to a mutable value." msgstr "" "Nu uitați să observați diferența dintre `let mut ref_x: &i32` și `let ref_x: " "&mut i32`. Primul reprezintă o referință mutabilă care poate fi legată la " @@ -4468,36 +4369,33 @@ msgstr "Felii" #: src/references/slices.md msgid "A slice gives you a view into a larger collection:" -msgstr "O felie (elice) vă oferă o imagine a unei colecții mai mari:" +msgstr "O felie (slice) vă oferă o porțiune a unei colecții mai mari:" #: src/references/slices.md -#, fuzzy msgid "Slices borrow data from the sliced type." msgstr "Feliile împrumută date din tipul porționat." #: src/references/slices.md msgid "Question: What happens if you modify `a[3]` right before printing `s`?" msgstr "" -"Întrebare: Ce se întâmplă dacă modificați `a[3]` chiar înainte de a afișa " -"`s`?" +"Întrebare: Ce se întâmplă dacă modificați `a[3]` chiar înainte de a afișa `s`?" #: src/references/slices.md msgid "" "We create a slice by borrowing `a` and specifying the starting and ending " "indexes in brackets." msgstr "" -"Creăm o felie prin împrumutarea lui `a` și specificarea indicilor de început " -"și de sfârșit între paranteze." +"Creăm o felie prin împrumutarea lui `a` și specificarea indicilor de început și " +"de sfârșit între paranteze." #: src/references/slices.md msgid "" -"If the slice starts at index 0, Rust's range syntax allows us to drop the " -"starting index, meaning that `&a[0..a.len()]` and `&a[..a.len()]` are " -"identical." +"If the slice starts at index 0, Rust’s range syntax allows us to drop the " +"starting index, meaning that `&a[0..a.len()]` and `&a[..a.len()]` are identical." msgstr "" "Dacă felia începe la indexul 0, sintaxa intervalului din Rust ne permite să " -"renunțăm la indexul de pornire, ceea ce înseamnă că `&a[0..a.len()]` și " -"`&a[..a.len()]` sunt identice." +"renunțăm la indexul de pornire, ceea ce înseamnă că `&a[0..a.len()]` și `&a[..a." +"len()]` sunt identice." #: src/references/slices.md msgid "" @@ -4508,135 +4406,116 @@ msgstr "" "len()]` și `&a[2..]` sunt identice." #: src/references/slices.md -#, fuzzy -msgid "" -"To easily create a slice of the full array, we can therefore use `&a[..]`." +msgid "To easily create a slice of the full array, we can therefore use `&a[..]`." msgstr "" -"Pentru a crea cu ușurință o porțiune din întrega matrice, putem folosi " -"`&a[...]`." +"Pentru a crea cu ușurință o porțiune dintr-o matrice putem folosi `&a[...]`." #: src/references/slices.md -#, fuzzy msgid "" -"`s` is a reference to a slice of `i32`s. Notice that the type of `s` " -"(`&[i32]`) no longer mentions the array length. This allows us to perform " -"computation on slices of different sizes." +"`s` is a reference to a slice of `i32`s. Notice that the type of `s` (`&[i32]`) " +"no longer mentions the array length. This allows us to perform computation on " +"slices of different sizes." msgstr "" "`s` este o referință la o felie de `i32`s. Observați că tipul lui `s` " -"(`&[i32]`) nu mai menționează dimensiunile matricei. Acest lucru ne permite " -"să efectuăm calcule pe felii de dimensiuni diferite." +"(`&[i32]`) nu mai menționează dimensiunile matricei. Acest lucru ne permite să " +"efectuăm calcule pe felii de dimensiuni diferite." #: src/references/slices.md -#, fuzzy msgid "" "Slices always borrow from another object. In this example, `a` has to remain " "'alive' (in scope) for at least as long as our slice." msgstr "" "Feliile împrumută întotdeauna de la un alt obiect. În acest exemplu, `a` " "trebuie să rămână \"în viață\" (în domeniul de aplicare) cel puțin cât felia " -"noastră. " +"noastră." #: src/references/slices.md -#, fuzzy msgid "" "The question about modifying `a[3]` can spark an interesting discussion, but " "the answer is that for memory safety reasons you cannot do it through `a` at " "this point in the execution, but you can read the data from both `a` and `s` " -"safely. It works before you created the slice, and again after the " -"`println`, when the slice is no longer used." +"safely. It works before you created the slice, and again after the `println`, " +"when the slice is no longer used." msgstr "" -"Întrebarea despre modificarea lui `a[3]` poate stârni o discuție " -"interesantă, dar răspunsul este că, din motive de siguranță a memoriei, nu " -"se poate face acest lucru prin `a` în acest moment al execuției, dar se pot " -"citi datele atât din `a`, cât și din `s` în siguranță. Funcționează înainte " -"de a crea felia și din nou după `println`, când felia nu mai este utilizată. " -"Mai multe detalii vor fi explicate în secțiunea de verificare a " -"împrumuturilor." +"Întrebarea despre modificarea lui `a[3]` poate stârni o discuție interesantă, " +"dar răspunsul este că, din motive de siguranță a memoriei, nu se poate face " +"acest lucru prin `a` în acest moment al execuției, dar se pot citi datele atât " +"din `a`, cât și din `s` în siguranță. Funcționează înainte de a crea felia și " +"din nou după `println`, când felia nu mai este utilizată. Mai multe detalii vor " +"fi explicate în secțiunea de verificare a împrumuturilor." #: src/references/strings.md msgid "We can now understand the two string types in Rust:" msgstr "Acum putem înțelege cele două tipuri de șiruri de caractere din Rust:" #: src/references/strings.md -#, fuzzy msgid "`&str` is a slice of UTF-8 encoded bytes, similar to `&[u8]`." msgstr "`&str` este o felie de octeți codificați UTF-8, similar cu `&[u8]`." #: src/references/strings.md -#, fuzzy -msgid "" -"`String` is an owned buffer of UTF-8 encoded bytes, similar to `Vec`." -msgstr "`&str` este o felie de octeți codificați UTF-8, similar cu `&[u8]`." +msgid "`String` is an owned buffer of UTF-8 encoded bytes, similar to `Vec`." +msgstr "" +"`String` este un buffer propriu de octeți, în format UTF-8, similar cu `Vec`." #: src/references/strings.md src/std-traits/read-and-write.md -#, fuzzy msgid "\"World\"" -msgstr "\"Lumea\"" +msgstr "\"Lume\"" #: src/references/strings.md -#, fuzzy msgid "\"s1: {s1}\"" msgstr "\"s1: {s1}\"" #: src/references/strings.md -#, fuzzy msgid "\"Hello \"" -msgstr "\"hello\"" +msgstr "\"Bună!\"" #: src/references/strings.md src/memory-management/move.md msgid "\"s2: {s2}\"" msgstr "\"s2: {s2}\"" #: src/references/strings.md -#, fuzzy msgid "\"s3: {s3}\"" msgstr "\"s3: {s3}\"" #: src/references/strings.md -#, fuzzy msgid "" "`&str` introduces a string slice, which is an immutable reference to UTF-8 " -"encoded string data stored in a block of memory. String literals " -"(`\"Hello\"`), are stored in the program's binary." +"encoded string data stored in a block of memory. String literals (`\"Hello\"`), " +"are stored in the program’s binary." msgstr "" "`&str` indică o porțiune dintr-un șir de caractere, care este o referință " -"imuabilă la date de șir de caractere codificate UTF-8 stocate într-un bloc " -"de memorie. Șirurile literale (`\"Hello\"`) sunt stocate în binarul " -"programului." +"imuabilă la date de șir de caractere codificate UTF-8 stocate într-un bloc de " +"memorie. Șirurile literale (`\"Hello\"`) sunt stocate în binarul programului." #: src/references/strings.md -#, fuzzy msgid "" -"Rust's `String` type is a wrapper around a vector of bytes. As with a " -"`Vec`, it is owned." +"Rust's `String` type is a wrapper around a vector of bytes. As with a `Vec`, " +"it is owned." msgstr "" -"Tipul `String` (șir de caractere) din Rust este un înveliș în jurul unui " -"vector de octeți. La fel ca și în cazul unui `Vec`, acesta este propriu." +"Tipul `String` (șir de caractere) din Rust este o împachetare a unui vector de " +"octeți. La fel ca și în cazul unui `Vec`, acesta este propriu." #: src/references/strings.md -#, fuzzy msgid "" "As with many other types `String::from()` creates a string from a string " -"literal; `String::new()` creates a new empty string, to which string data " -"can be added using the `push()` and `push_str()` methods." +"literal; `String::new()` creates a new empty string, to which string data can " +"be added using the `push()` and `push_str()` methods." msgstr "" -"Ca și în cazul multor alte tipuri, `String::from()` creează un șir de " -"caractere dintr-un literal de șir; `String::new()` creează un nou șir de " -"caractere gol, la care se pot adăuga date de șiruri de caractere folosind " -"metodele `push()` și `push_str()`." +"Ca și în cazul multor alte tipuri, `String::from()` creează un șir de caractere " +"dintr-un șir de caractere literale; `String::new()` creează un nou șir de " +"caractere gol, la care se pot adăuga șiruri de caractere folosind metodele " +"`push()` și `push_str()`." #: src/references/strings.md -#, fuzzy msgid "" "The `format!()` macro is a convenient way to generate an owned string from " "dynamic values. It accepts the same format specification as `println!()`." msgstr "" "Macroul `format!()` este o modalitate convenabilă de a genera un șir de " -"caractere proprii din valori dinamice. Acceptă aceeași specificație de " -"format ca și `println!()`." +"caractere proprii din valori dinamice. Acceptă aceeași specificație de format " +"ca și `println!()`." #: src/references/strings.md -#, fuzzy msgid "" "You can borrow `&str` slices from `String` via `&` and optionally range " "selection. If you select a byte range that is not aligned to character " @@ -4644,76 +4523,66 @@ msgid "" "characters and is preferred over trying to get character boundaries right." msgstr "" "Puteți împrumuta felii `&str` de la `String` prin `&` și, opțional, prin " -"selectarea intervalului. Dacă selectați un interval de octeți care nu este " -"aliniat la limitele caracterelor, expresia va intra în panică. Iteratorul " -"`chars` iteră peste caractere și este de preferat în locul încercării de a " -"obține limite de caractere corecte." +"selectarea unui interval. Dacă selectați un interval de octeți care nu este " +"aliniat cu frontierele caracterelor, expresia va intra în panică. Iteratorul " +"`chars` iterează peste caractere și este de preferat în locul încercării de a " +"obține corect frontierele caracterelor." #: src/references/strings.md -#, fuzzy msgid "" "For C++ programmers: think of `&str` as `std::string_view` from C++, but the " "one that always points to a valid string in memory. Rust `String` is a rough " "equivalent of `std::string` from C++ (main difference: it can only contain " "UTF-8 encoded bytes and will never use a small-string optimization)." msgstr "" -"Pentru programatorii din C++: gândiți-vă la `&str` ca la `const char*` din C+" -"+, dar cel care indică întotdeauna un șir de caractere valid în memorie. " -"Rust `String` este un echivalent aproximativ al lui `std::string` din C++ " -"(principala diferență: poate conține numai octeți codificați UTF-8 și nu va " -"folosi niciodată o optimizare pentru șiruri mici)." +"Pentru programatorii de C++: gândiți-vă la `&str` ca la `const char*` din C++, " +"dar cel care indică întotdeauna un șir de caractere valid în memorie. Rust " +"`String` este un echivalent aproximativ al lui `std::string` din C++ " +"(principala diferență: folosește întotdeauna formatul UTF-8 și nu va folosi " +"niciodată o optimizare pentru șiruri mici)." #: src/references/strings.md -#, fuzzy msgid "Byte strings literals allow you to create a `&[u8]` value directly:" msgstr "Șirurile de octeți vă permit să creați direct o valoare `&[u8]`:" #: src/references/strings.md msgid "" -"Raw strings allow you to create a `&str` value with escapes disabled: " -"`r\"\\n\" == \"\\\\n\"`. You can embed double-quotes by using an equal " -"amount of `#` on either side of the quotes:" +"Raw strings allow you to create a `&str` value with escapes disabled: `r\"\\n\" " +"== \"\\\\n\"`. You can embed double-quotes by using an equal amount of `#` on " +"either side of the quotes:" msgstr "" "Șirurile brute de caractere vă permit să creați o valoare `&str` având " "caracterele speciale dezactivate: `r\"\\n\" == \"\\n\"`. Puteți încorpora " -"ghilimele duble folosind o cantitate egală de `#` de o parte și de alta a " -"lor:" +"ghilimele duble folosind o cantitate egală de `#` de o parte și de alta a lor:" #: src/references/exercise.md -#, fuzzy msgid "" -"We will create a few utility functions for 3-dimensional geometry, " -"representing a point as `[f64;3]`. It is up to you to determine the function " -"signatures." +"We will create a few utility functions for 3-dimensional geometry, representing " +"a point as `[f64;3]`. It is up to you to determine the function signatures." msgstr "" -"Vom crea câteva funcții de utilitate pentru geometria tridimensională, " -"reprezentând un punct ca `[f64;3]`. Depinde de dumneavoastră să determinați " -"semnăturile funcțiilor." +"Vom crea câteva funcții utile pentru geometria tridimensională, reprezentând un " +"punct ca `[f64;3]`. Depinde de dumneavoastră să determinați semnăturile " +"funcțiilor." #: src/references/exercise.md -#, fuzzy msgid "" "// Calculate the magnitude of a vector by summing the squares of its " "coordinates\n" -"// and taking the square root. Use the `sqrt()` method to calculate the " -"square\n" +"// and taking the square root. Use the `sqrt()` method to calculate the square\n" "// root, like `v.sqrt()`.\n" msgstr "" -"// Calculează mărimea unui vector prin însumarea pătratelor coordonatelor " -"sale\n" -"// și luând rădăcina pătrată. Utilizați metoda `sqrt()` pentru a calcula " -"pătratul\n" +"// Calculează mărimea unui vector prin însumarea pătratelor coordonatelor sale\n" +"// și luând rădăcina pătrată. Utilizați metoda `sqrt()` pentru a calcula\n" "// rădăcina pătrată, cum ar fi `v.sqrt()`.\n" #: src/references/exercise.md -#, fuzzy msgid "" "// Normalize a vector by calculating its magnitude and dividing all of its\n" "// coordinates by that magnitude.\n" msgstr "" "// Normalizați un vector prin calcularea magnitudinii sale și împărțirea " -"tuturor vectorilor săi\n" -"// coordonate la această mărime.\n" +"tuturor coordonatelor sale\n" +"// la această mărime.\n" #: src/references/exercise.md msgid "// Use the following `main` to test your work.\n" @@ -4737,8 +4606,7 @@ msgstr "/// Calculează magnitudinea vectorului dat.\n" #: src/references/solution.md msgid "" -"/// Change the magnitude of the vector to 1.0 without changing its " -"direction.\n" +"/// Change the magnitude of the vector to 1.0 without changing its direction.\n" msgstr "" "/// Modificați magnitudinea vectorului la 1.0 fără a-i schimba direcția.\n" @@ -4748,26 +4616,22 @@ msgstr "[Structuri cu nume](./user-defined-types/named-structs.md) (10 minute)" #: src/user-defined-types.md msgid "[Tuple Structs](./user-defined-types/tuple-structs.md) (10 minutes)" -msgstr "" -"[Structuri de tuplu](./user-defined-types/tuple-structs.md) (10 minute)" +msgstr "[Structuri de tuplu](./user-defined-types/tuple-structs.md) (10 minute)" #: src/user-defined-types.md msgid "[Enums](./user-defined-types/enums.md) (5 minutes)" msgstr "[Enums](./user-defined-types/enums.md) (5 minute)" #: src/user-defined-types.md -#, fuzzy msgid "[Static](./user-defined-types/static.md) (5 minutes)" -msgstr "[Static și Const](./user-defined-types/static-and-const.md) (5 minute)" +msgstr "[Static](./user-defined-types/static.md) (5 minute)" #: src/user-defined-types.md msgid "[Type Aliases](./user-defined-types/aliases.md) (2 minutes)" msgstr "[Aliasuri de tip](./user-defined-types/aliases.md) (2 minute)" #: src/user-defined-types.md -#, fuzzy -msgid "" -"[Exercise: Elevator Events](./user-defined-types/exercise.md) (15 minutes)" +msgid "[Exercise: Elevator Events](./user-defined-types/exercise.md) (15 minutes)" msgstr "" "[Exercițiu: Evenimente de lift](./user-defined-types/exercise.md) (15 minute)" @@ -4808,79 +4672,70 @@ msgstr "Structurile funcționează ca în C sau C++." #: src/user-defined-types/named-structs.md msgid "Like in C++, and unlike in C, no typedef is needed to define a type." msgstr "" -"La fel ca în C++ și spre deosebire de C, nu este nevoie de un typedef pentru " -"a defini un tip." +"La fel ca în C++ și spre deosebire de C, nu este nevoie de un typedef pentru a " +"defini un tip." #: src/user-defined-types/named-structs.md msgid "Unlike in C++, there is no inheritance between structs." msgstr "Spre deosebire de C++, nu există moștenire între structuri." #: src/user-defined-types/named-structs.md -#, fuzzy msgid "" -"This may be a good time to let people know there are different types of " -"structs." +"This may be a good time to let people know there are different types of structs." msgstr "" -"Acesta ar putea fi un moment bun pentru a informa oamenii că există diferite " -"tipuri de structuri." +"Acum este un moment bun pentru a informa cursanții că există diferite tipuri de " +"structuri." #: src/user-defined-types/named-structs.md -#, fuzzy msgid "" -"Zero-sized structs (e.g. `struct Foo;`) might be used when implementing a " -"trait on some type but don't have any data that you want to store in the " -"value itself." +"Zero-sized structs (e.g. `struct Foo;`) might be used when implementing a trait " +"on some type but don’t have any data that you want to store in the value itself." msgstr "" "Structurile de dimensiune zero (de exemplu, `struct Foo;`) pot fi utilizate " -"atunci când se implementează o trăsătură pe un anumit tip, dar nu aveți date " +"atunci când se implementează o trăsătură pe un anumit tip, dar nu există date " "pe care doriți să le stocați în valoarea în sine." #: src/user-defined-types/named-structs.md -#, fuzzy msgid "" -"The next slide will introduce Tuple structs, used when the field names are " -"not important." +"The next slide will introduce Tuple structs, used when the field names are not " +"important." msgstr "" -"Următorul diapozitiv va prezenta structurile Tuple, utilizate atunci când " -"numele câmpurilor nu sunt importante." +"Următorul diapozitiv va prezenta structurile de tip tuplu, utilizate atunci " +"când numele câmpurilor nu sunt importante." #: src/user-defined-types/named-structs.md -#, fuzzy msgid "" "If you already have variables with the right names, then you can create the " "struct using a shorthand." msgstr "" -"Dacă aveți deja variabile cu numele corecte, puteți crea structura folosind " -"o prescurtare:" +"Dacă aveți deja variabile cu numele corecte, puteți crea structura folosind o " +"prescurtare." #: src/user-defined-types/named-structs.md -#, fuzzy msgid "" -"The syntax `..avery` allows us to copy the majority of the fields from the " -"old struct without having to explicitly type it all out. It must always be " -"the last element." +"The syntax `..avery` allows us to copy the majority of the fields from the old " +"struct without having to explicitly type it all out. It must always be the last " +"element." msgstr "" -"Sintaxa `..peter` ne permite să copiem majoritatea câmpurilor din vechea " +"Sintaxa `..avery` ne permite să copiem majoritatea câmpurilor din vechea " "structură fără a fi nevoie să le scriem în mod explicit pe toate. Acesta " "trebuie să fie întotdeauna ultimul element." #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "If the field names are unimportant, you can use a tuple struct:" msgstr "" "În cazul în care numele câmpurilor nu sunt importante, puteți utiliza o " -"structură de tip tuple:" +"structură de tip tuplu:" #: src/user-defined-types/tuple-structs.md msgid "\"({}, {})\"" msgstr "\"({}, {})\"" #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "This is often used for single-field wrappers (called newtypes):" msgstr "" -"Acest lucru este adesea utilizat pentru învelișurile cu un singur câmp " -"(denumite newtypes):" +"Acest lucru este adesea utilizat pentru structurile de tip container cu un " +"singur câmp (denumite newtypes):" #: src/user-defined-types/tuple-structs.md msgid "\"Ask a rocket scientist at NASA\"" @@ -4894,60 +4749,55 @@ msgid "// ...\n" msgstr "// ...\n" #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "" -"Newtypes are a great way to encode additional information about the value in " -"a primitive type, for example:" +"Newtypes are a great way to encode additional information about the value in a " +"primitive type, for example:" msgstr "" "Newtypes reprezintă o modalitate excelentă de a codifica informații " "suplimentare despre valoarea unui tip primitiv, de exemplu:" #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "The number is measured in some units: `Newtons` in the example above." msgstr "" "Numărul este măsurat în anumite unități: `Newtons` în exemplul de mai sus." #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "" -"The value passed some validation when it was created, so you no longer have " -"to validate it again at every use: `PhoneNumber(String)` or `OddNumber(u32)`." +"The value passed some validation when it was created, so you no longer have to " +"validate it again at every use: `PhoneNumber(String)` or `OddNumber(u32)`." msgstr "" -"Valoarea a trecut printr-o validare atunci când a fost creată, astfel încât " -"nu mai trebuie să o validați din nou la fiecare utilizare: " -"`PhoneNumber(String)` sau `OddNumber(u32)`." +"Valoarea a trecut printr-o validare atunci când a fost creată, astfel încât nu " +"mai trebuie să o validați din nou la fiecare utilizare: `PhoneNumber(String)` " +"sau `OddNumber(u32)`." #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "" "Demonstrate how to add a `f64` value to a `Newtons` type by accessing the " "single field in the newtype." msgstr "" -"Demonstrați cum să adăugați o valoare `f64` la un tip `Newtons` prin " -"accesarea unui singur câmp din noul tip." +"Demonstrați cum să adăugați o valoare `f64` la un tip `Newtons` prin accesarea " +"unui singur câmp din noul tip." #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "" -"Rust generally doesn't like inexplicit things, like automatic unwrapping or " -"for instance using booleans as integers." +"Rust generally doesn’t like inexplicit things, like automatic unwrapping or for " +"instance using booleans as integers." msgstr "" -"În general, Rust nu agreează lucrurile inexplicabile, cum ar fi desfacerea " -"automată sau, de exemplu, utilizarea booleenilor ca numere întregi." +"În general, în Rust se folosesc doar tipuri explicite, iar construcții în genul " +"despachetării automate sau utilizarea booleenilor ca numere întregi nu sunt " +"agreate." #: src/user-defined-types/tuple-structs.md msgid "Operator overloading is discussed on Day 3 (generics)." msgstr "Supraîncărcarea operatorilor este discutată în ziua 3 (generice)." #: src/user-defined-types/tuple-structs.md -#, fuzzy msgid "" "The example is a subtle reference to the [Mars Climate Orbiter](https://en." "wikipedia.org/wiki/Mars_Climate_Orbiter) failure." msgstr "" -"Exemplul este o referire subtilă la eșecul [Mars Climate Orbiter] (https://" -"en.wikipedia.org/wiki/Mars_Climate_Orbiter)." +"Exemplul este o referire subtilă la eșecul [Mars Climate Orbiter] (https://en." +"wikipedia.org/wiki/Mars_Climate_Orbiter)." #: src/user-defined-types/enums.md msgid "" @@ -4966,7 +4816,6 @@ msgid "// Tuple variant\n" msgstr "// Varianta cu tupluri\n" #: src/user-defined-types/enums.md -#, fuzzy msgid "// Struct variant\n" msgstr "// Variantă de structură\n" @@ -4975,12 +4824,10 @@ msgid "\"On this turn: {:?}\"" msgstr "\"În acest tur: {:?}\"" #: src/user-defined-types/enums.md -#, fuzzy msgid "Enumerations allow you to collect a set of values under one type." -msgstr "Enumerările vă permit să colectați un set de valori sub un singur tip" +msgstr "Enumerările vă permit să colectați un set de valori sub un singur tip." #: src/user-defined-types/enums.md -#, fuzzy msgid "" "`Direction` is a type with variants. There are two values of `Direction`: " "`Direction::Left` and `Direction::Right`." @@ -4989,67 +4836,59 @@ msgstr "" "`Direction::Left` și `Direction::Right`." #: src/user-defined-types/enums.md -#, fuzzy msgid "" -"`PlayerMove` is a type with three variants. In addition to the payloads, " -"Rust will store a discriminant so that it knows at runtime which variant is " -"in a `PlayerMove` value." +"`PlayerMove` is a type with three variants. In addition to the payloads, Rust " +"will store a discriminant so that it knows at runtime which variant is in a " +"`PlayerMove` value." msgstr "" "`PlayerMove` este un tip cu trei variante. În plus față de sarcinile utile, " "Rust va stoca un discriminant, astfel încât să știe la momentul execuției ce " "variantă se află într-o valoare `PlayerMove`." #: src/user-defined-types/enums.md -#, fuzzy msgid "This might be a good time to compare structs and enums:" msgstr "" -"Acesta ar putea fi un moment bun pentru a compara structurile și " -"enumerațiile:" +"Acesta ar putea fi un moment bun pentru a compara structurile și enumerațiile:" #: src/user-defined-types/enums.md -#, fuzzy msgid "" -"In both, you can have a simple version without fields (unit struct) or one " -"with different types of fields (variant payloads)." +"In both, you can have a simple version without fields (unit struct) or one with " +"different types of fields (variant payloads)." msgstr "" -"În ambele, puteți avea o versiune simplă fără câmpuri (unit struct) sau una " -"cu diferite tipuri de câmpuri (varianta payloads). " +"În ambele, puteți avea o versiune simplă fără câmpuri (unit struct) sau una cu " +"diferite tipuri de câmpuri (variant payloads)." #: src/user-defined-types/enums.md -#, fuzzy msgid "" "You could even implement the different variants of an enum with separate " -"structs but then they wouldn't be the same type as they would if they were " -"all defined in an enum." +"structs but then they wouldn’t be the same type as they would if they were all " +"defined in an enum." msgstr "" -"Ați putea chiar să implementați diferitele variante ale unui enum cu " -"structuri separate, dar atunci acestea nu ar fi de același tip ca în cazul " -"în care ar fi definite toate într-un enum." +"Ați putea chiar să implementați diferitele variante ale unui enum cu structuri " +"separate, dar atunci acestea nu ar fi de același tip ca în cazul în care ar fi " +"definite toate într-un enum." #: src/user-defined-types/enums.md -#, fuzzy msgid "Rust uses minimal space to store the discriminant." msgstr "Rust utilizează un spațiu minim pentru a stoca discriminantul." #: src/user-defined-types/enums.md -#, fuzzy msgid "If necessary, it stores an integer of the smallest required size" msgstr "" "Dacă este necesar, se stochează un număr întreg de cea mai mică dimensiune " "necesară" #: src/user-defined-types/enums.md -#, fuzzy msgid "" "If the allowed variant values do not cover all bit patterns, it will use " -"invalid bit patterns to encode the discriminant (the \"niche " -"optimization\"). For example, `Option<&u8>` stores either a pointer to an " -"integer or `NULL` for the `None` variant." +"invalid bit patterns to encode the discriminant (the \"niche optimization\"). " +"For example, `Option<&u8>` stores either a pointer to an integer or `NULL` for " +"the `None` variant." msgstr "" "În cazul în care valorile variantelor permise nu acoperă toate modelele de " -"biți, se vor utiliza modele de biți nevalabile pentru a codifica " -"discriminantul (\"optimizarea nișei\"). De exemplu, `Option<&u8>` stochează " -"fie un pointer la un întreg, fie `NULL` pentru varianta `None`." +"biți, se vor utiliza modele de biți nevalabile pentru a codifica discriminantul " +"(\"optimizarea nișei\"). De exemplu, `Option<&u8>` stochează fie un pointer la " +"un întreg, fie `NULL` pentru varianta `None`." #: src/user-defined-types/enums.md msgid "" @@ -5060,57 +4899,99 @@ msgstr "" #: src/user-defined-types/enums.md msgid "" -"Without `repr`, the discriminant type takes 2 bytes, because 10001 fits 2 " -"bytes." +"Without `repr`, the discriminant type takes 2 bytes, because 10001 fits 2 bytes." msgstr "" "Fără `repr`, tipul de discriminant are nevoie de 2 octeți, deoarece 10001 se " "reprezintă cu 2 octeți." #: src/user-defined-types/enums.md src/user-defined-types/static.md #: src/memory-management/review.md src/memory-management/move.md -#: src/smart-pointers/box.md src/borrowing/shared.md +#: src/memory-management/copy-types.md src/smart-pointers/box.md +#: src/borrowing/shared.md src/error-handling/result.md msgid "More to Explore" msgstr "Mai multe de explorat" #: src/user-defined-types/enums.md msgid "" -"Rust has several optimizations it can employ to make enums take up less " -"space." +"Rust has several optimizations it can employ to make enums take up less space." msgstr "" -"Rust are mai multe optimizări pe care le poate folosi pentru ca enumerațiile " -"să ocupe mai puțin spațiu." +"Rust are mai multe optimizări pe care le poate folosi pentru ca enumerațiile să " +"ocupe mai puțin spațiu." #: src/user-defined-types/enums.md msgid "" "Null pointer optimization: For [some types](https://doc.rust-lang.org/std/" -"option/#representation), Rust guarantees that `size_of::()` equals " -"`size_of::>()`." +"option/#representation), Rust guarantees that `size_of::()` equals `size_of::" +">()`." msgstr "" -"Optimizarea pointerilor nuli: Pentru [unele tipuri](https://doc.rust-lang." -"org/std/option/#representation) Rust garantează că `size_of::()` este " -"egal cu `size_of::<Opțiune>()`." +"Optimizarea pointerilor nuli: Pentru [unele tipuri](https://doc.rust-lang.org/" +"std/option/#representation) Rust garantează că `size_of::()` este egal cu " +"`size_of::<Opțiune>()`." #: src/user-defined-types/enums.md msgid "" -"Example code if you want to show how the bitwise representation _may_ look " -"like in practice. It's important to note that the compiler provides no " -"guarantees regarding this representation, therefore this is totally unsafe." +"Example code if you want to show how the bitwise representation _may_ look like " +"in practice. It's important to note that the compiler provides no guarantees " +"regarding this representation, therefore this is totally unsafe." msgstr "" "Exemplu de cod pentru a putea arăta în practică reprezentarea pe biți. " -"Compilatorul nu oferă nicio garanție în ceea ce privește această " -"reprezentare, prin urmare este total nesigură." +"Compilatorul nu oferă nicio garanție în ceea ce privește această reprezentare, " +"prin urmare este total nesigură." + +#: src/user-defined-types/const.md +msgid "`const`" +msgstr "`const`" + +#: src/user-defined-types/const.md +msgid "" +"Constants are evaluated at compile time and their values are inlined wherever " +"they are used:" +msgstr "" +"Variabilele constante sunt evaluate la compilare, iar valorile lor sunt " +"înlocuite în cod ori de câte ori sunt utilizate:" + +#: src/user-defined-types/const.md +msgid "" +"According to the [Rust RFC Book](https://rust-lang.github.io/rfcs/0246-const-vs-" +"static.html) these are inlined upon use." +msgstr "" +"În conformitate cu [Rust RFC Book](https://rust-lang.github.io/rfcs/0246-const-" +"vs-static.html), acestea sunt înlocuite în cod la utilizare." + +#: src/user-defined-types/const.md +msgid "" +"Only functions marked `const` can be called at compile time to generate `const` " +"values. `const` functions can however be called at runtime." +msgstr "" +"Numai funcțiile marcate `const` pot fi apelate la compilare pentru a genera " +"valori `const`. Funcțiile `const` totuși pot fi apelate în timpul execuției." + +#: src/user-defined-types/const.md +msgid "Mention that `const` behaves semantically similar to C++'s `constexpr`" +msgstr "" +"Menționați faptul că în Rust `const` are un comportament semantic similar cu " +"`constexpr` din C++" + +#: src/user-defined-types/const.md +msgid "" +"It isn't super common that one would need a runtime evaluated constant, but it " +"is helpful and safer than using a static." +msgstr "" +"Nu este foarte des întâlnit cazul în care cineva ar avea nevoie de o constantă " +"evaluată în timp de execuție, dar este utilă și mai sigură decât utilizarea " +"unei constante statice." #: src/user-defined-types/static.md msgid "`static`" -msgstr "'Static'" +msgstr "'static'" #: src/user-defined-types/static.md msgid "" "Static variables will live during the whole execution of the program, and " "therefore will not move:" msgstr "" -"Variabilele statice vor fi valabile pe toată durata execuției programului " -"și, prin urmare, nu se vor muta:" +"Variabilele statice vor fi valabile pe toată durata execuției programului și, " +"prin urmare, nu se vor muta:" #: src/user-defined-types/static.md msgid "\"Welcome to RustOS 3.14\"" @@ -5121,107 +5002,51 @@ msgid "\"{BANNER}\"" msgstr "\"{BANNER}\"" #: src/user-defined-types/static.md -#, fuzzy msgid "" -"As noted in the [Rust RFC Book](https://rust-lang.github.io/rfcs/0246-const-" -"vs-static.html), these are not inlined upon use and have an actual " -"associated memory location. This is useful for unsafe and embedded code, and " -"the variable lives through the entirety of the program execution. When a " -"globally-scoped value does not have a reason to need object identity, " -"`const` is generally preferred." +"As noted in the [Rust RFC Book](https://rust-lang.github.io/rfcs/0246-const-vs-" +"static.html), these are not inlined upon use and have an actual associated " +"memory location. This is useful for unsafe and embedded code, and the variable " +"lives through the entirety of the program execution. When a globally-scoped " +"value does not have a reason to need object identity, `const` is generally " +"preferred." msgstr "" "După cum se menționează în [Rust RFC Book](https://rust-lang.github.io/" -"rfcs/0246-const-vs-static.html), acestea nu sunt incluse în cod la utilizare " -"și au o locație de memorie reală asociată. Acest lucru este util pentru " -"codul nesigur și care ruleaza direct pe device (embedded) , iar variabila " -"există pe toată durata execuției programului. Atunci când o valoare cu " -"acoperire globală nu are nevoie de identitatea obiectului, `const` este în " -"general preferat." +"rfcs/0246-const-vs-static.html), acestea nu sunt incluse în cod la utilizare și " +"au o locație de memorie reală asociată. Acest lucru este util pentru codul " +"nesigur și care rulează direct pe dispozitiv (embedded) , iar variabila există " +"pe toată durata execuției programului. Atunci când o valoare cu acoperire " +"globală nu are nevoie de identitatea obiectului, `const` este în general " +"preferat." #: src/user-defined-types/static.md -#, fuzzy msgid "`static` is similar to mutable global variables in C++." -msgstr "" -"`static`, pe de altă parte, este mult mai asemănătoar cu o variabilă globală " -"`const` sau mutabilă în C++." +msgstr "`static` este similar cu variable globale mutabile în C++." #: src/user-defined-types/static.md msgid "" -"`static` provides object identity: an address in memory and state as " -"required by types with interior mutability such as `Mutex`." +"`static` provides object identity: an address in memory and state as required " +"by types with interior mutability such as `Mutex`." msgstr "" -"`static` asigură identitatea obiectului: o adresă în memorie și starea " -"necesară pentru tipurile cu mutabilitate interioară, cum ar fi `Mutex`." +"`static` asigură identitatea obiectului: o adresă în memorie și starea necesară " +"pentru tipurile cu mutabilitate interioară, cum ar fi `Mutex`." #: src/user-defined-types/static.md -#, fuzzy msgid "" -"Because `static` variables are accessible from any thread, they must be " -"`Sync`. Interior mutability is possible through a [`Mutex`](https://doc.rust-" -"lang.org/std/sync/struct.Mutex.html), atomic or similar." +"Because `static` variables are accessible from any thread, they must be `Sync`. " +"Interior mutability is possible through a [`Mutex`](https://doc.rust-lang.org/" +"std/sync/struct.Mutex.html), atomic or similar." msgstr "" -"Deoarece variabilele `statice` sunt accesibile din orice fir de execuție, " -"ele trebuie să fie `Sync`. Mutabilitatea interioară este posibilă prin " -"intermediul unui [`Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex." -"html), atomic sau similar. De asemenea, este posibil să aveți variabile " -"statice mutabile, dar acestea necesită sincronizare manuală, astfel încât " -"orice acces la ele necesită cod `unsafe`. Ne vom uita la [mutable statics]" -"(../unsafe/mutable-static-variables.md) în capitolul despre Unsafe Rust." +"Deoarece variabilele `statice` sunt accesibile din orice fir de execuție, ele " +"trebuie să fie `Sync`. Mutabilitatea interioară este posibilă prin intermediul " +"unui [`Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex.html), atomic " +"sau similar." #: src/user-defined-types/static.md -#, fuzzy msgid "Thread-local data can be created with the macro `std::thread_local`." msgstr "" -"Datele `thread_local` pot fi create cu ajutorul macroului `std::" -"thread_local`." - -#: src/user-defined-types/const.md -msgid "`const`" -msgstr "`const`" - -#: src/user-defined-types/const.md -#, fuzzy -msgid "" -"Constants are evaluated at compile time and their values are inlined " -"wherever they are used:" -msgstr "" -"Variabilele constante sunt evaluate la compilare, iar valorile lor sunt " -"înlocuite în cod ori de câte ori sunt utilizate:" - -#: src/user-defined-types/const.md -msgid "" -"According to the [Rust RFC Book](https://rust-lang.github.io/rfcs/0246-const-" -"vs-static.html) these are inlined upon use." -msgstr "" -"În conformitate cu [Rust RFC Book](https://rust-lang.github.io/rfcs/0246-" -"const-vs-static.html), acestea sunt înlocuite în cod la utilizare." - -#: src/user-defined-types/const.md -msgid "" -"Only functions marked `const` can be called at compile time to generate " -"`const` values. `const` functions can however be called at runtime." -msgstr "" -"Numai funcțiile marcate `const` pot fi apelate la compilare pentru a genera " -"valori `const`. Funcțiile `const` totuși pot fi apelate în timpul execuției." - -#: src/user-defined-types/const.md -#, fuzzy -msgid "Mention that `const` behaves semantically similar to C++'s `constexpr`" -msgstr "" -"Menționați faptul că în Rust `const` are un comportament semantic similar cu " -"`constexpr` din C++." - -#: src/user-defined-types/const.md -msgid "" -"It isn't super common that one would need a runtime evaluated constant, but " -"it is helpful and safer than using a static." -msgstr "" -"Nu este foarte des întâlnit cazul în care cineva ar avea nevoie de o " -"constantă evaluată în timp de execuție, dar este utilă și mai sigură decât " -"utilizarea unei constante statice." +"Datele `thread_local` pot fi create cu ajutorul macroului `std::thread_local`." #: src/user-defined-types/aliases.md -#, fuzzy msgid "" "A type alias creates a name for another type. The two types can be used " "interchangeably." @@ -5230,267 +5055,218 @@ msgstr "" "utilizate în mod interschimbabil." #: src/user-defined-types/aliases.md -#, fuzzy msgid "// Aliases are more useful with long, complex types:\n" msgstr "// Aliasurile sunt mai utile în cazul tipurilor lungi și complexe:\n" #: src/user-defined-types/aliases.md -#, fuzzy msgid "C programmers will recognize this as similar to a `typedef`." msgstr "" "Programatorii C vor recunoaște acest lucru ca fiind similar cu un `typedef`." #: src/user-defined-types/exercise.md -#, fuzzy msgid "" "We will create a data structure to represent an event in an elevator control " -"system. It is up to you to define the types and functions to construct " -"various events. Use `#[derive(Debug)]` to allow the types to be formatted " -"with `{:?}`." +"system. It is up to you to define the types and functions to construct various " +"events. Use `#[derive(Debug)]` to allow the types to be formatted with `{:?}`." msgstr "" -"Vom crea o structură de date pentru a reprezenta un eveniment într-un sistem " -"de control al ascensorului. Depinde de dumneavoastră să definiți tipurile și " -"funcțiile pentru a construi diverse evenimente. Utilizați `#[derive(Debug)]` " -"pentru a permite formatarea tipurilor cu `{:?}`." +"Vom crea o structură de date pentru a reprezenta un eveniment într-un sistem de " +"control al liftului. Depinde de dumneavoastră să definiți tipurile și funcțiile " +"pentru a construi diverse evenimente. Utilizați `#[derive(Debug)]` pentru a " +"permite formatarea tipurilor cu `{:?}`." #: src/user-defined-types/exercise.md -#, fuzzy msgid "" "This exercise only requires creating and populating data structures so that " -"`main` runs without errors. The next part of the course will cover getting " -"data out of these structures." +"`main` runs without errors. The next part of the course will cover getting data " +"out of these structures." msgstr "" -"Acest exercițiu necesită doar crearea și popularea structurilor de date " -"astfel încât `main` să ruleze fără erori. Următoarea parte a cursului se va " -"ocupa de extragerea datelor din aceste structuri." +"Acest exercițiu necesită doar crearea și popularea structurilor de date astfel " +"încât `main` să ruleze fără erori. Următoarea parte a cursului se va ocupa de " +"extragerea datelor din aceste structuri." #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy -msgid "" -"/// An event in the elevator system that the controller must react to.\n" +msgid "/// An event in the elevator system that the controller must react to.\n" msgstr "" "/// Un eveniment din sistemul de ascensoare la care trebuie să reacționeze " "controlerul.\n" #: src/user-defined-types/exercise.md -#, fuzzy msgid "// TODO: add required variants\n" msgstr "// TODO: adăugați variantele necesare\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "/// A direction of travel.\n" msgstr "/// O direcție de deplasare.\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "/// The car has arrived on the given floor.\n" -msgstr "/// Mașina a ajuns la etajul dat.\n" +msgstr "/// Liftul a ajuns la etajul dat.\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "/// The car doors have opened.\n" -msgstr "/// Portierele mașinii s-au deschis.\n" +msgstr "/// Ușile liftului s-au deschis.\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "/// The car doors have closed.\n" -msgstr "/// Ușile mașinii s-au închis.\n" +msgstr "/// Ușile liftului s-au închis.\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "" -"/// A directional button was pressed in an elevator lobby on the given " -"floor.\n" +"/// A directional button was pressed in an elevator lobby on the given floor.\n" msgstr "" "/// Un buton direcțional a fost apăsat în holul liftului de la etajul dat.\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "/// A floor button was pressed in the elevator car.\n" msgstr "/// Un buton de podea a fost apăsat în cabina liftului.\n" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "\"A ground floor passenger has pressed the up button: {:?}\"" msgstr "\"Un pasager de la parter a apăsat butonul de urcare: {:?}\"" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "\"The car has arrived on the ground floor: {:?}\"" -msgstr "\"Mașina a ajuns la parter: {:?}\"" +msgstr "\"Liftul a ajuns la parter: {:?}\"" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "\"The car door opened: {:?}\"" -msgstr "\"S-a deschis portiera mașinii: {:?}\"" +msgstr "\"S-a deschis ușa liftului: {:?}\"" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "\"A passenger has pressed the 3rd floor button: {:?}\"" msgstr "\"Un pasager a apăsat butonul de la etajul 3: {:?}\"" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "\"The car door closed: {:?}\"" -msgstr "\"Ușa mașinii s-a închis: {:?}\"" +msgstr "\"Ușa liftului s-a închis: {:?}\"" #: src/user-defined-types/exercise.md src/user-defined-types/solution.md -#, fuzzy msgid "\"The car has arrived on the 3rd floor: {:?}\"" -msgstr "\"Mașina a ajuns la etajul 3: {:?}\"" +msgstr "\"Liftul a ajuns la etajul 3: {:?}\"" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// A button was pressed.\n" msgstr "/// A fost apăsat un buton.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// The car has arrived at the given floor.\n" -msgstr "/// Mașina a ajuns la etajul dat.\n" +msgstr "/// Liftul a ajuns la etajul dat.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// The car's doors have opened.\n" -msgstr "/// Portierele mașinii s-au deschis.\n" +msgstr "/// Ușile liftului s-au deschis.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// The car's doors have closed.\n" -msgstr "/// Portierele mașinii s-au închis.\n" +msgstr "/// Ușile liftului s-au închis.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// A floor is represented as an integer.\n" msgstr "/// Un etaj este reprezentat ca un număr întreg.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// A user-accessible button.\n" msgstr "/// Un buton accesibil utilizatorului.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// A button in the elevator lobby on the given floor.\n" msgstr "/// Un buton în holul liftului de la etajul dat.\n" #: src/user-defined-types/solution.md -#, fuzzy msgid "/// A floor button within the car.\n" -msgstr "/// Un buton de podea în interiorul mașinii.\n" +msgstr "/// Un buton de etaj din interiorul liftului.\n" #: src/welcome-day-2.md msgid "Welcome to Day 2" msgstr "Bine ați venit în ziua a doua" #: src/welcome-day-2.md -#, fuzzy msgid "" "Now that we have seen a fair amount of Rust, today will focus on Rust's type " "system:" -msgstr "" -"Acum, că am văzut o cantitate destul de mare de rugină, vom continua cu:" +msgstr "Acum, că am văzut suficient cod Rust, vom continua cu:" #: src/welcome-day-2.md -#, fuzzy msgid "Pattern matching: extracting data from structures." -msgstr "" -"Găsirea de tipare: destructurarea enumerațiilor, structurilor și a " -"tablourilor." +msgstr "Găsirea de șabloane: extragerea datelor din structuri." #: src/welcome-day-2.md -#, fuzzy msgid "Methods: associating functions with types." -msgstr "Metode: asocierea funcțiilor cu tipurile." +msgstr "Metode: asocierea funcțiilor cu tipurile de date." #: src/welcome-day-2.md -#, fuzzy msgid "Traits: behaviors shared by multiple types." msgstr "Trăsături: comportamente împărtășite de mai multe tipuri." #: src/welcome-day-2.md -#, fuzzy msgid "Generics: parameterizing types on other types." -msgstr "Generice: parametrizarea tipurilor pe alte tipuri." +msgstr "Generice: parametrizarea tipurilor folosind alte tipuri." #: src/welcome-day-2.md -#, fuzzy -msgid "" -"Standard library types and traits: a tour of Rust's rich standard library." +msgid "Standard library types and traits: a tour of Rust's rich standard library." msgstr "" "Tipuri și trăsături ale bibliotecii standard: un tur al bogatei biblioteci " "standard Rust." #: src/welcome-day-2.md -#, fuzzy msgid "[Welcome](./welcome-day-2.md) (3 minutes)" msgstr "[Introducere](../welcome-day-2.md) (3 minute)" #: src/welcome-day-2.md -#, fuzzy msgid "[Pattern Matching](./pattern-matching.md) (1 hour)" -msgstr "[Potrivirea șabloanelor](../pattern-matching.md) (50 minute)" +msgstr "[Potrivirea șabloanelor](../pattern-matching.md) (1 oră)" #: src/welcome-day-2.md -#, fuzzy msgid "[Methods and Traits](./methods-and-traits.md) (50 minutes)" -msgstr "[Metode și trăsături](./methods-and-traits.md) (55 minute)" +msgstr "[Metode și trăsături](./methods-and-traits.md) (50 minute)" -#: src/welcome-day-2.md src/welcome-day-4-afternoon.md -#, fuzzy +#: src/welcome-day-2.md msgid "" "Including 10 minute breaks, this session should take about 2 hours and 10 " "minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 2 ore și 15 minute" +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " +"aproximativ 2 ore și 10 minute" #: src/pattern-matching.md -#, fuzzy msgid "[Matching Values](./pattern-matching/match.md) (10 minutes)" -msgstr "[Potrivirea șabloanelor](../pattern-matching.md) (50 minute)" +msgstr "[Potrivirea valorilor](../pattern-matching.md) (10 minute)" #: src/pattern-matching.md -#, fuzzy msgid "" -"[Destructuring Structs](./pattern-matching/destructuring-structs.md) (4 " -"minutes)" -msgstr "[Destructurare](./pattern-matching/destructuring.md) (10 minute)" +"[Destructuring Structs](./pattern-matching/destructuring-structs.md) (4 minutes)" +msgstr "" +"[Destructurarea structurilor](./pattern-matching/destructuring.md) (4 minute)" #: src/pattern-matching.md -#, fuzzy msgid "" "[Destructuring Enums](./pattern-matching/destructuring-enums.md) (4 minutes)" -msgstr "[Destructurare](./pattern-matching/destructuring.md) (10 minute)" +msgstr "" +"[Destructurarea enumerărilor](./pattern-matching/destructuring.md) (4 minute)" #: src/pattern-matching.md -#, fuzzy msgid "[Let Control Flow](./pattern-matching/let-control-flow.md) (10 minutes)" msgstr "" "[Lasă controlul să curgă](./pattern-matching/let-control-flow.md) (10 minute)" #: src/pattern-matching.md -#, fuzzy msgid "" -"[Exercise: Expression Evaluation](./pattern-matching/exercise.md) (30 " -"minutes)" +"[Exercise: Expression Evaluation](./pattern-matching/exercise.md) (30 minutes)" msgstr "" -"[Exercițiu: Evaluarea expresiilor](./pattern-matching/exercise.md) (30 " -"minute)" +"[Exercițiu: Evaluarea expresiilor](./pattern-matching/exercise.md) (30 minute)" -#: src/pattern-matching.md src/memory-management.md +#: src/pattern-matching.md src/std-types.md src/memory-management.md +#: src/error-handling.md msgid "This segment should take about 1 hour" msgstr "Acest segment ar trebui să dureze aproximativ 1 oră" #: src/pattern-matching/match.md msgid "" -"The `match` keyword lets you match a value against one or more _patterns_. " -"The comparisons are done from top to bottom and the first match wins." +"The `match` keyword lets you match a value against one or more _patterns_. The " +"comparisons are done from top to bottom and the first match wins." msgstr "" -"Cuvântul cheie `match` vă permite să comparați o valoare cu unul sau mai " -"multe _șabloane_. Comparațiile se fac de sus în jos, iar prima potrivire " -"câștigă." +"Cuvântul cheie `match` vă permite să comparați o valoare cu unul sau mai multe " +"_șabloane_. Comparațiile se fac de sus în jos, iar prima potrivire câștigă." #: src/pattern-matching/match.md msgid "The patterns can be simple values, similarly to `switch` in C and C++:" @@ -5507,11 +5283,11 @@ msgstr "'q'" #: src/pattern-matching/match.md #, fuzzy msgid "\"Quitting\"" -msgstr "\"Renunțarea\"" +msgstr "\"Quitting\"" -#: src/pattern-matching/match.md src/generics/exercise.md -#: src/generics/solution.md src/std-traits/solution.md -#: src/error-handling/exercise.md src/error-handling/solution.md +#: src/pattern-matching/match.md src/generics/exercise.md src/generics/solution.md +#: src/std-traits/solution.md src/error-handling/exercise.md +#: src/error-handling/solution.md msgid "'a'" msgstr "'a'" @@ -5554,11 +5330,10 @@ msgid "\"Something else\"" msgstr "\"Altceva\"" #: src/pattern-matching/match.md -#, fuzzy msgid "" -"The `_` pattern is a wildcard pattern which matches any value. The " -"expressions _must_ be exhaustive, meaning that it covers every possibility, " -"so `_` is often used as the final catch-all case." +"The `_` pattern is a wildcard pattern which matches any value. The expressions " +"_must_ be exhaustive, meaning that it covers every possibility, so `_` is often " +"used as the final catch-all case." msgstr "" "Șablonul `_` este un model jocker care se potrivește cu orice valoare. " "Expresiile _trebuie_ să fie irefutabile, ceea ce înseamnă că acoperă orice " @@ -5570,34 +5345,31 @@ msgid "" "the same type. The type is the last expression of the block, if any. In the " "example above, the type is `()`." msgstr "" -"Potrivirea se poate folosi ca o expresie. Similar cu 'if', cele două părți " -"ale expresiei trebuie să aibă același tip. Dacă există, ultima expresie din " -"bloc dă tipul. În exemplul anterior, tipul este '()'." +"Potrivirea se poate folosi ca o expresie. Similar cu 'if', cele două părți ale " +"expresiei trebuie să aibă același tip. Dacă există, ultima expresie din bloc dă " +"tipul. În exemplul anterior, tipul este '()'." #: src/pattern-matching/match.md -#, fuzzy msgid "" "A variable in the pattern (`key` in this example) will create a binding that " "can be used within the match arm." msgstr "" -"O variabilă din model (`key` în acest exemplu) va crea o legătură care poate " -"fi utilizată în cadrul brațului de potrivire." +"O variabilă din model (`key` în acest exemplu) va crea o legătură care poate fi " +"utilizată în cadrul brațului de potrivire." #: src/pattern-matching/match.md -#, fuzzy msgid "A match guard causes the arm to match only if the condition is true." msgstr "" -"O protecție de potrivire face ca brațul să se potrivească numai dacă " -"condiția este adevărată." +"O protecție de potrivire face ca brațul să se potrivească numai dacă condiția " +"este adevărată." #: src/pattern-matching/match.md -#, fuzzy msgid "" "You might point out how some specific characters are being used when in a " "pattern" msgstr "" -"Ați putea indica modul în care sunt folosite anumite caractere specifice " -"atunci când se află într-un șablon" +"Ați putea indica modul în care sunt folosite anumite caractere specifice atunci " +"când se află într-un șablon" #: src/pattern-matching/match.md msgid "`|` as an `or`" @@ -5617,26 +5389,25 @@ msgstr "`_` este un 'joker'" #: src/pattern-matching/match.md msgid "" -"Match guards as a separate syntax feature are important and necessary when " -"we wish to concisely express more complex ideas than patterns alone would " -"allow." +"Match guards as a separate syntax feature are important and necessary when we " +"wish to concisely express more complex ideas than patterns alone would allow." msgstr "" -"Gărzile de potrivire, ca o caracteristică sintactică separată, sunt " -"importante și necesare atunci când dorim să exprimăm în mod concis idei mai " -"complexe decât ne-ar permite doar șabloanele." +"Gărzile de potrivire, ca o caracteristică sintactică separată, sunt importante " +"și necesare atunci când dorim să exprimăm în mod concis idei mai complexe decât " +"ne-ar permite doar șabloanele." #: src/pattern-matching/match.md msgid "" -"They are not the same as separate `if` expression inside of the match arm. " -"An `if` expression inside of the branch block (after `=>`) happens after the " -"match arm is selected. Failing the `if` condition inside of that block won't " -"result in other arms of the original `match` expression being considered." +"They are not the same as separate `if` expression inside of the match arm. An " +"`if` expression inside of the branch block (after `=>`) happens after the match " +"arm is selected. Failing the `if` condition inside of that block won't result " +"in other arms of the original `match` expression being considered." msgstr "" -"Acestea sunt diferite de expresia `if` din interiorul ramurii de potrivire. " -"O expresie `if` în interiorul blocului de ramificare (după `=>`) apare după " -"ce este selectată ramura de potrivire. În cazul în care nu se îndeplinește " -"condiția `if` din interiorul blocului respectiv, nu vor fi luate în " -"considerare alte ramuri ale expresiei `match` originale." +"Acestea sunt diferite de expresia `if` din interiorul ramurii de potrivire. O " +"expresie `if` în interiorul blocului de ramificare (după `=>`) apare după ce " +"este selectată ramura de potrivire. În cazul în care nu se îndeplinește " +"condiția `if` din interiorul blocului respectiv, nu vor fi luate în considerare " +"alte ramuri ale expresiei `match` originale." #: src/pattern-matching/match.md msgid "" @@ -5650,32 +5421,27 @@ msgid "Structs" msgstr "Structuri" #: src/pattern-matching/destructuring-structs.md -#, fuzzy msgid "Like tuples, Struct can also be destructured by matching:" msgstr "" -"Ca și tuplurile, structurile și enumerațiile pot fi, de asemenea, " -"destructurate prin potrivire:" +"Ca și tuplurile, structurile și enumerațiile pot fi, de asemenea, destructurate " +"prin potrivire:" #: src/pattern-matching/destructuring-structs.md -#, fuzzy msgid "\"x.0 = 1, b = {b}, y = {y}\"" msgstr "\"x.0 = 1, b = {b}, y = {y}\"" #: src/pattern-matching/destructuring-structs.md -#, fuzzy msgid "\"y = 2, x = {i:?}\"" msgstr "\"y = 2, x = {i:?}\"" #: src/pattern-matching/destructuring-structs.md -#, fuzzy msgid "\"y = {y}, other fields were ignored\"" msgstr "\"y = {y}, celelalte câmpuri au fost ignorate\"" #: src/pattern-matching/destructuring-structs.md msgid "Change the literal values in `foo` to match with the other patterns." msgstr "" -"Modificați valorile literale din `foo` pentru a se potrivi cu celelalte " -"modele." +"Modificați valorile literale din `foo` pentru a se potrivi cu celelalte modele." #: src/pattern-matching/destructuring-structs.md msgid "Add a new field to `Foo` and make changes to the pattern as needed." @@ -5688,48 +5454,44 @@ msgid "" "spot. Try changing the `2` in the second arm to a variable, and see that it " "subtly doesn't work. Change it to a `const` and see it working again." msgstr "" -"Distincția dintre o captură și o expresie constantă poate fi greu de " -"observat. Încercați să schimbați `2` din a două ramură cu o variabilă și " -"vedeți că, în mod subtil, nu mai funcționează. Schimbați-o într-o `const` și " -"vedeți că funcționează din nou." +"Distincția dintre o captură și o expresie constantă poate fi greu de observat. " +"Încercați să schimbați `2` din a două ramură cu o variabilă și vedeți că, în " +"mod subtil, nu mai funcționează. Schimbați-o într-o `const` și vedeți că " +"funcționează din nou." #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "Like tuples, enums can also be destructured by matching:" msgstr "" -"Ca și tuplurile, structurile și enumerațiile pot fi, de asemenea, " -"destructurate prin potrivire:" +"Ca și tuplurile, structurile și enumerațiile pot fi, de asemenea, destructurate " +"prin potrivire:" #: src/pattern-matching/destructuring-enums.md msgid "" "Patterns can also be used to bind variables to parts of your values. This is " -"how you inspect the structure of your types. Let us start with a simple " -"`enum` type:" +"how you inspect the structure of your types. Let us start with a simple `enum` " +"type:" msgstr "" -"Modelele pot fi, de asemenea, utilizate pentru a lega variabilele de părți " -"ale valorilor din variabile. În acest fel puteți inspecta structura " -"tipurilor dumneavoastră. Să începem cu un tip simplu `enum`:" +"Modelele pot fi, de asemenea, utilizate pentru a lega variabilele de părți ale " +"valorilor din variabile. În acest fel puteți inspecta structura tipurilor " +"dumneavoastră. Să începem cu un tip simplu `enum`:" #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "\"cannot divide {n} into two equal parts\"" msgstr "\"nu poate împărți {n} în două părți egale\"" #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "\"{n} divided in two is {half}\"" msgstr "\"{n} împărțit la doi este {half}\"" #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "\"sorry, an error happened: {msg}\"" msgstr "\"Îmi pare rău, s-a produs o eroare: {msg}\"" #: src/pattern-matching/destructuring-enums.md msgid "" "Here we have used the arms to _destructure_ the `Result` value. In the first " -"arm, `half` is bound to the value inside the `Ok` variant. In the second " -"arm, `msg` is bound to the error message." +"arm, `half` is bound to the value inside the `Ok` variant. In the second arm, " +"`msg` is bound to the error message." msgstr "" "Aici am folosit ramificațiile pentru a _destructura_ valoarea `Result`. Pe " "prima ramură `half` este legat de valoarea din interiorul variantei `Ok`. Pe " @@ -5737,11 +5499,11 @@ msgstr "" #: src/pattern-matching/destructuring-enums.md msgid "" -"The `if`/`else` expression is returning an enum that is later unpacked with " -"a `match`." +"The `if`/`else` expression is returning an enum that is later unpacked with a " +"`match`." msgstr "" -"Expresia `if`/`else` returnează o enumerație care este ulterior descompusă " -"cu un `match`." +"Expresia `if`/`else` returnează o enumerație care este ulterior descompusă cu " +"un `match`." #: src/pattern-matching/destructuring-enums.md msgid "" @@ -5750,70 +5512,63 @@ msgid "" "inexhaustive and how the compiler tries to give you hints." msgstr "" "Puteți încerca să adăugați o a treia variantă la definiția enumerării și să " -"afișați erorile atunci când executați codul. Evidențiați locurile în care " -"codul dvs. este acum neexhaustiv și modul în care compilatorul încearcă să " -"vă ofere indicii." +"afișați erorile atunci când executați codul. Evidențiați locurile în care codul " +"dvs. este acum neexhaustiv și modul în care compilatorul încearcă să vă ofere " +"indicii." #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "" "The values in the enum variants can only be accessed after being pattern " "matched." msgstr "" -"Valorile din variantele enum pot fi accesate numai după ce au fost comparate " -"cu un model. Modelul leagă referințele la câmpurile din \"brațul de " -"potrivire\" după `=>`." +"Valorile din variantele enum pot fi accesate numai după ce au fost comparate cu " +"un șablon." #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "" "Demonstrate what happens when the search is inexhaustive. Note the advantage " "the Rust compiler provides by confirming when all cases are handled." msgstr "" -"Demonstrați ce se întâmplă atunci când căutarea este neexhaustivă. Observați " +"Demonstrați ce se întâmplă atunci când căutarea nu este exhaustivă. Observați " "avantajul pe care îl oferă compilatorul Rust prin confirmarea momentului în " -"care sunt tratate toate cazurile. " +"care sunt tratate toate cazurile." #: src/pattern-matching/destructuring-enums.md -#, fuzzy msgid "" -"Save the result of `divide_in_two` in the `result` variable and `match` it " -"in a loop. That won't compile because `msg` is consumed when matched. To fix " -"it, match `&result` instead of `result`. That will make `msg` a reference so " -"it won't be consumed. This [\"match ergonomics\"](https://rust-lang.github." -"io/rfcs/2005-match-ergonomics.html) appeared in Rust 2018. If you want to " -"support older Rust, replace `msg` with `ref msg` in the pattern." +"Save the result of `divide_in_two` in the `result` variable and `match` it in a " +"loop. That won't compile because `msg` is consumed when matched. To fix it, " +"match `&result` instead of `result`. That will make `msg` a reference so it " +"won't be consumed. This [\"match ergonomics\"](https://rust-lang.github.io/" +"rfcs/2005-match-ergonomics.html) appeared in Rust 2018. If you want to support " +"older Rust, replace `msg` with `ref msg` in the pattern." msgstr "" "Salvați rezultatul `divide_in_two` în variabila `result` și `match` într-o " -"buclă. Acest lucru nu va fi compilat deoarece `msg` este consumat atunci " -"când se potrivește. Pentru a remedia problema, potriviți `&result` în loc de " +"buclă. Acest lucru nu va fi compilat deoarece `msg` este consumat atunci când " +"se face potrivirea. Pentru a remedia problema, potriviți `&result` în loc de " "`result`. Acest lucru va face din `msg` o referință, astfel încât nu va fi " -"consumată. Acest [\"match ergonomics\"](https://rust-lang.github.io/" -"rfcs/2005-match-ergonomics.html) a apărut în Rust 2018. Dacă doriți să " -"sprijiniți Rust mai vechi, înlocuiți `msg` cu `ref msg` în model." +"consumată. Acest [\"match ergonomics\"](https://rust-lang.github.io/rfcs/2005-" +"match-ergonomics.html) a apărut în Rust 2018. Dacă doriți să folosiți o " +"versiune mai veche de Rust, înlocuiți `msg` cu `ref msg` în model." #: src/pattern-matching/let-control-flow.md msgid "" -"Rust has a few control flow constructs which differ from other languages. " -"They are used for pattern matching:" +"Rust has a few control flow constructs which differ from other languages. They " +"are used for pattern matching:" msgstr "" "Rust are câteva construcții pentru controlul fluxului care diferă de alte " "limbaje. Acestea sunt utilizate pentru potrivirea șabloanelor:" #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "`if let` expressions" -msgstr "Expresii 'if let'" +msgstr "Expresii `if let`" #: src/pattern-matching/let-control-flow.md -#, fuzzy -msgid "`while let` expressions" -msgstr "Expresii 'while let'" +msgid "`let else` expressions" +msgstr "Expresii `let else`" #: src/pattern-matching/let-control-flow.md -#, fuzzy -msgid "`match` expressions" -msgstr "Expresii 'match'" +msgid "`while let` expressions" +msgstr "Expresii `while let`" #: src/pattern-matching/let-control-flow.md msgid "" @@ -5822,56 +5577,45 @@ msgid "" "whether a value matches a pattern:" msgstr "" "Expresia [`if let`](https://doc.rust-lang.org/reference/expressions/if-expr." -"html#if-let-expressions) vă permite să executați un cod diferit în funcție " -"de potrivirea unei valori cu un șablon:" +"html#if-let-expressions) vă permite să executați un cod diferit în funcție de " +"potrivirea unei valori cu un șablon:" #: src/pattern-matching/let-control-flow.md #, fuzzy msgid "\"slept for {:?}\"" -msgstr "\"dormit pentru {:?}\"" - -#: src/pattern-matching/let-control-flow.md -#, fuzzy -msgid "`let else` expressions" -msgstr "Expresii while let" +msgstr "\"slept for {:?}\"" #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "" -"For the common case of matching a pattern and returning from the function, " -"use [`let else`](https://doc.rust-lang.org/rust-by-example/flow_control/" -"let_else.html). The \"else\" case must diverge (`return`, `break`, or panic " -"- anything but falling off the end of the block)." +"For the common case of matching a pattern and returning from the function, use " +"[`let else`](https://doc.rust-lang.org/rust-by-example/flow_control/let_else." +"html). The \"else\" case must diverge (`return`, `break`, or panic - anything " +"but falling off the end of the block)." msgstr "" -"Pentru cazul obișnuit de potrivire a unui model și de întoarcere din " -"funcție, utilizați [`let else`](https://doc.rust-lang.org/rust-by-example/" -"flow_control/let_else.html). Cazul \"else\" trebuie să difere (`return`, " -"`break` sau panică - orice altceva în afară de căderea de la sfârșitul " -"blocului)." +"Pentru cazul obișnuit de potrivire a unui model și de întoarcere din funcție, " +"utilizați [`let else`](https://doc.rust-lang.org/rust-by-example/flow_control/" +"let_else.html). Cazul \"else\" trebuie să difere (`return`, `break` sau panică " +"- orice altceva în afară de continuarea de la sfârșitul blocului)." #: src/pattern-matching/let-control-flow.md -#, fuzzy -msgid "\"got None\"" -msgstr "\"Nu am primit nimic\"" +msgid "\"not a hex digit\"" +msgstr "\"nu e o cifră hexadecimală\"" #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "\"got empty string\"" -msgstr "\"a primit un șir gol\"" +msgstr "\"am primit un șir gol\"" #: src/pattern-matching/let-control-flow.md -#, fuzzy -msgid "\"not a hex digit\"" -msgstr "\"nu o cifră hexagonală\"" +msgid "\"got None\"" +msgstr "\"nu am primit nimic\"" #: src/pattern-matching/let-control-flow.md src/pattern-matching/solution.md msgid "\"result: {:?}\"" -msgstr "\"result: {:?}\"" +msgstr "\"rezultat: {:?}\"" #: src/pattern-matching/let-control-flow.md src/generics/trait-bounds.md -#: src/smart-pointers/solution.md src/testing/solution.md -#: src/android/testing.md src/android/testing/googletest.md -#, fuzzy +#: src/smart-pointers/solution.md src/testing/solution.md src/android/testing.md +#: src/android/testing/googletest.md msgid "\"foo\"" msgstr "\"foo\"" @@ -5881,74 +5625,66 @@ msgid "" "reference/expressions/loop-expr.html#predicate-pattern-loops) variant which " "repeatedly tests a value against a pattern:" msgstr "" -"Ca și în cazul lui `if let`, există o variantă [`while let`](https://doc." -"rust-lang.org/reference/expressions/loop-expr.html#predicate-pattern-loops) " -"care testează în mod repetat o valoare în raport cu un model:" +"Ca și în cazul lui `if let`, există o variantă [`while let`](https://doc.rust-" +"lang.org/reference/expressions/loop-expr.html#predicate-pattern-loops) care " +"testează în mod repetat o valoare în raport cu un model:" #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "" -"Here [`String::pop`](https://doc.rust-lang.org/stable/std/string/struct." -"String.html#method.pop) returns `Some(c)` until the string is empty, after " -"which it will return `None`. The `while let` lets us keep iterating through " -"all items." +"Here [`String::pop`](https://doc.rust-lang.org/stable/std/string/struct.String." +"html#method.pop) returns `Some(c)` until the string is empty, after which it " +"will return `None`. The `while let` lets us keep iterating through all items." msgstr "" -"Aici, iteratorul returnat de `v.into_iter()` va returna un `Option` la " -"fiecare apel la `next()`. Acesta returnează `Some(x)` până când termină, " -"după care va returna `None`. Metoda `while let` ne permite să continuăm " -"iterația prin toate elementele." +"Aici [`String::pop`](https://doc.rust-lang.org/stable/std/string/struct.String." +"html#method.pop) returnează `Some(c)` pâna când se golește tot șirul, apoi va " +"returna `None`. `while let` ne permite să iterăm prin toate elementele." #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "if-let" -msgstr "Fluxul de control" +msgstr "if-let" #: src/pattern-matching/let-control-flow.md msgid "" -"Unlike `match`, `if let` does not have to cover all branches. This can make " -"it more concise than `match`." +"Unlike `match`, `if let` does not have to cover all branches. This can make it " +"more concise than `match`." msgstr "" -"Spre deosebire de `match`, `if let` nu trebuie să acopere toate ramurile. " -"Acest lucru îl poate face mai concis decât `match`." +"Spre deosebire de `match`, `if let` nu trebuie să acopere toate ramurile. Acest " +"lucru îl poate face mai concis decât `match`." #: src/pattern-matching/let-control-flow.md msgid "A common usage is handling `Some` values when working with `Option`." msgstr "" -"O utilizare obișnuită este manipularea valorilor `Some` atunci când se " -"lucrează cu `Option`." +"O utilizare obișnuită este manipularea valorilor `Some` atunci când se lucrează " +"cu `Option`." #: src/pattern-matching/let-control-flow.md msgid "" "Unlike `match`, `if let` does not support guard clauses for pattern matching." msgstr "" "Spre deosebire de `match`, `if let` nu acceptă clauze de protecție pentru " -"potrivirea de tipare." +"potrivirea de șabloane." #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "let-else" msgstr "let-else" #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "" -"`if-let`s can pile up, as shown. The `let-else` construct supports " -"flattening this nested code. Rewrite the awkward version for students, so " -"they can see the transformation." +"`if-let`s can pile up, as shown. The `let-else` construct supports flattening " +"this nested code. Rewrite the awkward version for students, so they can see the " +"transformation." msgstr "" -"`if-let`s se poate acumula, după cum se arată. Construcția `let-else` " -"permite aplatizarea acestui cod imbricate. Rescrieți versiunea ciudată " -"pentru elevi, astfel încât aceștia să poată vedea transformarea." +"Construcțiile `if-let` se pot acumula. Construcția `let-else` permite " +"aplatizarea acestui cod imbricat. Rescrieți versiunea complicată pentru a ajuta " +"cursanții să vadă transformarea." #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "The rewritten version is:" msgstr "Versiunea rescrisă este:" #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "while-let" -msgstr "bucle `while let`" +msgstr "while-let" #: src/pattern-matching/let-control-flow.md msgid "" @@ -5959,187 +5695,159 @@ msgstr "" "potrivește cu modelul." #: src/pattern-matching/let-control-flow.md -#, fuzzy msgid "" -"You could rewrite the `while let` loop as an infinite loop with an if " -"statement that breaks when there is no value to unwrap for `name.pop()`. The " -"`while let` provides syntactic sugar for the above scenario." +"You could rewrite the `while let` loop as an infinite loop with an if statement " +"that breaks when there is no value to unwrap for `name.pop()`. The `while let` " +"provides syntactic sugar for the above scenario." msgstr "" -"Ați putea rescrie bucla `while let` ca o buclă infinită cu o instrucțiune if " +"Ați putea rescrie bucla `while let` ca o buclă infinită cu o instrucțiune `if` " "care se întrerupe atunci când nu mai există nicio valoare de desfăcut pentru " -"`iter.next()`. `while let` oferă zahăr sintactic pentru scenariul de mai sus." +"`name.pop()`. Construcția `while let` oferă o simplificare sintactică pentru " +"scenariul de mai sus." #: src/pattern-matching/exercise.md -#, fuzzy msgid "Let's write a simple recursive evaluator for arithmetic expressions." msgstr "Să scriem un evaluator recursiv pentru expresii aritmetice simplu." #: src/pattern-matching/exercise.md -#, fuzzy msgid "" -"The `Box` type here is a smart pointer, and will be covered in detail later " -"in the course. An expression can be \"boxed\" with `Box::new` as seen in the " +"The `Box` type here is a smart pointer, and will be covered in detail later in " +"the course. An expression can be \"boxed\" with `Box::new` as seen in the " "tests. To evaluate a boxed expression, use the deref operator (`*`) to " "\"unbox\" it: `eval(*boxed_expr)`." msgstr "" -"Tipul `Box` de aici este un pointer inteligent și va fi tratat în detaliu " -"mai târziu în curs. O expresie poate fi \"încadrată\" cu `Box::new`, așa cum " -"se vede în teste. Pentru a evalua o expresie încadrată, utilizați operatorul " -"de diferențiere pentru a o \"despacheta\": `eval(*boxed_expr)`." +"Tipul `Box` de aici este un pointer inteligent și va fi tratat în detaliu mai " +"târziu în curs. O expresie poate fi \"încadrată\" cu `Box::new`, așa cum se " +"vede în teste. Pentru a evalua o expresie încadrată, utilizați operatorul de " +"diferențiere pentru a o \"despacheta\": `eval(*boxed_expr)`." #: src/pattern-matching/exercise.md -#, fuzzy msgid "" "Some expressions cannot be evaluated and will return an error. The standard " "[`Result`](https://doc.rust-lang.org/std/result/enum.Result." -"html) type is an enum that represents either a successful value " -"(`Ok(Value)`) or an error (`Err(String)`). We will cover this type in detail " -"later." +"html) type is an enum that represents either a successful value (`Ok(Value)`) " +"or an error (`Err(String)`). We will cover this type in detail later." msgstr "" -"Unele expresii nu pot fi evaluate și vor returna o eroare. Tipul `Res` " -"reprezintă fie o valoare de succes, fie o eroare cu un mesaj. Acest tip este " -"foarte asemănător cu `Result` din biblioteca standard, pe care îl vom vedea " -"mai târziu." +"Unele expresii nu pot fi evaluate și vor returna o eroare. Tipul standard " +"[`Result`](https://doc.rust-lang.org/std/result/enum.Result." +"html) este o enumerație care reprezintă fie o valoare de succes (`Ok(Value)`) " +"sau o eroare (`Err(String)`). Vom studia ulterior acest tip." #: src/pattern-matching/exercise.md -#, fuzzy msgid "" "Copy and paste the code into the Rust playground, and begin implementing " -"`eval`. The final product should pass the tests. It may be helpful to use " -"`todo!()` and get the tests to pass one-by-one. You can also skip a test " -"temporarily with `#[ignore]`:" +"`eval`. The final product should pass the tests. It may be helpful to use `todo!" +"()` and get the tests to pass one-by-one. You can also skip a test temporarily " +"with `#[ignore]`:" msgstr "" "Copiați și lipiți codul în locul de joacă Rust și începeți să implementați " -"`eval`. Produsul final ar trebui să treacă testele. Poate fi util să " -"folosiți `todo!()` și să obțineți testele să treacă unul câte unul." +"`eval`. Produsul final ar trebui să treacă testele. Poate fi util să folosiți " +"`todo!()` și să faceți testele să treacă unul câte unul. Puteți sări temporar " +"peste execuția unui test cu `#[ignore]`:" #: src/pattern-matching/exercise.md -#, fuzzy msgid "" "If you finish early, try writing a test that results in division by zero or " "integer overflow. How could you handle this with `Result` instead of a panic?" msgstr "" -"Dacă terminați mai devreme, încercați să scrieți un test care are ca " -"rezultat o depășire de număr întreg. Cum ați putea gestiona acest lucru cu " -"`Res::Err` în loc de o panică?" +"Dacă terminați mai devreme, încercați să scrieți un test care are ca rezultat o " +"depășire de număr întreg. Cum ați putea gestiona acest lucru cu `Result` în loc " +"de o panică?" #: src/pattern-matching/exercise.md src/pattern-matching/solution.md -#, fuzzy msgid "/// An operation to perform on two subexpressions.\n" msgstr "/// O operație care trebuie efectuată asupra a două subexpresii.\n" #: src/pattern-matching/exercise.md src/pattern-matching/solution.md -#, fuzzy msgid "/// An expression, in tree form.\n" msgstr "/// O expresie, în formă de arbore.\n" #: src/pattern-matching/exercise.md src/pattern-matching/solution.md -#, fuzzy msgid "/// An operation on two subexpressions.\n" msgstr "/// O operație asupra a două subexpresii.\n" #: src/pattern-matching/exercise.md src/pattern-matching/solution.md -#, fuzzy msgid "/// A literal value\n" msgstr "/// O valoare literală\n" #: src/pattern-matching/exercise.md src/pattern-matching/solution.md -#, fuzzy msgid "\"division by zero\"" -msgstr "\"împărțirea la zero\"" +msgstr "\"împărțire la zero\"" #: src/pattern-matching/solution.md -#, fuzzy msgid "\"expr: {:?}\"" msgstr "\"expr: {:?}\"" #: src/methods-and-traits.md -#, fuzzy msgid "[Methods](./methods-and-traits/methods.md) (10 minutes)" msgstr "[Metode](./methods-and-traits/methods.md) (10 minute)" #: src/methods-and-traits.md -#, fuzzy msgid "[Traits](./methods-and-traits/traits.md) (15 minutes)" -msgstr "[Trăsături](./methods-and-traits/traits.md) (10 minute)" +msgstr "[Trăsături](./methods-and-traits/traits.md) (15 minute)" #: src/methods-and-traits.md -#, fuzzy msgid "[Deriving](./methods-and-traits/deriving.md) (3 minutes)" -msgstr "[Derivare](./methods-and-traits/deriving.md) (5 minute)" +msgstr "[Derivare](./methods-and-traits/deriving.md) (3 minute)" #: src/methods-and-traits.md -#, fuzzy -msgid "" -"[Exercise: Generic Logger](./methods-and-traits/exercise.md) (20 minutes)" +msgid "[Exercise: Generic Logger](./methods-and-traits/exercise.md) (20 minutes)" msgstr "" -"[Exercițiu: Logger generic](./methods-and-traits/exercise.md) (20 minute)" +"[Exercițiu: Jurnalizator generic](./methods-and-traits/exercise.md) (20 minute)" #: src/methods-and-traits/methods.md -#, fuzzy msgid "" -"Rust allows you to associate functions with your new types. You do this with " -"an `impl` block:" +"Rust allows you to associate functions with your new types. You do this with an " +"`impl` block:" msgstr "" -"Rust vă permite să asociați funcții cu noile dvs. tipuri. Acest lucru se " -"face cu ajutorul unui bloc `impl`:" +"Rust vă permite să asociați funcții cu noile dvs. tipuri. Acest lucru se face " +"cu ajutorul unui bloc `impl`:" #: src/methods-and-traits/methods.md -#, fuzzy msgid "// No receiver, a static method\n" msgstr "// Fără receptor, o metodă statică\n" #: src/methods-and-traits/methods.md -#, fuzzy msgid "// Exclusive borrowed read-write access to self\n" msgstr "// Acces exclusiv împrumutat de citire-scriere pentru sine\n" #: src/methods-and-traits/methods.md -#, fuzzy msgid "// Shared and read-only borrowed access to self\n" msgstr "// Acces împrumutat partajat și numai pentru citire la sine\n" #: src/methods-and-traits/methods.md -#, fuzzy msgid "\"Recorded {} laps for {}:\"" msgstr "\"Înregistrat {} ture pentru {}:\"" #: src/methods-and-traits/methods.md -#, fuzzy msgid "\"Lap {idx}: {lap} sec\"" msgstr "\"Tur {idx}: {lap} sec\"" #: src/methods-and-traits/methods.md -#, fuzzy msgid "// Exclusive ownership of self\n" -msgstr "// Proprietatea exclusivă a sinelui\n" +msgstr "// Proprietatea exclusivă pentru `self`\n" #: src/methods-and-traits/methods.md -#, fuzzy msgid "\"Race {} is finished, total lap time: {}\"" msgstr "\"Cursa {} s-a încheiat, timp total pe tur: {}\"" #: src/methods-and-traits/methods.md -#, fuzzy msgid "\"Monaco Grand Prix\"" msgstr "\"Marele Premiu de la Monaco\"" #: src/methods-and-traits/methods.md -#, fuzzy msgid "// race.add_lap(42);\n" msgstr "// race.add_lap(42);\n" #: src/methods-and-traits/methods.md -#, fuzzy msgid "" -"The `self` arguments specify the \"receiver\" - the object the method acts " -"on. There are several common receivers for a method:" +"The `self` arguments specify the \"receiver\" - the object the method acts on. " +"There are several common receivers for a method:" msgstr "" -"Simbolul `&self` de mai sus indică faptul că metoda împrumută obiectul în " -"mod imuabil. Există și alți receptori posibili pentru o metodă:" +"Argumentul `self` indică \"receptorul\" - obiectul asupra căruia metoda " +"acționează. Există mai mulți receptori frecvenți pentru o metodă:" #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "`&self`: borrows the object from the caller using a shared and immutable " "reference. The object can be used again afterwards." @@ -6148,7 +5856,6 @@ msgstr "" "imuabilă. Obiectul poate fi utilizat din nou ulterior." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "`&mut self`: borrows the object from the caller using a unique and mutable " "reference. The object can be used again afterwards." @@ -6157,85 +5864,73 @@ msgstr "" "mutabilă. Obiectul poate fi utilizat din nou ulterior." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "`self`: takes ownership of the object and moves it away from the caller. The " "method becomes the owner of the object. The object will be dropped " "(deallocated) when the method returns, unless its ownership is explicitly " "transmitted. Complete ownership does not automatically mean mutability." msgstr "" -"`self`: preia proprietatea asupra obiectului și îl îndepărtează de la " -"apelant. Metoda devine proprietarul obiectului. Obiectul va fi abandonat " -"(dezalocat) la întoarcerea metodei, cu excepția cazului în care proprietatea " -"sa este transmisă în mod explicit. Proprietatea completă nu înseamnă automat " -"mutabilitate." +"`self`: preia proprietatea asupra obiectului și îl cedează de la apelant. " +"Metoda devine proprietarul obiectului. Obiectul va fi abandonat (dealocat) la " +"întoarcerea metodei, cu excepția cazului în care proprietatea sa este transmisă " +"în mod explicit. Proprietatea completă nu înseamnă automat mutabilitate." #: src/methods-and-traits/methods.md -#, fuzzy msgid "`mut self`: same as above, but the method can mutate the object." msgstr "`mut self`: la fel ca mai sus, dar metoda poate muta obiectul." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "No receiver: this becomes a static method on the struct. Typically used to " "create constructors which are called `new` by convention." msgstr "" -"Fără receptor: aceasta devine o metodă statică pe structura. Se utilizează " -"de obicei pentru a crea constructori care sunt numiți `new` prin convenție." +"Fără receptor: aceasta devine o metodă statică pe structura. Se utilizează de " +"obicei pentru a crea constructori care sunt numiți `new` prin convenție." #: src/methods-and-traits/methods.md -#, fuzzy msgid "It can be helpful to introduce methods by comparing them to functions." -msgstr "" -"Poate fi utilă introducerea metodelor prin compararea lor cu funcțiile." +msgstr "Poate fi utilă introducerea metodelor prin compararea lor cu funcțiile." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "Methods are called on an instance of a type (such as a struct or enum), the " "first parameter represents the instance as `self`." msgstr "" -"Metodele sunt apelate pe o instanță a unui tip (cum ar fi un struct sau " -"enum), primul parametru reprezintă instanța ca `self`." +"Metodele sunt apelate pe o instanță a unui tip (cum ar fi un struct sau enum), " +"primul parametru reprezintă instanța ca `self`." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "Developers may choose to use methods to take advantage of method receiver " -"syntax and to help keep them more organized. By using methods we can keep " -"all the implementation code in one predictable place." +"syntax and to help keep them more organized. By using methods we can keep all " +"the implementation code in one predictable place." msgstr "" "Dezvoltatorii pot alege să folosească metode pentru a profita de sintaxa " "receptorului de metode și pentru a le menține mai bine organizate. Prin " -"utilizarea metodelor putem păstra tot codul de implementare într-un singur " -"loc previzibil." +"utilizarea metodelor putem păstra toată implementarea într-un singur loc " +"previzibil." #: src/methods-and-traits/methods.md -#, fuzzy msgid "Point out the use of the keyword `self`, a method receiver." msgstr "Indicați utilizarea cuvântului cheie `self`, un receptor de metodă." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" -"Show that it is an abbreviated term for `self: Self` and perhaps show how " -"the struct name could also be used." +"Show that it is an abbreviated term for `self: Self` and perhaps show how the " +"struct name could also be used." msgstr "" "Arătați că este un termen prescurtat pentru \"sine\": Self` și, eventual, " "arătați cum ar putea fi folosit și numele structurii." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" -"Explain that `Self` is a type alias for the type the `impl` block is in and " -"can be used elsewhere in the block." +"Explain that `Self` is a type alias for the type the `impl` block is in and can " +"be used elsewhere in the block." msgstr "" "Explicați că `Self` este un alias de tip pentru tipul în care se află blocul " "`impl` și poate fi utilizat în altă parte a blocului." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" "Note how `self` is used like other structs and dot notation can be used to " "refer to individual fields." @@ -6244,28 +5939,24 @@ msgstr "" "puncte poate fi utilizată pentru a se referi la câmpuri individuale." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" -"This might be a good time to demonstrate how the `&self` differs from `self` " -"by trying to run `finish` twice." +"This might be a good time to demonstrate how the `&self` differs from `self` by " +"trying to run `finish` twice." msgstr "" "Acesta ar putea fi un moment bun pentru a demonstra cum diferă `&self` de " -"`self` prin modificarea codului și încercarea de a rula say_hello de două " -"ori." +"`self` prin modificarea codului și încercarea de a rula `finish` de două ori." #: src/methods-and-traits/methods.md -#, fuzzy msgid "" -"Beyond variants on `self`, there are also [special wrapper types](https://" -"doc.rust-lang.org/reference/special-types-and-traits.html) allowed to be " -"receiver types, such as `Box`." +"Beyond variants on `self`, there are also [special wrapper types](https://doc." +"rust-lang.org/reference/special-types-and-traits.html) allowed to be receiver " +"types, such as `Box`." msgstr "" -"În afară de variantele lui `self`, există și [tipuri speciale de înveliș]" -"(https://doc.rust-lang.org/reference/special-types-and-traits.html) care pot " -"fi tipuri de receptor, cum ar fi `Box`." +"În afară de variantele lui `self`, există și [tipuri speciale adaptor](https://" +"doc.rust-lang.org/reference/special-types-and-traits.html) care pot fi tipuri " +"de receptor, cum ar fi `Box`." #: src/methods-and-traits/traits.md -#, fuzzy msgid "" "Rust lets you abstract over types with traits. They're similar to interfaces:" msgstr "" @@ -6273,116 +5964,101 @@ msgstr "" "sunt similare cu interfețele:" #: src/methods-and-traits/traits.md -#, fuzzy msgid "/// Return a sentence from this pet.\n" -msgstr "// Reexportați tipurile din acest modul.\n" +msgstr "// Întoarce un mesaj de la acest animal de companie.\n" #: src/methods-and-traits/traits.md -#, fuzzy msgid "/// Print a string to the terminal greeting this pet.\n" -msgstr "/// Tipărește un mesaj de salut pe ieșirea standard.\n" +msgstr "" +"/// Tipărește în terminal un mesaj de salut pentru acest animal de companie.\n" #: src/methods-and-traits/traits.md -#, fuzzy msgid "" -"A trait defines a number of methods that types must have in order to " -"implement the trait." +"A trait defines a number of methods that types must have in order to implement " +"the trait." msgstr "" "O trăsătură definește un număr de metode pe care tipurile trebuie să le aibă " "pentru a implementa trăsătura respectivă." #: src/methods-and-traits/traits.md -#, fuzzy msgid "" -"In the \"Generics\" segment, next, we will see how to build functionality " -"that is generic over all types implementing a trait." +"In the \"Generics\" segment, next, we will see how to build functionality that " +"is generic over all types implementing a trait." msgstr "" "În continuare, în segmentul \"Generics\", vom vedea cum să construim o " -"funcționalitate care este generică pentru toate tipurile care implementează " -"o trăsătură." +"funcționalitate care este generică pentru toate tipurile care implementează o " +"trăsătură." #: src/methods-and-traits/traits/implementing.md -#, fuzzy msgid "\"Oh you're a cutie! What's your name? {}\"" msgstr "\"Oh, ești un drăguț! Cum te cheamă? {}\"" -#: src/methods-and-traits/traits/implementing.md +#: src/methods-and-traits/traits/implementing.md src/generics/dyn-trait.md #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "\"Woof, my name is {}!\"" msgstr "\"Woof, numele meu este {}!\"" -#: src/methods-and-traits/traits/implementing.md +#: src/methods-and-traits/traits/implementing.md src/generics/dyn-trait.md #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "\"Fido\"" msgstr "\"Fido\"" #: src/methods-and-traits/traits/implementing.md -#, fuzzy msgid "" -"To implement `Trait` for `Type`, you use an `impl Trait for Type { .. }` " -"block." +"To implement `Trait` for `Type`, you use an `impl Trait for Type { .. }` block." msgstr "" -"Trăsăturile sunt implementate într-un `impl pentru { .. }`." +"Pentru a implementa `Trăit` pentru `Type`, se folosește un bloc `impl Trait for " +"Type { .. }`." #: src/methods-and-traits/traits/implementing.md -#, fuzzy msgid "" -"Unlike Go interfaces, just having matching methods is not enough: a `Cat` " -"type with a `talk()` method would not automatically satisfy `Pet` unless it " -"is in an `impl Pet` block." +"Unlike Go interfaces, just having matching methods is not enough: a `Cat` type " +"with a `talk()` method would not automatically satisfy `Pet` unless it is in an " +"`impl Pet` block." msgstr "" "Spre deosebire de interfețele Go, simpla potrivire a metodelor nu este " "suficientă: un tip `Cat` cu o metodă `talk()` nu ar satisface automat `Pet` " "decât dacă se află într-un bloc `impl Pet`." #: src/methods-and-traits/traits/implementing.md -#, fuzzy msgid "" "Traits may provide default implementations of some methods. Default " -"implementations can rely on all the methods of the trait. In this case, " -"`greet` is provided, and relies on `talk`." +"implementations can rely on all the methods of the trait. In this case, `greet` " +"is provided, and relies on `talk`." msgstr "" -"Trăsăturile pot specifica metode preimplementate (implicite) și metode pe " -"care utilizatorii trebuie să le implementeze ei înșiși. Metodele cu " -"implementări implicite se pot baza pe metodele obligatorii." +"Trăsăturile pot specifica metode implementate implicit. Implementările " +"implicite se pot baza pe toate metodele trăsăturii. În acest caz, `greet` este " +"furnizat și se bazează pe `talk`." #: src/methods-and-traits/traits/supertraits.md -#, fuzzy msgid "" "A trait can require that types implementing it also implement other traits, " -"called _supertraits_. Here, any type implementing `Pet` must implement " -"`Animal`." +"called _supertraits_. Here, any type implementing `Pet` must implement `Animal`." msgstr "" "O trăsătură poate impune ca tipurile care o implementează să implementeze și " -"alte trăsături, numite _supertraits_. Aici, orice tip care implementează " -"`Pet` trebuie să implementeze `Animal`." +"alte trăsături, numite _supertraits_. Aici, orice tip care implementează `Pet` " +"trebuie să implementeze `Animal`." #: src/methods-and-traits/traits/supertraits.md -#: src/concurrency/async-control-flow/select.md -#, fuzzy msgid "\"Rex\"" msgstr "\"Rex\"" #: src/methods-and-traits/traits/supertraits.md -#, fuzzy msgid "\"{} has {} legs\"" -msgstr "\"{} are {} ani\"" +msgstr "\"{} are {} picioare\"" #: src/methods-and-traits/traits/supertraits.md -#, fuzzy msgid "" -"This is sometimes called \"trait inheritance\" but students should not " -"expect this to behave like OO inheritance. It just specifies an additional " -"requirement on implementations of a trait." +"This is sometimes called \"trait inheritance\" but students should not expect " +"this to behave like OO inheritance. It just specifies an additional requirement " +"on implementations of a trait." msgstr "" -"Acest lucru se numește uneori \"moștenire de trăsături\", dar studenții nu " -"trebuie să se aștepte ca aceasta să se comporte ca moștenirea OO. Aceasta " -"specifică doar o cerință suplimentară pentru implementările unei trăsături." +"Acest lucru se numește uneori \"moștenire de trăsături\", dar cursanții nu " +"trebuie să se aștepte ca aceasta să se comporte ca moștenirea din programarea " +"orientată pe obiecte.Moștenirea de trăsături specifică doar o cerință " +"suplimentară pentru implementările unei trăsături." #: src/methods-and-traits/traits/associated-types.md -#, fuzzy msgid "" "Associated types are placeholder types which are supplied by the trait " "implementation." @@ -6396,26 +6072,22 @@ msgid "\"{:?}\"" msgstr "\"{:?}\"" #: src/methods-and-traits/traits/associated-types.md -#, fuzzy msgid "" "Associated types are sometimes also called \"output types\". The key " "observation is that the implementer, not the caller, chooses this type." msgstr "" "Tipurile asociate sunt uneori denumite și \"tipuri de ieșire\". Observația " -"cheie este că acest tip este ales de către implementator, nu de către " -"apelant." +"cheie este că acest tip este ales de către implementator, nu de către apelant." #: src/methods-and-traits/traits/associated-types.md -#, fuzzy msgid "" "Many standard library traits have associated types, including arithmetic " "operators and `Iterator`." msgstr "" -"Multe trăsături de bibliotecă standard au tipuri asociate, inclusiv " -"operatorii aritmetici și `Iterator`." +"Multe trăsături din biblioteca standard au tipuri asociate, inclusiv operatorii " +"aritmetici și `Iterator`." #: src/methods-and-traits/deriving.md -#, fuzzy msgid "" "Supported traits can be automatically implemented for your custom types, as " "follows:" @@ -6424,63 +6096,54 @@ msgstr "" "personalizate, după cum urmează:" #: src/methods-and-traits/deriving.md -#, fuzzy msgid "// Default trait adds `default` constructor.\n" msgstr "// Caracteristica implicită adaugă constructorul `default`.\n" #: src/methods-and-traits/deriving.md -#, fuzzy msgid "// Clone trait adds `clone` method.\n" -msgstr "// Trăsătura Clone adaugă metoda `clone`.\n" +msgstr "// Trăsătura de clonare adaugă metoda `clone`.\n" #: src/methods-and-traits/deriving.md -#, fuzzy msgid "\"EldurScrollz\"" msgstr "\"EldurScrollz\"" #: src/methods-and-traits/deriving.md -#, fuzzy msgid "// Debug trait adds support for printing with `{:?}`.\n" -msgstr "// Trăsătura Debug adaugă suport pentru imprimarea cu `{:?}`.\n" +msgstr "// Trăsătura de debug adaugă suport pentru imprimarea cu `{:?}`.\n" #: src/methods-and-traits/deriving.md -#, fuzzy msgid "\"{:?} vs. {:?}\"" -msgstr "Șir de caractere (string) versus str" +msgstr "\"{:?} vs. {:?}\"" #: src/methods-and-traits/deriving.md -#, fuzzy msgid "" "Derivation is implemented with macros, and many crates provide useful derive " "macros to add useful functionality. For example, `serde` can derive " "serialization support for a struct using `#[derive(Serialize)]`." msgstr "" -"Derivarea este implementată cu macro-uri, iar multe crates oferă macro-uri " -"derive utile pentru a adăuga funcționalități utile. De exemplu, `serde` " -"poate deriva suportul de serializare pentru o structură folosind " +"Derivarea este implementată cu macro-uri, iar multe crates oferă macro-uri de " +"derivare utile pentru a adăuga funcționalități suplimentare. De exemplu, " +"`serde` poate deriva suportul de serializare pentru o structură folosind " "`#[derive(Serialize)]`." #: src/methods-and-traits/exercise.md -#, fuzzy msgid "Exercise: Logger Trait" -msgstr "Exercițiu: Logger generic" +msgstr "Exercițiu: Trăsătura de jurnalizare" #: src/methods-and-traits/exercise.md -#, fuzzy msgid "" "Let's design a simple logging utility, using a trait `Logger` with a `log` " -"method. Code which might log its progress can then take an `&impl Logger`. " -"In testing, this might put messages in the test logfile, while in a " -"production build it would send messages to a log server." +"method. Code which might log its progress can then take an `&impl Logger`. In " +"testing, this might put messages in the test logfile, while in a production " +"build it would send messages to a log server." msgstr "" -"Să proiectăm un utilitar de logare simplu, folosind o trăsătură `Logger` cu " -"o metodă `log`. Codul care ar putea înregistra progresul său poate lua un " -"`&impl Logger`. În timpul testelor, acesta ar putea plasa mesaje în fișierul " -"de jurnal de test, în timp ce în cazul unei compilări de producție ar " -"trimite mesaje către un server de jurnal." +"Să proiectăm un utilitar de jurnalizare simplu, folosind o trăsătură `Logger` " +"cu o metodă `log`. Codul care ar putea înregistra progresul său poate lua un " +"`&impl Logger`. În timpul testelor, acesta ar putea plasa mesaje în fișierul de " +"jurnal de test, în timp ce în cazul unei compilări de producție ar trimite " +"mesaje către un server de jurnal." #: src/methods-and-traits/exercise.md -#, fuzzy msgid "" "However, the `StderrLogger` given below logs all messages, regardless of " "verbosity. Your task is to write a `VerbosityFilter` type that will ignore " @@ -6491,306 +6154,272 @@ msgstr "" "`VerbosityFilter` care să ignore mesajele care depășesc o verbozitate maximă." #: src/methods-and-traits/exercise.md -#, fuzzy msgid "" "This is a common pattern: a struct wrapping a trait implementation and " -"implementing that same trait, adding behavior in the process. What other " -"kinds of wrappers might be useful in a logging utility?" +"implementing that same trait, adding behavior in the process. What other kinds " +"of wrappers might be useful in a logging utility?" msgstr "" "Acesta este un model comun: o structură care înfășoară o implementare a unei " -"trăsături și care implementează aceeași trăsătură, adăugând comportament în " -"acest proces. Ce alte tipuri de învelișuri ar putea fi utile într-un " -"utilitar de logare?" +"trăsături și care implementează aceeași trăsătură, adăugând comportament " +"suplimnetar. Ce alte tipuri de învelișuri ar putea fi utile într-un utilitar de " +"logare?" #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md -#, fuzzy msgid "/// Log a message at the given verbosity level.\n" msgstr "/// Înregistrați un mesaj la nivelul de verbozitate dat.\n" #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md -#, fuzzy msgid "\"verbosity={verbosity}: {message}\"" -msgstr "\"verbosity={verbosity}: {message}\"" +msgstr "\"verbozitate={verbosity}: {message}\"" #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md -#, fuzzy msgid "\"FYI\"" -msgstr "\"FYI\"" +msgstr "\"Pentru informare\"" #: src/methods-and-traits/exercise.md src/methods-and-traits/solution.md -#, fuzzy msgid "\"Uhoh\"" msgstr "\"Uhoh\"" #: src/methods-and-traits/exercise.md -#, fuzzy msgid "// TODO: Define and implement `VerbosityFilter`.\n" msgstr "// TODO: Definiți și implementați `VerbosityFilter`.\n" #: src/methods-and-traits/solution.md -#, fuzzy msgid "/// Only log messages up to the given verbosity level.\n" msgstr "" -"/// Înregistrați numai mesajele de jurnal până la nivelul de verbozitate " -"dat.\n" +"/// Înregistrați numai mesajele de jurnal până la nivelul de verbozitate dat.\n" #: src/welcome-day-2-afternoon.md -#, fuzzy -msgid "[Generics](./generics.md) (40 minutes)" +msgid "[Generics](./generics.md) (45 minutes)" msgstr "[Generice](../generics.md) (45 minute)" #: src/welcome-day-2-afternoon.md -#, fuzzy -msgid "[Standard Library Types](./std-types.md) (1 hour and 20 minutes)" -msgstr "[Tipuri de bibliotecă standard](../std-types.md) (1 oră și 10 minute)" +msgid "[Standard Library Types](./std-types.md) (1 hour)" +msgstr "[Tipuri din biblioteca standard](../std-types.md) (1 oră)" #: src/welcome-day-2-afternoon.md -#, fuzzy -msgid "[Standard Library Traits](./std-traits.md) (1 hour and 40 minutes)" +msgid "[Standard Library Traits](./std-traits.md) (1 hour and 10 minutes)" msgstr "" -"[Trăsături ale bibliotecii standard](../std-traits.md) (1 oră și 40 de " +"[Trăsături incluse în biblioteca standard](../std-traits.md) (1 oră și 10 " "minute)" #: src/welcome-day-2-afternoon.md -#, fuzzy -msgid "Including 10 minute breaks, this session should take about 4 hours" +msgid "" +"Including 10 minute breaks, this session should take about 3 hours and 15 " +"minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 2 ore și 55 de minute" +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " +"aproximativ 3 ore și 15 minute" #: src/generics.md -#, fuzzy msgid "[Generic Functions](./generics/generic-functions.md) (5 minutes)" msgstr "[Funcții generice](./generics/generic-functions.md) (5 minute)" #: src/generics.md -#, fuzzy msgid "[Generic Data Types](./generics/generic-data.md) (10 minutes)" msgstr "[Tipuri de date generice](./generics/generic-data.md) (15 minute)" #: src/generics.md -#, fuzzy msgid "[Trait Bounds](./generics/trait-bounds.md) (10 minutes)" msgstr "[Limite ale trăsăturilor](./generics/trait-bounds.md) (10 minute)" #: src/generics.md -#, fuzzy msgid "[impl Trait](./generics/impl-trait.md) (5 minutes)" msgstr "[impl Trait](./generics/impl-trait.md) (5 minute)" #: src/generics.md -#, fuzzy +msgid "[dyn Trait](./generics/dyn-trait.md) (5 minutes)" +msgstr "[dyn Trait](./generics/dyn-trait.md) (5 minute)" + +#: src/generics.md msgid "[Exercise: Generic min](./generics/exercise.md) (10 minutes)" -msgstr "[Exercițiu: Generic min](./generics/exercise.md) (10 minute)" +msgstr "" +"[Exercițiu: Implementare generică 'min'](./generics/exercise.md) (10 minute)" + +#: src/generics.md src/iterators.md src/testing.md +msgid "This segment should take about 45 minutes" +msgstr "Acest segment ar trebui să dureze aproximativ 45 de minute" #: src/generics/generic-functions.md -#, fuzzy msgid "" -"Rust supports generics, which lets you abstract algorithms or data " -"structures (such as sorting or a binary tree) over the types used or stored." +"Rust supports generics, which lets you abstract algorithms or data structures " +"(such as sorting or a binary tree) over the types used or stored." msgstr "" -"Rust suportă generice, ceea ce vă permite să abstractizați algoritmi sau " +"Rust suportă metode generice, ceea ce vă permite să abstractizați algoritmi sau " "structuri de date (cum ar fi sortarea sau un arbore binar) peste tipurile " "utilizate sau stocate." #: src/generics/generic-functions.md -#, fuzzy msgid "/// Pick `even` or `odd` depending on the value of `n`.\n" -msgstr "/// Alege `even` sau `odd` în funcție de valoarea lui `n`.\n" +msgstr "/// Alege `par` sau `impar` în funcție de valoarea lui `n`.\n" #: src/generics/generic-functions.md -#, fuzzy msgid "\"picked a number: {:?}\"" msgstr "\"a ales un număr: {:?}\"" #: src/generics/generic-functions.md -#, fuzzy msgid "\"picked a tuple: {:?}\"" msgstr "\"a ales un tuple: {:?}\"" #: src/generics/generic-functions.md -#, fuzzy msgid "\"dog\"" msgstr "\"câine\"" #: src/generics/generic-functions.md -#, fuzzy msgid "\"cat\"" -msgstr "\"cat\"" +msgstr "\"pisică\"" #: src/generics/generic-functions.md -#, fuzzy msgid "" -"Rust infers a type for T based on the types of the arguments and return " -"value." +"Rust infers a type for T based on the types of the arguments and return value." msgstr "" -"Rust deduce un tip pentru T pe baza tipurilor argumentelor și a valorii de " -"returnare." +"Rust deduce un tip pentru T pe baza tipurilor argumentelor și a valorii " +"întoarse." #: src/generics/generic-functions.md -#, fuzzy msgid "" "This is similar to C++ templates, but Rust partially compiles the generic " -"function immediately, so that function must be valid for all types matching " -"the constraints. For example, try modifying `pick` to return `even + odd` if " -"`n == 0`. Even if only the `pick` instantiation with integers is used, Rust " -"still considers it invalid. C++ would let you do this." -msgstr "" -"Acest lucru este similar cu șabloanele C++, dar Rust compilează parțial " -"funcția generică imediat, astfel încât funcția trebuie să fie valabilă " -"pentru toate tipurile care corespund constrângerilor. De exemplu, încercați " -"să modificați `pick` pentru a returna `even + odd` dacă `n == 0`. Chiar dacă " -"se utilizează doar instanțierea `pick` cu numere întregi, Rust o consideră " -"în continuare invalidă. C++ v-ar permite să faceți acest lucru." +"function immediately, so that function must be valid for all types matching the " +"constraints. For example, try modifying `pick` to return `even + odd` if `n == " +"0`. Even if only the `pick` instantiation with integers is used, Rust still " +"considers it invalid. C++ would let you do this." +msgstr "" +"Acest lucru este similar cu șabloanele C++, dar Rust compilează parțial funcția " +"generică imediat, astfel încât funcția trebuie să fie valabilă pentru toate " +"tipurile care corespund constrângerilor. De exemplu, încercați să modificați " +"`pick` pentru a returna `par + impar` dacă `n == 0`. Chiar dacă se utilizează " +"doar instanțierea `pick` cu numere întregi, Rust o consideră în continuare " +"invalidă. C++ v-ar permite să faceți acest lucru." #: src/generics/generic-functions.md -#, fuzzy msgid "" -"Generic code is turned into non-generic code based on the call sites. This " -"is a zero-cost abstraction: you get exactly the same result as if you had " -"hand-coded the data structures without the abstraction." +"Generic code is turned into non-generic code based on the call sites. This is a " +"zero-cost abstraction: you get exactly the same result as if you had hand-coded " +"the data structures without the abstraction." msgstr "" -"Aceasta este o abstractizare cu costuri zero: obțineți exact același " -"rezultat ca și cum ați fi codat manual structurile de date fără " -"abstractizare." +"Codul generic este transformat în cod ne-generic în funcție de locul de " +"apelare. Aceasta este o abstractizare cu cost zero: obțineți același rezultat " +"ca și când structurile de date ar fi fost scrise manual, fără abstractizare." #: src/generics/generic-data.md -#, fuzzy msgid "You can use generics to abstract over the concrete field type:" msgstr "" "Puteți utiliza elementele generice pentru a face abstracție de tipul de câmp " "concret:" #: src/generics/generic-data.md -#, fuzzy msgid "\"{integer:?} and {float:?}\"" msgstr "\"{integer:?} și {float:?}\"" #: src/generics/generic-data.md -#, fuzzy msgid "\"coords: {:?}\"" msgstr "\"coords: {:?}\"" #: src/generics/generic-data.md -#, fuzzy msgid "" -"_Q:_ Why `T` is specified twice in `impl Point {}`? Isn't that " -"redundant?" +"_Q:_ Why `T` is specified twice in `impl Point {}`? Isn't that redundant?" msgstr "" -"întrebare: De ce `T` este specificat de două ori în `impl Point {}`? " -"Nu este redundant?" +"întrebare: De ce `T` este specificat de două ori în `impl Point {}`? Nu " +"este redundant?" #: src/generics/generic-data.md -#, fuzzy msgid "" -"This is because it is a generic implementation section for generic type. " -"They are independently generic." +"This is because it is a generic implementation section for generic type. They " +"are independently generic." msgstr "" -"Acest lucru se datorează faptului că este o secțiune de implementare " -"generică pentru un tip generic. Acestea sunt generice în mod independent." +"Acest lucru se datorează faptului că este o secțiune de implementare generică " +"pentru un tip generic. Acestea sunt generice în mod independent." #: src/generics/generic-data.md -#, fuzzy msgid "It means these methods are defined for any `T`." msgstr "Aceasta înseamnă că aceste metode sunt definite pentru orice `T`." #: src/generics/generic-data.md -#, fuzzy msgid "It is possible to write `impl Point { .. }`." -msgstr "Este posibil să se scrie `impl Point { .. }`. " +msgstr "Este posibil să se scrie `impl Point { .. }`." #: src/generics/generic-data.md -#, fuzzy msgid "" "`Point` is still generic and you can use `Point`, but methods in this " "block will only be available for `Point`." msgstr "" -"`Point` este în continuare generic și puteți utiliza `Point`, dar " -"metodele din acest bloc vor fi disponibile numai pentru `Point`." +"`Point` este în continuare generic și puteți utiliza `Point`, dar metodele " +"din acest bloc vor fi disponibile numai pentru `Point`." #: src/generics/generic-data.md -#, fuzzy msgid "" "Try declaring a new variable `let p = Point { x: 5, y: 10.0 };`. Update the " -"code to allow points that have elements of different types, by using two " -"type variables, e.g., `T` and `U`." +"code to allow points that have elements of different types, by using two type " +"variables, e.g., `T` and `U`." msgstr "" "Încercați să declarați o nouă variabilă `let p = Point { x: 5, y: 10.0 };`. " -"Actualizați codul pentru a permite puncte care au elemente de tipuri " -"diferite, utilizând două variabile de tip, de exemplu, `T` și `U`." +"Actualizați codul pentru a permite puncte care au elemente de tipuri diferite, " +"utilizând două variabile de tip, de exemplu, `T` și `U`." #: src/generics/generic-traits.md -#, fuzzy msgid "" -"Traits can also be generic, just like types and functions. A trait's " -"parameters get concrete types when it is used." +"Traits can also be generic, just like types and functions. A trait's parameters " +"get concrete types when it is used." msgstr "" "Trăsăturile pot fi, de asemenea, generice, la fel ca tipurile și funcțiile. " "Parametrii unei trăsături primesc tipuri concrete atunci când aceasta este " "utilizată." #: src/generics/generic-traits.md -#, fuzzy msgid "\"Converted from integer: {from}\"" msgstr "\"Convertit din număr întreg: {from}\"" #: src/generics/generic-traits.md -#, fuzzy msgid "\"Converted from bool: {from}\"" msgstr "\"Convertit din bool: {from}\"" #: src/generics/generic-traits.md -#, fuzzy msgid "\"{from_int:?}, {from_bool:?}\"" msgstr "\"{from_int:?}, {from_bool:?}\"" #: src/generics/generic-traits.md -#, fuzzy msgid "" "The `From` trait will be covered later in the course, but its [definition in " "the `std` docs](https://doc.rust-lang.org/std/convert/trait.From.html) is " "simple." msgstr "" "Trăsătura `From` va fi abordată mai târziu în curs, dar [definiția sa din " -"documentația `std`](https://doc.rust-lang.org/std/convert/trait.From.html) " -"este simplă." +"documentația `std`](https://doc.rust-lang.org/std/convert/trait.From.html) este " +"simplă." #: src/generics/generic-traits.md -#, fuzzy msgid "" -"Implementations of the trait do not need to cover all possible type " -"parameters. Here, `Foo::From(\"hello\")` would not compile because there is " -"no `From<&str>` implementation for `Foo`." +"Implementations of the trait do not need to cover all possible type parameters. " +"Here, `Foo::from(\"hello\")` would not compile because there is no `From<&str>` " +"implementation for `Foo`." msgstr "" -"Nu este necesar ca implementările trăsăturii să acopere toți parametrii de " -"tip posibili. Aici, `Foo::From(\"hello\")` nu ar fi compilat deoarece nu " -"există o implementare `From<&str>` pentru `Foo`." +"Nu este necesar ca implementările trăsăturii să acopere toți parametrii de tip " +"posibili. Aici, `Foo::from(\"hello\")` nu ar fi compilat deoarece nu există o " +"implementare `From<&str>` pentru `Foo`." #: src/generics/generic-traits.md -#, fuzzy msgid "" "Generic traits take types as \"input\", while associated types are a kind of " -"\"output\" type. A trait can have multiple implementations for different " -"input types." +"\"output\" type. A trait can have multiple implementations for different input " +"types." msgstr "" "Trăsăturile generice iau tipuri ca \"intrare\", în timp ce tipurile asociate " "sunt un fel de tipuri de \"ieșire\". O trăsătură poate avea mai multe " "implementări pentru diferite tipuri de intrare." #: src/generics/generic-traits.md -#, fuzzy msgid "" -"In fact, Rust requires that at most one implementation of a trait match for " -"any type T. Unlike some other languages, Rust has no heuristic for choosing " -"the \"most specific\" match. There is work on adding this support, called " +"In fact, Rust requires that at most one implementation of a trait match for any " +"type T. Unlike some other languages, Rust has no heuristic for choosing the " +"\"most specific\" match. There is work on adding this support, called " "[specialization](https://rust-lang.github.io/rfcs/1210-impl-specialization." "html)." msgstr "" "De fapt, Rust cere ca cel mult o implementare a unei trăsături să se " -"potrivească pentru orice tip T. Spre deosebire de alte limbaje, Rust nu are " -"o euristică pentru alegerea celei mai \"specifice\" potriviri. Se lucrează " -"la adăugarea acestui suport, numit [specializare](https://rust-lang.github." -"io/rfcs/1210-impl-specialization.html)." +"potrivească pentru orice tip T. Spre deosebire de alte limbaje, Rust nu are o " +"euristică pentru alegerea celei mai \"specifice\" potriviri. Se lucrează la " +"adăugarea acestui suport, numit [specializare](https://rust-lang.github.io/" +"rfcs/1210-impl-specialization.html)." #: src/generics/trait-bounds.md msgid "" @@ -6802,50 +6431,24 @@ msgstr "" "metodele acestei trăsături." #: src/generics/trait-bounds.md -msgid "You can do this with `T: Trait` or `impl Trait`:" +msgid "You can do this with `T: Trait`:" msgstr "Puteți face acest lucru cu `T: Trait` sau `impl Trait`:" #: src/generics/trait-bounds.md -#, fuzzy msgid "// struct NotClonable;\n" msgstr "// struct NotClonable;\n" #: src/generics/trait-bounds.md -#, fuzzy msgid "\"{pair:?}\"" -msgstr "" -"```rust,editable\n" -"fn duplicate(a: T) -> (T, T) {\n" -" (a.clone(), a.clone())\n" -"}\n" -"\n" -"// Syntactic sugar for:\n" -"// fn add_42_millions>(x: T) -> i32 {\n" -"fn add_42_millions(x: impl Into) -> i32 {\n" -" x.into() + 42_000_000\n" -"}\n" -"\n" -"// struct NotClonable;\n" -"\n" -"fn main() {\n" -" let foo = String::from(\"foo\");\n" -" let pair = duplicate(foo);\n" -" println!(\"{pair:?}\");\n" -"\n" -" let many = add_42_millions(42_i8);\n" -" println!(\"{many}\");\n" -" let many_more = add_42_millions(10_000_000);\n" -" println!(\"{many_more}\");\n" -"}\n" -"```" +msgstr "\"{pair:?}\"" #: src/generics/trait-bounds.md -#, fuzzy msgid "Try making a `NonClonable` and passing it to `duplicate`." -msgstr "Încercați să creați un `NonClonable` și să îl treceți la `duplicate`." +msgstr "" +"Încercați să creați un `NonClonable` și să îl folosiți ca parametru la " +"`duplicate`." #: src/generics/trait-bounds.md -#, fuzzy msgid "When multiple traits are necessary, use `+` to join them." msgstr "" "Atunci când sunt necesare mai multe trăsături, utilizați `+` pentru a le uni." @@ -6865,21 +6468,20 @@ msgstr "Are caracteristici suplimentare care îl fac mai puternic." #: src/generics/trait-bounds.md msgid "" -"If someone asks, the extra feature is that the type on the left of \":\" can " -"be arbitrary, like `Option`." +"If someone asks, the extra feature is that the type on the left of \":\" can be " +"arbitrary, like `Option`." msgstr "" -"Dacă cineva întreabă, caracteristica suplimentară este că tipul din stânga " -"lui \":\" poate fi arbitrar, cum ar fi `Option`." +"Dacă cineva întreabă, caracteristica suplimentară este că tipul din stânga lui " +"\":\" poate fi arbitrar, cum ar fi `Option`." #: src/generics/trait-bounds.md -#, fuzzy msgid "" "Note that Rust does not (yet) support specialization. For example, given the " "original `duplicate`, it is invalid to add a specialized `duplicate(a: u32)`." msgstr "" -"Rețineți că Rust nu suportă (încă) specializarea. De exemplu, având în " -"vedere `duplicate` original, nu este valid să se adauge un `duplicate(a: " -"u32)` specializat." +"Rețineți că Rust nu suportă (încă) specializarea. De exemplu, având în vedere " +"`duplicate` original, nu este valid să se adauge un `duplicate(a: u32)` " +"specializat." #: src/generics/impl-trait.md msgid "" @@ -6890,41 +6492,34 @@ msgstr "" "utilizată în argumentele funcțiilor și în valorile returnate:" #: src/generics/impl-trait.md -#, fuzzy msgid "" "// Syntactic sugar for:\n" "// fn add_42_millions>(x: T) -> i32 {\n" msgstr "" -"// Zahăr sintactic pentru:\n" +"// Simplificări sintactice pentru:\n" "// fn add_42_millions<T: Into>(x: T) -> i32 {\n" #: src/generics/impl-trait.md -#, fuzzy msgid "\"{many}\"" -msgstr "" -"Proiectul Rust găzduiește multe resurse. Acestea se referă la Rust în " -"general:" +msgstr "\"{many}\"" #: src/generics/impl-trait.md -#, fuzzy msgid "\"{many_more}\"" msgstr "\"{many_more}\"" #: src/generics/impl-trait.md -#, fuzzy msgid "\"debuggable: {debuggable:?}\"" -msgstr "\"debuggable: {debuggable:?}\"" +msgstr "\"Depanabil: {debuggable:?}\"" #: src/generics/impl-trait.md -#, fuzzy msgid "" -"`impl Trait` allows you to work with types which you cannot name. The " -"meaning of `impl Trait` is a bit different in the different positions." +"`impl Trait` allows you to work with types which you cannot name. The meaning " +"of `impl Trait` is a bit different in the different positions." msgstr "" -"Semnificația lui `impl Trait` este puțin diferită în diferitele poziții." +"`impl Trait` ne permite să lucrăm cu tipuri care nu pot fi încă denumite. " +"Semnificația sa este puțin diferită în diferite contexte." #: src/generics/impl-trait.md -#, fuzzy msgid "" "For a parameter, `impl Trait` is like an anonymous generic parameter with a " "trait bound." @@ -6933,201 +6528,246 @@ msgstr "" "trăsătură legată." #: src/generics/impl-trait.md -#, fuzzy msgid "" "For a return type, it means that the return type is some concrete type that " "implements the trait, without naming the type. This can be useful when you " "don't want to expose the concrete type in a public API." msgstr "" -"Pentru un tip de returnare, înseamnă că tipul de returnare este un tip " -"concret care implementează trăsătura, fără a numi tipul. Acest lucru poate " -"fi util atunci când nu doriți să expuneți tipul concret într-o API publică." +"Un tip de returnare este un tip concret care implementează trăsătura, fără a fi " +"numit. Acest lucru poate fi util atunci când nu doriți să expuneți tipul " +"concret într-un API public." #: src/generics/impl-trait.md -#, fuzzy msgid "" -"Inference is hard in return position. A function returning `impl Foo` picks " -"the concrete type it returns, without writing it out in the source. A " -"function returning a generic type like `collect() -> B` can return any " -"type satisfying `B`, and the caller may need to choose one, such as with " -"`let x: Vec<_> = foo.collect()` or with the turbofish, `foo.collect::" -">()`." +"Inference is hard in return position. A function returning `impl Foo` picks the " +"concrete type it returns, without writing it out in the source. A function " +"returning a generic type like `collect() -> B` can return any type " +"satisfying `B`, and the caller may need to choose one, such as with `let x: " +"Vec<_> = foo.collect()` or with the turbofish, `foo.collect::>()`." msgstr "" "Inferența este dificilă în poziția de retur. O funcție care returnează `impl " "Foo` alege tipul concret pe care îl returnează, fără a scrie acest lucru în " -"sursă. O funcție care returnează un tip generic, cum ar fi `collect() -" -"> B`, poate returna orice tip care satisface `B`, iar apelantul poate fi " -"nevoit să aleagă unul, ca în cazul lui `let x: Vec<_> = foo.collect()` sau " -"cu turbofishul, `foo.collect::<Vec<_>>()`." +"sursă. O funcție care returnează un tip generic, cum ar fi `collect() -> " +"B`, poate returna orice tip care satisface `B`, iar apelantul poate fi nevoit " +"să aleagă unul, ca în cazul lui `let x: Vec<_> = foo.collect()` sau cu " +"turbofish, `foo.collect::<Vec<_>>()`." #: src/generics/impl-trait.md -#, fuzzy msgid "" -"What is the type of `debuggable`? Try `let debuggable: () = ..` to see what " -"the error message shows." +"What is the type of `debuggable`? Try `let debuggable: () = ..` to see what the " +"error message shows." msgstr "" -"Care este tipul de `debuggable`? Încercați `let debuggable: () = ..` pentru " +"Care este tipul pentru `debuggable`? Încercați `let debuggable: () = ..` pentru " "a vedea ce afișează mesajul de eroare." +#: src/generics/dyn-trait.md +msgid "" +"In addition to using traits for static dispatch via generics, Rust also " +"supports using them for type-erased, dynamic dispatch via trait objects:" +msgstr "" +"Pe lângă utilizarea trăsăturilor pentru dispecerizarea statică prin generice, " +"Rust suportă, de asemenea, utilizarea acestora pentru dispecerizarea dinamică, " +"cu eliminarea tipului, prin intermediul obiectelor trăsătură:" + +#: src/generics/dyn-trait.md src/smart-pointers/trait-objects.md +msgid "\"Miau!\"" +msgstr "\"Miau!\"" + +#: src/generics/dyn-trait.md +msgid "// Uses generics and static dispatch.\n" +msgstr "// Utilizează generice și dispecerizare statică.\n" + +#: src/generics/dyn-trait.md src/smart-pointers/trait-objects.md +msgid "\"Hello, who are you? {}\"" +msgstr "\"Bună ziua, cine ești? {}\"" + +#: src/generics/dyn-trait.md +msgid "// Uses type-erasure and dynamic dispatch.\n" +msgstr "// Folosește ștergerea tipului și dispecerizarea dinamică.\n" + +#: src/generics/dyn-trait.md +msgid "" +"Generics, including `impl Trait`, use monomorphization to create a specialized " +"instance of the function for each different type that the generic is " +"instantiated with. This means that calling a trait method from within a generic " +"function still uses static dispatch, as the compiler has full type information " +"and can resolve which type's trait implementation to use." +msgstr "" +"Genericele, inclusiv `impl Trait`, utilizează monomorfizarea pentru a crea o " +"instanță specializată a funcției pentru fiecare tip diferit cu care genericul " +"este instanțiat. Aceasta înseamnă că apelarea unei metode trait din cadrul unei " +"funcții generice utilizează în continuare dispecerizarea statică, deoarece " +"compilatorul dispune de informații complete despre tip și poate determina ce " +"implementare de trăsătură a tipului trebuie utilizată." + +#: src/generics/dyn-trait.md +msgid "" +"When using `dyn Trait`, it instead uses dynamic dispatch through a [virtual " +"method table](https://en.wikipedia.org/wiki/Virtual_method_table) (vtable). " +"This means that there's a single version of `fn dynamic` that is used " +"regardless of what type of `Pet` is passed in." +msgstr "" +"Atunci când se utilizează `dyn Trait`, se utilizează în schimb dispecerizarea " +"dinamică prin intermediul unei [tabele de metode virtuale](https://en.wikipedia." +"org/wiki/Virtual_method_table) (vtable). Aceasta înseamnă că există o singură " +"versiune a `fn dynamic` care este utilizată indiferent de tipul de `Pet` care " +"este trecut." + +#: src/generics/dyn-trait.md +msgid "" +"When using `dyn Trait`, the trait object needs to be behind some kind of " +"indirection. In this case it's a reference, though smart pointer types like " +"`Box` can also be used (this will be demonstrated on day 3)." +msgstr "" +"Atunci când se utilizează `dyn Trait`, obiectul trait trebuie să se afle în " +"spatele unui anumit tip de indirectare. În acest caz este vorba de o referință, " +"deși pot fi utilizate și tipuri de pointeri inteligenți precum `Box` (acest " +"lucru va fi arătat în ziua 3)." + +#: src/generics/dyn-trait.md +msgid "" +"At runtime, a `&dyn Pet` is represented as a \"fat pointer\", i.e. a pair of " +"two pointers: One pointer points to the concrete object that implements `Pet`, " +"and the other points to the vtable for the trait implementation for that type. " +"When calling the `talk` method on `&dyn Pet` the compiler looks up the function " +"pointer for `talk` in the vtable and then invokes the function, passing the " +"pointer to the `Dog` or `Cat` into that function. The compiler doesn't need to " +"know the concrete type of the `Pet` in order to do this." +msgstr "" +"În timpul execuției, un `&dyn Pet` este reprezentat ca un \"fat pointer\", " +"adică o pereche de doi pointeri: Un pointer trimite la obiectul concret care " +"implementează `Pet`, iar celălalt trimite la vtable pentru implementarea " +"trăsăturii pentru tipul respectiv. La apelarea metodei `talk` pe `&dyn Pet`, " +"compilatorul caută pointerul funcției `talk` în tabela v și apoi invocă " +"funcția, trecând pointerul la `Dog` sau `Cat` în acea funcție. Compilatorul nu " +"trebuie să cunoască tipul concret al `Pet` pentru a face acest lucru." + +#: src/generics/dyn-trait.md +msgid "" +"A `dyn Trait` is considered to be \"type-erased\", because we no longer have " +"compile-time knowledge of what the concrete type is." +msgstr "" +"Un `dyn Trait` este considerat a fi \"tip-erased\", deoarece nu mai avem " +"cunoștințe în timpul compilării despre ce tip concret este." + #: src/generics/exercise.md -#, fuzzy msgid "" "In this short exercise, you will implement a generic `min` function that " -"determines the minimum of two values, using the [`Ord`](https://doc.rust-" -"lang.org/stable/std/cmp/trait.Ord.html) trait." +"determines the minimum of two values, using the [`Ord`](https://doc.rust-lang." +"org/stable/std/cmp/trait.Ord.html) trait." msgstr "" "În acest scurt exercițiu, veți implementa o funcție generică `min` care " -"determină minimul a două valori, utilizând o trăsătură `LessThan`." +"determină minimul a două valori, utilizând trăsătura [`Ord`](https://doc.rust-" +"lang.org/stable/std/cmp/trait.Ord.html) ." #: src/generics/exercise.md -#, fuzzy msgid "// TODO: implement the `min` function used in `main`.\n" msgstr "// TODO: implementați funcția `min` folosită în `main`.\n" #: src/generics/exercise.md src/generics/solution.md #: src/error-handling/exercise.md src/error-handling/solution.md -#, fuzzy msgid "'z'" -msgstr "" -"```rust,editable\n" -"fn main() {\n" -" inspect(&[0, -2, 3]);\n" -" inspect(&[0, -2, 3, 4]);\n" -"}\n" -"\n" -"#[rustfmt::skip]\n" -"fn inspect(slice: &[i32]) {\n" -" println!(\"Spune-mi despre {slice:?}\");\n" -" match slice {\n" -" &[0, y, z] => println!(\"Primul element 0, y = {y}, și z = {z}\"),\n" -" &[1, ..] => println!(\"Primul element este 1 și restul sunt " -"ignorate\"),\n" -" _ => println!(\"Toate elementele au fost ignorate\"),\n" -" }\n" -"}\n" -"```" +msgstr "'z'" #: src/generics/exercise.md src/generics/solution.md -#, fuzzy msgid "'7'" -msgstr "'x'" +msgstr "'7'" #: src/generics/exercise.md src/generics/solution.md msgid "'1'" msgstr "'1'" #: src/generics/exercise.md src/generics/solution.md -#, fuzzy msgid "\"goodbye\"" -msgstr "\"La revedere\"" +msgstr "\"la revedere\"" #: src/generics/exercise.md src/generics/solution.md -#, fuzzy msgid "\"bat\"" -msgstr "\"bat\"" +msgstr "\"liliac\"" #: src/generics/exercise.md src/generics/solution.md -#, fuzzy msgid "\"armadillo\"" -msgstr "\"Armadillo\"" +msgstr "\"armadillo\"" #: src/generics/exercise.md -#, fuzzy msgid "" "Show students the [`Ord`](https://doc.rust-lang.org/stable/std/cmp/trait.Ord." "html) trait and [`Ordering`](https://doc.rust-lang.org/stable/std/cmp/enum." "Ordering.html) enum." msgstr "" -"[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) și " -"[`OsString`](https://doc.rust-lang.org/std/ffi/struct.OsString.html)" +"Arătați cursanților trăsătură [`Ord`](https://doc.rust-lang.org/stable/std/cmp/" +"trait.Ord.html) și enumerația [`Ordering`](https://doc.rust-lang.org/stable/std/" +"cmp/enum.Ordering.html)." #: src/std-types.md -#, fuzzy msgid "[Standard Library](./std-types/std.md) (3 minutes)" msgstr "[Biblioteca standard](./std-types/std.md) (3 minute)" #: src/std-types.md -#, fuzzy msgid "[Documentation](./std-types/docs.md) (5 minutes)" msgstr "[Documentație](./std-types/docs.md) (5 minute)" #: src/std-types.md -#, fuzzy msgid "[Option](./std-types/option.md) (10 minutes)" msgstr "[Opțiune](./std-types/option.md) (10 minute)" #: src/std-types.md -#, fuzzy -msgid "[Result](./std-types/result.md) (10 minutes)" -msgstr "[Rezultat](./std-types/result.md) (10 minute)" +msgid "[Result](./std-types/result.md) (5 minutes)" +msgstr "[Rezultat](./std-types/result.md) (5 minute)" #: src/std-types.md -#, fuzzy -msgid "[String](./std-types/string.md) (10 minutes)" -msgstr "[String](./std-types/string.md) (10 minute)" +msgid "[String](./std-types/string.md) (5 minutes)" +msgstr "[Șir](./std-types/string.md) (5 minute)" #: src/std-types.md -#, fuzzy -msgid "[Vec](./std-types/vec.md) (10 minutes)" -msgstr "[Vec](./std-types/vec.md) (10 minute)" +msgid "[Vec](./std-types/vec.md) (5 minutes)" +msgstr "[Vec](./std-types/vec.md) (5 minute)" #: src/std-types.md -#, fuzzy -msgid "[HashMap](./std-types/hashmap.md) (10 minutes)" -msgstr "[HashMap](./std-types/hashmap.md) (10 minute)" +msgid "[HashMap](./std-types/hashmap.md) (5 minutes)" +msgstr "[HashMap](./std-types/hashmap.md) (5 minute)" #: src/std-types.md -#, fuzzy msgid "[Exercise: Counter](./std-types/exercise.md) (20 minutes)" -msgstr "[Exercițiu: Contorizare](./std-types/exercise.md) (10 minute)" - -#: src/std-types.md -#, fuzzy -msgid "This segment should take about 1 hour and 20 minutes" -msgstr "Acest segment ar trebui să dureze aproximativ 1 oră și 10 minute" +msgstr "[Exercițiu: Contor](./std-types/exercise.md) (20 de minute)" #: src/std-types.md -#, fuzzy msgid "" "For each of the slides in this section, spend some time reviewing the " "documentation pages, highlighting some of the more common methods." msgstr "" -"Pentru fiecare dintre diapozitivele din această secțiune, petreceți ceva " -"timp examinând paginile de documentație, subliniind unele dintre cele mai " -"comune metode." +"Pentru fiecare dintre diapozitivele din această secțiune, petreceți ceva timp " +"examinând paginile de documentație, subliniind unele dintre cele mai comune " +"metode." #: src/std-types/std.md -#, fuzzy msgid "" -"Rust comes with a standard library which helps establish a set of common " -"types used by Rust libraries and programs. This way, two libraries can work " -"together smoothly because they both use the same `String` type." +"Rust comes with a standard library which helps establish a set of common types " +"used by Rust libraries and programs. This way, two libraries can work together " +"smoothly because they both use the same `String` type." msgstr "" -"Rust vine cu o bibliotecă standard care ajută la stabilirea unui set de " -"tipuri comune utilizate de bibliotecile și programele Rust. În acest fel, " -"două biblioteci pot lucra împreună fără probleme, deoarece ambele utilizează " -"același tip `String`." +"Rust vine cu o bibliotecă standard care ajută la stabilirea unui set de tipuri " +"comune utilizate de bibliotecile și programele Rust. În acest fel, două " +"biblioteci pot lucra împreună fără probleme, deoarece ambele utilizează același " +"tip `String`." #: src/std-types/std.md -#, fuzzy msgid "" -"In fact, Rust contains several layers of the Standard Library: `core`, " -"`alloc` and `std`." +"In fact, Rust contains several layers of the Standard Library: `core`, `alloc` " +"and `std`." msgstr "" "De fapt, Rust conține mai multe straturi ale bibliotecii standard: `core`, " "`alloc` și `std`." #: src/std-types/std.md -#, fuzzy msgid "" -"`core` includes the most basic types and functions that don't depend on " -"`libc`, allocator or even the presence of an operating system." +"`core` includes the most basic types and functions that don't depend on `libc`, " +"allocator or even the presence of an operating system." msgstr "" -"`core` include cele mai de bază tipuri și funcții care nu depind de `libc`, " -"de alocator sau chiar de prezența unui sistem de operare." +"`core` include cele mai de bază tipuri și funcții care nu depind de `libc`, de " +"alocator sau chiar de prezența unui sistem de operare." #: src/std-types/std.md -#, fuzzy msgid "" "`alloc` includes types which require a global heap allocator, such as `Vec`, " "`Box` and `Arc`." @@ -7136,55 +6776,48 @@ msgstr "" "`Vec`, `Box` și `Arc`." #: src/std-types/std.md -#, fuzzy -msgid "" -"Embedded Rust applications often only use `core`, and sometimes `alloc`." +msgid "Embedded Rust applications often only use `core`, and sometimes `alloc`." msgstr "" -"Aplicațiile Rust încorporate folosesc adesea doar `core` și uneori `alloc`." +"Aplicațiile Rust care rulează direct pe dispozitive folosesc adesea doar `core` " +"și uneori `alloc`." #: src/std-types/docs.md -#, fuzzy msgid "Rust comes with extensive documentation. For example:" msgstr "Rust este însoțit de o documentație extinsă. De exemplu:" #: src/std-types/docs.md -#, fuzzy msgid "" "All of the details about [loops](https://doc.rust-lang.org/stable/reference/" "expressions/loop-expr.html)." msgstr "" -"Dacă doriți să ieșiți mai devreme dintr-o buclă, utilizați [`break`](https://" -"doc.rust-lang.org/reference/expressions/loop-expr.html#break-expressions)," +"Toate detaliile despre [bucle](https://doc.rust-lang.org/stable/reference/" +"expressions/loop-expr.html)." #: src/std-types/docs.md -#, fuzzy msgid "" -"Primitive types like [`u8`](https://doc.rust-lang.org/stable/std/primitive." -"u8.html)." +"Primitive types like [`u8`](https://doc.rust-lang.org/stable/std/primitive.u8." +"html)." msgstr "" -"Tipuri primitive precum [`u8`](https://doc.rust-lang.org/stable/std/" -"primitive.u8.html)." +"Tipuri primitive precum [`u8`](https://doc.rust-lang.org/stable/std/primitive." +"u8.html)." #: src/std-types/docs.md -#, fuzzy msgid "" "Standard library types like [`Option`](https://doc.rust-lang.org/stable/std/" -"option/enum.Option.html) or [`BinaryHeap`](https://doc.rust-lang.org/stable/" -"std/collections/struct.BinaryHeap.html)." +"option/enum.Option.html) or [`BinaryHeap`](https://doc.rust-lang.org/stable/std/" +"collections/struct.BinaryHeap.html)." msgstr "" -"[`str`](https://doc.rust-lang.org/std/primitive.str.html) și [`String`]" -"(https://doc.rust-lang.org/std/string/struct.String.html)" +"Tipuri din biblioteca standard cum sunt [`Option`](https://doc.rust-lang.org/" +"stable/std/option/enum.Option.html) sau [`BinaryHeap`](https://doc.rust-lang." +"org/stable/std/collections/struct.BinaryHeap.html)." #: src/std-types/docs.md -#, fuzzy msgid "In fact, you can document your own code:" msgstr "De fapt, vă puteți documenta propriul cod:" #: src/std-types/docs.md -#, fuzzy msgid "" -"/// Determine whether the first argument is divisible by the second " -"argument.\n" +"/// Determine whether the first argument is divisible by the second argument.\n" "///\n" "/// If the second argument is zero, the result is false.\n" msgstr "" @@ -7193,146 +6826,106 @@ msgstr "" "/// Dacă al doilea argument este zero, rezultatul este fals.\n" #: src/std-types/docs.md -#, fuzzy msgid "" "The contents are treated as Markdown. All published Rust library crates are " "automatically documented at [`docs.rs`](https://docs.rs) using the [rustdoc]" -"(https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html) tool. It is " -"idiomatic to document all public items in an API using this pattern." +"(https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html) tool. It is idiomatic " +"to document all public items in an API using this pattern." msgstr "" -"Conținutul este tratat ca Markdown. Toate crates cu bibliotecă Rust " -"publicate sunt documentate automat la [`docs.rs`](https://docs.rs) folosind " -"instrumentul [rustdoc](https://doc.rust-lang.org/rustdoc/what-is-rustdoc." -"html). Documentarea tuturor elementelelor publice dintr-un API, folosind " -"acest model, este idiomatică. Fragmentele de cod pot documenta utilizarea și " -"vor fi folosite ca teste unitare." +"Conținutul este tratat ca Markdown. Toate crates cu bibliotecă Rust publicate " +"sunt documentate automat la [`docs.rs`](https://docs.rs) folosind [rustdoc]" +"(https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html). Documentarea tuturor " +"elementelor publice dintr-un API, folosind acest model, este idiomatică. " +"Fragmentele de cod pot documenta utilizarea și vor fi folosite ca teste unitare." #: src/std-types/docs.md -#, fuzzy msgid "" -"To document an item from inside the item (such as inside a module), use `//!" -"` or `/*! .. */`, called \"inner doc comments\":" +"To document an item from inside the item (such as inside a module), use `//!` " +"or `/*! .. */`, called \"inner doc comments\":" msgstr "" "Pentru a documenta un element din interiorul elementului (cum ar fi în " -"interiorul unui modul), utilizați `//!` sau `/*! ... */`, denumite " -"\"comentarii interne ale documentului\":" +"interiorul unui modul), utilizați `//!` sau `/*! ... */`, denumite \"comentarii " +"interne ale documentului\":" #: src/std-types/docs.md -#, fuzzy msgid "" -"//! This module contains functionality relating to divisibility of " -"integers.\n" +"//! This module contains functionality relating to divisibility of integers.\n" msgstr "" "//! Acest modul conține funcționalități referitoare la divizibilitatea " "numerelor întregi.\n" #: src/std-types/docs.md -#, fuzzy msgid "" -"Show students the generated docs for the `rand` crate at ." +"Show students the generated docs for the `rand` crate at ." msgstr "" -"Arătați studenților documentația generată pentru crăiasa `rand` la [`docs.rs/" -"rand`](https://docs.rs/rand)." +"Arătați studenților documentația generată pentru crate-ul `rand` la ." #: src/std-types/option.md msgid "Option" msgstr "Opțiune" #: src/std-types/option.md -#, fuzzy msgid "" -"We have already seen some use of `Option`. It stores either a value of " -"type `T` or nothing. For example, [`String::find`](https://doc.rust-lang.org/" -"stable/std/string/struct.String.html#method.find) returns an `Option`." +"We have already seen some use of `Option`. It stores either a value of type " +"`T` or nothing. For example, [`String::find`](https://doc.rust-lang.org/stable/" +"std/string/struct.String.html#method.find) returns an `Option`." msgstr "" -"Am văzut deja cum se utilizează `Opțiunea`. Acesta stochează fie o " -"valoare de tip `T`, fie nimic. De exemplu, [`String::find`](https://doc.rust-" -"lang.org/stable/std/string/struct.String.html#method.find) returnează o " -"`Opțiune`." +"Am văzut deja cum se utilizează `Option`. Acesta stochează fie o valoare de " +"tip `T`, fie nimic. De exemplu, [`String::find`](https://doc.rust-lang.org/" +"stable/std/string/struct.String.html#method.find) returnează `Option`." #: src/std-types/option.md -#, fuzzy msgid "\"Löwe 老虎 Léopard Gepardi\"" msgstr "\"Löwe 老虎 Léopard Gepardi\"" #: src/std-types/option.md -#, fuzzy msgid "'é'" msgstr "'é'" #: src/std-types/option.md -#, fuzzy msgid "\"find returned {position:?}\"" -msgstr "\"find returned {position:?}\"" +msgstr "\"find a întors{position:?}\"" #: src/std-types/option.md -#, fuzzy msgid "'Z'" -msgstr "" -"```rust,editable\n" -"fn main() {\n" -" inspect(&[0, -2, 3]);\n" -" inspect(&[0, -2, 3, 4]);\n" -"}\n" -"\n" -"#[rustfmt::skip]\n" -"fn inspect(slice: &[i32]) {\n" -" println!(\"Spune-mi despre {slice:?}\");\n" -" match slice {\n" -" &[0, y, z] => println!(\"Primul element 0, y = {y}, și z = {z}\"),\n" -" &[1, ..] => println!(\"Primul element este 1 și restul sunt " -"ignorate\"),\n" -" _ => println!(\"Toate elementele au fost ignorate\"),\n" -" }\n" -"}\n" -"```" +msgstr "'Z'" #: src/std-types/option.md -#, fuzzy msgid "\"Character not found\"" msgstr "\"Caracterul nu a fost găsit\"" #: src/std-types/option.md -#, fuzzy msgid "`Option` is widely used, not just in the standard library." -msgstr "" -"`Option` și `Result` sunt utilizate pe scară largă, nu doar în biblioteca " -"standard." +msgstr "`Option` este utilizat pe scară largă, nu doar în biblioteca standard." #: src/std-types/option.md -#, fuzzy msgid "" "`unwrap` will return the value in an `Option`, or panic. `expect` is similar " "but takes an error message." msgstr "" -"`unwrap` va returna valoarea într-un `Option` sau va intra în panică. " -"`expect` este similar, dar primește un mesaj de eroare." +"`unwrap` va returna valoarea într-un `Option` sau va intra în panică. `expect` " +"este similar, dar primește un mesaj de eroare." #: src/std-types/option.md -#, fuzzy msgid "" -"You can panic on None, but you can't \"accidentally\" forget to check for " -"None." +"You can panic on None, but you can't \"accidentally\" forget to check for None." msgstr "" "Puteți intra în panică la None, dar nu puteți uita \"din greșeală\" să " "verificați None." #: src/std-types/option.md -#, fuzzy msgid "" "It's common to `unwrap`/`expect` all over the place when hacking something " "together, but production code typically handles `None` in a nicer fashion." msgstr "" -"Este obișnuit să se folosească `unwrap`/`expect` peste tot atunci când se " -"lucrează împreună, dar codul de producție tratează de obicei `None` într-un " -"mod mai plăcut." +"Uzual se folosesc `unwrap`/`expect` peste tot atunci când se lucrează împreună, " +"dar codul de producție tratează de obicei `None` într-un mod mai plăcut." #: src/std-types/option.md -#, fuzzy msgid "" -"The niche optimization means that `Option` often has the same size in " -"memory as `T`." +"The niche optimization means that `Option` often has the same size in memory " +"as `T`." msgstr "" "Optimizarea nișei înseamnă că `Opțiunea` are adesea aceeași dimensiune în " "memorie ca `T`." @@ -7342,78 +6935,67 @@ msgid "Result" msgstr "Rezultat" #: src/std-types/result.md -#, fuzzy msgid "" "`Result` is similar to `Option`, but indicates the success or failure of an " -"operation, each with a different type. This is similar to the `Res` defined " -"in the expression exercise, but generic: `Result` where `T` is used in " -"the `Ok` variant and `E` appears in the `Err` variant." +"operation, each with a different enum variant. It is generic: `Result` " +"where `T` is used in the `Ok` variant and `E` appears in the `Err` variant." msgstr "" "`Result` este similar cu `Option`, dar indică succesul sau eșecul unei " -"operații, fiecare cu un tip diferit. Acesta este similar cu `Res` definit în " -"exercițiul de exprimare, dar generic: `Result` unde `T` este folosit " -"în varianta `Ok` și `E` apare în varianta `Err`." +"operații, fiecare cu un tip diferit. Este generic: `Result` unde `T` este " +"folosit în varianta `Ok` și `E` apare în varianta `Err`." -#: src/std-types/result.md -#, fuzzy +#: src/std-types/result.md src/error-handling/result.md msgid "\"diary.txt\"" msgstr "\"diary.txt\"" -#: src/std-types/result.md -#, fuzzy +#: src/std-types/result.md src/error-handling/result.md msgid "\"Dear diary: {contents} ({bytes} bytes)\"" msgstr "\"Dragă jurnalule: {contents} ({bytes} bytes)\"" -#: src/std-types/result.md -#, fuzzy +#: src/std-types/result.md src/error-handling/result.md msgid "\"Could not read file content\"" msgstr "\"Nu s-a putut citi conținutul fișierului\"" -#: src/std-types/result.md -#, fuzzy +#: src/std-types/result.md src/error-handling/result.md msgid "\"The diary could not be opened: {err}\"" msgstr "\"Jurnalul nu a putut fi deschis: {err}\"" #: src/std-types/result.md -#, fuzzy msgid "" "As with `Option`, the successful value sits inside of `Result`, forcing the " -"developer to explicitly extract it. This encourages error checking. In the " -"case where an error should never happen, `unwrap()` or `expect()` can be " -"called, and this is a signal of the developer intent too." +"developer to explicitly extract it. This encourages error checking. In the case " +"where an error should never happen, `unwrap()` or `expect()` can be called, and " +"this is a signal of the developer intent too." msgstr "" "Ca și în cazul lui `Option`, valoarea de succes se află în interiorul lui " "`Result`, obligând dezvoltatorul să o extragă în mod explicit. Acest lucru " "încurajează verificarea erorilor. În cazul în care o eroare nu ar trebui să " -"apară niciodată, se poate apela la `unwrap()` sau `expect()`, iar acesta " -"este și el un semnal al intenției dezvoltatorului." +"apară niciodată, se poate apela la `unwrap()` sau `expect()`, iar acesta este " +"și el un semnal al intenției dezvoltatorului." #: src/std-types/result.md -#, fuzzy msgid "" -"`Result` documentation is a recommended read. Not during the course, but it " -"is worth mentioning. It contains a lot of convenience methods and functions " -"that help functional-style programming." +"`Result` documentation is a recommended read. Not during the course, but it is " +"worth mentioning. It contains a lot of convenience methods and functions that " +"help functional-style programming." msgstr "" -"documentația `Result` este o lectură recomandată. Nu în timpul cursului, dar " -"merită să fie menționată. Conține o mulțime de metode și funcții " -"convenabile care ajută la programarea în stil funcțional." +"Documentația `Result` este o lectură recomandată. Nu în timpul cursului, dar " +"merită să fie menționată. Conține o mulțime de metode și funcții convenabile " +"care ajută la programarea în stil funcțional." #: src/std-types/result.md -#, fuzzy msgid "" -"`Result` is the standard type to implement error handling as we will see on " -"Day 4." +"`Result` is the standard type to implement error handling as we will see on Day " +"4." msgstr "" -"`Result` este tipul standard pentru a implementa gestionarea erorilor, după " -"cum vom vedea în ziua 3." +"`Result` este tipul standard pentru a implementa gestionarea erorilor, după cum " +"vom vedea în ziua 4." #: src/std-types/string.md msgid "String" msgstr "Sir" #: src/std-types/string.md -#, fuzzy msgid "" "[`String`](https://doc.rust-lang.org/std/string/struct.String.html) is a " "growable UTF-8 encoded string:" @@ -7424,12 +7006,10 @@ msgstr "" #: src/std-types/string.md src/std-traits/read-and-write.md #: src/memory-management/review.md src/testing/unit-tests.md #: src/concurrency/threads/scoped.md -#, fuzzy msgid "\"Hello\"" -msgstr "\"hello\"" +msgstr "\"Bună\"" #: src/std-types/string.md -#, fuzzy msgid "\"s1: len = {}, capacity = {}\"" msgstr "\"s1: len = {}, capacity = {}\"" @@ -7438,73 +7018,64 @@ msgid "'!'" msgstr "'!'" #: src/std-types/string.md -#, fuzzy msgid "\"s2: len = {}, capacity = {}\"" msgstr "\"s2: len = {}, capacity = {}\"" #: src/std-types/string.md -#, fuzzy msgid "\"🇨🇭\"" msgstr "\"🇨🇭\"" #: src/std-types/string.md -#, fuzzy msgid "\"s3: len = {}, number of chars = {}\"" msgstr "\"s3: len = {}, număr de caractere = {}\"" #: src/std-types/string.md -#, fuzzy msgid "" "`String` implements [`Deref`](https://doc.rust-lang.org/std/" -"string/struct.String.html#deref-methods-str), which means that you can call " -"all `str` methods on a `String`." +"string/struct.String.html#deref-methods-str), which means that you can call all " +"`str` methods on a `String`." msgstr "" "`String` implementează [`Deref`](https://doc.rust-lang.org/std/" -"string/struct.String.html#deref-methods-str), ceea ce înseamnă că puteți " -"apela toate metodele `str` pe un `String`." +"string/struct.String.html#deref-methods-str), ceea ce înseamnă că puteți apela " +"toate metodele `str` pe un `String`." #: src/std-types/string.md -#, fuzzy msgid "" -"`String::new` returns a new empty string, use `String::with_capacity` when " -"you know how much data you want to push to the string." +"`String::new` returns a new empty string, use `String::with_capacity` when you " +"know how much data you want to push to the string." msgstr "" "`String::new` returnează un nou șir de caractere gol, utilizați `String::" "with_capacity` atunci când știți câte date doriți să introduceți în șir." #: src/std-types/string.md -#, fuzzy msgid "" -"`String::len` returns the size of the `String` in bytes (which can be " -"different from its length in characters)." +"`String::len` returns the size of the `String` in bytes (which can be different " +"from its length in characters)." msgstr "" -"`String::len` returnează dimensiunea șirului `String` în octeți (care poate " -"fi diferită de lungimea sa în caractere)." +"`String::len` returnează dimensiunea șirului `String` în octeți (care poate fi " +"diferită de lungimea sa în caractere)." #: src/std-types/string.md -#, fuzzy msgid "" "`String::chars` returns an iterator over the actual characters. Note that a " -"`char` can be different from what a human will consider a \"character\" due " -"to [grapheme clusters](https://docs.rs/unicode-segmentation/latest/" +"`char` can be different from what a human will consider a \"character\" due to " +"[grapheme clusters](https://docs.rs/unicode-segmentation/latest/" "unicode_segmentation/struct.Graphemes.html)." msgstr "" -"`String::chars` returnează un iterator peste caracterele actuale. Rețineți " -"că un `char` poate fi diferit de ceea ce un om va considera un \"caracter\" " -"din cauza [grapheme clusters](https://docs.rs/unicode-segmentation/latest/" +"`String::chars` returnează un iterator peste caracterele actuale. Rețineți că " +"un `char` poate fi diferit de ceea ce un om va considera un \"caracter\" din " +"cauza [grapheme clusters](https://docs.rs/unicode-segmentation/latest/" "unicode_segmentation/struct.Graphemes.html)." #: src/std-types/string.md -#, fuzzy msgid "" "When people refer to strings they could either be talking about `&str` or " "`String`." msgstr "" -"Atunci când oamenii se referă la șiruri de caractere, ei pot vorbi fie " -"despre `&str`, fie despre `String`." +"Atunci când oamenii se referă la șiruri de caractere, ei pot vorbi fie despre " +"`&str`, fie despre `String`." #: src/std-types/string.md -#, fuzzy msgid "" "When a type implements `Deref`, the compiler will let you " "transparently call methods from `T`." @@ -7513,7 +7084,6 @@ msgstr "" "permite să apelați în mod transparent metodele din `T`." #: src/std-types/string.md -#, fuzzy msgid "" "We haven't discussed the `Deref` trait yet, so at this point this mostly " "explains the structure of the sidebar in the documentation." @@ -7522,70 +7092,61 @@ msgstr "" "lucru explică în mare parte structura barei laterale din documentație." #: src/std-types/string.md -#, fuzzy msgid "" -"`String` implements `Deref` which transparently gives it " -"access to `str`'s methods." +"`String` implements `Deref` which transparently gives it access " +"to `str`'s methods." msgstr "" "`String` implementează `Deref`, ceea ce îi oferă în mod " "transparent acces la metodele lui `str`." #: src/std-types/string.md -#, fuzzy msgid "Write and compare `let s3 = s1.deref();` and `let s3 = &*s1;`." msgstr "Scrieți și comparați `let s3 = s1.deref();` și `let s3 = &*s1;`." #: src/std-types/string.md -#, fuzzy msgid "" "`String` is implemented as a wrapper around a vector of bytes, many of the " "operations you see supported on vectors are also supported on `String`, but " "with some extra guarantees." msgstr "" -"`String` este implementat ca un înveliș în jurul unui vector de octeți, " -"multe dintre operațiile pe care le vedeți acceptate pentru vectori sunt " -"acceptate și pentru `String`, dar cu unele garanții suplimentare." +"`String` este implementat ca un container în jurul unui vector de octeți, multe " +"dintre operațiile pe care le vedeți acceptate pentru vectori sunt acceptate și " +"pentru `String`, dar cu unele garanții suplimentare." #: src/std-types/string.md -#, fuzzy msgid "Compare the different ways to index a `String`:" msgstr "Comparați diferitele moduri de a indexa un `String`:" #: src/std-types/string.md -#, fuzzy msgid "" -"To a character by using `s3.chars().nth(i).unwrap()` where `i` is in-bound, " -"out-of-bounds." +"To a character by using `s3.chars().nth(i).unwrap()` where `i` is in-bound, out-" +"of-bounds." msgstr "" "La un caracter prin utilizarea `s3.chars().nth(i).unwrap()` unde `i` este în " "interiorul limitelor, în afara limitelor." #: src/std-types/string.md -#, fuzzy msgid "" -"To a substring by using `s3[0..4]`, where that slice is on character " -"boundaries or not." +"To a substring by using `s3[0..4]`, where that slice is on character boundaries " +"or not." msgstr "" -"La o subșiră folosind `s3[0..4]`, unde acea felie se află sau nu la limitele " +"La un subșir folosind `s3[0..4]`, unde acea felie se află sau nu la limitele " "caracterelor." #: src/std-types/string.md -#, fuzzy msgid "" -"Many types can be converted to a string with the [`to_string`](https://doc." -"rust-lang.org/std/string/trait.ToString.html#tymethod.to_string) method. " -"This trait is automatically implemented for all types that implement " -"`Display`, so anything that can be formatted can also be converted to a " -"string." +"Many types can be converted to a string with the [`to_string`](https://doc.rust-" +"lang.org/std/string/trait.ToString.html#tymethod.to_string) method. This trait " +"is automatically implemented for all types that implement `Display`, so " +"anything that can be formatted can also be converted to a string." msgstr "" "Multe tipuri pot fi convertite într-un șir de caractere cu ajutorul metodei " -"[`to_string`](https://doc.rust-lang.org/std/string/trait.ToString." -"html#tymethod.to_string). Această trăsătură este implementată automat pentru " -"toate tipurile care implementează `Display`, astfel încât orice poate fi " -"formatat poate fi, de asemenea, convertit într-un șir de caractere." +"[`to_string`](https://doc.rust-lang.org/std/string/trait.ToString.html#tymethod." +"to_string). Această trăsătură este implementată automat pentru toate tipurile " +"care implementează `Display`, astfel încât orice poate fi formatat poate fi, de " +"asemenea, convertit într-un șir de caractere." #: src/std-types/vec.md -#, fuzzy msgid "" "[`Vec`](https://doc.rust-lang.org/std/vec/struct.Vec.html) is the standard " "resizable heap-allocated buffer:" @@ -7594,158 +7155,133 @@ msgstr "" "standard redimensionabil alocat pe heap:" #: src/std-types/vec.md -#, fuzzy msgid "\"v1: len = {}, capacity = {}\"" -msgstr "\"v1: len = {}, capacity = {}\"" +msgstr "\"v1: lungime = {}, capacitate = {}\"" #: src/std-types/vec.md -#, fuzzy msgid "\"v2: len = {}, capacity = {}\"" -msgstr "\"v2: len = {}, capacity = {}\"" +msgstr "\"v2: lungime = {}, capacitate = {}\"" #: src/std-types/vec.md -#, fuzzy msgid "// Canonical macro to initialize a vector with elements.\n" msgstr "// Macro canonic pentru a inițializa un vector cu elemente.\n" #: src/std-types/vec.md -#, fuzzy msgid "// Retain only the even elements.\n" msgstr "// Reține doar elementele pare.\n" #: src/std-types/vec.md -#, fuzzy msgid "\"{v3:?}\"" msgstr "\"{v3:?}\"" #: src/std-types/vec.md -#, fuzzy msgid "// Remove consecutive duplicates.\n" msgstr "// Eliminați duplicatele consecutive.\n" #: src/std-types/vec.md -#, fuzzy msgid "" "`Vec` implements [`Deref`](https://doc.rust-lang.org/std/vec/" "struct.Vec.html#deref-methods-%5BT%5D), which means that you can call slice " "methods on a `Vec`." msgstr "" -"`Vec` implementează [`Deref`]](https://doc.rust-lang.org/std/" -"vec/struct.Vec.html#deref-methods-%5BT%5D), ceea ce înseamnă că puteți apela " -"metode de feliere pe un `Vec`." +"`Vec` implementează [`Deref`]](https://doc.rust-lang.org/std/vec/" +"struct.Vec.html#deref-methods-%5BT%5D), ceea ce înseamnă că puteți apela metode " +"de feliere pe un `Vec`." #: src/std-types/vec.md -#, fuzzy msgid "" -"`Vec` is a type of collection, along with `String` and `HashMap`. The data " -"it contains is stored on the heap. This means the amount of data doesn't " -"need to be known at compile time. It can grow or shrink at runtime." +"`Vec` is a type of collection, along with `String` and `HashMap`. The data it " +"contains is stored on the heap. This means the amount of data doesn't need to " +"be known at compile time. It can grow or shrink at runtime." msgstr "" -"`Vec` este un tip de colecție, alături de `String` și `HashMap`. Datele pe " -"care le conține sunt stocate în heap. Acest lucru înseamnă că nu este " -"necesar să se cunoască cantitatea de date în momentul compilării. Aceasta " -"poate crește sau se poate micșora în timpul execuției." +"`Vec` este un tip de colecție, alături de `String` și `HashMap`. Datele pe care " +"le conține sunt stocate în heap. Acest lucru înseamnă că nu este necesar să se " +"cunoască cantitatea de date în momentul compilării. Aceasta poate crește sau se " +"poate micșora în timpul execuției." #: src/std-types/vec.md -#, fuzzy msgid "" "Notice how `Vec` is a generic type too, but you don't have to specify `T` " -"explicitly. As always with Rust type inference, the `T` was established " -"during the first `push` call." +"explicitly. As always with Rust type inference, the `T` was established during " +"the first `push` call." msgstr "" -"Observați cum `Vec` este și el un tip generic, dar nu trebuie să " -"specificați `T` în mod explicit. Ca întotdeauna în cazul inferenței de tip " -"Rust, `T` a fost stabilit în timpul primului apel `push`." +"Observați cum `Vec` este și el un tip generic, dar nu trebuie să specificați " +"`T` în mod explicit. Ca întotdeauna în cazul inferenței de tip Rust, `T` a fost " +"stabilit în timpul primului apel `push`." #: src/std-types/vec.md -#, fuzzy msgid "" -"`vec![...]` is a canonical macro to use instead of `Vec::new()` and it " -"supports adding initial elements to the vector." +"`vec![...]` is a canonical macro to use instead of `Vec::new()` and it supports " +"adding initial elements to the vector." msgstr "" -"`vec![...]` este o macro canonică care poate fi utilizată în locul lui `Vec::" +"`vec![...]` este un macro canonic care poate fi utilizat în locul lui `Vec::" "new()` și permite adăugarea de elemente inițiale în vector." #: src/std-types/vec.md -#, fuzzy msgid "" "To index the vector you use `[` `]`, but they will panic if out of bounds. " "Alternatively, using `get` will return an `Option`. The `pop` function will " "remove the last element." msgstr "" -"Pentru a indexa vectorul se folosește `[` ` `]` `, dar se va crea panică " -"dacă este în afara limitelor. Alternativ, folosind `get` se va returna un " +"Pentru a indexa vectorul se folosește `[` `]`, dar se va crea panică în cazul " +"acceselor în afara limitelor. Alternativ, folosind `get` se va returna un " "`Option`. Funcția `pop` va elimina ultimul element." #: src/std-types/vec.md -#, fuzzy msgid "" -"Slices are covered on day 3. For now, students only need to know that a " -"value of type `Vec` gives access to all of the documented slice methods, too." +"Slices are covered on day 3. For now, students only need to know that a value " +"of type `Vec` gives access to all of the documented slice methods, too." msgstr "" -"Feliile sunt acoperite în ziua 3. Deocamdată, studenții trebuie doar să știe " -"că o valoare de tip `Vec` oferă acces la toate metodele de feliere " -"documentate." +"Feliile sunt acoperite în ziua 3. Deocamdată, cursanții trebuie doar să știe că " +"o valoare de tip `Vec` oferă acces la toate metodele de feliere documentate." #: src/std-types/hashmap.md -#, fuzzy msgid "Standard hash map with protection against HashDoS attacks:" -msgstr "Hartă hash standard cu protecție împotriva atacurilor HashDoS:" +msgstr "Hashmap standard cu protecție împotriva atacurilor HashDoS:" #: src/std-types/hashmap.md -#, fuzzy msgid "\"Adventures of Huckleberry Finn\"" msgstr "\"Aventurile lui Huckleberry Finn\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"Grimms' Fairy Tales\"" -msgstr "\"Basmele lui Grimms\"" +msgstr "\"Basmele fraților Grimm\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"Pride and Prejudice\"" msgstr "\"Mândrie și Prejudecată\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"Les Misérables\"" -msgstr "\"Les Misérables\"" +msgstr "\"Mizerabilii\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"We know about {} books, but not Les Misérables.\"" msgstr "\"Știm despre {} cărți, dar nu și despre Les Misérables.\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"Alice's Adventure in Wonderland\"" msgstr "\"Aventura lui Alice în Țara Minunilor\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"{book}: {count} pages\"" msgstr "\"{book}: {count} pagini\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"{book} is unknown.\"" -msgstr "\"{book} este necunoscut.\"" +msgstr "\"{book} este necunoscută.\"" #: src/std-types/hashmap.md -#, fuzzy msgid "// Use the .entry() method to insert a value if nothing is found.\n" msgstr "" -"// Utilizați metoda .entry() pentru a introduce o valoare dacă nu se găsește " +"// Utilizați metoda .entry() pentru a insera o valoare dacă nu se găsește " "nimic.\n" #: src/std-types/hashmap.md -#, fuzzy msgid "\"{page_counts:#?}\"" msgstr "\"{page_counts:#?}\"" #: src/std-types/hashmap.md -#, fuzzy msgid "" "`HashMap` is not defined in the prelude and needs to be brought into scope." msgstr "" @@ -7753,273 +7289,234 @@ msgstr "" "aplicare." #: src/std-types/hashmap.md -#, fuzzy msgid "" "Try the following lines of code. The first line will see if a book is in the " -"hashmap and if not return an alternative value. The second line will insert " -"the alternative value in the hashmap if the book is not found." +"hashmap and if not return an alternative value. The second line will insert the " +"alternative value in the hashmap if the book is not found." msgstr "" "Încercați următoarele linii de cod. Prima linie va verifica dacă o carte se " "află în hashmap și, în caz contrar, va returna o valoare alternativă. A doua " "linie va introduce valoarea alternativă în hashmap dacă nu se găsește cartea." #: src/std-types/hashmap.md -#, fuzzy msgid "\"Harry Potter and the Sorcerer's Stone\"" msgstr "\"Harry Potter și Piatra Vrăjitoarelor\"" #: src/std-types/hashmap.md -#, fuzzy msgid "\"The Hunger Games\"" msgstr "\"Jocurile foamei\"" #: src/std-types/hashmap.md -#, fuzzy msgid "Unlike `vec!`, there is unfortunately no standard `hashmap!` macro." msgstr "" "Spre deosebire de `vec!`, din păcate nu există o macro standard `hashmap!`." #: src/std-types/hashmap.md -#, fuzzy msgid "" -"Although, since Rust 1.56, HashMap implements [`From<[(K, V); N]>`](https://" -"doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#impl-" -"From%3C%5B(K,+V);+N%5D%3E-for-HashMap%3CK,+V,+RandomState%3E), which allows " -"us to easily initialize a hash map from a literal array:" +"Although, since Rust 1.56, HashMap implements [`From<[(K, V); N]>`](https://doc." +"rust-lang.org/std/collections/hash_map/struct.HashMap.html#impl-From%3C%5B(K," +"+V);+N%5D%3E-for-HashMap%3CK,+V,+RandomState%3E), which allows us to easily " +"initialize a hash map from a literal array:" msgstr "" -"Cu toate că, începând cu Rust 1.56, HashMap implementează [`From<[(K, V); " -"N]>`]](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap." -"html#impl-From%3C%5B(K,+V);+N%5D%3E-for-HashMap%3CK,+V,+RandomState%3E), " -"ceea ce ne permite să inițializăm cu ușurință o hartă hash dintr-o matrice " -"literală:" +"Cu toate că, începând cu Rust 1.56, HashMap implementează [`From<[(K, V); N]>`]]" +"(https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#impl-" +"From%3C%5B(K,+V);+N%5D%3E-for-HashMap%3CK,+V,+RandomState%3E), ceea ce ne " +"permite să inițializăm cu ușurință o hartă hash dintr-o matrice literală:" #: src/std-types/hashmap.md -#, fuzzy msgid "" -"Alternatively HashMap can be built from any `Iterator` which yields key-" -"value tuples." +"Alternatively HashMap can be built from any `Iterator` which yields key-value " +"tuples." msgstr "" "Alternativ, HashMap poate fi construit din orice `Iterator` care produce " "tupluri cheie-valoare." #: src/std-types/hashmap.md -#, fuzzy msgid "" "We are showing `HashMap`, and avoid using `&str` as key to make " -"examples easier. Using references in collections can, of course, be done, " -"but it can lead into complications with the borrow checker." +"examples easier. Using references in collections can, of course, be done, but " +"it can lead into complications with the borrow checker." msgstr "" -"Prezentăm `HashMap` și evităm să folosim `&str` ca cheie pentru " -"a face exemplele mai ușoare. Folosirea referințelor în colecții se poate " -"face, desigur, dar poate duce la complicații cu verificatorul de împrumuturi." +"Prezentăm `HashMap` și evităm să folosim `&str` drept cheie pentru " +"a face exemplele mai ușoare. Folosirea referințelor în colecții se poate face, " +"desigur, dar poate duce la complicații cu verificatorul de împrumuturi." #: src/std-types/hashmap.md -#, fuzzy msgid "" -"Try removing `to_string()` from the example above and see if it still " -"compiles. Where do you think we might run into issues?" +"Try removing `to_string()` from the example above and see if it still compiles. " +"Where do you think we might run into issues?" msgstr "" -"Încercați să eliminați `to_string()` din exemplul de mai sus și vedeți dacă " -"se compilează în continuare. Unde credeți că am putea întâmpina probleme?" +"Încercați să eliminați `to_string()` din exemplul de mai sus și vedeți dacă se " +"compilează în continuare. Unde credeți că am putea întâmpina probleme?" #: src/std-types/hashmap.md -#, fuzzy msgid "" "This type has several \"method-specific\" return types, such as `std::" -"collections::hash_map::Keys`. These types often appear in searches of the " -"Rust docs. Show students the docs for this type, and the helpful link back " -"to the `keys` method." +"collections::hash_map::Keys`. These types often appear in searches of the Rust " +"docs. Show students the docs for this type, and the helpful link back to the " +"`keys` method." msgstr "" "Acest tip are mai multe tipuri de returnare \"specifice metodei\", cum ar fi " -"`std::collections::hash_map::Keys`. Aceste tipuri apar adesea în căutările " -"din documentele Rust. Arătați studenților documentația pentru acest tip și " -"legătura utilă către metoda `keys`." +"`std::collections::hash_map::Keys`. Aceste tipuri apar adesea în căutările din " +"documentele Rust. Arătați studenților documentația pentru acest tip și legătura " +"utilă către metoda `keys`." #: src/std-types/exercise.md -#, fuzzy msgid "" "In this exercise you will take a very simple data structure and make it " "generic. It uses a [`std::collections::HashMap`](https://doc.rust-lang.org/" -"stable/std/collections/struct.HashMap.html) to keep track of which values " -"have been seen and how many times each one has appeared." +"stable/std/collections/struct.HashMap.html) to keep track of which values have " +"been seen and how many times each one has appeared." msgstr "" "În acest exercițiu veți lua o structură de date foarte simplă și o veți face " -"generică. Aceasta utilizează un [`std::collections::HashMap`](https://doc." -"rust-lang.org/stable/std/collections/struct.HashMap.html) pentru a ține " -"evidența valorilor care au fost văzute și de câte ori a apărut fiecare " -"dintre ele." +"generică. Aceasta utilizează un [`std::collections::HashMap`](https://doc.rust-" +"lang.org/stable/std/collections/struct.HashMap.html) pentru a ține evidența " +"valorilor care au fost văzute și de câte ori a apărut fiecare dintre ele." #: src/std-types/exercise.md -#, fuzzy msgid "" -"The initial version of `Counter` is hard coded to only work for `u32` " -"values. Make the struct and its methods generic over the type of value being " -"tracked, that way `Counter` can track any type of value." +"The initial version of `Counter` is hard coded to only work for `u32` values. " +"Make the struct and its methods generic over the type of value being tracked, " +"that way `Counter` can track any type of value." msgstr "" "Versiunea inițială a lui `Counter` este codificată în mod greșit pentru a " "funcționa numai pentru valori `u32`. Faceți ca structura și metodele sale să " -"fie generice pentru tipul de valoare urmărit, astfel încât `Counter` să " -"poată urmări orice tip de valoare." +"fie generice pentru tipul de valoare urmărit, astfel încât `Counter` să poată " +"urmări orice tip de valoare." #: src/std-types/exercise.md -#, fuzzy msgid "" -"If you finish early, try using the [`entry`](https://doc.rust-lang.org/" -"stable/std/collections/struct.HashMap.html#method.entry) method to halve the " -"number of hash lookups required to implement the `count` method." +"If you finish early, try using the [`entry`](https://doc.rust-lang.org/stable/" +"std/collections/struct.HashMap.html#method.entry) method to halve the number of " +"hash lookups required to implement the `count` method." msgstr "" -"Dacă terminați mai devreme, încercați să folosiți metoda [`entry`](https://" -"doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.entry) " -"pentru a reduce la jumătate numărul de căutări hash necesare pentru a " -"implementa metoda `count`." +"Dacă terminați mai devreme, încercați să folosiți metoda [`entry`](https://doc." +"rust-lang.org/stable/std/collections/struct.HashMap.html#method.entry) pentru a " +"reduce la jumătate numărul de căutări hash necesare pentru a implementa metoda " +"`count`." #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "" "/// Counter counts the number of times each value of type T has been seen.\n" msgstr "" -"/// Contorul numără numărul de ori de câte ori a fost văzută fiecare valoare " -"de tip T.\n" +"/// Contorul numără numărul de ori de câte ori a fost văzută fiecare valoare de " +"tip T.\n" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "/// Create a new Counter.\n" msgstr "/// Creați un nou contor.\n" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "/// Count an occurrence of the given value.\n" msgstr "/// Numără o apariție a valorii date.\n" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "/// Return the number of times the given value has been seen.\n" msgstr "/// Întoarce numărul de ori în care valoarea dată a fost văzută.\n" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "\"saw {} values equal to {}\"" -msgstr "\"a văzut {} valori egale cu {}\"" +msgstr "\"am văzut {} valori egale cu {}\"" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "\"apple\"" msgstr "\"măr\"" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "\"orange\"" msgstr "\"portocaliu\"" #: src/std-types/exercise.md src/std-types/solution.md -#, fuzzy msgid "\"got {} apples\"" msgstr "\"am primit {} mere\"" #: src/std-traits.md -#, fuzzy -msgid "[Comparisons](./std-traits/comparisons.md) (10 minutes)" -msgstr "[Comparații](./std-traits/comparisons.md) (10 minute)" +msgid "[Comparisons](./std-traits/comparisons.md) (5 minutes)" +msgstr "[Comparații](./std-traits/comparisons.md) (5 minute)" #: src/std-traits.md -#, fuzzy -msgid "[Operators](./std-traits/operators.md) (10 minutes)" -msgstr "[Operatori](./std-traits/operators.md) (10 minute)" +msgid "[Operators](./std-traits/operators.md) (5 minutes)" +msgstr "[Operatori](./std-traits/operators.md) (5 minute)" #: src/std-traits.md -#, fuzzy -msgid "[From and Into](./std-traits/from-and-into.md) (10 minutes)" -msgstr "[De la și în](./std-traits/from-and-into.md) (10 minute)" +msgid "[From and Into](./std-traits/from-and-into.md) (5 minutes)" +msgstr "[From și Into](./std-traits/from-and-into.md) (5 minute)" #: src/std-traits.md -#, fuzzy msgid "[Casting](./std-traits/casting.md) (5 minutes)" -msgstr "[Casting](./std-traits/casting.md) (5 minute)" +msgstr "[Transformări](./std-traits/casting.md) (5 minute)" #: src/std-traits.md -#, fuzzy -msgid "[Read and Write](./std-traits/read-and-write.md) (10 minutes)" -msgstr "[Citire și scriere](./std-traits/read-and-write.md) (10 minute)" +msgid "[Read and Write](./std-traits/read-and-write.md) (5 minutes)" +msgstr "[Citire și scriere](./std-traits/read-and-write.md) (5 minute)" #: src/std-traits.md -#, fuzzy msgid "[Default, struct update syntax](./std-traits/default.md) (5 minutes)" msgstr "" "[Default, sintaxa de actualizare a structurii](./std-traits/default.md) (5 " "minute)" #: src/std-traits.md -#, fuzzy -msgid "[Closures](./std-traits/closures.md) (20 minutes)" -msgstr "[Închideri](./std-traits/closures.md) (20 minute)" +msgid "[Closures](./std-traits/closures.md) (10 minutes)" +msgstr "[Închideri](./std-traits/closures.md) (10 minute)" #: src/std-traits.md -#, fuzzy msgid "[Exercise: ROT13](./std-traits/exercise.md) (30 minutes)" msgstr "[Exercițiu: ROT13](./std-traits/exercise.md) (30 minute)" -#: src/std-traits.md -#, fuzzy -msgid "This segment should take about 1 hour and 40 minutes" -msgstr "Acest segment ar trebui să dureze aproximativ 1 oră și 40 de minute" +#: src/std-traits.md src/concurrency/sync-exercises.md +#: src/concurrency/async-exercises.md +msgid "This segment should take about 1 hour and 10 minutes" +msgstr "Acest segment ar trebui să dureze aproximativ 1 oră și 10 minute" #: src/std-traits.md -#, fuzzy msgid "" -"As with the standard-library types, spend time reviewing the documentation " -"for each trait." +"As with the standard-library types, spend time reviewing the documentation for " +"each trait." msgstr "" "Ca și în cazul tipurilor de bibliotecă standard, petreceți timp examinând " "documentația pentru fiecare trăsătură." #: src/std-traits.md -#, fuzzy msgid "This section is long. Take a break midway through." -msgstr "Această secțiune este lungă. Luați o pauză la jumătatea drumului." +msgstr "Această secțiune este lungă. Luați o pauză la jumătate." #: src/std-traits/comparisons.md -#, fuzzy msgid "" -"These traits support comparisons between values. All traits can be derived " -"for types containing fields that implement these traits." +"These traits support comparisons between values. All traits can be derived for " +"types containing fields that implement these traits." msgstr "" -"Aceste trăsături sprijină comparațiile între valori. Toate trăsăturile pot " -"fi derivate pentru tipurile care conțin câmpuri care implementează aceste " +"Aceste trăsături sprijină comparațiile între valori. Toate trăsăturile pot fi " +"derivate pentru tipurile care conțin câmpuri care implementează aceste " "trăsături." #: src/std-traits/comparisons.md -#, fuzzy msgid "`PartialEq` and `Eq`" msgstr "`ParțialEq` și `Eq`" #: src/std-traits/comparisons.md -#, fuzzy msgid "" "`PartialEq` is a partial equivalence relation, with required method `eq` and " "provided method `ne`. The `==` and `!=` operators will call these methods." msgstr "" -"`PartialEq` este o relație de echivalență parțială, cu metoda obligatorie " -"`eq` și metoda furnizată `ne`. Operatorii `==` și `!=` vor apela aceste " -"metode." +"`PartialEq` este o relație de echivalență parțială, cu metoda obligatorie `eq` " +"și metoda furnizată `ne`. Operatorii `==` și `!=` vor apela aceste metode." #: src/std-traits/comparisons.md -#, fuzzy msgid "" -"`Eq` is a full equivalence relation (reflexive, symmetric, and transitive) " -"and implies `PartialEq`. Functions that require full equivalence will use " -"`Eq` as a trait bound." +"`Eq` is a full equivalence relation (reflexive, symmetric, and transitive) and " +"implies `PartialEq`. Functions that require full equivalence will use `Eq` as a " +"trait bound." msgstr "" "`Eq` este o relație de echivalență completă (reflexivă, simetrică și " "tranzitivă) și implică `ParțialEq`. Funcțiile care necesită o echivalență " "completă vor utiliza `Eq` ca o legătură de trăsătură." #: src/std-traits/comparisons.md -#, fuzzy msgid "`PartialOrd` and `Ord`" -msgstr "`Read` și `Write`" +msgstr "`PartialOrd` și `Ord`" #: src/std-traits/comparisons.md -#, fuzzy msgid "" "`PartialOrd` defines a partial ordering, with a `partial_cmp` method. It is " "used to implement the `<`, `<=`, `>=`, and `>` operators." @@ -8028,12 +7525,10 @@ msgstr "" "utilizat pentru a implementa operatorii `<`, `<=`, `>=` și `>`." #: src/std-traits/comparisons.md -#, fuzzy msgid "`Ord` is a total ordering, with `cmp` returning `Ordering`." msgstr "`Ord` este o ordine totală, cu `cmp` returnând `Ordering`." #: src/std-traits/comparisons.md -#, fuzzy msgid "" "`PartialEq` can be implemented between different types, but `Eq` cannot, " "because it is reflexive:" @@ -8042,41 +7537,34 @@ msgstr "" "implementat, deoarece este reflexiv:" #: src/std-traits/comparisons.md -#, fuzzy msgid "" -"In practice, it's common to derive these traits, but uncommon to implement " -"them." +"In practice, it's common to derive these traits, but uncommon to implement them." msgstr "" "În practică, aceste trăsături sunt des întâlnite, dar implementarea lor este " "mai puțin obișnuită." #: src/std-traits/operators.md -#, fuzzy msgid "" -"Operator overloading is implemented via traits in [`std::ops`](https://doc." -"rust-lang.org/std/ops/index.html):" +"Operator overloading is implemented via traits in [`std::ops`](https://doc.rust-" +"lang.org/std/ops/index.html):" msgstr "" -"Supraîncărcarea operatorilor este implementată prin intermediul trăsăturilor " -"în [`std::ops`](https://doc.rust-lang.org/std/ops/index.html):" +"Supraîncărcarea operatorilor este implementată prin intermediul trăsăturilor în " +"[`std::ops`](https://doc.rust-lang.org/std/ops/index.html):" #: src/std-traits/operators.md -#, fuzzy msgid "\"{:?} + {:?} = {:?}\"" msgstr "\"{:?} + {:?} = {:?}\"" #: src/std-traits/operators.md src/memory-management/drop.md -#, fuzzy msgid "Discussion points:" msgstr "Puncte de discuție:" #: src/std-traits/operators.md -#, fuzzy msgid "" "You could implement `Add` for `&Point`. In which situations is that useful?" msgstr "Ați putea implementa `Add` pentru `&Point`. În ce situații este utilă?" #: src/std-traits/operators.md -#, fuzzy msgid "" "Answer: `Add:add` consumes `self`. If type `T` for which you are overloading " "the operator is not `Copy`, you should consider overloading the operator for " @@ -8084,236 +7572,215 @@ msgid "" msgstr "" "Răspuns: `Add:add` consumă `self`. Dacă tipul `T` pentru care supraîncărcați " "operatorul nu este `Copy`, ar trebui să luați în considerare supraîncărcarea " -"operatorului și pentru `&T`. Astfel se evită clonarea inutilă pe locul de " -"apel." +"operatorului și pentru `&T`. Astfel se evită clonarea inutilă pe locul de apel." #: src/std-traits/operators.md -#, fuzzy msgid "" "Why is `Output` an associated type? Could it be made a type parameter of the " "method?" msgstr "" -"De ce este `Output` un tip asociat? Ar putea fi transformat într-un " -"parametru de tip al metodei?" +"De ce este `Output` un tip asociat? Ar putea fi transformat într-un parametru " +"de tip al metodei?" #: src/std-traits/operators.md -#, fuzzy msgid "" "Short answer: Function type parameters are controlled by the caller, but " -"associated types (like `Output`) are controlled by the implementer of a " -"trait." +"associated types (like `Output`) are controlled by the implementer of a trait." msgstr "" -"Răspuns scurt: Parametrii de tip funcție sunt controlați de către apelant, " -"dar tipurile asociate (cum ar fi `Output`) sunt controlate de către " -"implementatorul unei trăsături." +"Răspuns scurt: Parametrii de tip funcție sunt controlați de către apelant, dar " +"tipurile asociate (cum ar fi `Output`) sunt controlate de către implementatorul " +"unei trăsături." #: src/std-traits/operators.md -#, fuzzy msgid "" -"You could implement `Add` for two different types, e.g. `impl Add<(i32, " -"i32)> for Point` would add a tuple to a `Point`." +"You could implement `Add` for two different types, e.g. `impl Add<(i32, i32)> " +"for Point` would add a tuple to a `Point`." msgstr "" "Ați putea implementa `Add` pentru două tipuri diferite, de exemplu, `impl " "Add<(i32, i32)> pentru Point` ar adăuga un tuple la un `Point`." +#: src/std-traits/operators.md +msgid "" +"The `Not` trait (`!` operator) is notable because it does not \"boolify\" like " +"the same operator in C-family languages; instead, for integer types it negates " +"each bit of the number, which arithmetically is equivalent to subtracting it " +"from -1: `!5 == -6`." +msgstr "" +"Trăsătura `Not` (operatorul `!`) se remarcă prin faptul că nu \"boolifică\" ca " +"același operator din limbajele din familia C; în schimb, pentru tipurile " +"întregi, acesta neagă fiecare bit al numărului, ceea ce aritmetic este " +"echivalent cu scăderea lui din -1: `!5 == -6`." + #: src/std-traits/from-and-into.md -#, fuzzy msgid "" -"Types implement [`From`](https://doc.rust-lang.org/std/convert/trait.From." -"html) and [`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) to " -"facilitate type conversions:" +"Types implement [`From`](https://doc.rust-lang.org/std/convert/trait.From.html) " +"and [`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) to " +"facilitate type conversions. Unlike `as`, these traits correspond to lossless, " +"infallible conversions." msgstr "" "Tipurile implementează [`From`](https://doc.rust-lang.org/std/convert/trait." -"From.html) și [`Into`](https://doc.rust-lang.org/std/convert/trait.Into." -"html) pentru a facilita conversiile de tip:" +"From.html) și [`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) " +"pentru a facilita conversiile de tip. Spre deosebire de `aș`, aceste trăsături " +"corespund conversiilor fără pierderi, infailibile." #: src/std-traits/from-and-into.md -#, fuzzy msgid "\"{s}, {addr}, {one}, {bigger}\"" msgstr "\"{s}, {addr}, {one}, {bigger}\"" #: src/std-traits/from-and-into.md -#, fuzzy msgid "" "[`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) is " -"automatically implemented when [`From`](https://doc.rust-lang.org/std/" -"convert/trait.From.html) is implemented:" +"automatically implemented when [`From`](https://doc.rust-lang.org/std/convert/" +"trait.From.html) is implemented:" msgstr "" "[`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) este " -"implementat automat atunci când este implementat [`From`](https://doc.rust-" -"lang.org/std/convert/trait.From.html):" +"implementat automat atunci când este implementat [`From`](https://doc.rust-lang." +"org/std/convert/trait.From.html):" #: src/std-traits/from-and-into.md -#, fuzzy msgid "" -"That's why it is common to only implement `From`, as your type will get " -"`Into` implementation too." +"That's why it is common to only implement `From`, as your type will get `Into` " +"implementation too." msgstr "" -"De aceea, este obișnuit să se implementeze doar `From`, deoarece tipul tău " -"va primi și implementarea `Into`." +"De aceea, este obișnuit să se implementeze doar `From`, deoarece tipul tău va " +"primi și implementarea `Into`." #: src/std-traits/from-and-into.md -#, fuzzy msgid "" "When declaring a function argument input type like \"anything that can be " -"converted into a `String`\", the rule is opposite, you should use `Into`. " -"Your function will accept types that implement `From` and those that _only_ " +"converted into a `String`\", the rule is opposite, you should use `Into`. Your " +"function will accept types that implement `From` and those that _only_ " "implement `Into`." msgstr "" -"Atunci când declarați un tip de intrare de argument de funcție de tipul " -"\"orice poate fi convertit într-un `String`\", regula este opusă, trebuie să " -"utilizați `Into`. Funcția dvs. va accepta tipurile care implementează `From` " -"și cele care implementează _doar_ `Into`." +"Atunci când declarați un tip de intrare de argument de funcție de tipul \"orice " +"poate fi convertit într-un `String`\", regula este opusă, trebuie să utilizați " +"`Into`. Funcția dvs. va accepta tipurile care implementează `From` și cele care " +"implementează _doar_ `Into`." #: src/std-traits/casting.md -#, fuzzy msgid "" -"Rust has no _implicit_ type conversions, but does support explicit casts " -"with `as`. These generally follow C semantics where those are defined." +"Rust has no _implicit_ type conversions, but does support explicit casts with " +"`as`. These generally follow C semantics where those are defined." msgstr "" "Rust nu dispune de conversii de tip _implicite_, dar suportă transformări " "explicite cu `as`. În general, acestea urmează semantica C, acolo unde sunt " "definite." #: src/std-traits/casting.md -#, fuzzy msgid "\"as u16: {}\"" -msgstr "\"as u16: {}\"" +msgstr "\"ca u16: {}\"" #: src/std-traits/casting.md -#, fuzzy msgid "\"as i16: {}\"" -msgstr "" -"Biblioteca standard are o implementare a `From pentru i16`, ceea ce " -"înseamnă că putem converti o variabilă `x` de tip `i8` în `i16` prin " -"apelarea `i16::from(x)`. Sau, mai simplu, cu `x.into()`, deoarece " -"implementarea `From for i16` creează automat o implementare a `Into " -"for i8`." +msgstr "\"ca i16: {}\"" #: src/std-traits/casting.md -#, fuzzy msgid "\"as u8: {}\"" -msgstr "Șirurile de octeți vă permit să creați direct o valoare `&[u8]`:" +msgstr "\"ca u8: {}\"" #: src/std-traits/casting.md -#, fuzzy msgid "" "The results of `as` are _always_ defined in Rust and consistent across " -"platforms. This might not match your intuition for changing sign or casting " -"to a smaller type -- check the docs, and comment for clarity." +"platforms. This might not match your intuition for changing sign or casting to " +"a smaller type -- check the docs, and comment for clarity." msgstr "" -"Rezultatele lui `as` sunt _întotdeauna_ definite în Rust și sunt consecvente " -"pe toate platformele. Este posibil ca acest lucru să nu se potrivească cu " -"intuiția dvs. de a schimba semnul sau de a face casting la un tip mai mic - " -"verificați documentele și comentați pentru claritate." +"Rezultatele lui `as` sunt _întotdeauna_ definite în Rust și sunt consecvente pe " +"toate platformele. Este posibil ca acest lucru să nu se potrivească cu intuiția " +"dvs. de a schimba semnul sau de a face casting la un tip mai mic — verificați " +"documentele și comentați pentru claritate." #: src/std-traits/casting.md -#, fuzzy msgid "" -"Casting with `as` is a relatively sharp tool that is easy to use " -"incorrectly, and can be a source of subtle bugs as future maintenance work " -"changes the types that are used or the ranges of values in types. Casts are " -"best used only when the intent is to indicate unconditional truncation (e.g. " -"selecting the bottom 32 bits of a `u64` with `as u32`, regardless of what " -"was in the high bits)." +"Casting with `as` is a relatively sharp tool that is easy to use incorrectly, " +"and can be a source of subtle bugs as future maintenance work changes the types " +"that are used or the ranges of values in types. Casts are best used only when " +"the intent is to indicate unconditional truncation (e.g. selecting the bottom " +"32 bits of a `u64` with `as u32`, regardless of what was in the high bits)." msgstr "" -"Casting-ul cu `as` este un instrument relativ ascuțit, ușor de utilizat în " -"mod incorect și poate fi o sursă de erori subtile pe măsură ce viitoarele " -"lucrări de întreținere modifică tipurile utilizate sau intervalele de valori " -"din tipuri. Castingurile se utilizează cel mai bine numai atunci când " -"intenția este de a indica o trunchiere necondiționată (de exemplu, " -"selectarea celor 32 de biți inferiori ai unui `u64` cu `as u32`, indiferent " -"de ceea ce se afla în biții superiori)." +"Transformarea cu `as` este un instrument puternic, ușor de utilizat în mod " +"incorect și poate fi o sursă de erori subtile pe măsură ce modificările codului " +"modifică tipurile utilizate sau intervalele de valori din tipuri. " +"Transformările se utilizează cel mai bine numai atunci când intenția este de a " +"indica o trunchiere necondiționată (de exemplu, selectarea celor 32 de biți " +"inferiori ai unui `u64` cu `as u32`, indiferent de ceea ce se afla în biții " +"superiori)." #: src/std-traits/casting.md -#, fuzzy msgid "" -"For infallible casts (e.g. `u32` to `u64`), prefer using `From` or `Into` " -"over `as` to confirm that the cast is in fact infallible. For fallible " -"casts, `TryFrom` and `TryInto` are available when you want to handle casts " -"that fit differently from those that don't." +"For infallible casts (e.g. `u32` to `u64`), prefer using `From` or `Into` over " +"`as` to confirm that the cast is in fact infallible. For fallible casts, " +"`TryFrom` and `TryInto` are available when you want to handle casts that fit " +"differently from those that don't." msgstr "" -"În cazul unor distribuții infailibile (de exemplu, de la `u32` la `u64`), se " -"preferă utilizarea lui `From` sau `Into` în locul lui `as` pentru a confirma " -"că distribuția este de fapt infailibilă. Pentru distribuțiile falibile, " +"În cazul unor transformări infailibile (de exemplu, de la `u32` la `u64`), se " +"preferă utilizarea lui `From` sau `Into` în locul lui `as` pentru a confirma că " +"trasformarea este de fapt infailibilă. Pentru transformările falibile, " "`TryFrom` și `TryInto` sunt disponibile atunci când doriți să tratați " -"distribuțiile care se potrivesc diferit de cele care nu se potrivesc." +"transformările care se potrivesc diferit de cele care nu se potrivesc." #: src/std-traits/casting.md -#, fuzzy msgid "Consider taking a break after this slide." msgstr "" "Luați în considerare posibilitatea de a lua o pauză după acest diapozitiv." #: src/std-traits/casting.md -#, fuzzy msgid "" -"`as` is similar to a C++ static cast. Use of `as` in cases where data might " -"be lost is generally discouraged, or at least deserves an explanatory " -"comment." +"`as` is similar to a C++ static cast. Use of `as` in cases where data might be " +"lost is generally discouraged, or at least deserves an explanatory comment." msgstr "" -"`as` este similar cu un cast static din C++. Utilizarea lui `as` în cazurile " -"în care datele ar putea fi pierdute este, în general, descurajată sau cel " -"puțin merită un comentariu explicativ." +"`as` este similar cu un cast static din C++. Utilizarea lui `as` în cazurile în " +"care datele ar putea fi pierdute este, în general, descurajată sau cel puțin " +"merită un comentariu explicativ." #: src/std-traits/casting.md -#, fuzzy msgid "This is common in casting integers to `usize` for use as an index." msgstr "" "Acest lucru este obișnuit în cazul în care se transformă numere întregi în " "`usize` pentru a fi utilizate ca indici." #: src/std-traits/read-and-write.md -#, fuzzy msgid "" -"Using [`Read`](https://doc.rust-lang.org/std/io/trait.Read.html) and " -"[`BufRead`](https://doc.rust-lang.org/std/io/trait.BufRead.html), you can " -"abstract over `u8` sources:" +"Using [`Read`](https://doc.rust-lang.org/std/io/trait.Read.html) and [`BufRead`]" +"(https://doc.rust-lang.org/std/io/trait.BufRead.html), you can abstract over " +"`u8` sources:" msgstr "" "Folosind [`Read`](https://doc.rust-lang.org/std/io/trait.Read.html) și " -"[`BufRead`](https://doc.rust-lang.org/std/io/trait.BufRead.html), puteți " -"face abstracție de sursele `u8`:" +"[`BufRead`](https://doc.rust-lang.org/std/io/trait.BufRead.html), puteți face " +"abstracție de sursele `u8`:" #: src/std-traits/read-and-write.md -#, fuzzy msgid "b\"foo\\nbar\\nbaz\\n\"" -msgstr "b \"foo\\nbar\\nbaz\\n\"" +msgstr "b\"foo\\nbar\\nbaz\\n\"" #: src/std-traits/read-and-write.md -#, fuzzy msgid "\"lines in slice: {}\"" -msgstr "\"linii în slice: {}\"" +msgstr "\"linii în bucată: {}\"" #: src/std-traits/read-and-write.md -#, fuzzy msgid "\"lines in file: {}\"" msgstr "\"linii în fișier: {}\"" #: src/std-traits/read-and-write.md -#, fuzzy msgid "" "Similarly, [`Write`](https://doc.rust-lang.org/std/io/trait.Write.html) lets " "you abstract over `u8` sinks:" msgstr "" -"În mod similar, [`Write`](https://doc.rust-lang.org/std/io/trait.Write.html) " -"vă permite să faceți abstracție de `u8` sink-uri:" +"În mod similar, [`Write`](https://doc.rust-lang.org/std/io/trait.Write.html) vă " +"permite să faceți abstracție de destinații `u8`:" #: src/std-traits/read-and-write.md msgid "\"\\n\"" msgstr "\"\\n\"" #: src/std-traits/read-and-write.md -#, fuzzy msgid "\"Logged: {:?}\"" msgstr "\"Înregistrat: {:?}\"" #: src/std-traits/default.md -#, fuzzy msgid "The `Default` Trait" msgstr "Trăsătura `Default` (implicit)" #: src/std-traits/default.md -#, fuzzy msgid "" "[`Default`](https://doc.rust-lang.org/std/default/trait.Default.html) trait " "produces a default value for a type." @@ -8322,138 +7789,120 @@ msgstr "" "caracteristica produce o valoare implicită pentru un tip." #: src/std-traits/default.md -#, fuzzy msgid "\"John Smith\"" msgstr "\"John Smith\"" #: src/std-traits/default.md -#, fuzzy msgid "\"{default_struct:#?}\"" -msgstr "'Default' (implicit), sintaxa de actualizare a structurilor" +msgstr "\"{default_struct:#?}\"" #: src/std-traits/default.md -#, fuzzy msgid "\"Y is set!\"" msgstr "\"Y este stabilit!\"" #: src/std-traits/default.md -#, fuzzy msgid "\"{almost_default_struct:#?}\"" msgstr "\"{almost_default_struct:#?}\"" -#: src/std-traits/default.md src/lifetimes/exercise.md -#: src/lifetimes/solution.md -#, fuzzy +#: src/std-traits/default.md src/lifetimes/exercise.md src/lifetimes/solution.md msgid "\"{:#?}\"" msgstr "\"{:#?}\"" #: src/std-traits/default.md -#, fuzzy msgid "" "It can be implemented directly or it can be derived via `#[derive(Default)]`." msgstr "" "Poate fi implementat direct sau poate fi derivat prin `#[derive(Default)]`." #: src/std-traits/default.md -#, fuzzy msgid "" -"A derived implementation will produce a value where all fields are set to " -"their default values." +"A derived implementation will produce a value where all fields are set to their " +"default values." msgstr "" "O implementare derivată va produce o valoare în care toate câmpurile sunt " "setate la valorile lor implicite." #: src/std-traits/default.md -#, fuzzy msgid "This means all types in the struct must implement `Default` too." msgstr "" "Aceasta înseamnă că toate tipurile din structura trebuie să implementeze și " "`Default`." #: src/std-traits/default.md -#, fuzzy msgid "" -"Standard Rust types often implement `Default` with reasonable values (e.g. " -"`0`, `\"\"`, etc)." +"Standard Rust types often implement `Default` with reasonable values (e.g. `0`, " +"`\"\"`, etc)." msgstr "" -"Tipurile standard Rust implementează adesea `Default` cu valori rezonabile " -"(de exemplu, `0`, `\"\"`, etc.)." +"Tipurile standard Rust implementează adesea `Default` cu valori rezonabile (de " +"exemplu, `0`, `\"\"`, etc)." #: src/std-traits/default.md -#, fuzzy msgid "The partial struct initialization works nicely with default." -msgstr "Copierea parțială a structurii funcționează bine în mod implicit." +msgstr "Inițializarea parțială a structurii funcționează bine în mod implicit." #: src/std-traits/default.md -#, fuzzy msgid "" "The Rust standard library is aware that types can implement `Default` and " "provides convenience methods that use it." msgstr "" -"Biblioteca standard Rust este conștientă de faptul că tipurile pot " -"implementa `Default` și oferă metode de conveniență care îl utilizează." +"Biblioteca standard Rust ține cont de faptul că tipurile pot implementa " +"`Default` și oferă metode convenabile a utiliza asta." #: src/std-traits/default.md -#, fuzzy msgid "" -"The `..` syntax is called [struct update syntax](https://doc.rust-lang.org/" -"book/ch05-01-defining-structs.html#creating-instances-from-other-instances-" -"with-struct-update-syntax)." +"The `..` syntax is called [struct update syntax](https://doc.rust-lang.org/book/" +"ch05-01-defining-structs.html#creating-instances-from-other-instances-with-" +"struct-update-syntax)." msgstr "" -"sintaxa `..` se numește [struct update syntax](https://doc.rust-lang.org/" -"book/ch05-01-defining-structs.html#creating-instances-from-other-instances-" -"with-struct-update-syntax)" +"Sintaxa `..` se numește [struct update syntax](https://doc.rust-lang.org/book/" +"ch05-01-defining-structs.html#creating-instances-from-other-instances-with-" +"struct-update-syntax)." #: src/std-traits/closures.md -#, fuzzy msgid "" -"Closures or lambda expressions have types which cannot be named. However, " -"they implement special [`Fn`](https://doc.rust-lang.org/std/ops/trait.Fn." -"html), [`FnMut`](https://doc.rust-lang.org/std/ops/trait.FnMut.html), and " -"[`FnOnce`](https://doc.rust-lang.org/std/ops/trait.FnOnce.html) traits:" +"Closures or lambda expressions have types which cannot be named. However, they " +"implement special [`Fn`](https://doc.rust-lang.org/std/ops/trait.Fn.html), " +"[`FnMut`](https://doc.rust-lang.org/std/ops/trait.FnMut.html), and [`FnOnce`]" +"(https://doc.rust-lang.org/std/ops/trait.FnOnce.html) traits:" msgstr "" "Închiderile sau expresiile lambda au tipuri care nu pot fi numite. Cu toate " "acestea, ele implementează trăsăturile speciale [`Fn`](https://doc.rust-lang." -"org/std/ops/trait.Fn.html), [`FnMut`](https://doc.rust-lang.org/std/ops/" -"trait.FnMut.html) și [`FnOnce`](https://doc.rust-lang.org/std/ops/trait." -"FnOnce.html):" +"org/std/ops/trait.Fn.html), [`FnMut`](https://doc.rust-lang.org/std/ops/trait." +"FnMut.html) și [`FnOnce`](https://doc.rust-lang.org/std/ops/trait.FnOnce.html):" #: src/std-traits/closures.md -#, fuzzy -msgid "\"Calling function on {input}\"" -msgstr "Apelarea funcțiilor nesigure" +msgid "\"Calling {func_name}({input}): {}\"" +msgstr "\"Apelarea {func_name}({input}): {}\"" #: src/std-traits/closures.md -#, fuzzy -msgid "\"add_3: {}\"" -msgstr "\"add_3: {}\"" +msgid "\"add_3\"" +msgstr "\"add_3\"" #: src/std-traits/closures.md -#, fuzzy -msgid "\"accumulate: {}\"" -msgstr "\"acumulează: {}\"" +msgid "\"accumulate\"" +msgstr "\"accumulate\"" #: src/std-traits/closures.md -#, fuzzy -msgid "\"multiply_sum: {}\"" -msgstr "\"multiply_sum: {}\"" +msgid "\"multiply_sum\"" +msgstr "\"multiply_sum\"" #: src/std-traits/closures.md #, fuzzy msgid "" -"An `Fn` (e.g. `add_3`) neither consumes nor mutates captured values, or " -"perhaps captures nothing at all. It can be called multiple times " -"concurrently." +"An `Fn` (e.g. `add_3`) neither consumes nor mutates captured values. It can be " +"called needing only a shared reference to the closure, which means the closure " +"can be executed repeatedly and even concurrently." msgstr "" "Un `Fn` (de exemplu, `add_3`) nu consumă și nici nu modifică valorile " -"capturate, sau poate nu captează nimic. Acesta poate fi apelat de mai multe " -"ori simultan." +"capturate, sau poate nu captează nimic. Acesta poate fi apelat de mai multe ori " +"simultan." #: src/std-traits/closures.md #, fuzzy msgid "" -"An `FnMut` (e.g. `accumulate`) might mutate captured values. You can call it " -"multiple times, but not concurrently." +"An `FnMut` (e.g. `accumulate`) might mutate captured values. The closure object " +"is accessed via exclusive reference, so it can be called repeatedly but not " +"concurrently." msgstr "" "Un `FnMut` (de exemplu, `accumulate`) poate modifica valorile capturate. Se " "poate apela de mai multe ori, dar nu concomitent." @@ -8461,217 +7910,191 @@ msgstr "" #: src/std-traits/closures.md #, fuzzy msgid "" -"If you have an `FnOnce` (e.g. `multiply_sum`), you may only call it once. It " -"might consume captured values." +"If you have an `FnOnce` (e.g. `multiply_sum`), you may only call it once. Doing " +"so consumes the closure and any values captured by move." msgstr "" "Dacă aveți un `FnOnce` (de exemplu, `multiply_sum`), îl puteți apela doar o " "singură dată. Acesta ar putea consuma valori capturate." #: src/std-traits/closures.md -#, fuzzy msgid "" -"`FnMut` is a subtype of `FnOnce`. `Fn` is a subtype of `FnMut` and `FnOnce`. " -"I.e. you can use an `FnMut` wherever an `FnOnce` is called for, and you can " -"use an `Fn` wherever an `FnMut` or `FnOnce` is called for." +"`FnMut` is a subtype of `FnOnce`. `Fn` is a subtype of `FnMut` and `FnOnce`. I." +"e. you can use an `FnMut` wherever an `FnOnce` is called for, and you can use " +"an `Fn` wherever an `FnMut` or `FnOnce` is called for." msgstr "" "`FnMut` este un subtip al `FnOnce`. `Fn` este un subtip al lui `FnMut` și " -"`FnOnce`. Adică, puteți utiliza un `FnMut` oriunde se solicită un `FnOnce` " -"și puteți utiliza un `Fn` oriunde se solicită un `FnMut` sau un `FnOnce`." +"`FnOnce`. Adică, puteți utiliza un `FnMut` oriunde se solicită un `FnOnce` și " +"puteți utiliza un `Fn` oriunde se solicită un `FnMut` sau un `FnOnce`." #: src/std-traits/closures.md -#, fuzzy msgid "" "When you define a function that takes a closure, you should take `FnOnce` if " "you can (i.e. you call it once), or `FnMut` else, and last `Fn`. This allows " "the most flexibility for the caller." msgstr "" -"Atunci când definiți o funcție care ia o închidere, ar trebui să luați " -"`FnOnce` dacă puteți (adică să o apelați o singură dată), sau `FnMut` în caz " -"contrar, și în final `Fn`. Acest lucru permite cea mai mare flexibilitate " -"pentru apelant." +"Atunci când definiți o funcție care ia o închidere, ar trebui să luați `FnOnce` " +"dacă puteți (adică să o apelați o singură dată), sau `FnMut` în caz contrar, și " +"în final `Fn`. Acest lucru permite cea mai mare flexibilitate pentru apelant." #: src/std-traits/closures.md #, fuzzy msgid "" "In contrast, when you have a closure, the most flexible you can have is `Fn` " -"(it can be passed everywhere), then `FnMut`, and lastly `FnOnce`." +"(which can be passed to a consumer of any of the 3 closure traits), then " +"`FnMut`, and lastly `FnOnce`." msgstr "" -"În schimb, atunci când aveți o închidere, cea mai flexibilă este `Fn` (poate " -"fi trecută peste tot), apoi `FnMut` și, în cele din urmă, `FnOnce`." +"În schimb, atunci când aveți o închidere, cea mai flexibilă este `Fn` (poate fi " +"trecută peste tot), apoi `FnMut` și, în cele din urmă, `FnOnce`." #: src/std-traits/closures.md #, fuzzy msgid "" "The compiler also infers `Copy` (e.g. for `add_3`) and `Clone` (e.g. " -"`multiply_sum`), depending on what the closure captures." +"`multiply_sum`), depending on what the closure captures. Function pointers " +"(references to `fn` items) implement `Copy` and `Fn`." msgstr "" "Compilatorul deduce, de asemenea, `Copy` (de exemplu, pentru `add_3`) și " -"`Clone` (de exemplu, `multiply_sum`), în funcție de ceea ce captează " -"închiderea." +"`Clone` (de exemplu, `multiply_sum`), în funcție de ceea ce captează închiderea." #: src/std-traits/closures.md #, fuzzy msgid "" -"By default, closures will capture by reference if they can. The `move` " -"keyword makes them capture by value." +"By default, closures will capture each variable from an outer scope by the " +"least demanding form of access they can (by shared reference if possible, then " +"exclusive reference, then by move). The `move` keyword forces capture by value." msgstr "" -"În mod implicit, închiderile vor captura prin referință dacă pot. Cuvântul " -"cheie `move` le face să captureze prin valoare." +"În mod implicit, închiderile vor captura fiecare variabilă dintr-un domeniu de " +"aplicare exterior prin cea mai puțin solicitantă formă de acces posibilă (prin " +"referință partajată dacă este posibil, apoi prin referință exclusivă, apoi prin " +"mutare). Cuvântul cheie `move` forțează capturarea prin valoare." #: src/std-traits/closures.md src/smart-pointers/trait-objects.md -#, fuzzy msgid "\"{} {}\"" msgstr "\"{} {}\"" #: src/std-traits/closures.md -#, fuzzy msgid "\"Hi\"" msgstr "\"Bună\"" #: src/std-traits/closures.md -#, fuzzy msgid "\"Greg\"" -msgstr "\"Salutări\"" +msgstr "\"Greg\"" #: src/std-traits/exercise.md -#, fuzzy msgid "" -"In this example, you will implement the classic [\"ROT13\" cipher](https://" -"en.wikipedia.org/wiki/ROT13). Copy this code to the playground, and " -"implement the missing bits. Only rotate ASCII alphabetic characters, to " -"ensure the result is still valid UTF-8." +"In this example, you will implement the classic [\"ROT13\" cipher](https://en." +"wikipedia.org/wiki/ROT13). Copy this code to the playground, and implement the " +"missing bits. Only rotate ASCII alphabetic characters, to ensure the result is " +"still valid UTF-8." msgstr "" "În acest exemplu, veți implementa cifra clasică [\"ROT13\"](https://en." "wikipedia.org/wiki/ROT13). Copiați acest cod pe terenul de joacă și " -"implementați biții lipsă. Rotiți numai caracterele alfabetice ASCII, pentru " -"a vă asigura că rezultatul este încă valid UTF-8." +"implementați biții lipsă. Rotiți numai caracterele alfabetice ASCII, pentru a " +"vă asigura că rezultatul este încă valid UTF-8." #: src/std-traits/exercise.md -#, fuzzy msgid "// Implement the `Read` trait for `RotDecoder`.\n" msgstr "// Implementați caracteristica `Read` pentru `RotDecoder`.\n" #: src/std-traits/exercise.md src/std-traits/solution.md -#, fuzzy msgid "\"Gb trg gb gur bgure fvqr!\"" -msgstr "\"Gb trg gb gb gur bgure fvqr!\"" +msgstr "\"Gb trg gb gur bgure fvqr!\"" #: src/std-traits/exercise.md src/std-traits/solution.md -#, fuzzy msgid "\"To get to the other side!\"" msgstr "\"Pentru a ajunge pe partea cealaltă!\"" #: src/std-traits/exercise.md -#, fuzzy msgid "" -"What happens if you chain two `RotDecoder` instances together, each rotating " -"by 13 characters?" +"What happens if you chain two `RotDecoder` instances together, each rotating by " +"13 characters?" msgstr "" "Ce se întâmplă dacă înlănțuiți două instanțe `RotDecoder` împreună, fiecare " "rotindu-se cu 13 caractere?" #: src/std-traits/solution.md -#, fuzzy msgid "'A'" msgstr "'A'" #: src/welcome-day-3.md -#, fuzzy msgid "Welcome to Day 3" -msgstr "Bine ați venit în ziua 3" +msgstr "Bine ați venit în ziua a 3-a" #: src/welcome-day-3.md -#, fuzzy msgid "Today, we will cover:" msgstr "Astăzi, vom aborda:" #: src/welcome-day-3.md -#, fuzzy msgid "" -"Memory management, lifetimes, and the borrow checker: how Rust ensures " -"memory safety." +"Memory management, lifetimes, and the borrow checker: how Rust ensures memory " +"safety." msgstr "" "Gestionarea memoriei, durata de viață și verificatorul de împrumuturi: cum " "asigură Rust siguranța memoriei." #: src/welcome-day-3.md -#, fuzzy msgid "Smart pointers: standard library pointer types." -msgstr "Indicatori inteligenți: tipuri de pointeri din biblioteca standard." +msgstr "Pointeri inteligenți: tipuri de pointeri din biblioteca standard." #: src/welcome-day-3.md -#, fuzzy msgid "[Welcome](./welcome-day-3.md) (3 minutes)" msgstr "[Introducere](../welcome-day-3.md) (3 minute)" #: src/welcome-day-3.md -#, fuzzy msgid "[Memory Management](./memory-management.md) (1 hour)" -msgstr "[Managementul memoriei](../memory-management.md) (1 oră și 10 minute)" +msgstr "[Managementul memoriei](../memory-management.md) (1 oră)" #: src/welcome-day-3.md -#, fuzzy msgid "[Smart Pointers](./smart-pointers.md) (55 minutes)" -msgstr "[Pointeri inteligenți](../smart-pointers.md) (45 minute)" +msgstr "[Pointeri inteligenți](../smart-pointers.md) (55 minute)" #: src/welcome-day-3.md -#, fuzzy msgid "" "Including 10 minute breaks, this session should take about 2 hours and 20 " "minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " "aproximativ 2 ore și 20 de minute" #: src/memory-management.md -#, fuzzy msgid "[Review of Program Memory](./memory-management/review.md) (5 minutes)" msgstr "" "[Revizuirea memoriei programului](./memory-management/review.md) (5 minute)" #: src/memory-management.md -#, fuzzy msgid "" "[Approaches to Memory Management](./memory-management/approaches.md) (10 " "minutes)" msgstr "" -"[Abordări ale managementului memoriei](./memory-management/approaches.md) " -"(10 minute)" +"[Abordări ale managementului memoriei](./memory-management/approaches.md) (10 " +"minute)" #: src/memory-management.md -#, fuzzy msgid "[Ownership](./memory-management/ownership.md) (5 minutes)" msgstr "[Proprietate](./memory-management/ownership.md) (5 minute)" #: src/memory-management.md -#, fuzzy msgid "[Move Semantics](./memory-management/move.md) (5 minutes)" msgstr "[Semantica mutării](./memory-management/move.md) (10 minute)" #: src/memory-management.md -#, fuzzy msgid "[Clone](./memory-management/clone.md) (2 minutes)" -msgstr "[Clone](./memory-management/clone.md) (2 minute)" +msgstr "[Clonarea](./memory-management/clone.md) (2 minute)" #: src/memory-management.md -#, fuzzy msgid "[Copy Types](./memory-management/copy-types.md) (5 minutes)" msgstr "[Tipuri de copiere](./memory-management/copy-types.md) (5 minute)" #: src/memory-management.md -#, fuzzy msgid "[Drop](./memory-management/drop.md) (10 minutes)" msgstr "[Drop](./memory-management/drop.md) (10 minute)" #: src/memory-management.md -#, fuzzy msgid "[Exercise: Builder Type](./memory-management/exercise.md) (20 minutes)" msgstr "" -"[Exercițiu: Tipul de constructor](./memory-management/exercise.md) (20 " -"minute)" +"[Exercițiu: Tipul de constructor](./memory-management/exercise.md) (20 minute)" #: src/memory-management/review.md -#, fuzzy msgid "Programs allocate memory in two ways:" msgstr "Programele alocă memoria în două moduri:" @@ -8693,7 +8116,7 @@ msgstr "Ușor de gestionat: urmărește apelurile de funcții." #: src/memory-management/review.md msgid "Great memory locality." -msgstr "Poziționate bună a memoriei." +msgstr "Poziționare bună a memoriei." #: src/memory-management/review.md msgid "Heap: Storage of values outside of function calls." @@ -8708,25 +8131,24 @@ msgid "Slightly slower than the stack: some book-keeping needed." msgstr "Puțin mai lent decât stiva: este nevoie de o anumită contabilitate." #: src/memory-management/review.md -#, fuzzy msgid "No guarantee of memory locality." -msgstr "Nu există nicio garanție a poziționării memoriei." +msgstr "Fără garanții privind poziționarea memoriei." #: src/memory-management/review.md msgid "" "Creating a `String` puts fixed-sized metadata on the stack and dynamically " "sized data, the actual string, on the heap:" msgstr "" -"Crearea unui `String` plasează metadatele de dimensiuni fixe pe stivă și " -"datele de dimensiuni dinamice, șirul propriu-zis, pe heap:" +"Crearea unui `String` plasează metadatele de dimensiuni fixe pe stivă și datele " +"de dimensiuni dinamice, șirul propriu-zis, pe heap:" #: src/memory-management/review.md msgid "" -"Mention that a `String` is backed by a `Vec`, so it has a capacity and " -"length and can grow if mutable via reallocation on the heap." +"Mention that a `String` is backed by a `Vec`, so it has a capacity and length " +"and can grow if mutable via reallocation on the heap." msgstr "" -"Menționați că un `String` este susținut de un `Vec`, deci are o capacitate " -"și o lungime și poate crește dacă este mutabil prin realocare pe heap." +"Menționați că un `String` este susținut de un `Vec`, deci are o capacitate și o " +"lungime și poate crește dacă este mutabil prin realocare pe heap." #: src/memory-management/review.md msgid "" @@ -8736,15 +8158,15 @@ msgid "" "[Allocator API](https://doc.rust-lang.org/std/alloc/index.html)" msgstr "" "Dacă cursanții vă întreabă despre acest lucru, puteți menționa că memoria de " -"bază este alocată în heap cu ajutorul [System Allocator](https://doc.rust-" -"lang.org/std/alloc/struct.System.html) și că alocatorii personalizați pot fi " +"bază este alocată în heap cu ajutorul [System Allocator](https://doc.rust-lang." +"org/std/alloc/struct.System.html) și că alocatorii personalizați pot fi " "implementați cu ajutorul [Allocator API](https://doc.rust-lang.org/std/alloc/" "index.html)" #: src/memory-management/review.md msgid "" -"We can inspect the memory layout with `unsafe` Rust. However, you should " -"point out that this is rightfully unsafe!" +"We can inspect the memory layout with `unsafe` Rust. However, you should point " +"out that this is rightfully unsafe!" msgstr "" "Putem inspecta dispunerea memoriei cu `unsafe` Rust. Cu toate acestea, ar " "trebui să precizați că acest lucru este, pe bună dreptate, nesigur!" @@ -8754,25 +8176,21 @@ msgid "' '" msgstr "' '" #: src/memory-management/review.md -#, fuzzy msgid "\"world\"" msgstr "\"lume\"" #: src/memory-management/review.md -#, fuzzy msgid "" "// DON'T DO THIS AT HOME! For educational purposes only.\n" -" // String provides no guarantees about its layout, so this could lead " -"to\n" +" // String provides no guarantees about its layout, so this could lead to\n" " // undefined behavior.\n" msgstr "" "// NU FACEȚI ASTA ACASĂ! Doar în scopuri educaționale.\n" -" // Șirul de caractere nu oferă nicio garanție cu privire la aspectul " -"său, astfel încât acest lucru ar putea duce la\n" +" // Șirul de caractere nu oferă nicio garanție cu privire la dispunerea sa " +"în memorie, astfel încât acest lucru ar putea duce la\n" " // comportament nedefinit.\n" #: src/memory-management/review.md -#, fuzzy msgid "\"capacity = {capacity}, ptr = {ptr:#x}, len = {len}\"" msgstr "\"capacity = {capacity}, ptr = {ptr:#x}, len = {len}\"" @@ -8785,20 +8203,16 @@ msgid "Full control via manual memory management: C, C++, Pascal, ..." msgstr "Control total prin gestionarea manuală a memoriei: C, C++, Pascal, ..." #: src/memory-management/approaches.md -#, fuzzy msgid "Programmer decides when to allocate or free heap memory." msgstr "Programatorul decide când să aloce sau să elibereze memoria heap." #: src/memory-management/approaches.md -#, fuzzy -msgid "" -"Programmer must determine whether a pointer still points to valid memory." +msgid "Programmer must determine whether a pointer still points to valid memory." msgstr "" -"Programatorul trebuie să determine dacă un pointer mai indică o memorie " +"Programatorul trebuie să determine dacă un pointer mai indică o zonă de memorie " "validă." #: src/memory-management/approaches.md -#, fuzzy msgid "Studies show, programmers make mistakes." msgstr "Studiile arată că programatorii fac greșeli." @@ -8811,21 +8225,19 @@ msgstr "" "Java, Python, Go, Haskell, ..." #: src/memory-management/approaches.md -#, fuzzy msgid "" "A runtime system ensures that memory is not freed until it can no longer be " "referenced." msgstr "" -"Un sistem de execuție se asigură că memoria nu este eliberată până când nu " -"mai poate fi utilizată ca referință." +"Un sistem de execuție se asigură că memoria nu este eliberată cât timp poate fi " +"utilizată ca referință." #: src/memory-management/approaches.md #, fuzzy -msgid "" -"Typically implemented with reference counting, garbage collection, or RAII." +msgid "Typically implemented with reference counting or garbage collection." msgstr "" -"De obicei, se implementează cu numărarea referințelor, colectarea gunoiului " -"sau RAII." +"De obicei, se implementează cu numărarea referințelor, colectarea gunoiului sau " +"RAII." #: src/memory-management/approaches.md msgid "Rust offers a new mix:" @@ -8836,129 +8248,118 @@ msgid "" "Full control _and_ safety via compile time enforcement of correct memory " "management." msgstr "" -"Control total _și_ siguranță prin aplicarea în timpul compilării a " -"gestionării corecte a memoriei." +"Control total _și_ siguranță prin aplicarea în timpul compilării a gestionării " +"corecte a memoriei." #: src/memory-management/approaches.md msgid "It does this with an explicit ownership concept." -msgstr "" -"Acest lucru se realizează cu ajutorul unui concept explicit de posesie." +msgstr "Acest lucru se realizează cu ajutorul unui concept explicit de posesie." #: src/memory-management/approaches.md -#, fuzzy msgid "" -"This slide is intended to help students coming from other languages to put " -"Rust in context." +"This slide is intended to help students coming from other languages to put Rust " +"in context." msgstr "" -"Această diapozitivă este menită să-i ajute pe studenții care vin din alte " -"limbi să pună Rust în context." +"Acest diapozitiv este menit să-i ajute pe cursanții care sunt familiarizați cu " +"alte limbaje să pună Rust în context." #: src/memory-management/approaches.md -#, fuzzy msgid "" "C must manage heap manually with `malloc` and `free`. Common errors include " -"forgetting to call `free`, calling it multiple times for the same pointer, " -"or dereferencing a pointer after the memory it points to has been freed." +"forgetting to call `free`, calling it multiple times for the same pointer, or " +"dereferencing a pointer after the memory it points to has been freed." msgstr "" -"C trebuie să gestioneze manual heap cu `malloc` și `free`. Printre erorile " -"frecvente se numără uitarea apelării lui `free`, apelarea de mai multe ori " -"pentru același pointer sau dereferențierea unui pointer după ce memoria la " -"care acesta indică a fost eliberată." +"C trebuie să gestioneze manual heap-ul cu `malloc` și `free`. Printre erorile " +"frecvente se numără uitarea apelării lui `free`, apelarea sa de mai multe ori " +"pentru același pointer sau dereferențierea unui pointer după ce memoria la care " +"acesta indică a fost eliberată." #: src/memory-management/approaches.md -#, fuzzy msgid "" "C++ has tools like smart pointers (`unique_ptr`, `shared_ptr`) that take " -"advantage of language guarantees about calling destructors to ensure memory " -"is freed when a function returns. It is still quite easy to mis-use these " -"tools and create similar bugs to C." +"advantage of language guarantees about calling destructors to ensure memory is " +"freed when a function returns. It is still quite easy to mis-use these tools " +"and create similar bugs to C." msgstr "" "C++ dispune de instrumente precum pointeri inteligenți (`unique_ptr`, " "`shared_ptr`) care profită de garanțiile limbajului privind apelarea " -"destructoriilor pentru a se asigura că memoria este eliberată atunci când o " -"funcție se întoarce. Este încă destul de ușor să se utilizeze în mod greșit " -"aceste instrumente și să se creeze erori similare cu cele din C." +"destructorilor pentru a se asigura că memoria este eliberată atunci când o " +"funcție se întoarce. Aceste instrumente se pot folosi în mod greșit ușor și se " +"creează erori similare cu cele din C." #: src/memory-management/approaches.md -#, fuzzy msgid "" -"Java, Go, and Python rely on the garbage collector to identify memory that " -"is no longer reachable and discard it. This guarantees that any pointer can " -"be dereferenced, eliminating use-after-free and other classes of bugs. But, " -"GC has a runtime cost and is difficult to tune properly." +"Java, Go, and Python rely on the garbage collector to identify memory that is " +"no longer reachable and discard it. This guarantees that any pointer can be " +"dereferenced, eliminating use-after-free and other classes of bugs. But, GC has " +"a runtime cost and is difficult to tune properly." msgstr "" -"Java, Go și Python se bazează pe colectorul de gunoi pentru a identifica " -"memoria care nu mai este accesibilă și pentru a o elimina. Acest lucru " -"garantează faptul că orice pointer poate fi dereferențiat, eliminând astfel " -"utilizarea după liber și alte clase de erori. Însă, GC are un cost în timpul " -"execuției și este dificil de reglat corespunzător." +"Java, Go și Python se bazează pe colectorul de gunoi (GC - garbage collector) " +"pentru a identifica memoria care nu mai este accesibilă și pentru a o elimina. " +"Acest lucru garantează faptul că orice pointer poate fi dereferențiat, " +"eliminând astfel utilizarea după eliberare și alte clase de erori. Însă, GC are " +"un cost în timpul execuției și este dificil de reglat corespunzător." #: src/memory-management/approaches.md -#, fuzzy msgid "" -"Rust's ownership and borrowing model can, in many cases, get the performance " -"of C, with alloc and free operations precisely where they are required -- " -"zero cost. It also provides tools similar to C++'s smart pointers. When " -"required, other options such as reference counting are available, and there " -"are even third-party crates available to support runtime garbage collection " -"(not covered in this class)." +"Rust's ownership and borrowing model can, in many cases, get the performance of " +"C, with alloc and free operations precisely where they are required -- zero " +"cost. It also provides tools similar to C++'s smart pointers. When required, " +"other options such as reference counting are available, and there are even " +"third-party crates available to support runtime garbage collection (not covered " +"in this class)." msgstr "" "Modelul de proprietate și împrumut al Rust poate, în multe cazuri, să obțină " -"performanța lui C, cu alocări și operațiuni gratuite exact acolo unde sunt " -"necesare - cost zero. De asemenea, acesta oferă instrumente similare cu " -"indicatoarele inteligente din C++. Atunci când este necesar, sunt " -"disponibile și alte opțiuni, cum ar fi numărarea referințelor, și există " -"chiar și cratere de la terți disponibile pentru a sprijini colectarea " -"gunoiului în timpul execuției (nu sunt acoperite în acest curs)." +"performanța lui C, cu operații gratuite de alocare și eliberare a memoriei, " +"exact acolo unde sunt necesare - cost zero. De asemenea, acesta oferă " +"instrumente similare cu pointerii inteligenți din C++. Atunci când este " +"necesar, sunt disponibile și alte opțiuni, cum ar fi numărarea referințelor, și " +"există disponibile și crates de la terți pentru a sprijini colectarea gunoiului " +"în timpul execuției (subiectul nu este acoperit în acest curs)." #: src/memory-management/ownership.md -#, fuzzy msgid "" -"All variable bindings have a _scope_ where they are valid and it is an error " -"to use a variable outside its scope:" +"All variable bindings have a _scope_ where they are valid and it is an error to " +"use a variable outside its scope:" msgstr "" "Toate legăturile de variabile au un _scop_ în care sunt valabile și este o " "eroare să folosești o variabilă în afara domeniului său de aplicare:" #: src/memory-management/ownership.md -#, fuzzy msgid "" -"We say that the variable _owns_ the value. Every Rust value has precisely " -"one owner at all times." -msgstr "Spunem că variabila _deține_ valoarea." +"We say that the variable _owns_ the value. Every Rust value has precisely one " +"owner at all times." +msgstr "" +"Spunem că variabila _deține_ valoarea. Toate valorile din Rust au un singur " +"proprietar în orice moment." #: src/memory-management/ownership.md -#, fuzzy msgid "" "At the end of the scope, the variable is _dropped_ and the data is freed. A " "destructor can run here to free up resources." msgstr "" -"La sfârșitul domeniului de aplicare, variabila este \"eliminată\", iar " -"datele sunt eliberate." +"La finalul domeniului de aplicare, variabila este \"eliminată\", iar datele " +"sunt eliberate." #: src/memory-management/ownership.md -#, fuzzy msgid "" "Students familiar with garbage-collection implementations will know that a " -"garbage collector starts with a set of \"roots\" to find all reachable " -"memory. Rust's \"single owner\" principle is a similar idea." +"garbage collector starts with a set of \"roots\" to find all reachable memory. " +"Rust's \"single owner\" principle is a similar idea." msgstr "" -"Studenții familiarizați cu implementările de colectare a gunoiului știu că " -"un colector de gunoi începe cu un set de \"rădăcini\" pentru a găsi toată " -"memoria accesibilă. Principiul \"proprietarului unic\" din Rust este o idee " -"similară." +"Cursanții familiarizați cu implementările de colectare a gunoiului știu că un " +"colector de gunoi începe cu un set de \"rădăcini\" pentru a găsi toată memoria " +"accesibilă. Principiul \"proprietarului unic\" din Rust este o idee similară." #: src/memory-management/move.md msgid "An assignment will transfer _ownership_ between variables:" msgstr "O atribuire va transfera _posesia_ între variabile:" -#: src/memory-management/move.md -#, fuzzy +#: src/memory-management/move.md src/concurrency/async-control-flow/select.md msgid "\"Hello!\"" -msgstr "\"hello\"" +msgstr "\"Bună!\"" #: src/memory-management/move.md -#, fuzzy msgid "// println!(\"s1: {s1}\");\n" msgstr "// println!(\"s1: {s1}\");\n" @@ -8969,8 +8370,7 @@ msgstr "Atribuirea lui `s1` la `s2` transferă posesiunea." #: src/memory-management/move.md msgid "When `s1` goes out of scope, nothing happens: it does not own anything." msgstr "" -"Când `s1` iese din domeniul de aplicare, nu se întâmplă nimic: nu posedă " -"nimic." +"Când `s1` iese din domeniul de aplicare, nu se întâmplă nimic: nu posedă nimic." #: src/memory-management/move.md msgid "When `s2` goes out of scope, the string data is freed." @@ -8987,7 +8387,6 @@ msgid "After move to `s2`:" msgstr "După mutarea în `s2`:" #: src/memory-management/move.md -#, fuzzy msgid "" "```bob\n" " Stack Heap\n" @@ -9011,22 +8410,22 @@ msgid "" "```" msgstr "" "```bob\n" -" Stiva Heap\n" -".- - - - - - - - - - - - - -. .- - - - - - - - - - - - - -.\n" -": : : :\n" -": s1 \"(inaccesibl)\" : : :\n" -": +—————+———+ : : +——+——+——+——+ :\n" -": | ptr | o—+—+—+—+—>| R | u | s | t | :\n" -": | len | 4 | : | : +——+——+——+——+ :\n" -": | capacity | 4 | : | : :\n" -": +—————+———+ : | : :\n" -": : | `- - - - - - - - - - - - - -'\n" +" Stivă Heap\n" +".- - - - - - - - - - - - - -. .- - - - - - - - - - - - - - - - - - -.\n" +": : : :\n" +": s1 \"(inaccessibil)\" : : :\n" +": +-----------+-------+ : : +----+----+----+----+----+----+ :\n" +": | ptr | o---+---+--+--+-->| H | e | l | l | o | ! | :\n" +": | len | 6 | : | : +----+----+----+----+----+----+ :\n" +": | capacity | 6 | : | : :\n" +": +-----------+-------+ : | : :\n" +": : | `- - - - - - - - - - - - - - - - - - -'\n" ": s2 : |\n" -": +—————+———+ : |\n" -": | ptr | o—+—+—'\n" -": | len | 4 | :\n" -": | capacity | 4 | :\n" -": +—————+———+ :\n" +": +-----------+-------+ : |\n" +": | ptr | o---+---+--'\n" +": | len | 6 | :\n" +": | capacity | 6 | :\n" +": +-----------+-------+ :\n" ": :\n" "`- - - - - - - - - - - - - -'\n" "```" @@ -9040,43 +8439,39 @@ msgstr "" "parametrului funcției. Acest lucru transferă posesia:" #: src/memory-management/move.md src/memory-management/clone.md -#, fuzzy msgid "\"Hello {name}\"" msgstr "\"Bună ziua {name}\"" #: src/memory-management/move.md src/memory-management/clone.md #: src/android/interoperability/java.md -#, fuzzy msgid "\"Alice\"" -msgstr "Felii" +msgstr "\"Alice\"" #: src/memory-management/move.md -#, fuzzy msgid "// say_hello(name);\n" msgstr "// say_hello(name);\n" #: src/memory-management/move.md msgid "" -"Mention that this is the opposite of the defaults in C++, which copies by " -"value unless you use `std::move` (and the move constructor is defined!)." +"Mention that this is the opposite of the defaults in C++, which copies by value " +"unless you use `std::move` (and the move constructor is defined!)." msgstr "" -"Menționați că acest lucru este opusul valorilor implicite din C++, care " -"copiază prin valoare, cu excepția cazului în care folosiți `std::move` (și " +"Menționați că acest lucru este opusul valorilor implicite din C++, care copiază " +"prin valoare, cu excepția cazului în care folosiți `std::move` (și " "constructorul move este definit!)." #: src/memory-management/move.md msgid "" -"It is only the ownership that moves. Whether any machine code is generated " -"to manipulate the data itself is a matter of optimization, and such copies " -"are aggressively optimized away." +"It is only the ownership that moves. Whether any machine code is generated to " +"manipulate the data itself is a matter of optimization, and such copies are " +"aggressively optimized away." msgstr "" "Doar posesia este cea care se schimbă. Generarea codului mașină pentru a " "manipula datele în sine este o chestiune de optimizare, iar astfel de copii " "sunt optimizate în mod agresiv." #: src/memory-management/move.md -msgid "" -"Simple values (such as integers) can be marked `Copy` (see later slides)." +msgid "Simple values (such as integers) can be marked `Copy` (see later slides)." msgstr "" "Valorile simple (cum ar fi numerele întregi) pot fi marcate cu `Copy` (a se " "vedea slide-urile ulterioare)." @@ -9086,7 +8481,6 @@ msgid "In Rust, clones are explicit (by using `clone`)." msgstr "În Rust, clonele sunt explicite (prin utilizarea lui `clone`)." #: src/memory-management/move.md -#, fuzzy msgid "In the `say_hello` example:" msgstr "În exemplul `say_hello`:" @@ -9095,8 +8489,8 @@ msgid "" "With the first call to `say_hello`, `main` gives up ownership of `name`. " "Afterwards, `name` cannot be used anymore within `main`." msgstr "" -"Odată cu primul apel la `say_hello`, `main` nu mai deține `name` și, " -"ulterior, nu îl mai poate utiliza." +"Odată cu primul apel la `say_hello`, `main` nu mai deține `name` și, ulterior, " +"nu îl mai poate utiliza." #: src/memory-management/move.md msgid "" @@ -9107,25 +8501,22 @@ msgstr "" "`say_hello`." #: src/memory-management/move.md -#, fuzzy msgid "" -"`main` can retain ownership if it passes `name` as a reference (`&name`) and " -"if `say_hello` accepts a reference as a parameter." +"`main` can retain ownership if it passes `name` as a reference (`&name`) and if " +"`say_hello` accepts a reference as a parameter." msgstr "" -"`main` poate păstra proprietatea dacă transmite `name` ca referință " -"(`&name`) și dacă `say_hello` acceptă o referință ca parametru." +"`main` poate păstra proprietatea dacă transmite `name` ca referință (`&name`) " +"și dacă `say_hello` acceptă o referință ca parametru." #: src/memory-management/move.md -#, fuzzy msgid "" "Alternatively, `main` can pass a clone of `name` in the first call (`name." "clone()`)." msgstr "" -"Alternativ, `main` poate transmite o clonă a lui `name` la primul apel " -"(`name.clone()`)." +"Alternativ, `main` poate transmite o clonă a lui `name` la primul apel (`name." +"clone()`)." #: src/memory-management/move.md -#, fuzzy msgid "" "Rust makes it harder than C++ to inadvertently create copies by making move " "semantics the default, and by forcing programmers to make clones explicit." @@ -9143,12 +8534,10 @@ msgid "Modern C++ solves this differently:" msgstr "C++ modern rezolvă acest lucru în mod diferit:" #: src/memory-management/move.md -#, fuzzy msgid "\"Cpp\"" msgstr "\"Cpp\"" #: src/memory-management/move.md -#, fuzzy msgid "// Duplicate the data in s1.\n" msgstr "// Duplicarea datelor din s1.\n" @@ -9162,18 +8551,16 @@ msgstr "" #: src/memory-management/move.md msgid "When `s1` and `s2` go out of scope, they each free their own memory." msgstr "" -"Atunci când `s1` și `s2` ies din domeniul de aplicare, fiecare își " -"eliberează propria memorie." +"Atunci când `s1` și `s2` ies din domeniul de aplicare, fiecare își eliberează " +"propria memorie." #: src/memory-management/move.md -#, fuzzy msgid "Before copy-assignment:" -msgstr "Înainte de atribuirea copiilor:" +msgstr "Înainte de atribuirea copierilor:" #: src/memory-management/move.md -#, fuzzy msgid "After copy-assignment:" -msgstr "După atribuirea copiilor:" +msgstr "După atribuirea copierilor:" #: src/memory-management/move.md msgid "" @@ -9181,120 +8568,104 @@ msgid "" "the string data has to be cloned. Otherwise we would get a double-free when " "either string goes out of scope." msgstr "" -"În C++ a fost făcută o alegere ușor diferită față de Rust. Deoarece `=` " -"copiază date, datele șirului de caractere trebuie clonate. În caz contrar, " -"am obține o dublă eliberare atunci când oricare dintre șiruri iese din " -"domeniu." +"În C++ a fost făcută o alegere ușor diferită față de Rust. Deoarece `=` copiază " +"date, datele șirului de caractere trebuie clonate. În caz contrar, am obține o " +"dublă eliberare atunci când oricare dintre șiruri iese din domeniu." #: src/memory-management/move.md msgid "" "C++ also has [`std::move`](https://en.cppreference.com/w/cpp/utility/move), " "which is used to indicate when a value may be moved from. If the example had " -"been `s2 = std::move(s1)`, no heap allocation would take place. After the " -"move, `s1` would be in a valid but unspecified state. Unlike Rust, the " -"programmer is allowed to keep using `s1`." +"been `s2 = std::move(s1)`, no heap allocation would take place. After the move, " +"`s1` would be in a valid but unspecified state. Unlike Rust, the programmer is " +"allowed to keep using `s1`." msgstr "" -"C++ are, de asemenea, [`std::move`](https://en.cppreference.com/w/cpp/" -"utility/move), care este utilizat pentru a indica când o valoare poate fi " -"mutată. Dacă exemplul ar fi fost `s2 = std::move(s1)`, nu ar fi avut loc " -"nicio alocare de heap. După mutare, `s1` ar fi într-o stare validă, dar " -"nespecificată. Spre deosebire de Rust, programatorului i se permite să " -"continue să folosească `s1`." +"C++ are, de asemenea, [`std::move`](https://en.cppreference.com/w/cpp/utility/" +"move), care este utilizat pentru a indica când o valoare poate fi mutată. Dacă " +"exemplul ar fi fost `s2 = std::move(s1)`, nu ar fi avut loc nicio alocare de " +"heap. După mutare, `s1` ar fi într-o stare validă, dar nespecificată. Spre " +"deosebire de Rust, programatorului i se permite să continue să folosească `s1`." #: src/memory-management/move.md msgid "" -"Unlike Rust, `=` in C++ can run arbitrary code as determined by the type " -"which is being copied or moved." +"Unlike Rust, `=` in C++ can run arbitrary code as determined by the type which " +"is being copied or moved." msgstr "" -"Spre deosebire de Rust, `=` în C++ poate rula cod arbitrar în funcție de " -"tipul care este copiat sau mutat." +"Spre deosebire de Rust, `=` în C++ poate rula cod arbitrar în funcție de tipul " +"care este copiat sau mutat." #: src/memory-management/clone.md msgid "Clone" msgstr "Clonare" #: src/memory-management/clone.md -#, fuzzy msgid "" -"Sometimes you _want_ to make a copy of a value. The `Clone` trait " -"accomplishes this." +"Sometimes you _want_ to make a copy of a value. The `Clone` trait accomplishes " +"this." msgstr "" "Uneori, doriți să faceți o copie a unei valori. Caracteristica `Clone` " "realizează acest lucru." #: src/memory-management/clone.md -#, fuzzy msgid "" "The idea of `Clone` is to make it easy to spot where heap allocations are " "occurring. Look for `.clone()` and a few others like `vec!` or `Box::new`." msgstr "" "Ideea lui `Clone` este de a face mai ușor de observat unde au loc alocări de " -"heap. Căutați `.clone()` și alte câteva ca `Vec::new` sau `Box::new`." +"heap. Căutați `.clone()` și alte funcții precum `Vec::new` sau `Box::new`." #: src/memory-management/clone.md -#, fuzzy msgid "" -"It's common to \"clone your way out\" of problems with the borrow checker, " -"and return later to try to optimize those clones away." +"It's common to \"clone your way out\" of problems with the borrow checker, and " +"return later to try to optimize those clones away." msgstr "" -"Este obișnuit să \"clonezi\" problemele cu verificatorul de împrumuturi și " -"să revii mai târziu pentru a încerca să optimizezi acele clone." +"Este uzuală evitarea problemelor cu verificatorul de împrumuturi prin clonarea " +"variabilelor și să revenirea ulterioară pentru a optimiza acele clone." #: src/memory-management/clone.md -#, fuzzy msgid "" -"`clone` generally performs a deep copy of the value, meaning that if you e." -"g. clone an array, all of the elements of the array are cloned as well." +"`clone` generally performs a deep copy of the value, meaning that if you e.g. " +"clone an array, all of the elements of the array are cloned as well." msgstr "" -"`clone` efectuează în general o copie profundă a valorii, ceea ce înseamnă " -"că, dacă, de exemplu, clonezi un array, toate elementele array-ului sunt " -"clonate și ele." +"`clone` efectuează în general o copie completă a valorii, ceea ce înseamnă că, " +"dacă, de exemplu, clonezi un array, toate elementele array-ului sunt clonate și " +"ele." #: src/memory-management/clone.md -#, fuzzy msgid "" "The behavior for `clone` is user-defined, so it can perform custom cloning " "logic if needed." msgstr "" -"Comportamentul pentru `clone` este definit de utilizator, astfel încât " -"acesta poate efectua o logică de clonare personalizată, dacă este necesar." +"Comportamentul pentru `clone` este definit de utilizator, astfel încât acesta " +"poate efectua o logică de clonare personalizată, dacă este necesar." #: src/memory-management/copy-types.md -#, fuzzy -msgid "" -"While move semantics are the default, certain types are copied by default:" +msgid "While move semantics are the default, certain types are copied by default:" msgstr "" -"În timp ce semantica de mutare este cea implicită, anumite tipuri sunt " -"copiate în mod implicit:" +"În timp ce semantica de mutare este cea implicită, anumite tipuri sunt copiate " +"în mod implicit:" #: src/memory-management/copy-types.md -#, fuzzy msgid "These types implement the `Copy` trait." msgstr "Aceste tipuri implementează trăsătura `Copy`." #: src/memory-management/copy-types.md -#, fuzzy msgid "You can opt-in your own types to use copy semantics:" -msgstr "" -"Puteți opta pentru ca propriile tipuri să utilizeze semantica de copiere:" +msgstr "Puteți opta pentru ca propriile tipuri să utilizeze semantica de copiere:" #: src/memory-management/copy-types.md -#, fuzzy msgid "After the assignment, both `p1` and `p2` own their own data." msgstr "După atribuire, atât `p1` cât și `p2` dețin propriile date." #: src/memory-management/copy-types.md -#, fuzzy msgid "We can also use `p1.clone()` to explicitly copy the data." msgstr "De asemenea, putem folosi `p1.clone()` pentru a copia explicit datele." #: src/memory-management/copy-types.md -#, fuzzy msgid "Copying and cloning are not the same thing:" msgstr "Copierea și clonarea nu sunt același lucru:" #: src/memory-management/copy-types.md -#, fuzzy msgid "" "Copying refers to bitwise copies of memory regions and does not work on " "arbitrary objects." @@ -9303,15 +8674,12 @@ msgstr "" "funcționează pe obiecte arbitrare." #: src/memory-management/copy-types.md -#, fuzzy -msgid "" -"Copying does not allow for custom logic (unlike copy constructors in C++)." +msgid "Copying does not allow for custom logic (unlike copy constructors in C++)." msgstr "" -"Copierea nu permite o logică personalizată (spre deosebire de constructorii " -"de copiere din C++)." +"Copierea nu permite o logică personalizată (spre deosebire de constructorii de " +"copiere din C++)." #: src/memory-management/copy-types.md -#, fuzzy msgid "" "Cloning is a more general operation and also allows for custom behavior by " "implementing the `Clone` trait." @@ -9320,27 +8688,22 @@ msgstr "" "comportament personalizat prin implementarea trăsăturii `Clone`." #: src/memory-management/copy-types.md -#, fuzzy msgid "Copying does not work on types that implement the `Drop` trait." -msgstr "" -"Copierea nu funcționează pe tipurile care implementează trăsătura `Drop`." +msgstr "Copierea nu funcționează pe tipurile care implementează trăsătura `Drop`." #: src/memory-management/copy-types.md -#, fuzzy msgid "In the above example, try the following:" msgstr "În exemplul de mai sus, încercați următoarele:" #: src/memory-management/copy-types.md -#, fuzzy msgid "" -"Add a `String` field to `struct Point`. It will not compile because `String` " -"is not a `Copy` type." +"Add a `String` field to `struct Point`. It will not compile because `String` is " +"not a `Copy` type." msgstr "" -"Adăugați un câmp `String` la `struct Point`. Nu se va compila deoarece " -"`String` nu este un tip `Copy`." +"Adăugați un câmp `String` la `struct Point`. Nu se va compila deoarece `String` " +"nu este un tip `Copy`." #: src/memory-management/copy-types.md -#, fuzzy msgid "" "Remove `Copy` from the `derive` attribute. The compiler error is now in the " "`println!` for `p1`." @@ -9349,17 +8712,27 @@ msgstr "" "`println!` pentru `p1`." #: src/memory-management/copy-types.md -#, fuzzy msgid "Show that it works if you clone `p1` instead." msgstr "Arătați că funcționează dacă clonați `p1` în locul lui." +#: src/memory-management/copy-types.md +msgid "" +"Shared references are `Copy`/`Clone`, mutable references are not. This is " +"because rust requires that mutable references be exclusive, so while it's valid " +"to make a copy of a shared reference, creating a copy of a mutable reference " +"would violate Rust's borrowing rules." +msgstr "" +"Referințele partajate sunt `Copy`/`Clone`, referințele mutabile nu sunt. Acest " +"lucru se datorează faptului că Rust cere ca referințele mutabile să fie " +"exclusive, astfel încât, deși este valabil să faceți o copie a unei referințe " +"partajate, crearea unei copii a unei referințe mutabile ar încălca regulile de " +"împrumut ale Rust." + #: src/memory-management/drop.md -#, fuzzy msgid "The `Drop` Trait" msgstr "Trăsătura `Drop` (cădere)" #: src/memory-management/drop.md -#, fuzzy msgid "" "Values which implement [`Drop`](https://doc.rust-lang.org/std/ops/trait.Drop." "html) can specify code to run when they go out of scope:" @@ -9369,60 +8742,48 @@ msgstr "" "domeniul de aplicare:" #: src/memory-management/drop.md -#, fuzzy msgid "\"Dropping {}\"" -msgstr "\"Dropping {}\"" +msgstr "\"Renunț la {}\"" #: src/memory-management/drop.md src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"a\"" msgstr "\"a\"" #: src/memory-management/drop.md src/android/testing/googletest.md -#, fuzzy msgid "\"b\"" msgstr "\"b\"" #: src/memory-management/drop.md -#, fuzzy msgid "\"c\"" msgstr "\"c\"" #: src/memory-management/drop.md -#, fuzzy msgid "\"d\"" -msgstr "'d'" +msgstr "\"d\"" #: src/memory-management/drop.md -#, fuzzy msgid "\"Exiting block B\"" msgstr "\"Ieșirea din blocul B\"" #: src/memory-management/drop.md -#, fuzzy msgid "\"Exiting block A\"" msgstr "\"Ieșirea din blocul A\"" #: src/memory-management/drop.md -#, fuzzy msgid "\"Exiting main\"" -msgstr "\"Ieșire principală\"" +msgstr "\"Ieșire din funcția main\"" #: src/memory-management/drop.md -#, fuzzy msgid "Note that `std::mem::drop` is not the same as `std::ops::Drop::drop`." msgstr "" "Rețineți că `std::mem::drop` nu este același lucru cu `std::ops::Drop::drop`." #: src/memory-management/drop.md -#, fuzzy msgid "Values are automatically dropped when they go out of scope." -msgstr "" -"Valorile sunt eliminate automat atunci când ies din domeniul de aplicare." +msgstr "Valorile sunt eliminate automat atunci când ies din domeniul de aplicare." #: src/memory-management/drop.md -#, fuzzy msgid "" "When a value is dropped, if it implements `std::ops::Drop` then its `Drop::" "drop` implementation will be called." @@ -9431,79 +8792,69 @@ msgstr "" "atunci va fi apelată implementarea `Drop::drop` a acesteia." #: src/memory-management/drop.md -#, fuzzy msgid "" "All its fields will then be dropped too, whether or not it implements `Drop`." msgstr "" -"Toate câmpurile sale vor fi apoi eliminate, indiferent dacă implementează " -"sau nu `Drop`." +"Toate câmpurile sale vor fi apoi eliminate, indiferent dacă implementează sau " +"nu `Drop`." #: src/memory-management/drop.md -#, fuzzy msgid "" "`std::mem::drop` is just an empty function that takes any value. The " "significance is that it takes ownership of the value, so at the end of its " -"scope it gets dropped. This makes it a convenient way to explicitly drop " -"values earlier than they would otherwise go out of scope." +"scope it gets dropped. This makes it a convenient way to explicitly drop values " +"earlier than they would otherwise go out of scope." msgstr "" "`std::mem::drop` este doar o funcție goală care acceptă orice valoare. " "Semnificația este că preia proprietatea asupra valorii, astfel încât la " -"sfârșitul domeniului său de aplicare aceasta este eliminată. Acest lucru o " -"face o modalitate convenabilă de a renunța în mod explicit la valori mai " -"devreme decât ar fi ieșit altfel din domeniul de aplicare." +"sfârșitul domeniului său de aplicare aceasta este eliminată. Acest lucru o face " +"o modalitate convenabilă de a renunța în mod explicit la valori mai devreme " +"decât ar fi ieșit altfel din domeniul de aplicare." #: src/memory-management/drop.md -#, fuzzy msgid "" "This can be useful for objects that do some work on `drop`: releasing locks, " "closing files, etc." msgstr "" -"Acest lucru poate fi util pentru obiectele care efectuează anumite " -"activități la `drop`: eliberarea de blocaje, închiderea fișierelor etc." +"Acest lucru poate fi util pentru obiectele care efectuează anumite activități " +"la `drop`: eliberarea de blocaje, închiderea fișierelor etc." #: src/memory-management/drop.md -#, fuzzy msgid "Why doesn't `Drop::drop` take `self`?" msgstr "De ce `Drop::drop` nu ia `self`?" #: src/memory-management/drop.md -#, fuzzy msgid "" "Short-answer: If it did, `std::mem::drop` would be called at the end of the " "block, resulting in another call to `Drop::drop`, and a stack overflow!" msgstr "" -"Răspuns scurt: Dacă ar fi făcut-o, `std::mem::drop` ar fi fost apelat la " +"Răspunsul pe scurt: dacă ar fi făcut-o, `std::mem::drop` ar fi fost apelat la " "sfârșitul blocului, rezultând un alt apel la `Drop::drop` și o depășire a " "stivei!" #: src/memory-management/drop.md -#, fuzzy msgid "Try replacing `drop(a)` with `a.drop()`." msgstr "Încercați să înlocuiți `drop(a)` cu `a.drop()`." #: src/memory-management/exercise.md -#, fuzzy msgid "" "In this example, we will implement a complex data type that owns all of its " -"data. We will use the \"builder pattern\" to support building a new value " -"piece-by-piece, using convenience functions." +"data. We will use the \"builder pattern\" to support building a new value piece-" +"by-piece, using convenience functions." msgstr "" "În acest exemplu, vom implementa un tip de date complex care deține toate " "datele sale. Vom utiliza \"modelul de constructor\" pentru a sprijini " "construirea unei noi valori bucată cu bucată, utilizând funcții de confort." #: src/memory-management/exercise.md -#, fuzzy msgid "Fill in the missing pieces." msgstr "Completați piesele lipsă." #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "/// A representation of a software package.\n" msgstr "/// O reprezentare a unui pachet software.\n" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "" "/// Return a representation of this package as a dependency, for use in\n" " /// building other packages.\n" @@ -9513,143 +8864,115 @@ msgstr "" " /// construirea altor pachete.\n" #: src/memory-management/exercise.md -#, fuzzy msgid "\"1\"" -msgstr "`dbg_size!(bool)`: dimensiune 1 octet, aliniere: 1 octet," +msgstr "\"1\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "" "/// A builder for a Package. Use `build()` to create the `Package` itself.\n" msgstr "" "/// Un constructor pentru un pachet. Utilizați `build()` pentru a crea " -"`Pachet` însuși.\n" +"`Package`.\n" #: src/memory-management/exercise.md -#, fuzzy msgid "\"2\"" -msgstr "" -"Același lucru este valabil și pentru ultimul indice, astfel încât `&a[2..a." -"len()]` și `&a[2..]` sunt identice." +msgstr "\"2\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "/// Set the package version.\n" msgstr "/// Setează versiunea pachetului.\n" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "/// Set the package authors.\n" msgstr "/// Setează autorii pachetului.\n" #: src/memory-management/exercise.md -#, fuzzy msgid "\"3\"" -msgstr "Codificați ambele funcții pentru a opera pe matrici 3 × 3." +msgstr "\"3\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "/// Add an additional dependency.\n" msgstr "/// Adăugați o dependență suplimentară.\n" #: src/memory-management/exercise.md -#, fuzzy msgid "\"4\"" msgstr "\"4\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "/// Set the language. If not set, language defaults to None.\n" msgstr "/// Setați limba. Dacă nu este setată, limba este implicită la None.\n" #: src/memory-management/exercise.md -#, fuzzy msgid "\"5\"" -msgstr "[Introducere](./welcome-day-1.md) (5 minute)" +msgstr "\"5\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"base64\"" msgstr "\"base64\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"0.13\"" msgstr "\"0.13\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"base64: {base64:?}\"" msgstr "\"base64: {base64:?}\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"log\"" msgstr "\"log\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"0.4\"" msgstr "\"0.4\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"log: {log:?}\"" msgstr "\"log: {log:?}\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"serde\"" msgstr "\"serde\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"djmitche\"" msgstr "\"djmitche\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"4.0\"" msgstr "\"4.0\"" #: src/memory-management/exercise.md src/memory-management/solution.md -#, fuzzy msgid "\"serde: {serde:?}\"" msgstr "\"serde: {serde:?}\"" #: src/memory-management/solution.md -#, fuzzy msgid "\"0.1\"" msgstr "\"0.1\"" #: src/smart-pointers.md -#, fuzzy msgid "[Box" -msgstr "Cutie (box)" +msgstr "[Cutie" #: src/smart-pointers.md -#, fuzzy msgid "](./smart-pointers/box.md) (10 minutes)" msgstr "](./smart-pointers/box.md) (10 minute)" #: src/smart-pointers.md -#, fuzzy msgid "[Rc](./smart-pointers/rc.md) (5 minutes)" msgstr "[Rc](./smart-pointers/rc.md) (5 minute)" #: src/smart-pointers.md -#, fuzzy -msgid "[Trait Objects](./smart-pointers/trait-objects.md) (10 minutes)" +msgid "[Owned Trait Objects](./smart-pointers/trait-objects.md) (10 minutes)" msgstr "" -"[Obiecte de trăsături](./methods-and-traits/trait-objects.md) (10 minute)" +"[Obiecte de trăsături proprii](./methods-and-traits/trait-objects.md) (10 " +"minute)" #: src/smart-pointers.md -#, fuzzy msgid "[Exercise: Binary Tree](./smart-pointers/exercise.md) (30 minutes)" msgstr "[Exercițiu: Arbore binar](./smart-pointers/exercise.md) (30 minute)" #: src/smart-pointers/box.md -#, fuzzy msgid "" "[`Box`](https://doc.rust-lang.org/std/boxed/struct.Box.html) is an owned " "pointer to data on the heap:" @@ -9658,55 +8981,46 @@ msgstr "" "deținut către datele de pe heap:" #: src/smart-pointers/box.md -#, fuzzy msgid "\"five: {}\"" msgstr "\"cinci: {}\"" #: src/smart-pointers/box.md -#, fuzzy msgid "" -"`Box` implements `Deref`, which means that you can [call " -"methods from `T` directly on a `Box`](https://doc.rust-lang.org/std/ops/" -"trait.Deref.html#more-on-deref-coercion)." +"`Box` implements `Deref`, which means that you can [call methods " +"from `T` directly on a `Box`](https://doc.rust-lang.org/std/ops/trait.Deref." +"html#more-on-deref-coercion)." msgstr "" -"`Box` implementează `Deref`, ceea ce înseamnă că puteți " -"[apela metode din `T` direct pe un `Box`](https://doc.rust-lang.org/std/" -"ops/trait.Deref.html#more-on-deref-coercion)." +"`Box` implementează `Deref`, ceea ce înseamnă că puteți [apela " +"metode din `T` direct pe un `Box`](https://doc.rust-lang.org/std/ops/trait." +"Deref.html#more-on-deref-coercion)." #: src/smart-pointers/box.md #, fuzzy msgid "" -"Recursive data types or data types with dynamic sizes need to use a `Box`:" +"Recursive data types or data types with dynamic sizes cannot be stored inline " +"without a pointer indirection, which can be worked around using `Box`:" msgstr "" -"Tipurile de date recursive sau tipurile de date cu dimensiuni dinamice " -"trebuie să utilizeze un `Box`:" +"Tipurile de date recursive sau tipurile de date cu dimensiuni dinamice trebuie " +"să utilizeze un `Box`:" #: src/smart-pointers/box.md -#, fuzzy msgid "/// A non-empty list: first element and the rest of the list.\n" msgstr "/// O listă nevidă: primul element și restul listei.\n" #: src/smart-pointers/box.md -#, fuzzy msgid "/// An empty list.\n" msgstr "/// O listă goală.\n" #: src/smart-pointers/box.md -#, fuzzy msgid "\"{list:?}\"" -msgstr "" -"[Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial." -"github.io/too-many-lists/): explorarea în profunzime a regulilor de " -"gestionare a memoriei din Rust, prin implementarea câtorva tipuri diferite " -"de structuri de liste." +msgstr "\"{list:?}\"" #: src/smart-pointers/box.md -#, fuzzy msgid "" "```bob\n" " Stack Heap\n" -".- - - - - - - - - - - - - - . .- - - - - - - - - - - - - - - - - - - - " -"- - - - -.\n" +".- - - - - - - - - - - - - - . .- - - - - - - - - - - - - - - - - - - - - - " +"- - -.\n" ": : : :\n" ": " "list : : :\n" @@ -9718,275 +9032,236 @@ msgid "" "+----+ :\n" ": : : :\n" ": : : :\n" -"'- - - - - - - - - - - - - - ' '- - - - - - - - - - - - - - - - - - - - " -"- - - - -'\n" +"'- - - - - - - - - - - - - - ' '- - - - - - - - - - - - - - - - - - - - - - " +"- - -'\n" "```" msgstr "" "```bob\n" -" Stiva Heap\n" -".- - - - - - - - - - - - -. .- - - - - - - - - - - - - - - - - - - - - - - " -"-.\n" -": : : :\n" -": listă : : : :\n" -": +------+----+----+ : : +------+----+----+ +------+----+----+ :\n" -": | Cons | 1 | o--+----+-----+--->| Cons | 2 | o--++--->| Nil | // | // // " -"| :\n" -": +------+----+----+ : : +------+----+----+ +------+----+----+ :\n" -": : : :\n" -": : : :\n" -"'- - - - - - - - - - - - -' '- - - - - - - - - - - - - - - - - - - - - - - " -"-'\n" +" Stack Heap\n" +".- - - - - - - - - - - - - - . .- - - - - - - - - - - - - - - - - - - - - - " +"- - -.\n" +": : : :\n" +": " +"listă : : :\n" +": +————+——+——+ : : +————+——+——+ +———+——+——+ :\n" +": | Element | 1 | o——+——+——+—>| Element | 2 | o—+—>| Nil | // | // | :\n" +": +————+——+——+ : : +————+——+——+ +———+——+——+ :\n" +": : : :\n" +": : : :\n" +"‘- - - - - - - - - - - - - - ‘ ‘- - - - - - - - - - - - - - - - - - - - - - " +"- - -‘\n" "```" #: src/smart-pointers/box.md -#, fuzzy msgid "" -"`Box` is like `std::unique_ptr` in C++, except that it's guaranteed to be " -"not null." +"`Box` is like `std::unique_ptr` in C++, except that it's guaranteed to be not " +"null." msgstr "" "`Box` este ca și `std::unique_ptr` în C++, cu excepția faptului că este " -"garantat a nu fi nul." +"garantat ne-nul." #: src/smart-pointers/box.md -#, fuzzy msgid "A `Box` can be useful when you:" msgstr "Un `Box` poate fi util atunci când:" #: src/smart-pointers/box.md -#, fuzzy msgid "" "have a type whose size that can't be known at compile time, but the Rust " "compiler wants to know an exact size." msgstr "" -"au un tip a cărui dimensiune nu poate fi cunoscută la compilare, dar " +"avem un tip a cărui dimensiune nu poate fi cunoscută la compilare, dar " "compilatorul Rust dorește să știe o dimensiune exactă." #: src/smart-pointers/box.md -#, fuzzy msgid "" "want to transfer ownership of a large amount of data. To avoid copying large " -"amounts of data on the stack, instead store the data on the heap in a `Box` " -"so only the pointer is moved." +"amounts of data on the stack, instead store the data on the heap in a `Box` so " +"only the pointer is moved." msgstr "" -"doriți să transferați proprietatea asupra unei cantități mari de date. " -"Pentru a evita copierea unor cantități mari de date pe stivă, stocați în " -"schimb datele pe heap într-un `Box`, astfel încât să fie mutat doar " -"pointerul." +"dorim să transferăm proprietatea asupra unei cantități mari de date. Pentru a " +"evita copierea unor cantități mari de date pe stivă, stocăm în schimb datele pe " +"heap într-un `Box`, astfel încât să fie mutat doar pointerul." #: src/smart-pointers/box.md -#, fuzzy msgid "" "If `Box` was not used and we attempted to embed a `List` directly into the " -"`List`, the compiler would not be able to compute a fixed size for the " -"struct in memory (the `List` would be of infinite size)." +"`List`, the compiler would not be able to compute a fixed size for the struct " +"in memory (the `List` would be of infinite size)." msgstr "" -"Dacă nu se folosea `Box` și încercam să încorporăm o `List` direct în " -"`List`, compilatorul nu ar fi calculat o dimensiune fixă a structurii în " -"memorie (`List` ar fi avut o dimensiune infinită)." +"Dacă nu se folosea `Box` și încercam să încorporăm o `List` direct în `List`, " +"compilatorul nu ar fi calculat o dimensiune fixă a structurii în memorie " +"(`List` ar fi avut o dimensiune infinită)." #: src/smart-pointers/box.md -#, fuzzy msgid "" -"`Box` solves this problem as it has the same size as a regular pointer and " -"just points at the next element of the `List` in the heap." +"`Box` solves this problem as it has the same size as a regular pointer and just " +"points at the next element of the `List` in the heap." msgstr "" -"`Box` rezolvă această problemă, deoarece are aceeași dimensiune ca un " -"pointer obișnuit și indică doar următorul element din `List` în heap." +"`Box` rezolvă această problemă, deoarece are aceeași dimensiune ca un pointer " +"obișnuit și indică doar următorul element din `List` în heap." #: src/smart-pointers/box.md -#, fuzzy msgid "" -"Remove the `Box` in the List definition and show the compiler error. We get " -"the message \"recursive without indirection\", because for data recursion, " -"we have to use indirection, a `Box` or reference of some kind, instead of " -"storing the value directly." +"Remove the `Box` in the List definition and show the compiler error. We get the " +"message \"recursive without indirection\", because for data recursion, we have " +"to use indirection, a `Box` or reference of some kind, instead of storing the " +"value directly." msgstr "" "Eliminați `Box` din definiția Listei și afișați eroarea de compilare. " -"\"Recursiv cu indirecție\" este un indiciu că poate doriți să folosiți un " -"Box sau o referință de un anumit tip, în loc să stocați direct o valoare." +"\"Recursiv cu indirecție\" este un indiciu că poate doriți să folosiți un Box " +"sau o referință de un anumit tip, în loc să stocați direct o valoare." #: src/smart-pointers/box.md msgid "Niche Optimization" msgstr "Optimizari de nișă" #: src/smart-pointers/box.md -#, fuzzy msgid "" -"Though `Box` looks like `std::unique_ptr` in C++, it cannot be empty/null. " -"This makes `Box` one of the types that allow the compiler to optimize " -"storage of some enums." +"Though `Box` looks like `std::unique_ptr` in C++, it cannot be empty/null. This " +"makes `Box` one of the types that allow the compiler to optimize storage of " +"some enums." msgstr "" -"Deși `Box` seamănă cu `std::unique_ptr` în C++, acesta nu poate fi gol/null. " +"Deși `Box` seamănă cu `std::unique_ptr` în C++, acesta nu poate fi gol/nul. " "Acest lucru face ca `Box` să fie unul dintre tipurile care permit " "compilatorului să optimizeze stocarea unor enumerații." #: src/smart-pointers/box.md -#, fuzzy msgid "" "For example, `Option>` has the same size, as just `Box`, because " -"compiler uses NULL-value to discriminate variants instead of using explicit " -"tag ([\"Null Pointer Optimization\"](https://doc.rust-lang.org/std/option/" +"compiler uses NULL-value to discriminate variants instead of using explicit tag " +"([\"Null Pointer Optimization\"](https://doc.rust-lang.org/std/option/" "#representation)):" msgstr "" -"De exemplu, `Opțiune<Box>` are aceeași dimensiune ca și `Box`, " -"deoarece compilatorul utilizează valoarea NULL pentru a discrimina " -"variantele în loc să utilizeze o etichetă explicită ([\"Optimizarea " -"pointerului nul\"](https://doc.rust-lang.org/std/option/#representation)):" +"De exemplu, `Opțiune>` are aceeași dimensiune ca și `Box`, deoarece " +"compilatorul utilizează valoarea NULL pentru a discrimina variantele în loc să " +"utilizeze o etichetă explicită ([\"Optimizarea pointerului nul\"](https://doc." +"rust-lang.org/std/option/#representation)):" #: src/smart-pointers/box.md -#, fuzzy msgid "\"Just box\"" -msgstr "\"Just box\"" +msgstr "\"Doar box\"" #: src/smart-pointers/box.md -#, fuzzy msgid "\"Optional box\"" -msgstr "Opțiune" +msgstr "\"Căsuță opțională\"" #: src/smart-pointers/box.md -#, fuzzy msgid "\"Size of just_box: {}\"" msgstr "\"Dimensiunea just_box: {}\"" #: src/smart-pointers/box.md -#, fuzzy msgid "\"Size of optional_box: {}\"" -msgstr "\"Dimensiunea cutiei opționale_box: {}\"" +msgstr "\"Dimensiunea optional_box: {}\"" #: src/smart-pointers/box.md -#, fuzzy msgid "\"Size of none: {}\"" -msgstr "\"înainte: {a}\"" +msgstr "\"Dimensiunea lui none: {}\"" #: src/smart-pointers/rc.md -#, fuzzy msgid "" -"[`Rc`](https://doc.rust-lang.org/std/rc/struct.Rc.html) is a reference-" -"counted shared pointer. Use this when you need to refer to the same data " -"from multiple places:" +"[`Rc`](https://doc.rust-lang.org/std/rc/struct.Rc.html) is a reference-counted " +"shared pointer. Use this when you need to refer to the same data from multiple " +"places:" msgstr "" "[`Rc`](https://doc.rust-lang.org/std/rc/struct.Rc.html) este un pointer " -"partajat cu numărătoare de referințe. Folosiți-l atunci când trebuie să " -"faceți referire la aceleași date din mai multe locuri:" +"partajat cu numărătoare de referințe. Folosiți-l atunci când trebuie să faceți " +"referire la aceleași date din mai multe locuri:" #: src/smart-pointers/rc.md -#, fuzzy msgid "\"a: {a}\"" msgstr "\"a: {a}\"" #: src/smart-pointers/rc.md -#, fuzzy msgid "\"b: {b}\"" msgstr "\"b: {b}\"" #: src/smart-pointers/rc.md -#, fuzzy msgid "" -"See [`Arc`](../concurrency/shared_state/arc.md) and [`Mutex`](https://doc." -"rust-lang.org/std/sync/struct.Mutex.html) if you are in a multi-threaded " -"context." +"See [`Arc`](../concurrency/shared-state/arc.md) and [`Mutex`](https://doc.rust-" +"lang.org/std/sync/struct.Mutex.html) if you are in a multi-threaded context." msgstr "" -"Consultați [`Arc`](../concurrency/shared_state/arc.md) și [`Mutex`](https://" -"doc.rust-lang.org/std/sync/struct.Mutex.html) dacă vă aflați într-un context " -"cu mai multe fire." +"Consultați [`Arc`](../concurrency/shared_state/arc.md) și [`Mutex`](https://doc." +"rust-lang.org/std/sync/struct.Mutex.html) dacă vă aflați într-un context cu mai " +"multe fire de execuție." #: src/smart-pointers/rc.md -#, fuzzy msgid "" -"You can _downgrade_ a shared pointer into a [`Weak`](https://doc.rust-lang." -"org/std/rc/struct.Weak.html) pointer to create cycles that will get dropped." +"You can _downgrade_ a shared pointer into a [`Weak`](https://doc.rust-lang.org/" +"std/rc/struct.Weak.html) pointer to create cycles that will get dropped." msgstr "" -"Puteți transforma un pointer partajat într-un pointer [`Weak`](https://doc." -"rust-lang.org/std/rc/struct.Weak.html) pentru a crea cicluri care vor fi " -"abandonate." +"Puteți transforma un pointer partajat într-un pointer [`Weak`](https://doc.rust-" +"lang.org/std/rc/struct.Weak.html) pentru a crea cicluri care vor fi abandonate." #: src/smart-pointers/rc.md -#, fuzzy msgid "" -"`Rc`'s count ensures that its contained value is valid for as long as there " -"are references." +"`Rc`'s count ensures that its contained value is valid for as long as there are " +"references." msgstr "" -"numărătoarea lui `Rc` asigură că valoarea sa conținută este valabilă atâta " -"timp cât există referințe." +"Numărarea referințelor (`Rc`) asigură că valoarea pe care o conține este " +"valabilă atâta timp cât există referințe." #: src/smart-pointers/rc.md -#, fuzzy msgid "`Rc` in Rust is like `std::shared_ptr` in C++." msgstr "`Rc` în Rust este ca `std::shared_ptr` în C++." #: src/smart-pointers/rc.md -#, fuzzy msgid "" -"`Rc::clone` is cheap: it creates a pointer to the same allocation and " -"increases the reference count. Does not make a deep clone and can generally " -"be ignored when looking for performance issues in code." +"`Rc::clone` is cheap: it creates a pointer to the same allocation and increases " +"the reference count. Does not make a deep clone and can generally be ignored " +"when looking for performance issues in code." msgstr "" -"`Rc::clone` este ieftin: creează un pointer la aceeași alocare și crește " +"`Rc::clone` nu este costisitor: creează un pointer la aceeași alocare și crește " "numărul de referințe. Nu realizează o clonă profundă și poate fi în general " "ignorată atunci când se caută probleme de performanță în cod." #: src/smart-pointers/rc.md -#, fuzzy msgid "" "`make_mut` actually clones the inner value if necessary (\"clone-on-write\") " "and returns a mutable reference." msgstr "" -"`make_mut` clonează de fapt valoarea interioară dacă este necesar (\"clone-" -"on-write\") și returnează o referință mutabilă." +"`make_mut` clonează de fapt valoarea interioară dacă este necesar (\"clone-on-" +"write\") și returnează o referință mutabilă." #: src/smart-pointers/rc.md -#, fuzzy msgid "Use `Rc::strong_count` to check the reference count." msgstr "Utilizați `Rc::strong_count` pentru a verifica numărul de referințe." #: src/smart-pointers/rc.md -#, fuzzy msgid "" -"`Rc::downgrade` gives you a _weakly reference-counted_ object to create " -"cycles that will be dropped properly (likely in combination with `RefCell`)." +"`Rc::downgrade` gives you a _weakly reference-counted_ object to create cycles " +"that will be dropped properly (likely in combination with `RefCell`)." msgstr "" -"`Rc::downgrade` vă oferă un obiect cu un număr slab de referințe pentru a " +"`Rc::downgrade` vă oferă un obiect cu un număr de referințe orientativ pentru a " "crea cicluri care vor fi abandonate în mod corespunzător (probabil în " -"combinație cu `RefCell`, pe slide-ul următor)." +"combinație cu `RefCell`)." #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" -"Trait objects allow for values of different types, for instance in a " -"collection:" +"We previously saw how trait objects can be used with references, e.g `&dyn " +"Pet`. However, we can also use trait objects with smart pointers like `Box` to " +"create an owned trait object: `Box`." msgstr "" -"Obiectele de trăsături permit valori de diferite tipuri, de exemplu într-o " -"colecție:" - -#: src/smart-pointers/trait-objects.md -#, fuzzy -msgid "\"Miau!\"" -msgstr "\"Miau!\"" +"Am văzut anterior cum obiectele trait pot fi utilizate cu referințe, de exemplu " +"`&dyn Pet`. Putem, de asemenea, să folosim obiecte trait cu pointeri " +"inteligenți precum `Box` pentru a crea un obiect trait deținut: `Box`." #: src/smart-pointers/trait-objects.md -#, fuzzy -msgid "\"Hello, who are you? {}\"" -msgstr "\"Bună ziua, cine ești? {}\"" - -#: src/smart-pointers/trait-objects.md -#, fuzzy msgid "Memory layout after allocating `pets`:" msgstr "Dispunerea memoriei după alocarea `pets`:" #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" "```bob\n" " Stack Heap\n" -".- - - - - - - - - - - - - -. .- - - - - - - - - - - - - - - - - - - - - " -"- -.\n" +".- - - - - - - - - - - - - -. .- - - - - - - - - - - - - - - - - - - - - - " +"-.\n" ": : : :\n" ": \"pets: Vec\" : : \"data: Cat\" +----+----+----" "+----+ :\n" -": +-----------+-------+ : : +-------+-------+ | F | i | d | " -"o | :\n" -": | ptr | o---+---+--. : | lives | 9 | +----+----+----" -"+----+ :\n" +": +-----------+-------+ : : +-------+-------+ | F | i | d | o " +"| :\n" +": | ptr | o---+---+--. : | lives | 9 | +----+----+----+----" +"+ :\n" ": | len | 2 | : | : +-------+-------+ " "^ :\n" ": | capacity | 2 | : | : ^ " @@ -10005,82 +9280,101 @@ msgid "" "+ :\n" " : | " "| :\n" -" `- - -| - - |- - - - - - - - - - - - - - - " -"- -'\n" +" `- - -| - - |- - - - - - - - - - - - - - - - " +"-'\n" " | |\n" -" | | " -"\"Program text\"\n" -" .- - -| - - |- - - - - - - - - - - - - - - " -"- -.\n" +" | | \"Program " +"text\"\n" +" .- - -| - - |- - - - - - - - - - - - - - - - " +"-.\n" " : | | " "vtable :\n" " : | | +----------------------" "+ :\n" -" : | `----->| \"::" -"talk\" | :\n" +" : | `----->| \"::talk\" " +"| :\n" " : | +----------------------" "+ :\n" " : | " "vtable :\n" " : | +----------------------" "+ :\n" -" : '----------->| \"::" -"talk\" | :\n" +" : '----------->| \"::talk\" " +"| :\n" " : +----------------------" "+ :\n" " : :\n" -" '- - - - - - - - - - - - - - - - - - - - - " -"- -'\n" +" '- - - - - - - - - - - - - - - - - - - - - - " +"-'\n" "```" msgstr "" "```bob\n" -" Stiva Heap\n" -".- - - - - - - - - - - - - -. .- - - - - - - - - - - - - - - - - - - - - - " +" Stack Heap\n" +".- - - - - - - - - - - - - -. .- - - - - - - - - - - - - - - - - - - - - - " "-.\n" -": : : :\n" -": animale de companie : : : +----+----+----+----+----+ :\n" -": +-----------+-------+ : : : +-----+-----+ .->| F | i | d | o | :\n" -": | ptr | o---++-+-+-----+-->| o o | o o | o o | | | +----+----+----" -"+----+----+ :\n" -": | len | 2 | : : : +-|-|-|-+-|-|-|-+ `---------. :\n" -": | capacitate | 2 | : : | | | | | | date | :\n" -": +-----------+-------+ : : | | | | +-------+--|-------+ :\n" -": : : | | | | '-->|| nume | o, 4, 4 | :\n" -": : : | | | | | vârstă | 5 | :\n" -"`- - - - - - - - - - - - - -' : | | | +-------+----------+ :\n" -" : | | | :\n" -" : | | | | vtable :\n" -" : | | | +----------------------+ :\n" -" : | | '---->| \"::" -"talk\" | :\n" -" : | | +----------------------+ :\n" -" : | | :\n" -" : | | date :\n" -" : | | +-------+-------+ :\n" -" : | '-->| vieți | 9 | :\n" -" : | +-------+-------+ :\n" -" : | :\n" -" : | vtable :\n" -" : | +----------------------+ :\n" -" : '---->|| \"::talk\" | :\n" -" : +----------------------+ :\n" -" : :\n" -" '- - - - - - - - - - - - - - - - - - - - - " -"- -'\n" +": : : :\n" +": \"pets: Vec\" : : \"data: Cat\" +----+----+----" +"+----+ :\n" +": +-----------+-------+ : : +-------+-------+ | F | i | d | o " +"| :\n" +": | ptr | o---+---+--. : | lives | 9 | +----+----+----+----" +"+ :\n" +": | len | 2 | : | : +-------+-------+ " +"^ :\n" +": | capacity | 2 | : | : ^ " +"| :\n" +": +-----------+-------+ : | : | " +"'-------. :\n" +": : | : | data:" +"\"Dog\"| :\n" +": : | : | +-------+--|-------" +"+ :\n" +"`- - - - - - - - - - - - - -' | : +---|-+-----+ | name | o, 4, 4 " +"| :\n" +" `--+-->| o o | o o-|----->| age | 5 " +"| :\n" +" : +-|---+-|---+ +-------+----------" +"+ :\n" +" : | " +"| :\n" +" `- - -| - - |- - - - - - - - - - - - - - - - " +"-'\n" +" | |\n" +" | | \"Program " +"text\"\n" +" .- - -| - - |- - - - - - - - - - - - - - - - " +"-.\n" +" : | | " +"vtable :\n" +" : | | +----------------------" +"+ :\n" +" : | `----->| \"::talk\" " +"| :\n" +" : | +----------------------" +"+ :\n" +" : | " +"vtable :\n" +" : | +----------------------" +"+ :\n" +" : '----------->| \"::talk\" " +"| :\n" +" : +----------------------" +"+ :\n" +" : :\n" +" '- - - - - - - - - - - - - - - - - - - - - - " +"-'\n" "```" #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" "Types that implement a given trait may be of different sizes. This makes it " "impossible to have things like `Vec` in the example above." msgstr "" -"Tipurile care implementează o anumită trăsătură pot avea dimensiuni " -"diferite. Acest lucru face imposibilă existența unor lucruri precum `Vec` în exemplul de mai sus." +"Tipurile care implementează o anumită trăsătură pot avea dimensiuni diferite. " +"Acest lucru face imposibilă existența unor lucruri precum `Vec` în " +"exemplul de mai sus." #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" "`dyn Pet` is a way to tell the compiler about a dynamically sized type that " "implements `Pet`." @@ -10089,175 +9383,148 @@ msgstr "" "dinamic care implementează `Pet`." #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" -"In the example, `pets` is allocated on the stack and the vector data is on " -"the heap. The two vector elements are _fat pointers_:" +"In the example, `pets` is allocated on the stack and the vector data is on the " +"heap. The two vector elements are _fat pointers_:" msgstr "" -"În acest exemplu, `pets` este alocat pe stivă, iar datele vectorului se află " -"pe heap. Cele două elemente ale vectorului sunt _fat pointeri_:" +"În acest exemplu, `pets` este alocat pe stivă, iar datele vectorului se află pe " +"heap. Cele două elemente ale vectorului sunt _fat pointers_ (pointeri grași):" #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" "A fat pointer is a double-width pointer. It has two components: a pointer to " "the actual object and a pointer to the [virtual method table](https://en." -"wikipedia.org/wiki/Virtual_method_table) (vtable) for the `Pet` " -"implementation of that particular object." +"wikipedia.org/wiki/Virtual_method_table) (vtable) for the `Pet` implementation " +"of that particular object." msgstr "" -"Un pointer gras este un pointer cu lățime dublă. Acesta are două componente: " -"un pointer la obiectul real și un pointer la [virtual method table](https://" -"en.wikipedia.org/wiki/Virtual_method_table) (vtable) pentru implementarea " -"`Pet` a obiectului respectiv." +"Un pointer gras este un pointer cu lățime dublă. Acesta are două componente: un " +"pointer la obiectul real și un pointer la [tabela de metode virtuale](https://" +"en.wikipedia.org/wiki/Virtual_method_table) (vtable) pentru implementarea `Pet` " +"a obiectului respectiv." #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" -"The data for the `Dog` named Fido is the `name` and `age` fields. The `Cat` " -"has a `lives` field." +"The data for the `Dog` named Fido is the `name` and `age` fields. The `Cat` has " +"a `lives` field." msgstr "" "Datele pentru `Dog` numit Fido sunt câmpurile `name` și `age`. Pentru `Cat` " "există un câmp `lives`." #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "Compare these outputs in the above example:" msgstr "Comparați aceste ieșiri în exemplul de mai sus:" #: src/smart-pointers/exercise.md -#, fuzzy msgid "" -"A binary tree is a tree-type data structure where every node has two " -"children (left and right). We will create a tree where each node stores a " -"value. For a given node N, all nodes in a N's left subtree contain smaller " -"values, and all nodes in N's right subtree will contain larger values." +"A binary tree is a tree-type data structure where every node has two children " +"(left and right). We will create a tree where each node stores a value. For a " +"given node N, all nodes in a N's left subtree contain smaller values, and all " +"nodes in N's right subtree will contain larger values." msgstr "" -"Un arbore binar este o structură de date de tip arbore în care fiecare nod " -"are doi copii (stânga și dreapta). Vom crea un arbore în care fiecare nod " -"stochează o valoare. Pentru un anumit nod N, toate nodurile din subarborele " -"stâng al lui N conțin valori mai mici, iar toate nodurile din subarborele " -"drept al lui N vor conține valori mai mari." +"Un arbore binar este o structură de date de tip arbore în care fiecare nod are " +"doi copii (stânga și dreapta). Vom crea un arbore în care fiecare nod stochează " +"o valoare. Pentru un anumit nod N, toate nodurile din sub-arborele stâng al lui " +"N conțin valori mai mici, iar toate nodurile din sub-arborele drept al lui N " +"vor conține valori mai mari." #: src/smart-pointers/exercise.md -#, fuzzy msgid "Implement the following types, so that the given tests pass." -msgstr "Implementați următoarele tipuri, astfel încât testele date să treacă." +msgstr "Implementați următoarele tipuri, astfel încât testele să treacă." #: src/smart-pointers/exercise.md -#, fuzzy msgid "" -"Extra Credit: implement an iterator over a binary tree that returns the " -"values in order." +"Extra Credit: implement an iterator over a binary tree that returns the values " +"in order." msgstr "" -"Credit suplimentar: implementați un iterator pe un arbore binar care " -"returnează valorile în ordine." +"Credit suplimentar: implementați un iterator pe un arbore binar care returnează " +"valorile în ordine." #: src/smart-pointers/exercise.md src/smart-pointers/solution.md -#, fuzzy msgid "/// A node in the binary tree.\n" msgstr "/// Un nod în arborele binar.\n" #: src/smart-pointers/exercise.md src/smart-pointers/solution.md -#, fuzzy msgid "/// A possibly-empty subtree.\n" -msgstr "/// Un subarbore posibil gol.\n" +msgstr "/// Un sub-arbore posibil gol.\n" #: src/smart-pointers/exercise.md src/smart-pointers/solution.md -#, fuzzy msgid "" "/// A container storing a set of values, using a binary tree.\n" "///\n" "/// If the same value is added multiple times, it is only stored once.\n" msgstr "" -"/// Un container care stochează un set de valori, utilizând un arbore " -"binar.\n" +"/// Un container care stochează un set de valori, utilizând un arbore binar.\n" "///\n" "/// În cazul în care aceeași valoare este adăugată de mai multe ori, aceasta " "este stocată o singură dată.\n" #: src/smart-pointers/exercise.md -#, fuzzy msgid "// Implement `new`, `insert`, `len`, and `has` for `Subtree`.\n" -msgstr "// Implementați `new`, `insert`, `len` și `has`.\n" +msgstr "// Implementați `new`, `insert`, `len` și `has` pentru 'Subtree'.\n" #: src/smart-pointers/exercise.md src/smart-pointers/solution.md -#, fuzzy msgid "// not a unique item\n" msgstr "// nu este un element unic\n" #: src/smart-pointers/solution.md src/android/testing/googletest.md -#, fuzzy msgid "\"bar\"" msgstr "\"bar\"" #: src/welcome-day-3-afternoon.md -#, fuzzy msgid "[Borrowing](./borrowing.md) (55 minutes)" -msgstr "[Împrumut](../împrumut.md) (1 oră)" +msgstr "[Împrumut](../îborrowing.md) (55 de minute)" #: src/welcome-day-3-afternoon.md -#, fuzzy msgid "[Lifetimes](./lifetimes.md) (50 minutes)" -msgstr "[Referințe](../references.md) (50 minute)" +msgstr "[Durate de viață](../lifetimes.md) (50 de minute)" #: src/welcome-day-3-afternoon.md -#, fuzzy msgid "" -"Including 10 minute breaks, this session should take about 1 hour and 55 " -"minutes" +"Including 10 minute breaks, this session should take about 1 hour and 55 minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 3 ore și 5 minute" +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " +"aproximativ 1 oră și 55 de minute" #: src/borrowing.md -#, fuzzy msgid "[Borrowing a Value](./borrowing/shared.md) (10 minutes)" -msgstr "[Împrumutând o valoare](./împrumut/împărtășit.md) (10 minute)" +msgstr "[Împrumutând o valoare](./borrowing/shared.md) (10 minute)" #: src/borrowing.md -#, fuzzy msgid "[Borrow Checking](./borrowing/borrowck.md) (10 minutes)" -msgstr "[Verificarea împrumutului](./împrumut/împrumutck.md) (10 minute)" +msgstr "[Verificarea împrumuturilor](./borrowing/borrowck.md) (10 minute)" #: src/borrowing.md -#, fuzzy msgid "[Borrow Errors](./borrowing/examples.md) (3 minutes)" -msgstr "[Împrumut](../împrumut.md) (1 oră)" +msgstr "[Erori de împrumuturi](./borrowing/examples.md) (3 minute)" #: src/borrowing.md -#, fuzzy msgid "[Interior Mutability](./borrowing/interior-mutability.md) (10 minutes)" msgstr "" -"[Mutabilitatea interioară](./împrumut/interior-mutability.md) (10 minute)" +"[Mutabilitatea interioară](./borrowing/interior-mutability.md) (10 minute)" #: src/borrowing.md -#, fuzzy msgid "[Exercise: Health Statistics](./borrowing/exercise.md) (20 minutes)" msgstr "" -"[Exercițiu: Statistici în domeniul sănătății](./împrumut/exercițiu.md) (30 " +"[Exercițiu: Statistici în domeniul sănătății](./borrowing/exercise.md) (20 de " "minute)" #: src/borrowing/shared.md -#, fuzzy msgid "" "As we saw before, instead of transferring ownership when calling a function, " "you can let a function _borrow_ the value:" msgstr "" -"În loc să transferați proprietatea atunci când apelați o funcție, puteți " -"lăsa o funcție să _împrumute_ valoarea:" +"În loc să transferați proprietatea atunci când apelați o funcție, puteți lăsa o " +"funcție să _împrumute_ valoarea:" #: src/borrowing/shared.md -#, fuzzy msgid "The `add` function _borrows_ two points and returns a new point." -msgstr "Funcția `add` adună două puncte și returnează un nou punct." +msgstr "Funcția `add` împrumuta două puncte și returnează unul nou." #: src/borrowing/shared.md -#, fuzzy msgid "The caller retains ownership of the inputs." msgstr "Apelantul păstrează dreptul de proprietate asupra intrărilor." #: src/borrowing/shared.md -#, fuzzy msgid "" "This slide is a review of the material on references from day 1, expanding " "slightly to include function arguments and return values." @@ -10267,76 +9534,71 @@ msgstr "" "valorile de returnare." #: src/borrowing/shared.md -#, fuzzy -msgid "Notes on stack returns:" -msgstr "Note privind returnările de stivă:" +msgid "Notes on stack returns and inlining:" +msgstr "Note privind returnările de pe stivă și includerea codului:" #: src/borrowing/shared.md -#, fuzzy msgid "" "Demonstrate that the return from `add` is cheap because the compiler can " -"eliminate the copy operation. Change the above code to print stack addresses " -"and run it on the [Playground](https://play.rust-lang.org/?" +"eliminate the copy operation, by inlining the call to add into main. Change the " +"above code to print stack addresses and run it on the [Playground](https://play." +"rust-lang.org/?" "version=stable&mode=release&edition=2021&gist=0cb13be1c05d7e3446686ad9947c4671) " "or look at the assembly in [Godbolt](https://rust.godbolt.org/). In the " -"\"DEBUG\" optimization level, the addresses should change, while they stay " -"the same when changing to the \"RELEASE\" setting:" +"\"DEBUG\" optimization level, the addresses should change, while they stay the " +"same when changing to the \"RELEASE\" setting:" msgstr "" -"Demonstrați că întoarcerea din `add` este ieftină deoarece compilatorul " -"poate elimina operația de copiere. Modificați codul de mai sus pentru a " -"imprima adresele stivei și rulați-l pe [Playground](https://play.rust-lang." -"org/) sau examinați ansamblul în [Godbolt](https://rust.godbolt.org/). În " -"nivelul de optimizare \"DEBUG\", adresele ar trebui să se schimbe, în timp " -"ce ele rămân aceleași atunci când treceți la setarea \"RELEASE\":" +"Demonstrați că întoarcerea din `add` nu este costisitoare deoarece compilatorul " +"poate elimina operația de copiere. Modificați codul de mai sus pentru a afișa " +"adresele stivei și rulați-l pe [Playground](https://play.rust-lang.org/) sau " +"examinați ansamblul în [Godbolt](https://rust.godbolt.org/). În nivelul de " +"optimizare \"DEBUG\", adresele ar trebui să se schimbe, în timp ce ele rămân " +"aceleași atunci când treceți la setarea \"RELEASE\":" #: src/borrowing/shared.md -#, fuzzy -msgid "The Rust compiler can do return value optimization (RVO)." -msgstr "Compilatorul Rust poate face optimizarea valorii de returnare (RVO)." +msgid "" +"The Rust compiler can do automatic inlining, that can be disabled on a function " +"level with `#[inline(never)]`." +msgstr "" +"Compilatorul Rust poate include cod automat, care poate fi dezactivat la nivel " +"de funcție cu `#[inline(never)]`." #: src/borrowing/shared.md -#, fuzzy msgid "" -"In C++, copy elision has to be defined in the language specification because " -"constructors can have side effects. In Rust, this is not an issue at all. If " -"RVO did not happen, Rust will always perform a simple and efficient `memcpy` " -"copy." +"Once disabled, the printed address will change on all optimization levels. " +"Looking at Godbolt or Playground, one can see that in this case, the return of " +"the value depends on the ABI, e.g. on amd64 the two i32 that is making up the " +"point will be returned in 2 registers (eax and edx)." msgstr "" -"În C++, eliziunea de copiere trebuie definită în specificațiile limbajului, " -"deoarece constructorii pot avea efecte secundare. În Rust, acest lucru nu " -"reprezintă deloc o problemă. Dacă RVO nu a avut loc, Rust va efectua " -"întotdeauna o copie `memcpy` simplă și eficientă." +"Odată dezactivată, adresa afișată se va modifica la toate nivelurile de " +"optimizare. Dacă ne uităm la Godbolt sau la Playground, se poate observa că, în " +"acest caz, returnarea valorii depinde de ABI, de exemplu, pe amd64, cele două " +"i32 care alcătuiesc punctul vor fi returnate în 2 registre (eax și edx)." #: src/borrowing/borrowck.md -#, fuzzy msgid "" -"Rust's _borrow checker_ puts constraints on the ways you can borrow values. " -"For a given value, at any time:" +"Rust's _borrow checker_ puts constraints on the ways you can borrow values. For " +"a given value, at any time:" msgstr "" -"Rust impune constrângeri asupra modalităților în care puteți împrumuta " -"valori:" +"Rust impune constrângeri asupra modalităților în care puteți împrumuta valori:" #: src/borrowing/borrowck.md -#, fuzzy msgid "You can have one or more shared references to the value, _or_" -msgstr "Puteți avea una sau mai multe valori `&T` la un moment dat, _sau_" +msgstr "Puteți avea una sau mai multe referințe partajate la o valoare _sau_" #: src/borrowing/borrowck.md -#, fuzzy msgid "You can have exactly one exclusive reference to the value." -msgstr "Puteți avea exact o singură valoare `&mut T`." +msgstr "Puteți avea exact o singură referință exclusivă la valoare." #: src/borrowing/borrowck.md -#, fuzzy msgid "" "Note that the requirement is that conflicting references not _exist_ at the " "same point. It does not matter where the reference is dereferenced." msgstr "" -"Rețineți că cerința este ca referințele conflictuale să nu _existe_ în " -"același punct. Nu contează unde este dereferențiată referința." +"Rețineți că cerința este ca să _nu existe_ referințe conflictuale. Nu contează " +"unde este dereferențiată referința." #: src/borrowing/borrowck.md -#, fuzzy msgid "" "The above code does not compile because `a` is borrowed as mutable (through " "`c`) and as immutable (through `b`) at the same time." @@ -10345,20 +9607,18 @@ msgstr "" "(prin `c`) și ca imuabil (prin `b`) în același timp." #: src/borrowing/borrowck.md -#, fuzzy msgid "" -"Move the `println!` statement for `b` before the scope that introduces `c` " -"to make the code compile." +"Move the `println!` statement for `b` before the scope that introduces `c` to " +"make the code compile." msgstr "" -"Mutați instrucțiunea `println!` pentru `b` înainte de domeniul de aplicare " -"care introduce `c` pentru a face codul să fie compilat." +"Mutați instrucțiunea `println!` pentru `b` înainte de domeniul de aplicare care " +"introduce `c` pentru a face posibilă compilarea codului." #: src/borrowing/borrowck.md -#, fuzzy msgid "" -"After that change, the compiler realizes that `b` is only ever used before " -"the new mutable borrow of `a` through `c`. This is a feature of the borrow " -"checker called \"non-lexical lifetimes\"." +"After that change, the compiler realizes that `b` is only ever used before the " +"new mutable borrow of `a` through `c`. This is a feature of the borrow checker " +"called \"non-lexical lifetimes\"." msgstr "" "După această modificare, compilatorul își dă seama că `b` este folosit doar " "înainte de noul împrumut mutabil de la `a` la `c`. Aceasta este o " @@ -10366,192 +9626,212 @@ msgstr "" "lexicale\"." #: src/borrowing/borrowck.md -#, fuzzy msgid "" -"The exclusive reference constraint is quite strong. Rust uses it to ensure " -"that data races do not occur. Rust also _relies_ on this constraint to " -"optimize code. For example, a value behind a shared reference can be safely " -"cached in a register for the lifetime of that reference." +"The exclusive reference constraint is quite strong. Rust uses it to ensure that " +"data races do not occur. Rust also _relies_ on this constraint to optimize " +"code. For example, a value behind a shared reference can be safely cached in a " +"register for the lifetime of that reference." msgstr "" -"Constrângerea de referință exclusivă este destul de puternică. Rust o " -"folosește pentru a se asigura că nu se produc curse de date. De asemenea, " -"Rust se bazează pe această constrângere pentru a optimiza codul. De exemplu, " -"o valoare din spatele unei referințe partajate poate fi stocată în siguranță " -"într-un registru pe durata de viață a referinței respective." +"Constrângerea de referință exclusivă este destul de puternică. Rust o folosește " +"pentru a se asigura că nu se produce acces concurențial la date. De asemenea, " +"Rust se bazează pe această constrângere pentru a optimiza codul. De exemplu, o " +"valoare din spatele unei referințe partajate poate fi stocată în siguranță într-" +"un registru pe durata de viață a referinței respective." #: src/borrowing/borrowck.md -#, fuzzy msgid "" "The borrow checker is designed to accommodate many common patterns, such as " -"taking exclusive references to different fields in a struct at the same " -"time. But, there are some situations where it doesn't quite \"get it\" and " -"this often results in \"fighting with the borrow checker.\"" +"taking exclusive references to different fields in a struct at the same time. " +"But, there are some situations where it doesn't quite \"get it\" and this often " +"results in \"fighting with the borrow checker.\"" msgstr "" -"Verificatorul de împrumuturi este conceput pentru a se adapta la multe " -"modele comune, cum ar fi preluarea de referințe exclusive la diferite " -"câmpuri dintr-o structură în același timp. Dar, există unele situații în " -"care nu prea \"înțelege\", ceea ce duce adesea la \"lupta cu verificatorul " -"de împrumuturi\"" +"Verificatorul de împrumuturi este conceput pentru a se adapta la multe modele " +"comune, cum ar fi preluarea de referințe exclusive la diferite câmpuri dintr-o " +"structură în același timp. Dar, există unele situații în care nu prea " +"\"înțelege\", ceea ce duce adesea la \"lupta cu verificatorul de împrumuturi\"" #: src/borrowing/examples.md -#, fuzzy msgid "" "As a concrete example of how these borrowing rules prevent memory errors, " -"consider the case of modifying a collection while there are references to " -"its elements:" +"consider the case of modifying a collection while there are references to its " +"elements:" msgstr "" -"Ca exemplu concret al modului în care aceste reguli de împrumut previn " -"erorile de memorie, luați în considerare cazul modificării unei colecții în " -"timp ce există referințe la elementele sale:" +"Ca exemplu concret al modului în care aceste reguli de împrumut previn erorile " +"de memorie, luați în considerare cazul modificării unei colecții în timp ce " +"există referințe la elementele sale:" #: src/borrowing/examples.md -#, fuzzy msgid "\"{elem}\"" -msgstr "\"elem: {elem}\"" +msgstr "\"{elem}\"" #: src/borrowing/examples.md -#, fuzzy msgid "Similarly, consider the case of iterator invalidation:" msgstr "În mod similar, luați în considerare cazul invalidării iteratorilor:" #: src/borrowing/examples.md -#, fuzzy msgid "" -"In both of these cases, modifying the collection by pushing new elements " -"into it can potentially invalidate existing references to the collection's " -"elements if the collection has to reallocate." +"In both of these cases, modifying the collection by pushing new elements into " +"it can potentially invalidate existing references to the collection's elements " +"if the collection has to reallocate." msgstr "" "În ambele cazuri, modificarea colecției prin introducerea de noi elemente în " "colecție poate invalida referințele existente la elementele colecției dacă " "colecția trebuie realocată." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" -"In some situations, it's necessary to modify data behind a shared (read-" -"only) reference. For example, a shared data structure might have an internal " -"cache, and wish to update that cache from read-only methods." +"In some situations, it's necessary to modify data behind a shared (read-only) " +"reference. For example, a shared data structure might have an internal cache, " +"and wish to update that cache from read-only methods." msgstr "" "În unele situații, este necesar să se modifice datele din spatele unei " "referințe partajate (numai pentru citire). De exemplu, o structură de date " -"partajată ar putea avea o memorie cache internă și ar putea dori să " -"actualizeze această memorie cache prin metode numai pentru citire." +"partajată ar putea avea o memorie cache internă și ar putea dori să actualizeze " +"această memorie cache prin metode numai pentru citire." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" -"The \"interior mutability\" pattern allows exclusive (mutable) access behind " -"a shared reference. The standard library provides several ways to do this, " -"all while still ensuring safety, typically by performing a runtime check." +"The \"interior mutability\" pattern allows exclusive (mutable) access behind a " +"shared reference. The standard library provides several ways to do this, all " +"while still ensuring safety, typically by performing a runtime check." msgstr "" -"Modelul \"mutabilității interioare\" permite accesul exclusiv (mutabil) în " +"Modelul \"mutabilității interioare\" permite accesul (mutabil) exclusiv în " "spatele unei referințe partajate. Biblioteca standard oferă mai multe " -"modalități de a face acest lucru, toate asigurând în același timp siguranța, " -"de obicei prin efectuarea unei verificări în timpul execuției." +"modalități de a face acest lucru, toate asigurând în același timp siguranța, de " +"obicei prin efectuarea unei verificări în timpul execuției." #: src/borrowing/interior-mutability.md -#, fuzzy -msgid "`RefCell`" -msgstr "Celula/RefCell" +msgid "`Cell`" +msgstr "`Cell`" #: src/borrowing/interior-mutability.md #, fuzzy +msgid "" +"`Cell` wraps a value and allows getting or setting the value using only a " +"shared reference to the `Cell`. However, it does not allow any references to " +"the inner value. Since there are no references, borrowing rules cannot be " +"broken." +msgstr "" +"`Cell` înfășoară o valoare și permite obținerea sau stabilirea valorii, chiar " +"și cu o referință partajată la `Cell`. Cu toate acestea, nu permite referințe " +"la valoarea respectivă. Deoarece nu există referințe, regulile de împrumut nu " +"pot fi încălcate." + +#: src/borrowing/interior-mutability.md msgid "// Note that `cell` is NOT declared as mutable.\n" msgstr "// Rețineți că `cell` NU este declarat ca fiind mutabil.\n" +#: src/borrowing/interior-mutability.md +msgid "`RefCell`" +msgstr "`RefCell`" + #: src/borrowing/interior-mutability.md #, fuzzy msgid "" -"// This triggers an error at runtime.\n" -" // let other = cell.borrow();\n" -" // println!(\"{}\", *other);\n" +"`RefCell` allows accessing and mutating a wrapped value by providing " +"alternative types `Ref` and `RefMut` that emulate `&T`/`&mut T` without " +"actually being Rust references." msgstr "" -"// Acest lucru declanșează o eroare în timpul execuției.\n" -" // let other = cell.borrow();\n" -" // println!(\"{}\", *other);\n" +"`RefCell` permite accesarea și mutarea unei valori învelite prin furnizarea " +"tipurilor alternative `Ref` și `RefMut` care emulează `&T`/`&mut T` fără a fi " +"de fapt referințe Rust." #: src/borrowing/interior-mutability.md #, fuzzy -msgid "\"{cell:?}\"" -msgstr "Celula/RefCell" +msgid "" +"These types perform dynamic checks using a counter in the `RefCell` to prevent " +"existence of a `RefMut` alongside another `Ref`/`RefMut`." +msgstr "" +"Aceste tipuri efectuează verificări dinamice folosind un contor în `RefCell` " +"pentru a preveni existența unui `RefMut` alături de un alt `Ref`/`RefMut`." #: src/borrowing/interior-mutability.md #, fuzzy -msgid "`Cell`" -msgstr "`Celula`" +msgid "" +"By implementing `Deref` (and `DerefMut` for `RefMut`), these types allow " +"calling methods on the inner value without allowing references to escape." +msgstr "" +"Prin implementarea `Deref` (și `DerefMut` pentru `RefMut`), aceste tipuri " +"permit apelarea metodelor pe valoarea internă fără a permite referințelor să " +"scape." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" -"`Cell` wraps a value and allows getting or setting the value, even with a " -"shared reference to the `Cell`. However, it does not allow any references to " -"the value. Since there are no references, borrowing rules cannot be broken." +"// This triggers an error at runtime.\n" +" // let other = cell.borrow();\n" +" // println!(\"{}\", *other);\n" msgstr "" -"`Cell` înfășoară o valoare și permite obținerea sau stabilirea valorii, " -"chiar și cu o referință partajată la `Cell`. Cu toate acestea, nu permite " -"referințe la valoarea respectivă. Deoarece nu există referințe, regulile de " -"împrumut nu pot fi încălcate." +"// Acest lucru declanșează o eroare în timpul execuției.\n" +" // let other = cell.borrow();\n" +" // println!(\"{}\", *other);\n" + +#: src/borrowing/interior-mutability.md +msgid "\"{cell:?}\"" +msgstr "\"{cell:?}\"" #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" -"The main thing to take away from this slide is that Rust provides _safe_ " -"ways to modify data behind a shared reference. There are a variety of ways " -"to ensure that safety, and `RefCell` and `Cell` are two of them." +"The main thing to take away from this slide is that Rust provides _safe_ ways " +"to modify data behind a shared reference. There are a variety of ways to ensure " +"that safety, and `RefCell` and `Cell` are two of them." msgstr "" -"Principalul lucru care trebuie reținut din acest diapozitiv este că Rust " -"oferă modalități _sigure_ de a modifica datele din spatele unei referințe " -"partajate. Există o varietate de moduri de a asigura această siguranță, iar " -"`RefCell` și `Cell` sunt două dintre ele." +"Principalul lucru care trebuie reținut din acest diapozitiv este că Rust oferă " +"modalități _sigure_ de a modifica datele din spatele unei referințe partajate. " +"Există o varietate de moduri de a asigura această siguranță, iar `RefCell` și " +"`Cell` sunt două dintre ele." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" "`RefCell` enforces Rust's usual borrowing rules (either multiple shared " -"references or a single exclusive reference) with a runtime check. In this " -"case, all borrows are very short and never overlap, so the checks always " -"succeed." +"references or a single exclusive reference) with a runtime check. In this case, " +"all borrows are very short and never overlap, so the checks always succeed." msgstr "" "`RefCell` aplică regulile obișnuite de împrumut din Rust (fie mai multe " "referințe partajate, fie o singură referință exclusivă) cu o verificare în " -"timpul execuției. În acest caz, toate împrumuturile sunt foarte scurte și nu " -"se suprapun niciodată, astfel încât verificările reușesc întotdeauna." +"timpul execuției. În acest caz, toate împrumuturile sunt foarte scurte și nu se " +"suprapun niciodată, astfel încât verificările reușesc întotdeauna." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" "The extra block in the `RefCell` example is to end the borrow created by the " "call to `borrow_mut` before we print the cell. Trying to print a borrowed " "`RefCell` just shows the message `\"{borrowed}\"`." msgstr "" "Blocul suplimentar din exemplul `RefCell` are rolul de a încheia împrumutul " -"creat prin apelul la `borrow_mut` înainte de a imprima celula. Încercarea de " -"a imprima o `RefCell` împrumutată nu face decât să afișeze mesajul " +"creat prin apelul la `borrow_mut` înainte de a imprima celula. Încercarea de a " +"imprima o `RefCell` împrumutată nu face decât să afișeze mesajul " "`\"{borrowed}\"`." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "" "`Cell` is a simpler means to ensure safety: it has a `set` method that takes " "`&self`. This needs no runtime check, but requires moving values, which can " "have its own cost." msgstr "" "`Cell` este un mijloc mai simplu de a asigura siguranța: are o metodă `set` " -"care ia `&self`. Acest lucru nu necesită o verificare în timpul execuției, " -"dar necesită mutarea valorilor, ceea ce poate avea propriile costuri." +"care ia `&self`. Acest lucru nu necesită o verificare în timpul execuției, dar " +"necesită mutarea valorilor, ceea ce poate avea propriile costuri." + +#: src/borrowing/interior-mutability.md +msgid "" +"Both `RefCell` and `Cell` are `!Sync`, which means `&RefCell` and `&Cell` can't " +"be passed between threads. This prevents two threads trying to access the cell " +"at once." +msgstr "" +"Atât `RefCell` cât și `Cell` sunt `!Sync`, ceea ce înseamnă că `&RefCell` și " +"`&Cell` nu pot fi transmise între fire de execuție. Acest lucru previne " +"încercarea a două fire de a accesa celula în același timp." #: src/borrowing/exercise.md -#, fuzzy msgid "" -"You're working on implementing a health-monitoring system. As part of that, " -"you need to keep track of users' health statistics." +"You're working on implementing a health-monitoring system. As part of that, you " +"need to keep track of users' health statistics." msgstr "" "Lucrați la implementarea unui sistem de monitorizare a sănătății. În cadrul " "acestuia, trebuie să țineți evidența statisticilor de sănătate ale " "utilizatorilor." #: src/borrowing/exercise.md -#, fuzzy msgid "" "You'll start with a stubbed function in an `impl` block as well as a `User` " "struct definition. Your goal is to implement the stubbed out method on the " @@ -10559,101 +9839,86 @@ msgid "" msgstr "" "Veți începe cu niște funcții stubbed într-un bloc `impl`, precum și cu o " "definiție a structurii `User`. Scopul dumneavoastră este de a implementa " -"metodele stubbed out pe `struct` `User` definită în blocul `impl`." +"metodele începute din `struct` `User` definită în blocul `impl`." #: src/borrowing/exercise.md -#, fuzzy msgid "" "Copy the code below to and fill in the missing " "method:" msgstr "" -"Copiați codul de mai jos în și completați " -"metodele lipsă:" +"Copiați codul de mai jos în și completați metoda " +"lipsă:" #: src/borrowing/exercise.md -#, fuzzy msgid "" -"\"Update a user's statistics based on measurements from a visit to the " -"doctor\"" +"\"Update a user's statistics based on measurements from a visit to the doctor\"" msgstr "" -"\"Actualizați statisticile unui utilizator pe baza măsurătorilor de la o " -"vizită la medic\"" +"\"Actualizați statisticile unui utilizator pe baza măsurătorilor de la o vizită " +"la medic\"" #: src/borrowing/exercise.md src/borrowing/solution.md -#: src/android/build-rules/library.md -#: src/android/aidl/example-service/client.md -#, fuzzy +#: src/android/build-rules/library.md src/android/aidl/example-service/client.md msgid "\"Bob\"" msgstr "\"Bob\"" #: src/borrowing/exercise.md src/borrowing/solution.md -#, fuzzy msgid "\"I'm {} and my age is {}\"" msgstr "\"Eu sunt {} și vârsta mea este {}\"" #: src/lifetimes.md -#, fuzzy -msgid "" -"[Lifetime Annotations](./lifetimes/lifetime-annotations.md) (10 minutes)" +msgid "[Lifetime Annotations](./lifetimes/lifetime-annotations.md) (10 minutes)" msgstr "" -"[Adnotări privind durata de viață](./slices-and-lifetimes/lifetime-" -"annotations.md) (10 minute)" +"[Adnotări privind durata de viață](./lifetimes/lifetime-annotations.md) (10 " +"minute)" #: src/lifetimes.md -#, fuzzy msgid "[Lifetime Elision](./lifetimes/lifetime-elision.md) (5 minutes)" msgstr "" -"[Lifetime Elision](./slices-and-lifetimes/lifetime-elision.md) (5 minute)" +"[Extinderea duratei de viață](./slices-and-lifetimes/lifetime-elision.md) (5 " +"minute)" #: src/lifetimes.md -#, fuzzy msgid "[Struct Lifetimes](./lifetimes/struct-lifetimes.md) (5 minutes)" msgstr "" -"[Struct Lifetimes](./slices-and-lifetimes/struct-lifetimes.md) (5 minute)" +"[Durata de viață a structurilor](./lifetimes/struct-lifetimes.md) (5 minute" #: src/lifetimes.md -#, fuzzy msgid "[Exercise: Protobuf Parsing](./lifetimes/exercise.md) (30 minutes)" -msgstr "" -"[Exercițiu: Parsarea Protobuf](./slices-and-lifetimes/exercise.md) (30 " -"minute)" +msgstr "[Exercițiu: Parsarea Protobuf](./lifetimes/exercise.md) (30 de minute)" #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "" "A reference has a _lifetime_, which must not \"outlive\" the value it refers " "to. This is verified by the borrow checker." msgstr "" -"O referință are o _durată de viață_, care nu trebuie să \"supraviețuiască\" " -"valorii la care se referă. Acest lucru este verificat de către verificatorul " -"de împrumut." +"O referință are o _durată de viață_, care nu trebuie să o depășească pe cea a " +"valorii la care se referă. Acest lucru este verificat de către verificatorul de " +"împrumut." #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "" -"The lifetime can be implicit - this is what we have seen so far. Lifetimes " -"can also be explicit: `&'a Point`, `&'document str`. Lifetimes start with " -"`'` and `'a` is a typical default name. Read `&'a Point` as \"a borrowed " -"`Point` which is valid for at least the lifetime `a`\"." +"The lifetime can be implicit - this is what we have seen so far. Lifetimes can " +"also be explicit: `&'a Point`, `&'document str`. Lifetimes start with `'` and " +"`'a` is a typical default name. Read `&'a Point` as \"a borrowed `Point` which " +"is valid for at least the lifetime `a`\"." msgstr "" -"Durata de viață poate fi implicită - aceasta este ceea ce am văzut până " -"acum. Duratele de viață pot fi, de asemenea, explicite: `&'a Point`, " -"`&'document str`. Duratele de viață încep cu `'`, iar `'a` este un nume " -"implicit tipic. Citiți `&'a Point` ca \"un `Point` împrumutat care este " -"valabil cel puțin pentru durata de viață `a`\"." +"Durata de viață poate fi implicită - aceasta este ceea ce am văzut până acum. " +"Duratele de viață pot fi, de asemenea, explicite: `&'a Point`, `&'document " +"str`. Duratele de viață încep cu `'`, iar `'a` este un nume implicit tipic. " +"Citiți `&'a Point` ca \"un `Point` împrumutat care este valabil cel puțin " +"pentru durata de viață `a`\"." #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "" "Lifetimes are always inferred by the compiler: you cannot assign a lifetime " "yourself. Explicit lifetime annotations create constraints where there is " "ambiguity; the compiler verifies that there is a valid solution." msgstr "" -"Adnotările privind durata de viață creează constrângeri; compilatorul " -"verifică dacă există o soluție validă." +"Durata de viață este mereu determinată de compilator: nu puteți atribui o " +"durată de viață explicit. Adnotările privind durata de viață creează " +"constrângeri; compilatorul verifică dacă există o soluție validă." #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "" "Lifetimes become more complicated when considering passing values to and " "returning values from functions." @@ -10662,17 +9927,14 @@ msgstr "" "transmiterea valorilor către și returnarea valorilor din funcții." #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "// What is the lifetime of p3?\n" msgstr "// Care este durata de viață a lui p3?\n" #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "\"p3: {p3:?}\"" msgstr "\"p3: {p3:?}\"" #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "" "In this example, the compiler does not know what lifetime to infer for `p3`. " "Looking inside the function body shows that it can only safely assume that " @@ -10681,14 +9943,12 @@ msgid "" "values." msgstr "" "În acest exemplu, compilatorul nu știe ce durată de viață să deducă pentru " -"`p3`. Privind în interiorul corpului funcției arată că poate doar să " -"presupună în mod sigur că durata de viață a lui `p3` este cea mai scurtă " -"dintre `p1` și `p2`. Dar, la fel ca tipurile, Rust necesită adnotări " -"explicite ale duratei de viață pentru argumentele funcțiilor și valorile de " -"returnare." +"`p3`. Privind corpul funcției, poate doar să presupună în mod sigur că durata " +"de viață a lui `p3` este cea mai scurtă dintre `p1` și `p2`. Dar, la fel ca și " +"tipurile, Rust necesită adnotări explicite ale duratei de viață pentru " +"argumentele funcțiilor și valorile de returnare." #: src/lifetimes/lifetime-annotations.md -#, fuzzy msgid "Add `'a` appropriately to `left_most`:" msgstr "Adăugați `'a` în mod corespunzător la `left_most`:" @@ -10702,54 +9962,47 @@ msgstr "" "`'a`, valoarea de întoarcere trăiește cel puțin `'a`." #: src/lifetimes/lifetime-annotations.md -#, fuzzy -msgid "" -"In common cases, lifetimes can be elided, as described on the next slide." +msgid "In common cases, lifetimes can be elided, as described on the next slide." msgstr "" -"În cazuri obișnuite, duratele de viață pot fi eludate, așa cum este descris " -"în slide-ul următor." +"În cazuri obișnuite, duratele de viață pot fi eludate, așa cum este descris în " +"slide-ul următor." #: src/lifetimes/lifetime-elision.md msgid "Lifetimes in Function Calls" msgstr "Duratele de viață în apelurile de funcții" #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" -"Lifetimes for function arguments and return values must be fully specified, " -"but Rust allows lifetimes to be elided in most cases with [a few simple " -"rules](https://doc.rust-lang.org/nomicon/lifetime-elision.html). This is not " +"Lifetimes for function arguments and return values must be fully specified, but " +"Rust allows lifetimes to be elided in most cases with [a few simple rules]" +"(https://doc.rust-lang.org/nomicon/lifetime-elision.html). This is not " "inference -- it is just a syntactic shorthand." msgstr "" -"Duratele de viață pentru argumentele funcțiilor și valorile de retur trebuie " -"să fie specificate în întregime, dar Rust permite ca duratele de viață să " -"fie eludate în majoritatea cazurilor cu [câteva reguli simple](https://doc." -"rust-lang.org/nomicon/lifetime-elision.html)." +"Duratele de viață pentru argumentele funcțiilor și valorile de retur trebuie să " +"fie specificate în întregime, dar Rust permite ca duratele de viață să fie " +"eludate în majoritatea cazurilor cu [câteva reguli simple](https://doc.rust-" +"lang.org/nomicon/lifetime-elision.html)." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "Each argument which does not have a lifetime annotation is given one." -msgstr "" -"Fiecare argument care nu are o adnotare de durată de viață primește una." +msgstr "Fiecare argument care nu are o adnotare de durată de viață primește una." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" -"If there is only one argument lifetime, it is given to all un-annotated " -"return values." +"If there is only one argument lifetime, it is given to all un-annotated return " +"values." msgstr "" -"În cazul în care există un singur argument pe durata de viață, acesta este " -"atribuit tuturor valorilor de returnare neanunțate." +"În cazul în care există o singură durata de viață pentru argumente, acesta este " +"atribuit tuturor valorilor de returnare ne-adnotate." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" -"If there are multiple argument lifetimes, but the first one is for `self`, " -"that lifetime is given to all un-annotated return values." +"If there are multiple argument lifetimes, but the first one is for `self`, that " +"lifetime is given to all un-annotated return values." msgstr "" -"Dacă există mai multe durate de viață ale argumentelor, dar prima este " -"pentru `self`, această durată de viață este acordată tuturor valorilor de " -"returnare neanunțate." +"Dacă există mai multe durate de viață ale argumentelor, dar prima este pentru " +"`self`, această durată de viață este acordată tuturor valorilor de returnare " +"neanunțate." #: src/lifetimes/lifetime-elision.md #, fuzzy @@ -10757,7 +10010,6 @@ msgid "In this example, `cab_distance` is trivially elided." msgstr "În acest exemplu, `cab_distance` este eliminat în mod trivial." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" "The `nearest` function provides another example of a function with multiple " "references in its arguments that requires explicit annotation." @@ -10766,191 +10018,167 @@ msgstr "" "argumentele sale care necesită o adnotare explicită." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "Try adjusting the signature to \"lie\" about the lifetimes returned:" msgstr "" -"Încercați să ajustați semnătura pentru a \"minți\" cu privire la perioadele " -"de viață returnate:" +"Încercați să ajustați semnătura pentru a \"minți\" cu privire la perioadele de " +"viață returnate:" #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" -"This won't compile, demonstrating that the annotations are checked for " -"validity by the compiler. Note that this is not the case for raw pointers " -"(unsafe), and this is a common source of errors with unsafe Rust." +"This won't compile, demonstrating that the annotations are checked for validity " +"by the compiler. Note that this is not the case for raw pointers (unsafe), and " +"this is a common source of errors with unsafe Rust." msgstr "" -"Acest lucru nu se va compila, demonstrând că validitatea adnotărilor este " +"Acest cod nu se va compila, demonstrând că validitatea adnotărilor este " "verificată de compilator. Rețineți că acest lucru nu este valabil și pentru " -"pointeri brute (unsafe), iar aceasta este o sursă comună de erori în cazul " -"Rust unsafe." +"pointeri nesiguri, fiind o sursă comună de erori." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" -"Students may ask when to use lifetimes. Rust borrows _always_ have " -"lifetimes. Most of the time, elision and type inference mean these don't " -"need to be written out. In more complicated cases, lifetime annotations can " -"help resolve ambiguity. Often, especially when prototyping, it's easier to " -"just work with owned data by cloning values where necessary." +"Students may ask when to use lifetimes. Rust borrows _always_ have lifetimes. " +"Most of the time, elision and type inference mean these don't need to be " +"written out. In more complicated cases, lifetime annotations can help resolve " +"ambiguity. Often, especially when prototyping, it's easier to just work with " +"owned data by cloning values where necessary." msgstr "" -"Elevii pot întreba când trebuie să folosească duratele de viață. " -"Împrumuturile Rust au _întotdeauna_ durate de viață. De cele mai multe ori, " -"eliziunea și inferența de tip înseamnă că acestea nu trebuie să fie scrise. " -"În cazuri mai complicate, adnotările privind durata de viață pot ajuta la " -"rezolvarea ambiguității. De multe ori, în special în cazul prototipurilor, " -"este mai ușor să lucrați cu datele deținute prin clonarea valorilor acolo " -"unde este necesar." +"Elevii pot întreba când trebuie să folosească duratele de viață. Împrumuturile " +"Rust au _întotdeauna_ durate de viață. De cele mai multe ori, eliziunea și " +"inferența de tip înseamnă că acestea nu trebuie să fie scrise. În cazuri mai " +"complicate, adnotările privind durata de viață pot ajuta la rezolvarea " +"ambiguității. De multe ori, în special în cazul prototipurilor, este mai ușor " +"să lucrați cu datele deținute prin clonarea valorilor acolo unde este necesar." #: src/lifetimes/struct-lifetimes.md msgid "Lifetimes in Data Structures" msgstr "Duratele de viață în structurile de date" #: src/lifetimes/struct-lifetimes.md -#, fuzzy -msgid "" -"If a data type stores borrowed data, it must be annotated with a lifetime:" +msgid "If a data type stores borrowed data, it must be annotated with a lifetime:" msgstr "" -"În cazul în care un tip de date stochează date împrumutate, acesta trebuie " -"să fie adnotat cu o durată de viață:" +"În cazul în care un tip de date stochează date împrumutate, acesta trebuie să " +"fie adnotat cu o durată de viață:" #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "\"Bye {text}!\"" msgstr "\"La revedere {text}!\"" #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "\"The quick brown fox jumps over the lazy dog.\"" msgstr "\"Vulpea cea iute și brună sare peste câinele leneș.\"" #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "// erase(text);\n" msgstr "// erase(text);\n" #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "\"{fox:?}\"" msgstr "\"{fox:?}\"" #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "\"{dog:?}\"" msgstr "\"{dog:?}\"" #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "" "In the above example, the annotation on `Highlight` enforces that the data " "underlying the contained `&str` lives at least as long as any instance of " "`Highlight` that uses that data." msgstr "" -"În exemplul de mai sus, adnotarea pentru `Highlight` impune ca datele care " -"stau la baza `&str` conținute să aibă o durată de viață cel puțin egală cu " -"cea a oricărei instanțe de `Highlight` care utilizează aceste date." +"În exemplul de mai sus, adnotarea pentru `Highlight` impune ca datele care stau " +"la baza `&str` conținute să aibă o durată de viață cel puțin egală cu cea a " +"oricărei instanțe de `Highlight` care utilizează aceste date." #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "" -"If `text` is consumed before the end of the lifetime of `fox` (or `dog`), " -"the borrow checker throws an error." +"If `text` is consumed before the end of the lifetime of `fox` (or `dog`), the " +"borrow checker throws an error." msgstr "" "Dacă `text` este consumat înainte de sfârșitul duratei de viață a lui `fox` " "(sau `dog`), verificatorul de împrumuturi aruncă o eroare." #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "" -"Types with borrowed data force users to hold on to the original data. This " -"can be useful for creating lightweight views, but it generally makes them " -"somewhat harder to use." +"Types with borrowed data force users to hold on to the original data. This can " +"be useful for creating lightweight views, but it generally makes them somewhat " +"harder to use." msgstr "" "Tipurile cu date împrumutate îi obligă pe utilizatori să păstreze datele " -"originale. Acest lucru poate fi util pentru a crea vizualizări ușoare, dar, " -"în general, le face ceva mai greu de utilizat." +"originale. Acest lucru poate fi util pentru a crea vizualizări ușoare, dar, în " +"general, le face ceva mai greu de utilizat." #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "When possible, make data structures own their data directly." msgstr "" -"Atunci când este posibil, faceți ca structurile de date să dețină direct " -"datele lor." +"Atunci când este posibil, faceți ca structurile de date să dețină direct datele " +"lor." #: src/lifetimes/struct-lifetimes.md -#, fuzzy msgid "" "Some structs with multiple references inside can have more than one lifetime " "annotation. This can be necessary if there is a need to describe lifetime " -"relationships between the references themselves, in addition to the lifetime " -"of the struct itself. Those are very advanced use cases." +"relationships between the references themselves, in addition to the lifetime of " +"the struct itself. Those are very advanced use cases." msgstr "" -"Unele structuri cu referințe multiple în interior pot avea mai multe " -"adnotări de durată de viață. Acest lucru poate fi necesar în cazul în care " -"este necesar să se descrie relațiile de durată de viață între referințe, pe " -"lângă durata de viață a structurii în sine. Acestea sunt cazuri de utilizare " -"foarte avansate." +"Unele structuri cu referințe multiple în interior pot avea mai multe adnotări " +"de durată de viață. Acest lucru poate fi necesar în cazul în care este necesar " +"să se descrie relațiile de durată de viață între referințe, pe lângă durata de " +"viață a structurii în sine. Acestea sunt cazuri de utilizare foarte avansate." #: src/lifetimes/exercise.md -#, fuzzy msgid "" "In this exercise, you will build a parser for the [protobuf binary encoding]" -"(https://protobuf.dev/programming-guides/encoding/). Don't worry, it's " -"simpler than it seems! This illustrates a common parsing pattern, passing " -"slices of data. The underlying data itself is never copied." +"(https://protobuf.dev/programming-guides/encoding/). Don't worry, it's simpler " +"than it seems! This illustrates a common parsing pattern, passing slices of " +"data. The underlying data itself is never copied." msgstr "" -"În acest exercițiu, veți construi un parser pentru [protobuf binary encoding]" -"(https://protobuf.dev/programming-guides/encoding/). Nu vă faceți griji, " -"este mai simplu decât pare! Aceasta ilustrează un model comun de parsare, " -"trecând felii de date. Datele de bază în sine nu sunt niciodată copiate." +"În acest exercițiu, veți construi un parser pentru [codarea binară de protobuf]" +"(https://protobuf.dev/programming-guides/encoding/). Nu vă faceți griji, este " +"mai simplu decât pare! Aceasta ilustrează un model comun de parsare, lucrând cu " +"segmente de date. Datele de bază în sine nu sunt niciodată copiate." #: src/lifetimes/exercise.md -#, fuzzy msgid "" "Fully parsing a protobuf message requires knowing the types of the fields, " -"indexed by their field numbers. That is typically provided in a `proto` " -"file. In this exercise, we'll encode that information into `match` " -"statements in functions that get called for each field." +"indexed by their field numbers. That is typically provided in a `proto` file. " +"In this exercise, we'll encode that information into `match` statements in " +"functions that get called for each field." msgstr "" "Analiza completă a unui mesaj protobuf necesită cunoașterea tipurilor de " "câmpuri, indexate prin numerele de câmp. Acest lucru este furnizat de obicei " -"într-un fișier `proto`. În acest exercițiu, vom codifica aceste informații " -"în instrucțiuni `match` în funcții care sunt apelate pentru fiecare câmp." +"într-un fișier `proto`. În acest exercițiu, vom codifica aceste informații în " +"instrucțiuni `match` în funcții care sunt apelate pentru fiecare câmp." #: src/lifetimes/exercise.md -#, fuzzy msgid "We'll use the following proto:" -msgstr "Puteți utiliza următorul `Cargo.toml`:" +msgstr "Vom folosi următorul proto:" #: src/lifetimes/exercise.md -#, fuzzy msgid "" -"A proto message is encoded as a series of fields, one after the next. Each " -"is implemented as a \"tag\" followed by the value. The tag contains a field " -"number (e.g., `2` for the `id` field of a `Person` message) and a wire type " -"defining how the payload should be determined from the byte stream." +"A proto message is encoded as a series of fields, one after the next. Each is " +"implemented as a \"tag\" followed by the value. The tag contains a field number " +"(e.g., `2` for the `id` field of a `Person` message) and a wire type defining " +"how the payload should be determined from the byte stream." msgstr "" -"Un mesaj proto este codificat ca o serie de câmpuri, unul după altul. " -"Fiecare este implementat ca o \"etichetă\" urmată de valoare. Eticheta " -"conține un număr de câmp (de exemplu, `2` pentru câmpul `id` al unui mesaj " -"`Person`) și un tip de fir care definește modul în care încărcătura utilă ar " -"trebui să fie determinată din fluxul de octeți." +"Un mesaj proto este codificat ca o serie de câmpuri, unul după altul. Fiecare " +"este implementat ca o \"etichetă\" urmată de valoare. Eticheta conține un număr " +"de câmp (de exemplu, `2` pentru câmpul `id` al unui mesaj `Person`) și un tip " +"de fir care definește modul în care încărcătura utilă ar trebui să fie " +"determinată din fluxul de octeți." #: src/lifetimes/exercise.md -#, fuzzy msgid "" "Integers, including the tag, are represented with a variable-length encoding " -"called VARINT. Luckily, `parse_varint` is defined for you below. The given " -"code also defines callbacks to handle `Person` and `PhoneNumber` fields, and " -"to parse a message into a series of calls to those callbacks." +"called VARINT. Luckily, `parse_varint` is defined for you below. The given code " +"also defines callbacks to handle `Person` and `PhoneNumber` fields, and to " +"parse a message into a series of calls to those callbacks." msgstr "" "Întregii, inclusiv tag-ul, sunt reprezentați cu o codificare de lungime " "variabilă numită VARINT. Din fericire, `parse_varint` este definit pentru " -"dumneavoastră mai jos. Codul dat definește, de asemenea, callback-uri pentru " -"a gestiona câmpurile `Person` și `PhoneNumber` și pentru a analiza un mesaj " -"într-o serie de apeluri la aceste callback-uri." +"dumneavoastră mai jos. Codul dat definește, de asemenea, callback-uri pentru a " +"gestiona câmpurile `Person` și `PhoneNumber` și pentru a analiza un mesaj într-" +"o serie de apeluri la aceste callback-uri." #: src/lifetimes/exercise.md -#, fuzzy msgid "" "What remains for you is to implement the `parse_field` function and the " "`ProtoMessage` trait for `Person` and `PhoneNumber`." @@ -10958,97 +10186,96 @@ msgstr "" "Ceea ce vă rămâne de făcut este să implementați funcția `parse_field` și " "trăsătura `ProtoMessage` pentru `Person` și `PhoneNumber`." -#: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy -msgid "\"Invalid varint\"" -msgstr "\"Invalid varint\"" - -#: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy -msgid "\"Invalid wire-type\"" -msgstr "\"Tip de fir invalid\"" - -#: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy -msgid "\"Unexpected EOF\"" -msgstr "\"Unexpected EOF\"" - -#: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy -msgid "\"Invalid length\"" -msgstr "\"Lungime invalidă\"" - -#: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy -msgid "\"Unexpected wire-type)\"" -msgstr "\"Tip de fir neașteptat)\"" - -#: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy -msgid "\"Invalid string (not UTF-8)\"" -msgstr "\"Șir nevalabil (nu UTF-8)\"" - #: src/lifetimes/exercise.md src/lifetimes/solution.md #, fuzzy msgid "/// A wire type as seen on the wire.\n" msgstr "/// Un tip de fir, așa cum se vede pe fir.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "/// The Varint WireType indicates the value is a single VARINT.\n" msgstr "/// Varint WireType indică faptul că valoarea este un singur VARINT.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md #, fuzzy msgid "" -"//I64, -- not needed for this exercise\n" -" /// The Len WireType indicates that the value is a length represented as " -"a\n" +"/// The I64 WireType indicates that the value is precisely 8 bytes in\n" +" /// little-endian order containing a 64-bit signed integer or double type.\n" +" //I64, -- not needed for this exercise\n" +" /// The Len WireType indicates that the value is a length represented as a\n" " /// VARINT followed by exactly that number of bytes.\n" msgstr "" "//I64, -- nu este necesar pentru acest exercițiu\n" -" /// Tipul de fir Len indică faptul că valoarea este o lungime " -"reprezentată sub forma unui număr de caractere\n" +" /// Len WireType indică faptul că valoarea este o lungime reprezentată sub " +"forma unui număr de caractere\n" " /// VARINT urmat de exact acest număr de octeți.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md #, fuzzy msgid "" -"/// The I32 WireType indicates that the value is precisely 4 bytes in\n" -" /// little-endian order containing a 32-bit signed integer.\n" +"// The I32 WireType indicates that the value is precisely 4 bytes in\n" +" // little-endian order containing a 32-bit signed integer or float type.\n" +" //I32, -- not needed for this exercise\n" msgstr "" "/// I32 WireType indică faptul că valoarea este exact 4 octeți în\n" -" /// little-endian care conțin un număr întreg semnat pe 32 de biți.\n" +" /// ordine little-endian care conțin un număr întreg cu semn, pe 32 de " +"biți.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "/// A field's value, typed based on the wire type.\n" -msgstr "/// Valoarea unui câmp, tipizată în funcție de tipul de fir.\n" +msgstr "/// Valoarea unui câmp, tipizată în funcție de wire type.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "//I64(i64), -- not needed for this exercise\n" msgstr "//I64(i64), -- nu este necesar pentru acest exercițiu\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md #, fuzzy +msgid "//I32(i32), -- not needed for this exercise\n" +msgstr "//I64(i64), -- nu este necesar pentru acest exercițiu\n" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md msgid "/// A field, containing the field number and its value.\n" -msgstr "/// Un câmp, care conține numărul câmpului și valoarea acestuia.\n" +msgstr "/// Un câmp, care conține numărul câmpului și valoarea sa.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "//1 => WireType::I64, -- not needed for this exercise\n" msgstr "//1 => WireType::I64, -- nu este necesar pentru acest exercițiu\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md #, fuzzy -msgid "" -"/// Parse a VARINT, returning the parsed value and the remaining bytes.\n" +msgid "//5 => WireType::I32, -- not needed for this exercise\n" +msgstr "//1 => WireType::I64, -- nu este necesar pentru acest exercițiu\n" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "\"Invalid wire type: {value}\"" +msgstr "\"Wire type nevalid: {value}\"" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "\"Expected string to be a `Len` field\"" +msgstr "\"Se așteaptă ca șirul să fie un câmp `Len`\"" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "\"Invalid string\"" +msgstr "\"varint nevalid \"" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "\"Expected bytes to be a `Len` field\"" +msgstr "\"Se aștepta ca bytes să fie un câmp `Len`\"" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "\"Expected `u64` to be a `Varint` field\"" +msgstr "\"Se aștepta ca `u64` să fie un câmp `Varint`\"" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "/// Parse a VARINT, returning the parsed value and the remaining bytes.\n" msgstr "" "/// Analizează un VARINT, returnând valoarea analizată și octeții rămași.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy +msgid "\"Not enough bytes for varint\"" +msgstr "\"Nu sunt suficienți octeți pentru varint\"" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md msgid "" "// This is the last byte of the VARINT, so convert it to\n" " // a u64 and return it.\n" @@ -11057,36 +10284,34 @@ msgstr "" " // un u64 și returnați-l.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "// More than 7 bytes is invalid.\n" -msgstr "// Mai mult de 7 octeți este invalid.\n" +msgstr "// Mai mult de 7 octeți, nu este o valoare validă.\n" + +#: src/lifetimes/exercise.md src/lifetimes/solution.md +msgid "\"Too many bytes for varint\"" +msgstr "\"Prea mulți octeți pentru varint\"" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "/// Convert a tag into a field number and a WireType.\n" -msgstr "/// Convertește o etichetă într-un număr de câmp și un tip de fir.\n" +msgstr "/// Convertește o etichetă într-un număr de câmp și un WireType.\n" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "/// Parse a field, returning the remaining bytes\n" msgstr "/// Parsează un câmp, returnând octeții rămași\n" #: src/lifetimes/exercise.md #, fuzzy msgid "" -"\"Based on the wire type, build a Field, consuming as many bytes as " -"necessary.\"" +"\"Based on the wire type, build a Field, consuming as many bytes as necessary.\"" msgstr "" -"\"Pe baza tipului de fir, construiți un câmp, consumând atâția octeți câți " -"sunt necesari.\"" +"\"Pe baza fire type, construiți un câmp, consumând atâția octeți câți sunt " +"necesari.\"" #: src/lifetimes/exercise.md -#, fuzzy msgid "\"Return the field, and any un-consumed bytes.\"" msgstr "\"Întoarceți câmpul și toți octeții neconsumați.\"" #: src/lifetimes/exercise.md src/lifetimes/solution.md -#, fuzzy msgid "" "/// Parse a message in the given data, calling `T::add_field` for each field " "in\n" @@ -11096,235 +10321,237 @@ msgid "" msgstr "" "/// Parsează un mesaj în datele date, apelând `T::add_field` pentru fiecare " "câmp din\n" -"/// mesajul.\n" +"/// mesaj.\n" "///\n" -"/// Se consumă întreaga intrare.\n" +"/// Se consumă toate datele de intrare.\n" #: src/lifetimes/exercise.md -#, fuzzy msgid "// TODO: Implement ProtoMessage for Person and PhoneNumber.\n" msgstr "// TODO: Implementați ProtoMessage pentru Person și PhoneNumber.\n" +#: src/lifetimes/exercise.md +msgid "" +"In this exercise there are various cases where protobuf parsing might fail, e." +"g. if you try to parse an `i32` when there are fewer than 4 bytes left in the " +"data buffer. In normal Rust code we'd handle this with the `Result` enum, but " +"for simplicity in this exercise we panic if any errors are encountered. On day " +"4 we'll cover error handling in Rust in more detail." +msgstr "" +"În acest exercițiu există diferite cazuri în care analiza protobuf ar putea " +"eșua, de exemplu, dacă încercați să analizați un `i32` când mai sunt mai puțin " +"de 4 octeți în bufferul de date. În codul Rust normal am gestiona acest lucru " +"cu enum-ul `Result`, dar pentru simplitate, în acest exercițiu intrăm în panică " +"dacă sunt întâmpinate erori. În ziua a 4-a vom aborda mai în detaliu " +"gestionarea erorilor în Rust." + #: src/lifetimes/solution.md #, fuzzy -msgid "// Unwrap error because `value` is definitely 4 bytes long.\n" -msgstr "// Eroare de dezarhivare deoarece `value` are o lungime de 4 bytes.\n" +msgid "\"len not a valid `usize`\"" +msgstr "\"len not a valid `usize`\"" + +#: src/lifetimes/solution.md +msgid "\"Unexpected EOF\"" +msgstr "\"Sfârșit de fișier neașteptat\"" #: src/lifetimes/solution.md #, fuzzy msgid "// skip everything else\n" msgstr "// săriți peste orice altceva\n" +#: src/lifetimes/solution.md src/modules/exercise.md src/modules/solution.md +#: src/testing/unit-tests.md src/testing/solution.md +msgid "\"\"" +msgstr "\"\"" + #: src/lifetimes/solution.md #, fuzzy -msgid "b\"hello\"" -msgstr "b \"hello\"" +msgid "\"beautiful name\"" +msgstr "\"Bună ziua {name}\"" -#: src/welcome-day-4.md +#: src/lifetimes/solution.md +#, fuzzy +msgid "\"Evan\"" +msgstr "\"Evan\"" + +#: src/lifetimes/solution.md +#, fuzzy +msgid "\"+1234-777-9090\"" +msgstr "\"+1234-777-9090\"" + +#: src/lifetimes/solution.md #, fuzzy +msgid "\"home\"" +msgstr "\"acasă\"" + +#: src/welcome-day-4.md msgid "Welcome to Day 4" -msgstr "Bine ați venit la Ziua 1" +msgstr "Bine ați venit la Ziua a 4-a" #: src/welcome-day-4.md -#, fuzzy msgid "" "Today we will cover topics relating to building large-scale software in Rust:" -msgstr "Astăzi, vom aborda câteva subiecte mai avansate din Rust:" +msgstr "" +"Astăzi, vom aborda subiecte construirea software-ului la scară mare în Rust:" #: src/welcome-day-4.md -#, fuzzy msgid "Iterators: a deep dive on the `Iterator` trait." -msgstr "Iteratori: o scufundare în profunzime în trăsătura `Iterator`." +msgstr "Iteratori: o studiu în profunzime al trăsăturii `Iterator`." #: src/welcome-day-4.md -#, fuzzy msgid "Modules and visibility." msgstr "Module și vizibilitate." #: src/welcome-day-4.md -#, fuzzy msgid "Testing." -msgstr "Testare" +msgstr "Testarea." #: src/welcome-day-4.md -#, fuzzy msgid "Error handling: panics, `Result`, and the try operator `?`." -msgstr "Gestionarea erorilor: panici, `Result` și operatorul try `?`." +msgstr "Gestionarea erorilor: panici, `Result` și operatorul de încercare `?`." #: src/welcome-day-4.md -#, fuzzy msgid "" "Unsafe Rust: the escape hatch when you can't express yourself in safe Rust." msgstr "" -"Unsafe Rust: portița de scăpare atunci când nu te poți exprima în Rust sigur." +"Rust nesigur: portița de scăpare atunci când nu te poți exprima în Rust sigur." #: src/welcome-day-4.md -#, fuzzy msgid "[Welcome](./welcome-day-4.md) (3 minutes)" msgstr "[Intorducere](../welcome-day-4.md) (3 minute)" #: src/welcome-day-4.md -#, fuzzy msgid "[Iterators](./iterators.md) (45 minutes)" -msgstr "[Iteratori](../iteratori.md) (45 minute)" +msgstr "[Iteratori](../iteratori.md) (45 de minute)" #: src/welcome-day-4.md -#, fuzzy msgid "[Modules](./modules.md) (40 minutes)" -msgstr "[Module](../modules.md) (40 minute)" +msgstr "[Module](../modules.md) (40 de minute)" #: src/welcome-day-4.md -#, fuzzy msgid "[Testing](./testing.md) (45 minutes)" -msgstr "[Testare](../testing.md) (1 oră și 5 minute)" +msgstr "[Testarea](../testing.md) (45 de minute)" #: src/welcome-day-4.md -#, fuzzy msgid "" "Including 10 minute breaks, this session should take about 2 hours and 40 " "minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 2 ore și 20 de minute" +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " +"aproximativ 2 ore și 40 de minute" #: src/iterators.md -#, fuzzy msgid "[Iterator](./iterators/iterator.md) (5 minutes)" msgstr "[Iterator](./iterators/iterator.md) (5 minute)" #: src/iterators.md -#, fuzzy msgid "[IntoIterator](./iterators/intoiterator.md) (5 minutes)" msgstr "[IntoIterator](./iterators/intoiterator.md) (5 minute)" #: src/iterators.md -#, fuzzy msgid "[FromIterator](./iterators/fromiterator.md) (5 minutes)" msgstr "[FromIterator](./iterators/fromiterator.md) (5 minute)" #: src/iterators.md -#, fuzzy -msgid "" -"[Exercise: Iterator Method Chaining](./iterators/exercise.md) (30 minutes)" +msgid "[Exercise: Iterator Method Chaining](./iterators/exercise.md) (30 minutes)" msgstr "" -"[Exercițiu: înlănțuirea metodelor Iterator](./iterators/exercițiu.md) (30 " +"[Exercițiu: înlănțuirea metodelor Iterator](./iterators/exercițiu.md) (30 de " "minute)" -#: src/iterators.md src/testing.md -#, fuzzy -msgid "This segment should take about 45 minutes" -msgstr "Acest segment ar trebui să dureze aproximativ 45 de minute" - #: src/iterators/iterator.md -#, fuzzy msgid "" -"The [`Iterator`](https://doc.rust-lang.org/std/iter/trait.Iterator.html) " -"trait supports iterating over values in a collection. It requires a `next` " -"method and provides lots of methods. Many standard library types implement " -"`Iterator`, and you can implement it yourself, too:" +"The [`Iterator`](https://doc.rust-lang.org/std/iter/trait.Iterator.html) trait " +"supports iterating over values in a collection. It requires a `next` method and " +"provides lots of methods. Many standard library types implement `Iterator`, and " +"you can implement it yourself, too:" msgstr "" -"Caracteristica [`Iterator`](https://doc.rust-lang.org/std/iter/trait." -"Iterator.html) permite iterația peste valorile dintr-o colecție. Aceasta " -"necesită o metodă `next` și oferă o mulțime de metode. Multe tipuri de " -"bibliotecă standard implementează `Iterator` și o puteți implementa și " -"dumneavoastră:" +"Caracteristica [`Iterator`](https://doc.rust-lang.org/std/iter/trait.Iterator." +"html) permite iterația peste valorile dintr-o colecție. Aceasta necesită o " +"metodă `next` și oferă o mulțime de metode. Multe tipuri din biblioteca " +"standard implementează `Iterator` și o puteți implementa și dumneavoastră:" #: src/iterators/iterator.md -#, fuzzy msgid "\"fib({i}): {n}\"" msgstr "\"fib({i}): {n}\"" #: src/iterators/iterator.md -#, fuzzy msgid "" -"The `Iterator` trait implements many common functional programming " -"operations over collections (e.g. `map`, `filter`, `reduce`, etc). This is " -"the trait where you can find all the documentation about them. In Rust these " -"functions should produce the code as efficient as equivalent imperative " -"implementations." +"The `Iterator` trait implements many common functional programming operations " +"over collections (e.g. `map`, `filter`, `reduce`, etc). This is the trait where " +"you can find all the documentation about them. In Rust these functions should " +"produce the code as efficient as equivalent imperative implementations." msgstr "" "Caracteristica `Iterator` implementează multe operații comune de programare " "funcțională asupra colecțiilor (de exemplu, `map`, `filter`, `reduce` etc.). " "Aceasta este trăsătura în care puteți găsi toată documentația referitoare la " -"acestea. În Rust, aceste funcții ar trebui să producă cod la fel de eficient " -"ca și implementările imperative echivalente." +"acestea. În Rust, aceste funcții ar trebui să producă cod la fel de eficient ca " +"și implementările imperative echivalente." #: src/iterators/iterator.md -#, fuzzy msgid "" "`IntoIterator` is the trait that makes for loops work. It is implemented by " -"collection types such as `Vec` and references to them such as `&Vec` " -"and `&[T]`. Ranges also implement it. This is why you can iterate over a " -"vector with `for i in some_vec { .. }` but `some_vec.next()` doesn't exist." +"collection types such as `Vec` and references to them such as `&Vec` and " +"`&[T]`. Ranges also implement it. This is why you can iterate over a vector " +"with `for i in some_vec { .. }` but `some_vec.next()` doesn't exist." msgstr "" "`IntoIterator` este trăsătura care face ca buclele for să funcționeze. Este " "implementată prin tipuri de colecții, cum ar fi `Vec` și referințe la " -"acestea, cum ar fi `&Vec` și `&[T]`. De asemenea, este " -"implementată și în cazul intervalelor. Acesta este motivul pentru care " -"puteți itera un vector cu `for i in some_vec { ... }`, dar `some_vec.next()` " -"nu există." +"acestea, cum ar fi `&Vec` și `&[T]`. De asemenea, este implementată și în " +"cazul intervalelor. Acesta este motivul pentru care puteți itera un vector cu " +"`for i in some_vec { ... }`, dar `some_vec.next()` nu există." #: src/iterators/intoiterator.md -#, fuzzy msgid "" "The `Iterator` trait tells you how to _iterate_ once you have created an " -"iterator. The related trait [`IntoIterator`](https://doc.rust-lang.org/std/" -"iter/trait.IntoIterator.html) defines how to create an iterator for a type. " -"It is used automatically by the `for` loop." +"iterator. The related trait [`IntoIterator`](https://doc.rust-lang.org/std/iter/" +"trait.IntoIterator.html) defines how to create an iterator for a type. It is " +"used automatically by the `for` loop." msgstr "" -"Trăsătura `Iterator` vă spune cum să _iterați_ după ce ați creat un " -"iterator. Trăsătura conexă `IntoIterator` vă spune cum să creați iteratorul:" +"Trăsătura `Iterator` vă spune cum să _iterați_ după ce ați creat un iterator. " +"Trăsătura conexă [`IntoIterator`](https://doc.rust-lang.org/std/iter/trait." +"IntoIterator.html) definește modul în care este creat iteratorul pentru un " +"anumit tip. Este folosită automat de bucla `for`." #: src/iterators/intoiterator.md -#, fuzzy msgid "\"point = {x}, {y}\"" -msgstr "\"point = {x}, {y}\"" +msgstr "\"punct = {x}, {y}\"" #: src/iterators/intoiterator.md -#, fuzzy msgid "" "Click through to the docs for `IntoIterator`. Every implementation of " "`IntoIterator` must declare two types:" msgstr "" -"Sintaxa de aici înseamnă că fiecare implementare a lui `IntoIterator` " -"trebuie să declare două tipuri:" +"Răsfoiți documentația pentru `IntoIterator`. Fiecare implementare a lui " +"`IntoIterator` trebuie să declare două tipuri:" #: src/iterators/intoiterator.md -#, fuzzy msgid "`Item`: the type to iterate over, such as `i8`," msgstr "`Item`: tipul peste care iterăm, cum ar fi `i8`," #: src/iterators/intoiterator.md -#, fuzzy msgid "`IntoIter`: the `Iterator` type returned by the `into_iter` method." msgstr "`IntoIter`: tipul `Iterator` returnat de metoda `into_iter`." #: src/iterators/intoiterator.md -#, fuzzy msgid "" "Note that `IntoIter` and `Item` are linked: the iterator must have the same " "`Item` type, which means that it returns `Option`" msgstr "" "Rețineți că `IntoIter` și `Item` sunt legate: iteratorul trebuie să aibă " -"același tip `Item`, ceea ce înseamnă că returnează `Opțiune``" +"același tip `Item`, ceea ce înseamnă că returnează `Option`" #: src/iterators/intoiterator.md -#, fuzzy msgid "The example iterates over all combinations of x and y coordinates." -msgstr "Exemplul itera peste toate combinațiile de coordonate x și y." +msgstr "Exemplul iterează peste toate combinațiile de coordonate x și y." #: src/iterators/intoiterator.md -#, fuzzy msgid "" "Try iterating over the grid twice in `main`. Why does this fail? Note that " "`IntoIterator::into_iter` takes ownership of `self`." msgstr "" -"Încercați să iterați peste grilă de două ori în `main`. De ce nu reușește " -"acest lucru? Rețineți că `IntoIterator::into_iter` preia proprietatea lui " -"`self`." +"Încercați să iterați peste grilă de două ori în `main`. De ce eșuează acest " +"lucru? Rețineți că `IntoIterator::into_iter` preia proprietatea lui `self`." #: src/iterators/intoiterator.md -#, fuzzy msgid "" "Fix this issue by implementing `IntoIterator` for `&Grid` and storing a " "reference to the `Grid` in `GridIter`." @@ -11333,62 +10560,53 @@ msgstr "" "stocând o referință la `Grid` în `GridIter`." #: src/iterators/intoiterator.md -#, fuzzy msgid "" -"The same problem can occur for standard library types: `for e in " -"some_vector` will take ownership of `some_vector` and iterate over owned " -"elements from that vector. Use `for e in &some_vector` instead, to iterate " -"over references to elements of `some_vector`." +"The same problem can occur for standard library types: `for e in some_vector` " +"will take ownership of `some_vector` and iterate over owned elements from that " +"vector. Use `for e in &some_vector` instead, to iterate over references to " +"elements of `some_vector`." msgstr "" "Aceeași problemă poate apărea și în cazul tipurilor din biblioteca standard: " "`for e in some_vector` va prelua proprietatea lui `some_vector` și va itera " "peste elementele deținute din acel vector. Folosiți în schimb `for e in " -"&some_vector` pentru a itera peste referințele la elementele din " -"`some_vector`." +"&some_vector` pentru a itera peste referințele la elementele din `some_vector`." #: src/iterators/fromiterator.md msgid "FromIterator" msgstr "FromIterator" #: src/iterators/fromiterator.md -#, fuzzy msgid "" "[`FromIterator`](https://doc.rust-lang.org/std/iter/trait.FromIterator.html) " -"lets you build a collection from an [`Iterator`](https://doc.rust-lang.org/" -"std/iter/trait.Iterator.html)." +"lets you build a collection from an [`Iterator`](https://doc.rust-lang.org/std/" +"iter/trait.Iterator.html)." msgstr "" -"[`FromIterator`]](https://doc.rust-lang.org/std/iter/trait.FromIterator." -"html) vă permite să construiți o colecție dintr-un [`Iterator`](https://doc." -"rust-lang.org/std/iter/trait.Iterator.html)." +"[`FromIterator`]](https://doc.rust-lang.org/std/iter/trait.FromIterator.html) " +"vă permite să construiți o colecție dintr-un [`Iterator`](https://doc.rust-lang." +"org/std/iter/trait.Iterator.html)." #: src/iterators/fromiterator.md -#, fuzzy msgid "\"prime_squares: {prime_squares:?}\"" msgstr "\"prime_squares: {prime_squares:?}\"" #: src/iterators/fromiterator.md -#, fuzzy msgid "`Iterator` implements" -msgstr "`Iterator`" +msgstr "`Iterator` implementează" #: src/iterators/fromiterator.md -#, fuzzy msgid "There are two ways to specify `B` for this method:" msgstr "Există două moduri de a specifica `B` pentru această metodă:" #: src/iterators/fromiterator.md -#, fuzzy msgid "" -"With the \"turbofish\": `some_iterator.collect::()`, as " -"shown. The `_` shorthand used here lets Rust infer the type of the `Vec` " -"elements." +"With the \"turbofish\": `some_iterator.collect::()`, as shown. " +"The `_` shorthand used here lets Rust infer the type of the `Vec` elements." msgstr "" "Cu \"turbofish\": `some_iterator.collect::()`, după cum se " "arată. Prescurtarea `_` folosită aici îi permite lui Rust să deducă tipul " "elementelor `Vec`." #: src/iterators/fromiterator.md -#, fuzzy msgid "" "With type inference: `let prime_squares: Vec<_> = some_iterator.collect()`. " "Rewrite the example to use this form." @@ -11397,42 +10615,39 @@ msgstr "" "Rescrieți exemplul pentru a utiliza această formă." #: src/iterators/fromiterator.md -#, fuzzy msgid "" "There are basic implementations of `FromIterator` for `Vec`, `HashMap`, etc. " "There are also more specialized implementations which let you do cool things " "like convert an `Iterator>` into a `Result, E>`." msgstr "" -"Există, de asemenea, implementări care vă permit să faceți lucruri " -"interesante, cum ar fi convertirea unui `Iterator<Item = Rezultat>` într-un `Resultat<Vec, E>`." +"Sunt implementări de bază pentru `FromIterator` for `Vec`, `HashMap`, etc. " +"Există, de asemenea, implementări specializate care vă permit să faceți lucruri " +"interesante, cum ar fi convertirea unui `Iterator>` într-un " +"`Result, E>`." #: src/iterators/exercise.md -#, fuzzy msgid "" -"In this exercise, you will need to find and use some of the provided methods " -"in the [`Iterator`](https://doc.rust-lang.org/std/iter/trait.Iterator.html) " -"trait to implement a complex calculation." +"In this exercise, you will need to find and use some of the provided methods in " +"the [`Iterator`](https://doc.rust-lang.org/std/iter/trait.Iterator.html) trait " +"to implement a complex calculation." msgstr "" -"Puteți implementa trăsătura [`Iterator`](https://doc.rust-lang.org/std/iter/" -"trait.Iterator.html) pe propriile tipuri:" +"În acest exercițiu trebuie să identificați și să utilizați câteva dintre " +"metodele trăsăturii [`Iterator`](https://doc.rust-lang.org/std/iter/trait." +"Iterator.html) pentru a implementa un calcul complex." #: src/iterators/exercise.md -#, fuzzy msgid "" "Copy the following code to and make the tests " "pass. Use an iterator expression and `collect` the result to construct the " "return value." msgstr "" -"Copiați următorul cod în și faceți ca testele " -"să treacă. Încercați să evitați să alocați un `Vec` pentru rezultatele " -"intermediare:" +"Copiați următorul cod în și faceți ca testele să " +"treacă.. Folosiți o expresie cu literatori și 'colectați' rezultatul pentru a " +"construi valoarea ce urmează a fi întoarsă." #: src/iterators/exercise.md src/iterators/solution.md -#, fuzzy msgid "" -"/// Calculate the differences between elements of `values` offset by " -"`offset`,\n" +"/// Calculate the differences between elements of `values` offset by `offset`,\n" "/// wrapping around from the end of `values` to the beginning.\n" "///\n" "/// Element `n` of the result is `values[(n+offset)%len] - values[n]`.\n" @@ -11441,477 +10656,403 @@ msgstr "" "`offset`,\n" "/// înfășurându-se de la sfârșitul lui `values` la început.\n" "///\n" -"/// Elementul `n` al rezultatului este `values[(n+offset)%len] - " -"values[n]`.\n" +"/// Elementul `n` al rezultatului este `values[(n+offset)%len] - values[n]`.\n" #: src/modules.md -#, fuzzy msgid "[Modules](./modules/modules.md) (3 minutes)" -msgstr "[Module](./module/modules/modules.md) (5 minute)" +msgstr "[Module](./module/modules/modules.md) (3 minute)" #: src/modules.md -#, fuzzy msgid "[Filesystem Hierarchy](./modules/filesystem.md) (5 minutes)" msgstr "[Ierarhia sistemului de fișiere](./modules/filesystem.md) (5 minute)" #: src/modules.md -#, fuzzy msgid "[Visibility](./modules/visibility.md) (5 minutes)" msgstr "[Vizibilitate](./modules/visibility.md) (5 minute)" #: src/modules.md -#, fuzzy msgid "[use, super, self](./modules/paths.md) (10 minutes)" msgstr "[use, super, self](./modules/paths.md) (10 minute)" #: src/modules.md -#, fuzzy -msgid "" -"[Exercise: Modules for a GUI Library](./modules/exercise.md) (15 minutes)" +msgid "[Exercise: Modules for a GUI Library](./modules/exercise.md) (15 minutes)" msgstr "" -"[Exercițiu: Module pentru o bibliotecă GUI](./modules/exercise.md) (15 " -"minute)" +"[Exercițiu: Module pentru o bibliotecă GUI](./modules/exercise.md) (15 minute)" #: src/modules/modules.md -#, fuzzy msgid "We have seen how `impl` blocks let us namespace functions to a type." msgstr "" -"Am văzut cum blocurile `impl` ne permit să atribuim funcții de namespace la " -"un tip." +"Am văzut cum blocurile `impl` ne permit să atribuim funcții de namespace la un " +"tip." #: src/modules/modules.md -#, fuzzy msgid "Similarly, `mod` lets us namespace types and functions:" msgstr "" -"În mod similar, `mod` ne permite să folosim tipuri și funcții de spațiu de " -"nume:" +"În mod similar, `mod` ne permite să folosim tipuri și funcții dependente de " +"context:" #: src/modules/modules.md -#, fuzzy msgid "\"In the foo module\"" msgstr "\"În modulul foo\"" #: src/modules/modules.md -#, fuzzy msgid "\"In the bar module\"" -msgstr "\"În modulul de bar\"" +msgstr "\"În modulul bar\"" #: src/modules/modules.md -#, fuzzy msgid "" -"Packages provide functionality and include a `Cargo.toml` file that " -"describes how to build a bundle of 1+ crates." +"Packages provide functionality and include a `Cargo.toml` file that describes " +"how to build a bundle of 1+ crates." msgstr "" -"Pachetele oferă funcționalitate și includ un fișier `Cargo.toml` care " -"descrie cum se construiește un pachet de 1+ crates." +"Pachetele oferă funcționalitate și includ un fișier `Cargo.toml` care descrie " +"cum se construiește un pachet de 1+ crates." #: src/modules/modules.md -#, fuzzy msgid "" -"Crates are a tree of modules, where a binary crate creates an executable and " -"a library crate compiles to a library." +"Crates are a tree of modules, where a binary crate creates an executable and a " +"library crate compiles to a library." msgstr "" "Crates reprezintă un arbore de module, în care un crate binar creează un " "executabil, iar un crate de bibliotecă compilează o bibliotecă." #: src/modules/modules.md -#, fuzzy msgid "Modules define organization, scope, and are the focus of this section." msgstr "" "Modulele definesc organizarea, domeniul de aplicare și reprezintă punctul " "central al acestei secțiuni." #: src/modules/filesystem.md -#, fuzzy -msgid "" -"Omitting the module content will tell Rust to look for it in another file:" +msgid "Omitting the module content will tell Rust to look for it in another file:" msgstr "" "Omiterea conținutului modulului îi va spune lui Rust să îl caute într-un alt " "fișier:" #: src/modules/filesystem.md -#, fuzzy msgid "" -"This tells rust that the `garden` module content is found at `src/garden." -"rs`. Similarly, a `garden::vegetables` module can be found at `src/garden/" -"vegetables.rs`." +"This tells rust that the `garden` module content is found at `src/garden.rs`. " +"Similarly, a `garden::vegetables` module can be found at `src/garden/vegetables." +"rs`." msgstr "" -"Acest lucru îi spune lui Rust că conținutul modulului `garden` se găsește la " -"`src/garden.rs`. În mod similar, un modul `garden::vegetables` se găsește la " -"`src/garden/vegetables.rs`." +"Astfel se specifică faptul că modulul `garden` se găsește la `src/garden.rs`. " +"În mod similar, un modul `garden::vegetables` se găsește la `src/garden/" +"vegetables.rs`." #: src/modules/filesystem.md -#, fuzzy msgid "The `crate` root is in:" -msgstr "Rădăcina `crate` este în:" +msgstr "Sursa `crate` este în:" #: src/modules/filesystem.md -#, fuzzy msgid "`src/lib.rs` (for a library crate)" msgstr "`src/lib.rs` (pentru o bibliotecă)" #: src/modules/filesystem.md -#, fuzzy msgid "`src/main.rs` (for a binary crate)" -msgstr "`src/main.rs` (pentru un crate binar)" +msgstr "`src/main.rs` (pentru un binar)" #: src/modules/filesystem.md -#, fuzzy msgid "" -"Modules defined in files can be documented, too, using \"inner doc " -"comments\". These document the item that contains them -- in this case, a " -"module." +"Modules defined in files can be documented, too, using \"inner doc comments\". " +"These document the item that contains them -- in this case, a module." msgstr "" "Modulele definite în fișiere pot fi, de asemenea, documentate, folosind " -"\"inner doc comments\". Acestea documentează elementul care le conține - în " -"acest caz, un modul." +"comentarii interne fișierului (\"inner doc comments\"). Acestea documentează " +"elementul care le conține - în acest caz, un modul." #: src/modules/filesystem.md -#, fuzzy msgid "" "//! This module implements the garden, including a highly performant " "germination\n" "//! implementation.\n" msgstr "" -"//! Acest modul implementează grădina, inclusiv o germinație foarte " +"//! Acest modul implementează grădina, inclusiv o implementare foarte " "performantă\n" -"//! foarte performantă.\n" +"//! a germinației.\n" #: src/modules/filesystem.md -#, fuzzy msgid "// Re-export types from this module.\n" msgstr "// Reexportați tipurile din acest modul.\n" #: src/modules/filesystem.md -#, fuzzy msgid "/// Sow the given seed packets.\n" msgstr "/// Semănați pachetele de semințe date.\n" #: src/modules/filesystem.md -#, fuzzy msgid "/// Harvest the produce in the garden that is ready.\n" msgstr "/// Recoltați produsele din grădină care sunt gata.\n" #: src/modules/filesystem.md -#, fuzzy msgid "" "Before Rust 2018, modules needed to be located at `module/mod.rs` instead of " "`module.rs`, and this is still a working alternative for editions after 2018." msgstr "" -"Înainte de Rust 2018, modulele trebuiau să fie localizate la `module/mod.rs` " -"în loc de `module.rs`, iar aceasta este încă o alternativă funcțională " -"pentru edițiile după 2018." +"Înainte de Rust 2018, modulele trebuiau să fie localizate la `module/mod.rs` în " +"loc de `module.rs`, iar aceasta este încă o alternativă funcțională pentru " +"edițiile după 2018." #: src/modules/filesystem.md -#, fuzzy msgid "" -"The main reason to introduce `filename.rs` as alternative to `filename/mod." -"rs` was because many files named `mod.rs` can be hard to distinguish in IDEs." +"The main reason to introduce `filename.rs` as alternative to `filename/mod.rs` " +"was because many files named `mod.rs` can be hard to distinguish in IDEs." msgstr "" "Motivul principal pentru care s-a introdus `filename.rs` ca alternativă la " -"`filename/mod.rs` a fost acela că multe fișiere numite `mod.rs` pot fi greu " -"de distins în IDE-uri." +"`filename/mod.rs` a fost acela că multe fișiere numite `mod.rs` pot fi greu de " +"distins în IDE-uri." #: src/modules/filesystem.md -#, fuzzy msgid "Deeper nesting can use folders, even if the main module is a file:" msgstr "" -"În cazul în care este vorba de o înglobare mai profundă, se pot utiliza " -"dosare, chiar dacă modulul principal este un fișier:" +"În cazul în care este vorba de o înglobare mai profundă, se pot utiliza dosare, " +"chiar dacă modulul principal este un fișier:" #: src/modules/filesystem.md -#, fuzzy msgid "" -"The place rust will look for modules can be changed with a compiler " -"directive:" +"The place rust will look for modules can be changed with a compiler directive:" msgstr "" -"Locul în care rust va căuta modulele poate fi schimbat cu o directivă de " +"Locul în care Rust va căuta modulele poate fi schimbat cu o directivă de " "compilare:" #: src/modules/filesystem.md -#, fuzzy msgid "\"some/path.rs\"" msgstr "\"some/path.rs\"" #: src/modules/filesystem.md -#, fuzzy msgid "" -"This is useful, for example, if you would like to place tests for a module " -"in a file named `some_module_test.rs`, similar to the convention in Go." +"This is useful, for example, if you would like to place tests for a module in a " +"file named `some_module_test.rs`, similar to the convention in Go." msgstr "" "Acest lucru este util, de exemplu, dacă doriți să plasați testele pentru un " "modul într-un fișier numit `some_module_test.rs`, similar convenției din Go." #: src/modules/visibility.md -#, fuzzy msgid "Modules are a privacy boundary:" msgstr "Modulele reprezintă o limită de confidențialitate:" #: src/modules/visibility.md -#, fuzzy msgid "Module items are private by default (hides implementation details)." msgstr "" -"Elementele modulului sunt private în mod implicit (ascunde detaliile de " +"Elementele modulului sunt private în mod implicit (se ascund detaliile de " "implementare)." #: src/modules/visibility.md -#, fuzzy msgid "Parent and sibling items are always visible." msgstr "Elementele părinților și ale fraților sunt întotdeauna vizibile." #: src/modules/visibility.md -#, fuzzy msgid "" -"In other words, if an item is visible in module `foo`, it's visible in all " -"the descendants of `foo`." +"In other words, if an item is visible in module `foo`, it's visible in all the " +"descendants of `foo`." msgstr "" -"Cu alte cuvinte, dacă un element este vizibil în modulul `foo`, el este " -"vizibil în toți descendenții lui `foo`." +"Cu alte cuvinte, dacă un element este vizibil în modulul `foo`, el este vizibil " +"în toți descendenții lui `foo`." #: src/modules/visibility.md -#, fuzzy msgid "\"outer::private\"" msgstr "\"outer::private\"" #: src/modules/visibility.md -#, fuzzy msgid "\"outer::public\"" msgstr "\"outer::public\"" #: src/modules/visibility.md -#, fuzzy msgid "\"outer::inner::private\"" msgstr "\"outer::inner::private\"" #: src/modules/visibility.md -#, fuzzy msgid "\"outer::inner::public\"" msgstr "\"outer::inner::public\"" #: src/modules/visibility.md -#, fuzzy msgid "Use the `pub` keyword to make modules public." msgstr "Utilizați cuvântul cheie `pub` pentru a face modulele publice." #: src/modules/visibility.md -#, fuzzy msgid "" -"Additionally, there are advanced `pub(...)` specifiers to restrict the scope " -"of public visibility." +"Additionally, there are advanced `pub(...)` specifiers to restrict the scope of " +"public visibility." msgstr "" "În plus, există specificatori avansați `pub(...)` pentru a restricționa " "domeniul de aplicare al vizibilității publice." #: src/modules/visibility.md -#, fuzzy msgid "" "See the [Rust Reference](https://doc.rust-lang.org/reference/visibility-and-" "privacy.html#pubin-path-pubcrate-pubsuper-and-pubself)." msgstr "" -"A se vedea [Rust Reference](https://doc.rust-lang.org/reference/visibility-" -"and-privacy.html#pubin-path-pubcrate-pubsuper-and-pubself)." +"A se vedea [Rust Reference](https://doc.rust-lang.org/reference/visibility-and-" +"privacy.html#pubin-path-pubcrate-pubsuper-and-pubself)." #: src/modules/visibility.md -#, fuzzy msgid "Configuring `pub(crate)` visibility is a common pattern." msgstr "Configurarea vizibilității `pub(crate)` este un model comun." #: src/modules/visibility.md -#, fuzzy msgid "Less commonly, you can give visibility to a specific path." msgstr "Mai rar, puteți oferi vizibilitate unei anumite căi de acces." #: src/modules/visibility.md -#, fuzzy msgid "" -"In any case, visibility must be granted to an ancestor module (and all of " -"its descendants)." +"In any case, visibility must be granted to an ancestor module (and all of its " +"descendants)." msgstr "" "În orice caz, vizibilitatea trebuie să fie acordată unui modul strămoș (și " "tuturor descendenților săi)." #: src/modules/paths.md -#, fuzzy msgid "use, super, self" msgstr "`use`, `super`, `self`" #: src/modules/paths.md -#, fuzzy msgid "" -"A module can bring symbols from another module into scope with `use`. You " -"will typically see something like this at the top of each module:" +"A module can bring symbols from another module into scope with `use`. You will " +"typically see something like this at the top of each module:" msgstr "" "Un modul poate aduce simboluri dintr-un alt modul în domeniul de aplicare cu " -"`use`. De obicei, veți vedea ceva de genul acesta în partea de sus a " -"fiecărui modul:" +"`use`. De obicei, veți vedea ceva de genul acesta în partea de sus a fiecărui " +"modul:" #: src/modules/paths.md msgid "Paths" -msgstr "Trasee" +msgstr "Căi" #: src/modules/paths.md -#, fuzzy msgid "Paths are resolved as follows:" msgstr "Căile de acces se rezolvă după cum urmează:" #: src/modules/paths.md -#, fuzzy msgid "As a relative path:" msgstr "Ca o cale relativă:" #: src/modules/paths.md -#, fuzzy msgid "`foo` or `self::foo` refers to `foo` in the current module," msgstr "`foo` sau `self::foo` se referă la `foo` din modulul curent," #: src/modules/paths.md -#, fuzzy msgid "`super::foo` refers to `foo` in the parent module." msgstr "`super::foo` se referă la `foo` din modulul părinte." #: src/modules/paths.md -#, fuzzy msgid "As an absolute path:" msgstr "Ca o cale absolută:" #: src/modules/paths.md -#, fuzzy msgid "`crate::foo` refers to `foo` in the root of the current crate," -msgstr "`crate::foo` se referă la `foo` din rădăcina cratei curente," +msgstr "`crate::foo` se referă la `foo` din rădăcina crate-ului curent," #: src/modules/paths.md -#, fuzzy msgid "`bar::foo` refers to `foo` in the `bar` crate." -msgstr "`bar::foo` se referă la `foo` din cadrul `bar` crate." +msgstr "`bar::foo` se referă la `foo` din cadrul crate-ului `bar`." #: src/modules/paths.md -#, fuzzy msgid "" -"It is common to \"re-export\" symbols at a shorter path. For example, the " -"top-level `lib.rs` in a crate might have" +"It is common to \"re-export\" symbols at a shorter path. For example, the top-" +"level `lib.rs` in a crate might have" msgstr "" -"Se obișnuiește să se \"reexporte\" simboluri pe o cale mai scurtă. De " -"exemplu, la nivelul superior `lib.rs` dintr-o cutie poate avea" +"Se obișnuiește să se \"reexporte\" simboluri pe o cale mai scurtă. De exemplu, " +"la nivelul superior `lib.rs` dintr-o cutie poate conține" #: src/modules/paths.md -#, fuzzy msgid "" "making `DiskStorage` and `NetworkStorage` available to other crates with a " "convenient, short path." msgstr "" "făcând ca `DiskStorage` și `NetworkStorage` să fie disponibile pentru alte " -"crates cu o cale scurtă și convenabilă." +"crate-uri cu o cale scurtă și convenabilă." #: src/modules/paths.md -#, fuzzy msgid "" "For the most part, only items that appear in a module need to be `use`'d. " -"However, a trait must be in scope to call any methods on that trait, even if " -"a type implementing that trait is already in scope. For example, to use the " +"However, a trait must be in scope to call any methods on that trait, even if a " +"type implementing that trait is already in scope. For example, to use the " "`read_to_string` method on a type implementing the `Read` trait, you need to " "`use std::io::Read`." msgstr "" -"În cea mai mare parte, numai elementele care apar într-un modul trebuie să " -"fie \"utilizate\". Cu toate acestea, o trăsătură trebuie să se afle în " -"domeniul de aplicare pentru a apela orice metodă a acelei trăsături, chiar " -"dacă un tip care implementează acea trăsătură se află deja în domeniul de " -"aplicare. De exemplu, pentru a utiliza metoda `read_to_string` pe un tip " -"care implementează trăsătura `Read`, trebuie să `use std::io::Read`." +"În cea mai mare parte, numai elementele care apar într-un modul trebuie să fie " +"\"utilizate\". Cu toate acestea, o trăsătură trebuie să se afle în domeniul de " +"aplicare pentru a apela orice metodă a acelei trăsături, chiar dacă un tip care " +"implementează acea trăsătură se află deja în domeniul de aplicare. De exemplu, " +"pentru a utiliza metoda `read_to_string` pe un tip care implementează trăsătura " +"`Read`, trebuie să `use std::io::Read`." #: src/modules/paths.md -#, fuzzy msgid "" -"The `use` statement can have a wildcard: `use std::io::*`. This is " -"discouraged because it is not clear which items are imported, and those " -"might change over time." +"The `use` statement can have a wildcard: `use std::io::*`. This is discouraged " +"because it is not clear which items are imported, and those might change over " +"time." msgstr "" -"Instrucțiunea `use` poate avea un wildcard: `use std::io::*`. Acest lucru " -"este descurajat deoarece nu este clar ce elemente sunt importate, iar " -"acestea se pot schimba în timp." +"Instrucțiunea `use` poate avea un wildcard: `use std::io::*`. Acest lucru este " +"descurajat deoarece nu este clar ce elemente sunt importate, iar acestea se pot " +"schimba în timp." #: src/modules/exercise.md -#, fuzzy msgid "" -"In this exercise, you will reorganize a small GUI Library implementation. " -"This library defines a `Widget` trait and a few implementations of that " -"trait, as well as a `main` function." +"In this exercise, you will reorganize a small GUI Library implementation. This " +"library defines a `Widget` trait and a few implementations of that trait, as " +"well as a `main` function." msgstr "" -"În acest exercițiu, veți reorganiza o mică implementare a unei biblioteci " -"GUI. Această bibliotecă definește o trăsătură `Widget` și câteva " -"implementări ale acestei trăsături, precum și o funcție `main`." +"În acest exercițiu, veți reorganiza o mică implementare a unei biblioteci GUI. " +"Această bibliotecă definește o trăsătură `Widget` și câteva implementări ale " +"acestei trăsături, precum și o funcție `main`." #: src/modules/exercise.md -#, fuzzy msgid "" "It is typical to put each type or set of closely-related types into its own " "module, so each widget type should get its own module." msgstr "" -"De obicei, fiecare tip sau set de tipuri strâns legate între ele este inclus " -"în propriul modul, astfel încât fiecare tip de widget ar trebui să aibă " -"propriul său modul." +"De obicei, fiecare tip sau set de tipuri strâns legate între ele este inclus în " +"propriul modul, astfel încât fiecare tip de widget ar trebui să aibă propriul " +"său modul." #: src/modules/exercise.md -#, fuzzy msgid "Cargo Setup" -msgstr "Setare" +msgstr "Configurare Cargo" #: src/modules/exercise.md -#, fuzzy msgid "" "The Rust playground only supports one file, so you will need to make a Cargo " "project on your local filesystem:" msgstr "" -"Locul de joacă Rust acceptă doar un singur fișier, așa că va trebui să " -"creați un proiect Cargo în sistemul de fișiere local:" +"Locul de joacă Rust acceptă doar un singur fișier, așa că va trebui să creați " +"un proiect Cargo în sistemul de fișiere local:" #: src/modules/exercise.md -#, fuzzy msgid "" "Edit the resulting `src/main.rs` to add `mod` statements, and add additional " "files in the `src` directory." msgstr "" -"Modificați fișierul `src/main.rs` rezultat pentru a adăuga declarațiile " -"`mod` și adăugați fișiere suplimentare în directorul `src`." +"Modificați fișierul `src/main.rs` rezultat pentru a adăuga declarațiile `mod` " +"și adăugați fișiere suplimentare în directorul `src`." #: src/modules/exercise.md msgid "Source" msgstr "Sursă" #: src/modules/exercise.md -#, fuzzy msgid "Here's the single-module implementation of the GUI library:" msgstr "Iată implementarea unui singur modul al bibliotecii GUI:" #: src/modules/exercise.md src/modules/solution.md -#, fuzzy msgid "/// Natural width of `self`.\n" msgstr "/// Lățimea naturală a lui `self`.\n" #: src/modules/exercise.md src/modules/solution.md -#, fuzzy msgid "/// Draw the widget into a buffer.\n" msgstr "/// Desenați widget-ul într-un buffer.\n" #: src/modules/exercise.md src/modules/solution.md -#, fuzzy msgid "/// Draw the widget on standard output.\n" msgstr "/// Desenează widget-ul pe ieșirea standard.\n" #: src/modules/exercise.md src/modules/solution.md -#, fuzzy msgid "\"{buffer}\"" msgstr "\"{buffer}\"" #: src/modules/exercise.md -#, fuzzy msgid "// Add 4 paddings for borders\n" -msgstr "// Adăugați 4 padding-uri pentru margini\n" +msgstr "// Adăugați 4 spații de umplutură pentru margini\n" #: src/modules/exercise.md -#, fuzzy msgid "" -"// TODO: Change draw_into to return Result<(), std::fmt::Error>. Then use " -"the\n" +"// TODO: Change draw_into to return Result<(), std::fmt::Error>. Then use the\n" " // ?-operator here instead of .unwrap().\n" msgstr "" "// TODO: Modificați draw_into pentru a returna Result<(), std::fmt::Error>. " @@ -11919,143 +11060,112 @@ msgstr "" " // ?-operator aici în loc de .unwrap().\n" #: src/modules/exercise.md src/modules/solution.md -#, fuzzy msgid "\"+-{:-. Then use\n" @@ -12067,120 +11177,100 @@ msgstr "" " // operatorul ?- aici în loc de .unwrap().\n" #: src/modules/solution.md -#, fuzzy msgid "// ---- src/main.rs ----\n" msgstr "// ---- src/main.rs ----\n" #: src/testing.md -#, fuzzy msgid "[Test Modules](./testing/unit-tests.md) (5 minutes)" msgstr "[Module de testare](./testing/unit-tests.md) (5 minute)" #: src/testing.md -#, fuzzy msgid "[Other Types of Tests](./testing/other.md) (5 minutes)" -msgstr "[Alte tipuri de teste](./testing/other.md) (10 minute)" +msgstr "[Alte tipuri de teste](./testing/other.md) (5 minute)" #: src/testing.md -#, fuzzy msgid "[Compiler Lints and Clippy](./testing/lints.md) (3 minutes)" -msgstr "[Compilatorul Lints și Clippy](./testing/lints.md) (5 minute)" +msgstr "[Compiler Lints și Clippy](./testing/lints.md) (3 minute)" #: src/testing.md -#, fuzzy msgid "[Exercise: Luhn Algorithm](./testing/exercise.md) (30 minutes)" -msgstr "[Exercițiu: Algoritmul Luhn](./testing/exercițiu.md) (30 minute)" +msgstr "[Exercițiu: Algoritmul Luhn](./testing/exercise.md) (30 de minute)" #: src/testing/unit-tests.md msgid "Unit Tests" msgstr "Teste unitare" #: src/testing/unit-tests.md -#, fuzzy msgid "Rust and Cargo come with a simple unit test framework:" -msgstr "Rust și Cargo vin cu un cadru simplu de testare a unităților:" +msgstr "Rust și Cargo vin cu un cadru simplu de testare unitară:" #: src/testing/unit-tests.md -#, fuzzy msgid "Unit tests are supported throughout your code." -msgstr "Testele unitare sunt acceptate în tot codul dumneavoastră." +msgstr "Testele unitare sunt acceptate în tot codul." #: src/testing/unit-tests.md -#, fuzzy msgid "Integration tests are supported via the `tests/` directory." msgstr "" "Testele de integrare sunt suportate prin intermediul directorului `tests/`." #: src/testing/unit-tests.md -#, fuzzy msgid "" -"Tests are marked with `#[test]`. Unit tests are often put in a nested " -"`tests` module, using `#[cfg(test)]` to conditionally compile them only when " -"building tests." +"Tests are marked with `#[test]`. Unit tests are often put in a nested `tests` " +"module, using `#[cfg(test)]` to conditionally compile them only when building " +"tests." msgstr "" -"Testele sunt marcate cu `#[test]`. Testele unitare sunt deseori plasate într-" -"un modul `tests` imbricate, folosind `#[cfg(test)]` pentru a le compila " -"condiționat numai atunci când se construiesc testele." +"Testele sunt marcate cu `#[test]`. Testele unitare sunt deseori plasate într-un " +"modul `tests` imbricat, folosind `#[cfg(test)]` pentru a le compila condiționat " +"numai atunci când se construiesc testele." #: src/testing/unit-tests.md -#, fuzzy msgid "\"Hello World\"" -msgstr "Bună lume" +msgstr "\"Bună lume\"" #: src/testing/unit-tests.md -#, fuzzy msgid "This lets you unit test private helpers." -msgstr "Acest lucru vă permite să testați unitar ajutoarele private." +msgstr "Acest lucru vă permite să testați unitar funcțiile ajutătoare private." #: src/testing/unit-tests.md -#, fuzzy msgid "The `#[cfg(test)]` attribute is only active when you run `cargo test`." msgstr "" "Atributul `#[cfg(test)]` este activ numai atunci când executați `cargo test`." #: src/testing/unit-tests.md -#, fuzzy msgid "Run the tests in the playground in order to show their results." -msgstr "" -"Executați testele în locul de joacă pentru a arăta rezultatele acestora." +msgstr "Executați testele în locul de joacă pentru a arăta rezultatele acestora." #: src/testing/other.md msgid "Integration Tests" msgstr "Teste de integrare" #: src/testing/other.md -#, fuzzy msgid "If you want to test your library as a client, use an integration test." msgstr "" "Dacă doriți să vă testați biblioteca ca și client, utilizați un test de " "integrare." #: src/testing/other.md -#, fuzzy msgid "Create a `.rs` file under `tests/`:" msgstr "Creați un fișier `.rs` în `tests/`:" #: src/testing/other.md -#, fuzzy msgid "// tests/my_library.rs\n" msgstr "// tests/my_library.rs\n" #: src/testing/other.md -#, fuzzy msgid "These tests only have access to the public API of your crate." -msgstr "Aceste teste au acces numai la API-ul public al seriei dumneavoastră." +msgstr "Aceste teste au acces numai la API-ul public al crate-ului dumneavoastră." #: src/testing/other.md msgid "Documentation Tests" msgstr "Teste de documentare" #: src/testing/other.md -#, fuzzy msgid "Rust has built-in support for documentation tests:" -msgstr "Rust are un suport încorporat pentru testele de documentare:" +msgstr "Rust are un suport încorporat pentru testele de documentație:" #: src/testing/other.md -#, fuzzy msgid "" "/// Shortens a string to the given length.\n" "///\n" @@ -12190,7 +11280,6 @@ msgid "" "/// assert_eq!(shorten_string(\"Hello World\", 20), \"Hello World\");\n" "/// ```\n" msgstr "" -"```rust\n" "/// Scurtează un șir de caractere la lungimea dată.\n" "///\n" "/// ```\n" @@ -12198,34 +11287,26 @@ msgstr "" "/// assert_eq!(shorten_string(\"Hello World\", 5), \"Hello\");\n" "/// assert_eq!(shorten_string(\"Hello World\", 20), \"Hello World\");\n" "/// ```\n" -"pub fn shorten_string(s: &str, length: usize) -> &str {\n" -" &s[..std::cmp::min(length, s.len())]]\n" -"}\n" -"```" #: src/testing/other.md -#, fuzzy msgid "Code blocks in `///` comments are automatically seen as Rust code." msgstr "" -"Blocurile de cod din comentariile `///` sunt considerate automat ca fiind " -"cod Rust." +"Blocurile de cod din comentariile `///` sunt considerate automat ca fiind cod " +"Rust." #: src/testing/other.md -#, fuzzy msgid "The code will be compiled and executed as part of `cargo test`." msgstr "Codul va fi compilat și executat ca parte din `cargo test`." #: src/testing/other.md -#, fuzzy msgid "" -"Adding `#` in the code will hide it from the docs, but will still compile/" -"run it." +"Adding `#` in the code will hide it from the docs, but will still compile/run " +"it." msgstr "" "Adăugarea lui `# ` în cod îl va ascunde din documentație, dar îl va compila/" "executa în continuare." #: src/testing/other.md -#, fuzzy msgid "" "Test the above code on the [Rust Playground](https://play.rust-lang.org/?" "version=stable&mode=debug&edition=2021&gist=3ce2ad13ea1302f6572cb15cd96becf0)." @@ -12234,50 +11315,44 @@ msgstr "" "version=stable&mode=debug&edition=2021&gist=3ce2ad13ea1302f6572cb15cd96becf0)." #: src/testing/lints.md -#, fuzzy msgid "" -"The Rust compiler produces fantastic error messages, as well as helpful " -"built-in lints. [Clippy](https://doc.rust-lang.org/clippy/) provides even " -"more lints, organized into groups that can be enabled per-project." +"The Rust compiler produces fantastic error messages, as well as helpful built-" +"in lints. [Clippy](https://doc.rust-lang.org/clippy/) provides even more lints, " +"organized into groups that can be enabled per-project." msgstr "" -"Compilatorul Rust produce mesaje de eroare fantastice, precum și indicații " +"Compilatorul Rust produce mesaje de eroare descriptive, precum și indicații " "încorporate utile. [Clippy](https://doc.rust-lang.org/clippy/) oferă și mai " "multe indicii, organizate în grupuri care pot fi activate pentru fiecare " "proiect în parte." #: src/testing/lints.md -#, fuzzy msgid "\"X probably fits in a u16, right? {}\"" msgstr "\"X probabil că încape într-un u16, nu? {}\"" #: src/testing/lints.md -#, fuzzy msgid "" -"Run the code sample and examine the error message. There are also lints " -"visible here, but those will not be shown once the code compiles. Switch to " -"the Playground site to show those lints." +"Run the code sample and examine the error message. There are also lints visible " +"here, but those will not be shown once the code compiles. Switch to the " +"Playground site to show those lints." msgstr "" "Rulați exemplul de cod și examinați mesajul de eroare. Aici sunt vizibile și " -"linte, dar acestea nu vor fi afișate odată ce codul se compilează. Treceți " -"la site-ul Playground pentru a afișa aceste linte." +"indicațiile, dar acestea nu vor fi afișate odată ce codul se compilează. " +"Treceți la site-ul Playground pentru a afișa aceste linte." #: src/testing/lints.md -#, fuzzy msgid "" -"After resolving the lints, run `clippy` on the playground site to show " -"clippy warnings. Clippy has extensive documentation of its lints, and adds " -"new lints (including default-deny lints) all the time." +"After resolving the lints, run `clippy` on the playground site to show clippy " +"warnings. Clippy has extensive documentation of its lints, and adds new lints " +"(including default-deny lints) all the time." msgstr "" -"După ce ați rezolvat problemele, rulați `clippy` pe site-ul locului de joacă " +"După ce ați rezolvat problemele, rulați `clippy` pe codul din zona de test " "pentru a afișa avertismentele clippy. Clippy are o documentație extinsă a " -"lints-urilor sale și adaugă noi lints (inclusiv lints default-deny) tot " -"timpul." +"indicațiilor sale și adaugă unele noi tot timpul." #: src/testing/lints.md -#, fuzzy msgid "" -"Note that errors or warnings with `help: ...` can be fixed with `cargo fix` " -"or via your editor." +"Note that errors or warnings with `help: ...` can be fixed with `cargo fix` or " +"via your editor." msgstr "" "Rețineți că erorile sau avertismentele cu `help: ...` pot fi corectate cu " "`cargo fix` sau prin intermediul editorului dumneavoastră." @@ -12288,38 +11363,35 @@ msgstr "Algoritmul Luhn" #: src/testing/exercise.md msgid "" -"The [Luhn algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm) is used " -"to validate credit card numbers. The algorithm takes a string as input and " -"does the following to validate the credit card number:" +"The [Luhn algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm) is used to " +"validate credit card numbers. The algorithm takes a string as input and does " +"the following to validate the credit card number:" msgstr "" -"[Algoritmul Luhn](https://en.wikipedia.org/wiki/Luhn_algorithm) este " -"utilizat pentru a valida numerele cardurilor de credit. Algoritmul primește " -"un șir de caractere ca intrare și face următoarele operații pentru a valida " -"numărul cardului de credit:" +"[Algoritmul Luhn](https://en.wikipedia.org/wiki/Luhn_algorithm) este utilizat " +"pentru a valida numerele cardurilor de credit. Algoritmul primește un șir de " +"caractere ca intrare și face următoarele operații pentru a valida numărul " +"cardului de credit:" #: src/testing/exercise.md -#, fuzzy -msgid "Ignore all spaces. Reject number with fewer than two digits." -msgstr "Ignoră toate spațiile. Respinge numărul cu mai puțin de două cifre." +msgid "Ignore all spaces. Reject numbers with fewer than two digits." +msgstr "Ignoră toate spațiile. Respinge numerele cu mai puțin de două cifre." #: src/testing/exercise.md -#, fuzzy msgid "" "Moving from **right to left**, double every second digit: for the number " "`1234`, we double `3` and `1`. For the number `98765`, we double `6` and `8`." msgstr "" -"Mergând de la **dreapta la stânga**, se dublează fiecare a doua cifră: " -"pentru numărul `1234`, dublăm `3` și `1`. Pentru numărul `98765`, se " -"dublează `6` și `8`." +"Mergând de la **dreapta la stânga**, se dublează fiecare a doua cifră: pentru " +"numărul `1234`, dublăm `3` și `1`. Pentru numărul `98765`, se dublează `6` și " +"`8`." #: src/testing/exercise.md msgid "" "After doubling a digit, sum the digits if the result is greater than 9. So " "doubling `7` becomes `14` which becomes `1 + 4 = 5`." msgstr "" -"După ce o cifră a fost dublată, se adună cifrele dacă rezultatul este mai " -"mare de 9. Astfel, când se dublează `7` se obține `14` care devine `1 + 4 = " -"5`." +"După ce o cifră a fost dublată, se adună cifrele dacă rezultatul este mai mare " +"de 9. Astfel, când se dublează `7` se obține `14` care devine `1 + 4 = 5`." #: src/testing/exercise.md msgid "Sum all the undoubled and doubled digits." @@ -12330,10 +11402,9 @@ msgid "The credit card number is valid if the sum ends with `0`." msgstr "Numărul cardului de credit este valabil dacă suma se termină cu `0`." #: src/testing/exercise.md -#, fuzzy msgid "" -"The provided code provides a buggy implementation of the luhn algorithm, " -"along with two basic unit tests that confirm that most the algorithm is " +"The provided code provides a buggy implementation of the luhn algorithm, along " +"with two basic unit tests that confirm that most of the algorithm is " "implemented correctly." msgstr "" "Codul furnizat oferă o implementare eronată a algoritmului luhn, împreună cu " @@ -12341,246 +11412,210 @@ msgstr "" "implementat corect." #: src/testing/exercise.md -#, fuzzy msgid "" -"Copy the code below to and write additional " -"tests to uncover bugs in the provided implementation, fixing any bugs you " -"find." +"Copy the code below to and write additional tests " +"to uncover bugs in the provided implementation, fixing any bugs you find." msgstr "" "Copiați codul de mai jos în și completați " -"funcțiile și metodele care lipsesc:" +"funcțiile și metodele care lipsesc, corectând și erorile întâlnite." #: src/testing/exercise.md src/testing/solution.md -#, fuzzy msgid "\"4263 9826 4026 9299\"" msgstr "\"4263 9826 4026 9299\"" #: src/testing/exercise.md src/testing/solution.md -#, fuzzy msgid "\"4539 3195 0343 6467\"" msgstr "\"4539 3195 0343 6467\"" #: src/testing/exercise.md src/testing/solution.md -#, fuzzy msgid "\"7992 7398 713\"" msgstr "\"7992 7398 713\"" #: src/testing/exercise.md src/testing/solution.md -#, fuzzy msgid "\"4223 9826 4026 9299\"" msgstr "\"4223 9826 4026 9299\"" #: src/testing/exercise.md src/testing/solution.md -#, fuzzy msgid "\"4539 3195 0343 6476\"" msgstr "\"4539 3195 0343 6476\"" #: src/testing/exercise.md src/testing/solution.md -#, fuzzy msgid "\"8273 1232 7352 0569\"" msgstr "\"8273 1232 7352 0569\"" #: src/testing/solution.md -#, fuzzy msgid "// This is the buggy version that appears in the problem.\n" msgstr "// Aceasta este versiunea cu erori care apare în problemă.\n" #: src/testing/solution.md -#, fuzzy msgid "// This is the solution and passes all of the tests below.\n" msgstr "// Aceasta este soluția și trece toate testele de mai jos.\n" #: src/testing/solution.md -#, fuzzy msgid "\"1234 5678 1234 5670\"" msgstr "\"1234 5678 1234 5670\"" #: src/testing/solution.md -#, fuzzy msgid "\"Is {cc_number} a valid credit card number? {}\"" msgstr "\"Este {cc_number} un număr de card de credit valid? {}\"" #: src/testing/solution.md -#, fuzzy msgid "\"yes\"" -msgstr "Da (inițializat la compilare)" +msgstr "\"da\"" #: src/testing/solution.md -#, fuzzy msgid "\"no\"" msgstr "\"nu\"" #: src/testing/solution.md -#, fuzzy msgid "\"foo 0 0\"" -msgstr "\"foo 0 0 0\"" +msgstr "\"foo 0 0\"" #: src/testing/solution.md -#, fuzzy msgid "\" \"" msgstr "\" \"" #: src/testing/solution.md -#, fuzzy msgid "\" \"" msgstr "\" \"" #: src/testing/solution.md -#, fuzzy msgid "\" \"" msgstr "\" \"" #: src/testing/solution.md -#, fuzzy msgid "\"0\"" -msgstr "'0'" +msgstr "\"0\"" #: src/testing/solution.md -#, fuzzy msgid "\" 0 0 \"" msgstr "\" 0 0 \"" #: src/welcome-day-4-afternoon.md -#, fuzzy -msgid "[Error Handling](./error-handling.md) (55 minutes)" -msgstr "[Gestionarea erorilor](../error-handling.md) (45 minute)" +msgid "[Error Handling](./error-handling.md) (1 hour)" +msgstr "[Gestionarea erorilor](../error-handling.md) (1 oră)" #: src/welcome-day-4-afternoon.md -#, fuzzy msgid "[Unsafe Rust](./unsafe-rust.md) (1 hour and 5 minutes)" msgstr "[Unsafe Rust](../unsafe-rust.md) (1 oră și 5 minute)" +#: src/welcome-day-4-afternoon.md +msgid "" +"Including 10 minute breaks, this session should take about 2 hours and 15 " +"minutes" +msgstr "" +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " +"aproximativ 2 ore și 5 minute" + #: src/error-handling.md -#, fuzzy msgid "[Panics](./error-handling/panics.md) (3 minutes)" msgstr "[Panici](./error-handling/panics.md) (3 minute)" #: src/error-handling.md -#, fuzzy +msgid "[Result](./error-handling/result.md) (5 minutes)" +msgstr "[Rezultat](./error-handling/result.md) (5 minute)" + +#: src/error-handling.md msgid "[Try Operator](./error-handling/try.md) (5 minutes)" -msgstr "[Operator de încercare](./error-handling/try.md) (5 minute)" +msgstr "[Operatorul 'try'](./error-handling/try.md) (5 minute)" #: src/error-handling.md -#, fuzzy msgid "[Try Conversions](./error-handling/try-conversions.md) (5 minutes)" -msgstr "" -"[Încercați conversiile](./error-handling/try-conversions.md) (5 minute)" +msgstr "[Conversii 'try'](./error-handling/try-conversions.md) (5 minute)" #: src/error-handling.md -#, fuzzy msgid "[Error Trait](./error-handling/error.md) (5 minutes)" -msgstr "[Error Trait](./error-handling/error.md) (5 minute)" +msgstr "[Trăsături 'Error'](./error-handling/error.md) (5 minute)" #: src/error-handling.md -#, fuzzy msgid "" "[thiserror and anyhow](./error-handling/thiserror-and-anyhow.md) (5 minutes)" msgstr "" -"[thiserror and anyhow](./error-handling/thiserror-and-anyhow.md) (5 minute)" +"[thiserror și anyhow](./error-handling/thiserror-and-anyhow.md) (5 minute)" #: src/error-handling.md -#, fuzzy msgid "" "[Exercise: Rewriting with Result](./error-handling/exercise.md) (30 minutes)" msgstr "" -"[Exercițiu: Rescrierea cu rezultat](./error-handling/exercise.md) (20 minute)" +"[Exercițiu: Rescrierea cu Result](./error-handling/exercise.md) (30 de minute)" #: src/error-handling/panics.md -#, fuzzy msgid "Rust handles fatal errors with a \"panic\"." msgstr "Rust tratează erorile fatale cu un \"panic\"." #: src/error-handling/panics.md -#, fuzzy msgid "Rust will trigger a panic if a fatal error happens at runtime:" msgstr "" -"Rust va declanșa o panică în cazul în care se produce o eroare fatală în " -"timpul execuției:" +"Rust va declanșa o panică în cazul în care se produce o eroare fatală în timpul " +"execuției:" #: src/error-handling/panics.md -#, fuzzy msgid "\"v[100]: {}\"" msgstr "\"v[100]: {}\"" #: src/error-handling/panics.md -#, fuzzy msgid "Panics are for unrecoverable and unexpected errors." msgstr "Panica este pentru erori irecuperabile și neașteptate." #: src/error-handling/panics.md -#, fuzzy msgid "Panics are symptoms of bugs in the program." msgstr "Panicile sunt simptome ale unor erori în program." #: src/error-handling/panics.md -#, fuzzy msgid "Runtime failures like failed bounds checks can panic" msgstr "" -"Eșecurile în timpul execuției, cum ar fi verificările eșuate ale limitelor, " -"pot provoca panică" +"Eșecurile în timpul execuției, cum ar fi verificările eșuate ale limitelor, pot " +"provoca panică" #: src/error-handling/panics.md -#, fuzzy msgid "Assertions (such as `assert!`) panic on failure" msgstr "Afirmațiile (cum ar fi `assert!`) intră în panică în caz de eșec" #: src/error-handling/panics.md -#, fuzzy msgid "Purpose-specific panics can use the `panic!` macro." msgstr "Panicile cu scop specific pot utiliza macroul `panic!`." #: src/error-handling/panics.md -#, fuzzy msgid "" -"A panic will \"unwind\" the stack, dropping values just as if the functions " -"had returned." +"A panic will \"unwind\" the stack, dropping values just as if the functions had " +"returned." msgstr "" "O panică va \"derula\" stiva, eliminând valorile ca și cum funcțiile s-ar fi " "întors." #: src/error-handling/panics.md -#, fuzzy -msgid "" -"Use non-panicking APIs (such as `Vec::get`) if crashing is not acceptable." +msgid "Use non-panicking APIs (such as `Vec::get`) if crashing is not acceptable." msgstr "" "Folosiți API-uri care nu se blochează (cum ar fi `Vec::get`) dacă nu este " "acceptabilă blocarea." #: src/error-handling/panics.md -#, fuzzy msgid "" -"By default, a panic will cause the stack to unwind. The unwinding can be " -"caught:" +"By default, a panic will cause the stack to unwind. The unwinding can be caught:" msgstr "" -"În mod implicit, o panică va determina derularea stivei. Desfășurarea poate " -"fi prinsă:" +"În mod implicit, o panică va determina derularea stivei. Derularea poate fi " +"prinsă:" #: src/error-handling/panics.md -#, fuzzy msgid "\"No problem here!\"" msgstr "\"Nici o problemă aici!\"" #: src/error-handling/panics.md -#, fuzzy msgid "\"{result:?}\"" -msgstr "\"result: {}\"" +msgstr "\"{result:?}\"" #: src/error-handling/panics.md -#, fuzzy msgid "\"oh no!\"" -msgstr "\"Oh, nu!\"" +msgstr "\"oh nu!\"" #: src/error-handling/panics.md -#, fuzzy msgid "" -"Catching is unusual; do not attempt to implement exceptions with " -"`catch_unwind`!" +"Catching is unusual; do not attempt to implement exceptions with `catch_unwind`!" msgstr "" "Capturarea este neobișnuită; nu încercați să implementați excepții cu " "`catch_unwind`!" #: src/error-handling/panics.md -#, fuzzy msgid "" "This can be useful in servers which should keep running even if a single " "request crashes." @@ -12589,86 +11624,174 @@ msgstr "" "funcționeze chiar dacă o singură cerere se blochează." #: src/error-handling/panics.md -#, fuzzy msgid "This does not work if `panic = 'abort'` is set in your `Cargo.toml`." msgstr "" -"Acest lucru nu funcționează dacă `panic = 'abort'` este setat în `Cargo." -"toml`." +"Acest lucru nu funcționează dacă `panic = 'abort'` este setat în `Cargo.toml`." + +#: src/error-handling/result.md +msgid "" +"Our primary mechanism for error handling in Rust is the [`Result`](https://doc." +"rust-lang.org/stable/std/result/enum.Result.html) enum, which we briefly saw " +"when discussing standard library types." +msgstr "" +"Mecanismul nostru principal pentru gestionarea erorilor în Rust este enum-ul " +"[`Result`](https://doc.rust-lang.org/stable/std/result/enum.Result.html), pe " +"care l-am văzut pe scurt atunci când am discutat tipurile din biblioteca " +"standard." + +#: src/error-handling/result.md +msgid "" +"`Result` has two variants: `Ok` which contains the success value, and `Err` " +"which contains an error value of some kind." +msgstr "" +"`Result` are două variante: `Ok`, care conține valoarea de succes, și `Err`, " +"care conține o valoare de eroare de orice fel." + +#: src/error-handling/result.md +msgid "" +"Whether or not a function can produce an error is encoded in the function's " +"type signature by having the function return a `Result` value." +msgstr "" +"Capacitatea unei funcții de a produce sau nu o eroare este codificată în " +"semnătura de tip a funcției prin returnarea de către funcție a unei valori " +"`Result`." + +#: src/error-handling/result.md +msgid "" +"Like with `Option`, there is no way to forget to handle an error: You cannot " +"access either the success value or the error value without first pattern " +"matching on the `Result` to check which variant you have. Methods like `unwrap` " +"make it easier to write quick-and-dirty code that doesn't do robust error " +"handling, but means that you can always see in your source code where proper " +"error handling is being skipped." +msgstr "" +"Ca și în cazul `Option`, nu există nicio modalitate de a uita să gestionați o " +"eroare: nu puteți accesa nici valoarea de succes, nici valoarea de eroare fără " +"a efectua mai întâi o potrivire de model pe `Result` pentru a verifica ce " +"variantă aveți. Metode precum `unwrap` fac mai ușoară și rapidă scrierea de cod " +"care nu gestionează erorile în mod robust, dar înseamnă că puteți vedea " +"întotdeauna în codul sursă unde este omisă gestionarea corectă a erorilor." + +#: src/error-handling/result.md +msgid "" +"It may be helpful to compare error handling in Rust to error handling " +"conventions that students may be familiar with from other programming languages." +msgstr "" +"Poate fi utilă compararea gestionării erorilor în Rust cu convențiile de " +"gestionare a erorilor cu care elevii pot fi familiarizați din alte limbaje de " +"programare." + +#: src/error-handling/result.md +msgid "Many languages use exceptions, e.g. C++, Java, Python." +msgstr "Multe limbaje folosesc excepții, de exemplu C++, Java, Python." + +#: src/error-handling/result.md +msgid "" +"In most languages with exceptions, whether or not a function can throw an " +"exception is not visible as part of its type signature. This generally means " +"that you can't tell when calling a function if it may throw an exception or not." +msgstr "" +"În majoritatea limbajelor cu excepții, capacitatea unei funcții de arunca sau " +"nu o excepții nu este vizibilă ca parte a semnăturii sale de tip. Acest lucru " +"înseamnă, în general, că nu vă puteți da seama atunci când apelați o funcție " +"dacă aceasta poate arunca o excepție sau nu." + +#: src/error-handling/result.md +msgid "" +"Exceptions generally unwind the call stack, propagating upward until a `try` " +"block is reached. An error originating deep in the call stack may impact an " +"unrelated function further up." +msgstr "" +"În general, excepțiile derulează stiva de apeluri, propagându-se în sus până " +"când se ajunge la un bloc `try`. O eroare care își are originea adânc în stiva " +"de apeluri poate afecta o funcție care nu are legătură cu aceasta, aflată mai " +"sus." + +#: src/error-handling/result.md +msgid "Error Numbers" +msgstr "Numere de eroare" + +#: src/error-handling/result.md +msgid "" +"Some languages have functions return an error number (or some other error " +"value) separately from the successful return value of the function. Examples " +"include C and Go." +msgstr "" +"În unele limbaje, funcțiile returnează un număr de eroare (sau o altă valoare a " +"erorii) separat de valoarea returnată cu succes a funcției. Exemplele includ C " +"și Go." + +#: src/error-handling/result.md +msgid "" +"Depending on the language it may be possible to forget to check the error " +"value, in which case you may be accessing an uninitialized or otherwise invalid " +"success value." +msgstr "" +"În funcție de limbaj, este posibil să uitați să verificați valoarea de eroare, " +"caz în care este posibil să accesați o valoare de succes neinițializată sau " +"invalidă." #: src/error-handling/try.md -#, fuzzy msgid "" -"Runtime errors like connection-refused or file-not-found are handled with " -"the `Result` type, but matching this type on every call can be cumbersome. " -"The try-operator `?` is used to return errors to the caller. It lets you " -"turn the common" +"Runtime errors like connection-refused or file-not-found are handled with the " +"`Result` type, but matching this type on every call can be cumbersome. The try-" +"operator `?` is used to return errors to the caller. It lets you turn the common" msgstr "" -"Erorile în timpul execuției, cum ar fi connection-refused sau file-not-" -"found, sunt tratate cu tipul `Result`, dar potrivirea acestui tip la fiecare " -"apel poate fi greoaie. Operatorul try `?` este utilizat pentru a returna " -"erorile către apelant. Acesta vă permite să transformați opțiunea comună" +"Erorile în timpul execuției, cum ar fi connection-refused sau file-not-found, " +"sunt tratate cu tipul `Result`, dar potrivirea acestui tip la fiecare apel " +"poate fi greoaie. Operatorul try `?` este utilizat pentru a returna erorile " +"către apelant. Acesta vă permite să transformați opțiunea comună" #: src/error-handling/try.md -#, fuzzy msgid "into the much simpler" -msgstr "în mult mai simplu" +msgstr "în ceva mult mai simplu" #: src/error-handling/try.md -#, fuzzy msgid "We can use this to simplify our error handling code:" -msgstr "" -"Putem folosi acest lucru pentru a simplifica codul de tratare a erorilor:" +msgstr "Putem folosi acest lucru pentru a simplifica codul de tratare a erorilor:" #: src/error-handling/try.md -#, fuzzy msgid "//fs::write(\"config.dat\", \"alice\").unwrap();\n" msgstr "//fs::write(\"config.dat\", \"alice\").unwrap();\n" #: src/error-handling/try.md src/error-handling/try-conversions.md #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "\"config.dat\"" msgstr "\"config.dat\"" #: src/error-handling/try.md src/error-handling/try-conversions.md -#, fuzzy msgid "\"username or error: {username:?}\"" msgstr "\"nume de utilizator sau eroare: {username:?}\"" #: src/error-handling/try.md -#, fuzzy msgid "Simplify the `read_username` function to use `?`." -msgstr "Simplificarea funcției `read_username` pentru a folosi `?`." +msgstr "Simplificați funcția `read_username` pentru a folosi `?`." #: src/error-handling/try.md -#, fuzzy msgid "The `username` variable can be either `Ok(string)` or `Err(error)`." msgstr "Variabila `username` poate fi fie `Ok(string)`, fie `Err(error)`." #: src/error-handling/try.md -#, fuzzy msgid "" "Use the `fs::write` call to test out the different scenarios: no file, empty " "file, file with username." msgstr "" -"Utilizați apelul `fs::write` pentru a testa diferite scenarii: niciun " -"fișier, fișier gol, fișier cu nume de utilizator." +"Utilizați apelul `fs::write` pentru a testa diferite scenarii: niciun fișier, " +"fișier gol, fișier cu nume de utilizator." #: src/error-handling/try.md -#, fuzzy msgid "" "Note that `main` can return a `Result<(), E>` as long as it implements `std::" -"process::Termination`. In practice, this means that `E` implements `Debug`. " -"The executable will print the `Err` variant and return a nonzero exit status " -"on error." +"process::Termination`. In practice, this means that `E` implements `Debug`. The " +"executable will print the `Err` variant and return a nonzero exit status on " +"error." msgstr "" "Rețineți că `main` poate returna un `Result<(), E>` atâta timp cât " -"implementează `std::process:Termination`. În practică, acest lucru înseamnă " -"că `E` implementează `Debug`. Executabilul va imprima varianta `Err` și va " -"returna o stare de ieșire diferită de zero în caz de eroare." +"implementează `std::process:Termination`. În practică, acest lucru înseamnă că " +"`E` implementează `Debug`. Executabilul va imprima varianta `Err` și va returna " +"o stare de ieșire diferită de zero în caz de eroare." #: src/error-handling/try-conversions.md -#, fuzzy msgid "" "The effective expansion of `?` is a little more complicated than previously " "indicated:" @@ -12677,53 +11800,46 @@ msgstr "" "anterior:" #: src/error-handling/try-conversions.md -#, fuzzy msgid "works the same as" msgstr "funcționează la fel ca" #: src/error-handling/try-conversions.md -#, fuzzy msgid "" "The `From::from` call here means we attempt to convert the error type to the " "type returned by the function. This makes it easy to encapsulate errors into " "higher-level errors." msgstr "" -"Apelul `From::from` de aici înseamnă că încercăm să convertim tipul de " -"eroare în tipul returnat de funcție." +"Apelul `From::from` de aici înseamnă că încercăm să convertim tipul de eroare " +"în tipul returnat de funcție." #: src/error-handling/try-conversions.md -#, fuzzy msgid "\"IO error: {e}\"" msgstr "\"Eroare IO: {e}\"" #: src/error-handling/try-conversions.md -#, fuzzy msgid "\"Found no username in {path}\"" msgstr "\"Nu am găsit niciun nume de utilizator în {path}\"" #: src/error-handling/try-conversions.md -#, fuzzy msgid "//std::fs::write(\"config.dat\", \"\").unwrap();\n" msgstr "//fs::write(\"config.dat\", \"\").unwrap();\n" #: src/error-handling/try-conversions.md -#, fuzzy msgid "" "The `?` operator must return a value compatible with the return type of the " -"function. For `Result`, it means that the error types have to be compatible. " -"A function that returns `Result` can only use `?` on a value " -"of type `Result` if `ErrorOuter` and `ErrorInner` are the " -"same type or if `ErrorOuter` implements `From`." -msgstr "" -"Operatorul `?` trebuie să returneze o valoare compatibilă cu tipul de retur " -"al funcției. Pentru `Result`, aceasta înseamnă că tipurile de eroare trebuie " -"să fie compatibile. O funcție care returnează `Result` poate " -"folosi `?` pentru o valoare de tip `Result` numai dacă " -"`ErrorOuter` și `ErrorInner` sunt de același tip sau dacă `ErrorOuter` " -"implementează `From`." +"function. For `Result`, it means that the error types have to be compatible. A " +"function that returns `Result` can only use `?` on a value of " +"type `Result` if `ErrorOuter` and `ErrorInner` are the same type " +"or if `ErrorOuter` implements `From`." +msgstr "" +"Operatorul `?` trebuie să returneze o valoare compatibilă cu tipul de retur al " +"funcției. Pentru `Result`, aceasta înseamnă că tipurile de eroare trebuie să " +"fie compatibile. O funcție care returnează `Result` poate folosi " +"`?` pentru o valoare de tip `Result` numai dacă `ErrorOuter` și " +"`ErrorInner` sunt de același tip sau dacă `ErrorOuter` implementează " +"`From`." #: src/error-handling/try-conversions.md -#, fuzzy msgid "" "A common alternative to a `From` implementation is `Result::map_err`, " "especially when the conversion only happens in one place." @@ -12732,86 +11848,78 @@ msgstr "" "special atunci când conversia are loc într-un singur loc." #: src/error-handling/try-conversions.md -#, fuzzy msgid "" "There is no compatibility requirement for `Option`. A function returning " -"`Option` can use the `?` operator on `Option` for arbitrary `T` and " -"`U` types." +"`Option` can use the `?` operator on `Option` for arbitrary `T` and `U` " +"types." msgstr "" "Nu există nicio cerință de compatibilitate pentru `Option`. O funcție care " "returnează `Option` poate utiliza operatorul `?` pe `Option` pentru " "tipuri arbitrare `T` și `U`." #: src/error-handling/try-conversions.md -#, fuzzy msgid "" "A function that returns `Result` cannot use `?` on `Option` and vice versa. " "However, `Option::ok_or` converts `Option` to `Result` whereas `Result::ok` " "turns `Result` into `Option`." msgstr "" "O funcție care returnează `Result` nu poate utiliza `?` pentru `Option` și " -"invers. Cu toate acestea, `Option::ok_or` transformă `Option` în `Result`, " -"în timp ce `Result::ok` transformă `Result` în `Option`." +"invers. Cu toate acestea, `Option::ok_or` transformă `Option` în `Result`, în " +"timp ce `Result::ok` transformă `Result` în `Option`." #: src/error-handling/error.md msgid "Dynamic Error Types" msgstr "Tipuri de erori dinamice" #: src/error-handling/error.md -#, fuzzy msgid "" -"Sometimes we want to allow any type of error to be returned without writing " -"our own enum covering all the different possibilities. The `std::error::" -"Error` trait makes it easy to create a trait object that can contain any " -"error." +"Sometimes we want to allow any type of error to be returned without writing our " +"own enum covering all the different possibilities. The `std::error::Error` " +"trait makes it easy to create a trait object that can contain any error." msgstr "" "Uneori dorim să permitem returnarea oricărui tip de eroare fără a scrie " "propriul nostru enum care să acopere toate posibilitățile diferite. `std::" "error::Error` facilitează acest lucru." #: src/error-handling/error.md -#, fuzzy msgid "\"count.dat\"" msgstr "\"count.dat\"" #: src/error-handling/error.md -#, fuzzy msgid "\"1i3\"" msgstr "\"1i3\"" #: src/error-handling/error.md -#, fuzzy msgid "\"Count: {count}\"" -msgstr "\"Conte: {count}\"" +msgstr "\"Numărătoarea: {count}\"" #: src/error-handling/error.md -#, fuzzy msgid "\"Error: {err}\"" msgstr "\"Eroare: {err}\"" #: src/error-handling/error.md #, fuzzy msgid "" -"The `read_count` function can return `std::io::Error` (from file operations) " -"or `std::num::ParseIntError` (from `String::parse`)." +"The `read_count` function can return `std::io::Error` (from file operations) or " +"`std::num::ParseIntError` (from `String::parse`)." msgstr "" -"Funcția `read_count` poate returna `std::io::Error` (din operațiile cu " -"fișiere) sau `std::num::ParseIntError` (din `String::parse`)." +"Funcția `read_count` poate returna `std::io::Error` (din operațiile cu fișiere) " +"sau `std::num::ParseIntError` (din `String::parse`)." #: src/error-handling/error.md #, fuzzy msgid "" "Boxing errors saves on code, but gives up the ability to cleanly handle " -"different error cases differently in the program. As such it's generally not " -"a good idea to use `Box` in the public API of a library, but it " -"can be a good option in a program where you just want to display the error " -"message somewhere." +"different error cases differently in the program. As such it's generally not a " +"good idea to use `Box` in the public API of a library, but it can be " +"a good option in a program where you just want to display the error message " +"somewhere." msgstr "" "Acest lucru economisește cod, dar renunță la capacitatea de a trata în mod " -"curat diferite cazuri de eroare în mod diferit în program. Ca atare, în " -"general nu este o idee bună să folosiți `Box` în API-ul public al " -"unei biblioteci, dar poate fi o opțiune bună într-un program în care doriți " -"doar să afișați mesajul de eroare undeva." +"curat diferite cazuri de eroare în mod diferit în program. Ca atare, în general " +"nu este o idee bună să folosiți `Box` în API-ul public al unei " +"biblioteci, dar poate fi o opțiune bună într-un program în care doriți doar să " +"afișați mesajul de eroare undeva." #: src/error-handling/error.md #, fuzzy @@ -12822,20 +11930,19 @@ msgid "" "compatible with `no_std` in [nightly](https://github.com/rust-lang/rust/" "issues/103765) only." msgstr "" -"Asigurați-vă că implementați trăsătura `std::error::Error` atunci când " -"definiți un tip de eroare personalizat, astfel încât acesta să poată fi " -"încadrat. Dar dacă aveți nevoie să suportați atributul `no_std`, rețineți că " -"trăsătura `std::error::Error` este în prezent compatibilă cu `no_std` doar " -"în [nightly](https://github.com/rust-lang/rust/issues/103765)." +"Asigurați-vă că implementați trăsătura `std::error::Error` atunci când definiți " +"un tip de eroare personalizat, astfel încât acesta să poată fi încadrat. Dar " +"dacă aveți nevoie să suportați atributul `no_std`, rețineți că trăsătura `std::" +"error::Error` este în prezent compatibilă cu `no_std` doar în [nightly](https://" +"github.com/rust-lang/rust/issues/103765)." #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "" "The [`thiserror`](https://docs.rs/thiserror/) and [`anyhow`](https://docs.rs/" "anyhow/) crates are widely used to simplify error handling." msgstr "" -"Crăiasa [thiserror](https://docs.rs/thiserror/) este o modalitate populară " -"de a crea o enumerație a erorilor, așa cum am făcut pe pagina anterioară:" +"Crate-ul [thiserror](https://docs.rs/thiserror/) este o modalitate populară de " +"a crea o enumerație a erorilor, așa cum am făcut pe pagina anterioară." #: src/error-handling/thiserror-and-anyhow.md #, fuzzy @@ -12856,17 +11963,14 @@ msgstr "" "erorilor în funcții, inclusiv adăugarea de informații contextuale la erori." #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "\"Found no username in {0}\"" msgstr "\"Nu am găsit niciun nume de utilizator în {0}\"" #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "\"Failed to open {path}\"" msgstr "\"Nu s-a reușit deschiderea {path}\"" #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "\"Failed to read\"" msgstr "\"Nu a reușit să citească\"" @@ -12876,12 +11980,10 @@ msgid "//fs::write(\"config.dat\", \"\").unwrap();\n" msgstr "//fs::write(\"config.dat\", \"\").unwrap();\n" #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "\"Username: {username}\"" msgstr "\"Nume de utilizator: {username}\"" #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "\"Error: {err:?}\"" msgstr "\"Eroare: {err:?}\"" @@ -12909,8 +12011,7 @@ msgstr "Caracteristica `std::error::Error` este derivată automat." #, fuzzy msgid "The message from `#[error]` is used to derive the `Display` trait." msgstr "" -"Mesajul din `#[error]` este utilizat pentru a obține caracteristica " -"`Display`." +"Mesajul din `#[error]` este utilizat pentru a obține caracteristica `Display`." #: src/error-handling/thiserror-and-anyhow.md #, fuzzy @@ -12918,13 +12019,12 @@ msgid "`anyhow`" msgstr "\"oricum" #: src/error-handling/thiserror-and-anyhow.md -#, fuzzy msgid "" -"`anyhow::Error` is essentially a wrapper around `Box`. As such " -"it's again generally not a good choice for the public API of a library, but " -"is widely used in applications." +"`anyhow::Error` is essentially a wrapper around `Box`. As such it's " +"again generally not a good choice for the public API of a library, but is " +"widely used in applications." msgstr "" -"`anyhow::Error` este în esență un înveliș în jurul lui `Box`. Ca " +"`anyhow::Error` este în esență un container în jurul lui `Box`. Ca " "atare, în general, nu este o alegere bună pentru API-ul public al unei " "biblioteci, dar este utilizat pe scară largă în aplicații." @@ -12939,61 +12039,57 @@ msgstr "" msgid "" "Actual error type inside of it can be extracted for examination if necessary." msgstr "" -"Tipul real de eroare din interiorul acestuia poate fi extras pentru " -"examinare, dacă este necesar." +"Tipul real de eroare din interiorul acestuia poate fi extras pentru examinare, " +"dacă este necesar." #: src/error-handling/thiserror-and-anyhow.md #, fuzzy msgid "" -"Functionality provided by `anyhow::Result` may be familiar to Go " -"developers, as it provides similar usage patterns and ergonomics to `(T, " -"error)` from Go." +"Functionality provided by `anyhow::Result` may be familiar to Go developers, " +"as it provides similar usage patterns and ergonomics to `(T, error)` from Go." msgstr "" "Funcționalitatea oferită de `anyhow::Result` poate fi cunoscută " -"dezvoltatorilor Go, deoarece oferă modele de utilizare și ergonomie similare " -"cu `(T, error)` din Go." +"dezvoltatorilor Go, deoarece oferă modele de utilizare și ergonomie similare cu " +"`(T, error)` din Go." #: src/error-handling/thiserror-and-anyhow.md #, fuzzy msgid "" -"`anyhow::Context` is a trait implemented for the standard `Result` and " -"`Option` types. `use anyhow::Context` is necessary to enable `.context()` " -"and `.with_context()` on those types." +"`anyhow::Context` is a trait implemented for the standard `Result` and `Option` " +"types. `use anyhow::Context` is necessary to enable `.context()` and `." +"with_context()` on those types." msgstr "" "`anyhow::Context` este o trăsătură implementată pentru tipurile standard " "`Result` și `Option`. `use anyhow::Context` este necesar pentru a activa `." "context()` și `.with_context()` pentru aceste tipuri." #: src/error-handling/exercise.md -#, fuzzy msgid "Exercise: Rewriting with Result" msgstr "Exercițiu: rescrierea cu `Result`" #: src/error-handling/exercise.md -#, fuzzy msgid "" "The following implements a very simple parser for an expression language. " "However, it handles errors by panicking. Rewrite it to instead use idiomatic " -"error handling and propagate errors to a return from `main`. Feel free to " -"use `thiserror` and `anyhow`." +"error handling and propagate errors to a return from `main`. Feel free to use " +"`thiserror` and `anyhow`." msgstr "" "Următorul exemplu implementează un parser foarte simplu pentru un limbaj de " -"expresii. Cu toate acestea, acesta gestionează erorile prin panică. " -"Rescrieți-l pentru a utiliza în schimb o gestionare idiomatică a erorilor și " -"pentru a propaga erorile la o întoarcere din `main`. Nu ezitați să folosiți " -"`thiserror` și `anyhow`." +"expresii. Totuși erorile sunt gestionate prin panică. Rescrieți-l pentru a " +"utiliza în schimb o gestionare idiomatică a erorilor și pentru a le propaga la " +"întoarcere din `main`. Nu ezitați să folosiți `thiserror` și `anyhow`." #: src/error-handling/exercise.md #, fuzzy msgid "" "HINT: start by fixing error handling in the `parse` function. Once that is " -"working correctly, update `Tokenizer` to implement " -"`Iterator>` and handle that in the parser." +"working correctly, update `Tokenizer` to implement `Iterator>` and handle that in the parser." msgstr "" "SUGESTIE: începeți prin a remedia gestionarea erorilor în funcția `parse`. " "Odată ce aceasta funcționează corect, actualizați `Tokenizer` pentru a " -"implementa `Iterator>`` și gestionați " -"acest lucru în parser." +"implementa `Iterator>`` și gestionați acest " +"lucru în parser." #: src/error-handling/exercise.md src/error-handling/solution.md #, fuzzy @@ -13038,22 +12134,18 @@ msgid "'-'" msgstr "'-'" #: src/error-handling/exercise.md -#, fuzzy msgid "\"Unexpected character {c}\"" msgstr "\"Caracter neașteptat {c}\"" #: src/error-handling/exercise.md src/error-handling/solution.md -#, fuzzy msgid "\"Unexpected end of input\"" -msgstr "\"Sfârșitul neașteptat al intrării\"" +msgstr "\"Sfârșitul neașteptat al datelor de intrare\"" #: src/error-handling/exercise.md -#, fuzzy msgid "\"Invalid 32-bit integer'\"" msgstr "\"Număr întreg de 32 de biți invalid\"" #: src/error-handling/exercise.md -#, fuzzy msgid "\"Unexpected token {tok:?}\"" msgstr "\"Jetoane neașteptate {tok:?}\"" @@ -13061,36 +12153,29 @@ msgstr "\"Jetoane neașteptate {tok:?}\"" #, fuzzy msgid "// Look ahead to parse a binary operation if present.\n" msgstr "" -"// Se uită înainte pentru a analiza o operațiune binară, dacă este " -"prezentă.\n" +"// Se uită înainte pentru a analiza o operațiune binară, dacă este prezentă.\n" #: src/error-handling/exercise.md src/error-handling/solution.md -#, fuzzy msgid "\"10+foo+20-30\"" msgstr "\"10+foo+20-30\"" #: src/error-handling/exercise.md src/error-handling/solution.md -#, fuzzy msgid "\"{expr:?}\"" msgstr "\"{expr:?}\"" #: src/error-handling/solution.md -#, fuzzy msgid "\"Unexpected character '{0}' in input\"" msgstr "\"Caracter neașteptat \"{0}\" în intrare\"" #: src/error-handling/solution.md -#, fuzzy msgid "\"Tokenizer error: {0}\"" msgstr "\"Eroare de tokenizare: {0}\"" #: src/error-handling/solution.md -#, fuzzy msgid "\"Unexpected token {0:?}\"" msgstr "\"Jetoane neașteptate {0:?}\"" #: src/error-handling/solution.md -#, fuzzy msgid "\"Invalid number\"" msgstr "\"Număr invalid\"" @@ -13101,17 +12186,14 @@ msgstr "[Nesigur](./unsafe-rust/unsafe.md) (5 minute)" #: src/unsafe-rust.md #, fuzzy -msgid "" -"[Dereferencing Raw Pointers](./unsafe-rust/dereferencing.md) (10 minutes)" +msgid "[Dereferencing Raw Pointers](./unsafe-rust/dereferencing.md) (10 minutes)" msgstr "" -"[Dereferențierea pointerilor brute](./unsafe-rust/dereferencing.md) (10 " -"minute)" +"[Dereferențierea pointerilor brute](./unsafe-rust/dereferencing.md) (10 minute)" #: src/unsafe-rust.md #, fuzzy msgid "[Mutable Static Variables](./unsafe-rust/mutable-static.md) (5 minutes)" -msgstr "" -"[Variabile statice mutabile](./unsafe-rust/mutable-static.md) (5 minute)" +msgstr "[Variabile statice mutabile](./unsafe-rust/mutable-static.md) (5 minute)" #: src/unsafe-rust.md #, fuzzy @@ -13149,20 +12231,19 @@ msgstr "**Safe Rust:** sigur în memorie, fără comportament nedefinit posibil. #: src/unsafe-rust/unsafe.md #, fuzzy msgid "" -"**Unsafe Rust:** can trigger undefined behavior if preconditions are " -"violated." +"**Unsafe Rust:** can trigger undefined behavior if preconditions are violated." msgstr "" -"**Unsafe Rust:** poate declanșa un comportament nedefinit dacă sunt " -"încălcate condițiile prealabile." +"**Unsafe Rust:** poate declanșa un comportament nedefinit dacă sunt încălcate " +"condițiile prealabile." #: src/unsafe-rust/unsafe.md #, fuzzy msgid "" -"We saw mostly safe Rust in this course, but it's important to know what " -"Unsafe Rust is." +"We saw mostly safe Rust in this course, but it's important to know what Unsafe " +"Rust is." msgstr "" -"În acest curs vom vedea mai ales Rust sigur, dar este important să știm ce " -"este Rust nesigur." +"În acest curs vom vedea mai ales Rust sigur, dar este important să știm ce este " +"Rust nesigur." #: src/unsafe-rust/unsafe.md #, fuzzy @@ -13208,26 +12289,25 @@ msgstr "Implementarea trăsăturilor `unsafe`." #, fuzzy msgid "" "We will briefly cover unsafe capabilities next. For full details, please see " -"[Chapter 19.1 in the Rust Book](https://doc.rust-lang.org/book/ch19-01-" -"unsafe-rust.html) and the [Rustonomicon](https://doc.rust-lang.org/nomicon/)." +"[Chapter 19.1 in the Rust Book](https://doc.rust-lang.org/book/ch19-01-unsafe-" +"rust.html) and the [Rustonomicon](https://doc.rust-lang.org/nomicon/)." msgstr "" "În continuare vom aborda pe scurt capacitățile nesigure. Pentru detalii " "complete, vă rugăm să consultați [Capitolul 19.1 din Rust Book](https://doc." -"rust-lang.org/book/ch19-01-unsafe-rust.html) și [Rustonomicon](https://doc." -"rust-lang.org/nomicon/)." +"rust-lang.org/book/ch19-01-unsafe-rust.html) și [Rustonomicon](https://doc.rust-" +"lang.org/nomicon/)." #: src/unsafe-rust/unsafe.md #, fuzzy msgid "" -"Unsafe Rust does not mean the code is incorrect. It means that developers " -"have turned off some compiler safety features and have to write correct code " -"by themselves. It means the compiler no longer enforces Rust's memory-safety " -"rules." +"Unsafe Rust does not mean the code is incorrect. It means that developers have " +"turned off some compiler safety features and have to write correct code by " +"themselves. It means the compiler no longer enforces Rust's memory-safety rules." msgstr "" "Unsafe Rust nu înseamnă că codul este incorect. Înseamnă că dezvoltatorii au " -"dezactivat caracteristicile de siguranță ale compilatorului și trebuie să " -"scrie singuri codul corect. Înseamnă că compilatorul nu mai aplică regulile " -"de siguranță a memoriei din Rust." +"dezactivat caracteristicile de siguranță ale compilatorului și trebuie să scrie " +"singuri codul corect. Înseamnă că compilatorul nu mai aplică regulile de " +"siguranță a memoriei din Rust." #: src/unsafe-rust/dereferencing.md #, fuzzy @@ -13236,7 +12316,6 @@ msgstr "" "Crearea de pointeri este sigură, dar dereferențierea lor necesită `unsafe`:" #: src/unsafe-rust/dereferencing.md -#, fuzzy msgid "\"careful!\"" msgstr "\"Atenție!\"" @@ -13244,8 +12323,7 @@ msgstr "\"Atenție!\"" #, fuzzy msgid "" "// SAFETY: r1 and r2 were obtained from references and so are guaranteed to\n" -" // be non-null and properly aligned, the objects underlying the " -"references\n" +" // be non-null and properly aligned, the objects underlying the references\n" " // from which they were obtained are live throughout the whole unsafe\n" " // block, and they are not accessed either through the references or\n" " // concurrently through any other pointers.\n" @@ -13273,17 +12351,14 @@ msgstr "" "```" #: src/unsafe-rust/dereferencing.md -#, fuzzy msgid "\"r1 is: {}\"" msgstr "\"r1 este: {}\"" #: src/unsafe-rust/dereferencing.md -#, fuzzy msgid "\"uhoh\"" msgstr "\"uhoh\"" #: src/unsafe-rust/dereferencing.md -#, fuzzy msgid "\"r2 is: {}\"" msgstr "\"r2 este: {}\"" @@ -13307,14 +12382,14 @@ msgstr "" #: src/unsafe-rust/dereferencing.md #, fuzzy msgid "" -"It is good practice (and required by the Android Rust style guide) to write " -"a comment for each `unsafe` block explaining how the code inside it " -"satisfies the safety requirements of the unsafe operations it is doing." +"It is good practice (and required by the Android Rust style guide) to write a " +"comment for each `unsafe` block explaining how the code inside it satisfies the " +"safety requirements of the unsafe operations it is doing." msgstr "" -"Este o bună practică (și este cerută de ghidul de stil Android Rust) să " -"scrieți un comentariu pentru fiecare bloc `unsafe`, explicând modul în care " -"codul din interiorul acestuia îndeplinește cerințele de siguranță ale " -"operațiilor nesigure pe care le efectuează." +"Este o bună practică (și este cerută de ghidul de stil Android Rust) să scrieți " +"un comentariu pentru fiecare bloc `unsafe`, explicând modul în care codul din " +"interiorul acestuia îndeplinește cerințele de siguranță ale operațiilor " +"nesigure pe care le efectuează." #: src/unsafe-rust/dereferencing.md #, fuzzy @@ -13322,9 +12397,8 @@ msgid "" "In the case of pointer dereferences, this means that the pointers must be " "[_valid_](https://doc.rust-lang.org/std/ptr/index.html#safety), i.e.:" msgstr "" -"În cazul dereferențierii pointerilor, aceasta înseamnă că pointerii trebuie " -"să fie [_valabili_](https://doc.rust-lang.org/std/ptr/index.html#safety), " -"adică:" +"În cazul dereferențierii pointerilor, aceasta înseamnă că pointerii trebuie să " +"fie [_valabili_](https://doc.rust-lang.org/std/ptr/index.html#safety), adică:" #: src/unsafe-rust/dereferencing.md #, fuzzy @@ -13334,16 +12408,15 @@ msgstr "Pointerul trebuie să nu fie nul." #: src/unsafe-rust/dereferencing.md #, fuzzy msgid "" -"The pointer must be _dereferenceable_ (within the bounds of a single " -"allocated object)." +"The pointer must be _dereferenceable_ (within the bounds of a single allocated " +"object)." msgstr "" "Pointerul trebuie să fie _dereferențiabil_ (în limitele unui singur obiect " "alocat)." #: src/unsafe-rust/dereferencing.md -#, fuzzy msgid "The object must not have been deallocated." -msgstr "Obiectul nu trebuie să fi fost dezalocat." +msgstr "Obiectul nu trebuie să fi fost dealocat." #: src/unsafe-rust/dereferencing.md #, fuzzy @@ -13353,8 +12426,8 @@ msgstr "Nu trebuie să existe accese simultane la aceeași locație." #: src/unsafe-rust/dereferencing.md #, fuzzy msgid "" -"If the pointer was obtained by casting a reference, the underlying object " -"must be live and no reference may be used to access the memory." +"If the pointer was obtained by casting a reference, the underlying object must " +"be live and no reference may be used to access the memory." msgstr "" "În cazul în care pointerul a fost obținut prin turnarea unei referințe, " "obiectul subiacent trebuie să fie viu și nu se poate utiliza nicio referință " @@ -13364,20 +12437,19 @@ msgstr "" #, fuzzy msgid "In most cases the pointer must also be properly aligned." msgstr "" -"În cele mai multe cazuri, indicatorul trebuie, de asemenea, să fie bine " -"aliniat." +"În cele mai multe cazuri, indicatorul trebuie, de asemenea, să fie bine aliniat." #: src/unsafe-rust/dereferencing.md #, fuzzy msgid "" -"The \"NOT SAFE\" section gives an example of a common kind of UB bug: `*r1` " -"has the `'static` lifetime, so `r3` has type `&'static String`, and thus " -"outlives `s`. Creating a reference from a pointer requires _great care_." +"The \"NOT SAFE\" section gives an example of a common kind of UB bug: `*r1` has " +"the `'static` lifetime, so `r3` has type `&'static String`, and thus outlives " +"`s`. Creating a reference from a pointer requires _great care_." msgstr "" -"Secțiunea \"NOT SAFE\" oferă un exemplu de un tip comun de eroare UB: `*r1` " -"are durata de viață `'static`, astfel încât `r3` are tipul `&'static String` " -"și, prin urmare, trăiește mai mult decât `s`. Crearea unei referințe dintr-" -"un pointer necesită _grea atenție_." +"Secțiunea \"NOT SAFE\" oferă un exemplu de un tip comun de eroare UB: `*r1` are " +"durata de viață `'static`, astfel încât `r3` are tipul `&'static String` și, " +"prin urmare, trăiește mai mult decât `s`. Crearea unei referințe dintr-un " +"pointer necesită _grea atenție_." #: src/unsafe-rust/mutable-static.md #, fuzzy @@ -13385,9 +12457,8 @@ msgid "It is safe to read an immutable static variable:" msgstr "Este sigur să citiți o variabilă statică imuabilă:" #: src/unsafe-rust/mutable-static.md -#, fuzzy msgid "\"Hello, world!\"" -msgstr "Bună lume" +msgstr "\"Bună, lume!\"" #: src/unsafe-rust/mutable-static.md #, fuzzy @@ -13410,49 +12481,45 @@ msgid "" msgstr "// SIGURANȚĂ: Nu există alte fire care ar putea accesa `COUNTER`.\n" #: src/unsafe-rust/mutable-static.md -#, fuzzy msgid "\"COUNTER: {COUNTER}\"" -msgstr "\"COUNTER: {COUNTER}\"" +msgstr "\"CONTOR: {COUNTER}\"" #: src/unsafe-rust/mutable-static.md #, fuzzy msgid "" "The program here is safe because it is single-threaded. However, the Rust " -"compiler is conservative and will assume the worst. Try removing the " -"`unsafe` and see how the compiler explains that it is undefined behavior to " -"mutate a static from multiple threads." -msgstr "" -"Programul de aici este sigur, deoarece are un singur fir de execuție. Cu " -"toate acestea, compilatorul Rust este conservator și va presupune ce este " -"mai rău. Încercați să eliminați `unsafe` și să vedeți cum compilatorul " -"explică faptul că este un comportament nedefinit să mutați o statică din mai " -"multe fire de execuție." +"compiler is conservative and will assume the worst. Try removing the `unsafe` " +"and see how the compiler explains that it is undefined behavior to mutate a " +"static from multiple threads." +msgstr "" +"Programul de aici este sigur, deoarece are un singur fir de execuție. Cu toate " +"acestea, compilatorul Rust este conservator și va presupune ce este mai rău. " +"Încercați să eliminați `unsafe` și să vedeți cum compilatorul explică faptul că " +"este un comportament nedefinit să mutați o statică din mai multe fire de " +"execuție." #: src/unsafe-rust/mutable-static.md #, fuzzy msgid "" -"Using a mutable static is generally a bad idea, but there are some cases " -"where it might make sense in low-level `no_std` code, such as implementing a " -"heap allocator or working with some C APIs." +"Using a mutable static is generally a bad idea, but there are some cases where " +"it might make sense in low-level `no_std` code, such as implementing a heap " +"allocator or working with some C APIs." msgstr "" "Utilizarea unui static mutabil este, în general, o idee proastă, dar există " -"unele cazuri în care ar putea avea sens în codul `no_std` de nivel scăzut, " -"cum ar fi implementarea unui alocator de heap sau lucrul cu unele API-uri C." +"unele cazuri în care ar putea avea sens în codul `no_std` de nivel scăzut, cum " +"ar fi implementarea unui alocator de heap sau lucrul cu unele API-uri C." #: src/unsafe-rust/unions.md #, fuzzy msgid "Unions are like enums, but you need to track the active field yourself:" msgstr "" -"Uniunile sunt ca și enumerațiile, dar trebuie să urmăriți singur câmpul " -"activ:" +"Uniunile sunt ca și enumerațiile, dar trebuie să urmăriți singur câmpul activ:" #: src/unsafe-rust/unions.md -#, fuzzy msgid "\"int: {}\"" msgstr "\"int: {}\"" #: src/unsafe-rust/unions.md -#, fuzzy msgid "\"bool: {}\"" msgstr "\"bool: {}\"" @@ -13464,25 +12531,25 @@ msgstr "Nici un comportament nedefinit în timpul execuției:" #: src/unsafe-rust/unions.md #, fuzzy msgid "" -"Unions are very rarely needed in Rust as you can usually use an enum. They " -"are occasionally needed for interacting with C library APIs." +"Unions are very rarely needed in Rust as you can usually use an enum. They are " +"occasionally needed for interacting with C library APIs." msgstr "" -"Uniunile sunt foarte rar necesare în Rust, deoarece puteți utiliza de obicei " -"un enum. Ele sunt ocazional necesare pentru a interacționa cu API-urile " +"Uniunile sunt foarte rar necesare în Rust, deoarece puteți utiliza de obicei un " +"enum. Ele sunt ocazional necesare pentru a interacționa cu API-urile " "bibliotecilor C." #: src/unsafe-rust/unions.md #, fuzzy msgid "" "If you just want to reinterpret bytes as a different type, you probably want " -"[`std::mem::transmute`](https://doc.rust-lang.org/stable/std/mem/fn." -"transmute.html) or a safe wrapper such as the [`zerocopy`](https://crates.io/" -"crates/zerocopy) crate." +"[`std::mem::transmute`](https://doc.rust-lang.org/stable/std/mem/fn.transmute." +"html) or a safe wrapper such as the [`zerocopy`](https://crates.io/crates/" +"zerocopy) crate." msgstr "" -"Dacă doriți doar să reinterpretați octeții ca fiind de un tip diferit, " -"probabil că doriți [`std::mem::transmute`](https://doc.rust-lang.org/stable/" -"std/mem/fn.transmute.html) sau un înveliș sigur, cum ar fi [`zerocopy`]" -"(https://crates.io/crates/zerocopy)." +"Dacă doriți doar să reinterpretați octeții ca fiind de un tip diferit, probabil " +"că doriți [`std::mem::transmute`](https://doc.rust-lang.org/stable/std/mem/fn." +"transmute.html) sau un container sigur, cum ar fi [`zerocopy`](https://crates." +"io/crates/zerocopy)." #: src/unsafe-rust/unsafe-functions.md msgid "Calling Unsafe Functions" @@ -13491,12 +12558,12 @@ msgstr "Apelarea funcțiilor nesigure" #: src/unsafe-rust/unsafe-functions.md #, fuzzy msgid "" -"A function or method can be marked `unsafe` if it has extra preconditions " -"you must uphold to avoid undefined behaviour:" +"A function or method can be marked `unsafe` if it has extra preconditions you " +"must uphold to avoid undefined behaviour:" msgstr "" -"O funcție sau o metodă poate fi marcată `unsafe` dacă are condiții " -"prealabile suplimentare pe care trebuie să le respectați pentru a evita un " -"comportament nedefinit:" +"O funcție sau o metodă poate fi marcată `unsafe` dacă are condiții prealabile " +"suplimentare pe care trebuie să le respectați pentru a evita un comportament " +"nedefinit:" #: src/unsafe-rust/unsafe-functions.md src/unsafe-rust/exercise.md #: src/unsafe-rust/solution.md src/android/interoperability/with-c.md @@ -13505,12 +12572,10 @@ msgstr "" #: src/exercises/chromium/build-rules.md src/bare-metal/aps/inline-assembly.md #: src/bare-metal/aps/better-uart/using.md src/bare-metal/aps/logging/using.md #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"C\"" msgstr "\"C\"" #: src/unsafe-rust/unsafe-functions.md -#, fuzzy msgid "\"🗻∈🌏\"" msgstr "\"🗻∈🌏\"" @@ -13524,14 +12589,12 @@ msgstr "" " // șirului de caractere și se află pe limitele secvenței UTF-8.\n" #: src/unsafe-rust/unsafe-functions.md -#, fuzzy msgid "\"emoji: {}\"" msgstr "\"emoji: {}\"" #: src/unsafe-rust/unsafe-functions.md -#, fuzzy msgid "\"char count: {}\"" -msgstr "\"char count: {}\"" +msgstr "\"număr de caractere: {}\"" #: src/unsafe-rust/unsafe-functions.md #, fuzzy @@ -13543,7 +12606,6 @@ msgstr "" " // cerințe.\n" #: src/unsafe-rust/unsafe-functions.md -#, fuzzy msgid "\"Absolute value of -3 according to C: {}\"" msgstr "\"Valoarea absolută a lui -3 în conformitate cu C: {}\"" @@ -13601,11 +12663,11 @@ msgstr "\"a = {}, b = {}\"" #, fuzzy msgid "" "`get_unchecked`, like most `_unchecked` functions, is unsafe, because it can " -"create UB if the range is incorrect. `abs` is incorrect for a different " -"reason: it is an external function (FFI). Calling external functions is " -"usually only a problem when those functions do things with pointers which " -"might violate Rust's memory model, but in general any C function might have " -"undefined behaviour under any arbitrary circumstances." +"create UB if the range is incorrect. `abs` is incorrect for a different reason: " +"it is an external function (FFI). Calling external functions is usually only a " +"problem when those functions do things with pointers which might violate Rust's " +"memory model, but in general any C function might have undefined behaviour " +"under any arbitrary circumstances." msgstr "" "Aceasta este de obicei o problemă doar pentru funcțiile externe care fac " "lucruri cu pointeri care ar putea încălca modelul de memorie Rust, dar în " @@ -13615,31 +12677,30 @@ msgstr "" #: src/unsafe-rust/unsafe-functions.md #, fuzzy msgid "" -"The `\"C\"` in this example is the ABI; [other ABIs are available too]" -"(https://doc.rust-lang.org/reference/items/external-blocks.html)." +"The `\"C\"` in this example is the ABI; [other ABIs are available too](https://" +"doc.rust-lang.org/reference/items/external-blocks.html)." msgstr "" -"În acest exemplu, `\"C\"` este ABI; [sunt disponibile și alte ABI-uri]" -"(https://doc.rust-lang.org/reference/items/external-blocks.html)." +"În acest exemplu, `\"C\"` este ABI; [sunt disponibile și alte ABI-uri](https://" +"doc.rust-lang.org/reference/items/external-blocks.html)." #: src/unsafe-rust/unsafe-functions.md #, fuzzy msgid "" -"We wouldn't actually use pointers for a `swap` function - it can be done " -"safely with references." +"We wouldn't actually use pointers for a `swap` function - it can be done safely " +"with references." msgstr "" -"De fapt, nu vom folosi pointeri pentru acest lucru, deoarece acest lucru " -"poate fi realizat în siguranță cu referințe." +"De fapt, nu vom folosi pointeri pentru acest lucru, deoarece acest lucru poate " +"fi realizat în siguranță cu referințe." #: src/unsafe-rust/unsafe-functions.md #, fuzzy msgid "" -"Note that unsafe code is allowed within an unsafe function without an " -"`unsafe` block. We can prohibit this with `#[deny(unsafe_op_in_unsafe_fn)]`. " -"Try adding it and see what happens. This will likely change in a future Rust " -"edition." +"Note that unsafe code is allowed within an unsafe function without an `unsafe` " +"block. We can prohibit this with `#[deny(unsafe_op_in_unsafe_fn)]`. Try adding " +"it and see what happens. This will likely change in a future Rust edition." msgstr "" -"Rețineți că codul nesigur este permis în cadrul unei funcții nesigure fără " -"un bloc `unsafe`. Putem interzice acest lucru cu " +"Rețineți că codul nesigur este permis în cadrul unei funcții nesigure fără un " +"bloc `unsafe`. Putem interzice acest lucru cu " "`#[deny(unsafe_op_in_unsafe_fn)]`. Încercați să-l adăugați și vedeți ce se " "întâmplă." @@ -13653,8 +12714,8 @@ msgid "" "Like with functions, you can mark a trait as `unsafe` if the implementation " "must guarantee particular conditions to avoid undefined behaviour." msgstr "" -"Ca și în cazul funcțiilor, puteți marca o trăsătură ca fiind \"nesigură\" " -"dacă implementarea trebuie să garanteze anumite condiții pentru a evita un " +"Ca și în cazul funcțiilor, puteți marca o trăsătură ca fiind \"nesigură\" dacă " +"implementarea trebuie să garanteze anumite condiții pentru a evita un " "comportament nedefinit." #: src/unsafe-rust/unsafe-traits.md @@ -13663,9 +12724,8 @@ msgid "" "For example, the `zerocopy` crate has an unsafe trait that looks [something " "like this](https://docs.rs/zerocopy/latest/zerocopy/trait.AsBytes.html):" msgstr "" -"De exemplu, categoria `zerocopy` are o trăsătură nesigură care arată [ceva " -"de genul acesta](https://docs.rs/zerocopy/latest/zerocopy/trait.AsBytes." -"html):" +"De exemplu, categoria `zerocopy` are o trăsătură nesigură care arată [ceva de " +"genul acesta](https://docs.rs/zerocopy/latest/zerocopy/trait.AsBytes.html):" #: src/unsafe-rust/unsafe-traits.md #, fuzzy @@ -13681,8 +12741,7 @@ msgstr "" #: src/unsafe-rust/unsafe-traits.md #, fuzzy msgid "// SAFETY: `u32` has a defined representation and no padding.\n" -msgstr "" -"// Sigur, deoarece u32 are o reprezentare definită și nu are umplutură.\n" +msgstr "// Sigur, deoarece u32 are o reprezentare definită și nu are umplutură.\n" #: src/unsafe-rust/unsafe-traits.md #, fuzzy @@ -13690,15 +12749,13 @@ msgid "" "There should be a `# Safety` section on the Rustdoc for the trait explaining " "the requirements for the trait to be safely implemented." msgstr "" -"Ar trebui să existe o secțiune `# Siguranță` în Rustdoc pentru trăsătura " -"care să explice cerințele pentru ca trăsătura să fie implementată în " -"siguranță." +"Ar trebui să existe o secțiune `# Siguranță` în Rustdoc pentru trăsătura care " +"să explice cerințele pentru ca trăsătura să fie implementată în siguranță." #: src/unsafe-rust/unsafe-traits.md #, fuzzy msgid "" -"The actual safety section for `AsBytes` is rather longer and more " -"complicated." +"The actual safety section for `AsBytes` is rather longer and more complicated." msgstr "" "Secțiunea de siguranță efectivă pentru `AsBytes` este mai lungă și mai " "complicată." @@ -13719,27 +12776,23 @@ msgid "" "functions you would use from C to read the names of files in a directory." msgstr "" "Rust are un suport excelent pentru apelarea funcțiilor prin intermediul unei " -"interfețe de funcții străine (FFI). Vom folosi acest lucru pentru a construi " -"un înveliș sigur pentru funcțiile `libc` pe care le-ați folosi din C pentru " -"a citi numele fișierelor dintr-un director." +"interfețe de funcții străine (FFI). Vom folosi acest lucru pentru a construi un " +"container sigur pentru funcțiile `libc` pe care le-ați folosi din C pentru a " +"citi numele fișierelor dintr-un director." #: src/unsafe-rust/exercise.md -#, fuzzy msgid "You will want to consult the manual pages:" msgstr "Va trebui să consultați paginile din manual:" #: src/unsafe-rust/exercise.md -#, fuzzy msgid "[`opendir(3)`](https://man7.org/linux/man-pages/man3/opendir.3.html)" msgstr "[`opendir(3)`](https://man7.org/linux/man-pages/man3/opendir.3.html)" #: src/unsafe-rust/exercise.md -#, fuzzy msgid "[`readdir(3)`](https://man7.org/linux/man-pages/man3/readdir.3.html)" msgstr "[`readdir(3)`](https://man7.org/linux/man-pages/man3/readdir.3.html)" #: src/unsafe-rust/exercise.md -#, fuzzy msgid "[`closedir(3)`](https://man7.org/linux/man-pages/man3/closedir.3.html)" msgstr "[`closedir(3)`](https://man7.org/linux/man-pages/man3/closedir.3.html)" @@ -13751,8 +12804,8 @@ msgid "" "exercise:" msgstr "" "De asemenea, veți dori să navigați în modulul [`std::ffi`](https://doc.rust-" -"lang.org/std/ffi/). Acolo veți găsi o serie de tipuri de șiruri de caractere " -"de care aveți nevoie pentru exercițiu:" +"lang.org/std/ffi/). Acolo veți găsi o serie de tipuri de șiruri de caractere de " +"care aveți nevoie pentru exercițiu:" #: src/unsafe-rust/exercise.md #, fuzzy @@ -13764,20 +12817,19 @@ msgid "Use" msgstr "Folosește" #: src/unsafe-rust/exercise.md -#, fuzzy msgid "" "[`str`](https://doc.rust-lang.org/std/primitive.str.html) and [`String`]" "(https://doc.rust-lang.org/std/string/struct.String.html)" msgstr "" -"[`str`](https://doc.rust-lang.org/std/primitive.str.html) și [`String`]" -"(https://doc.rust-lang.org/std/string/struct.String.html)" +"[`str`](https://doc.rust-lang.org/std/primitive.str.html) și [`String`](https://" +"doc.rust-lang.org/std/string/struct.String.html)" #: src/unsafe-rust/exercise.md #, fuzzy msgid "UTF-8" msgstr "" -"Șirurile de caractere Rust sunt codificate UTF-8 și pot conține orice " -"caracter Unicode." +"Șirurile de caractere Rust sunt codificate UTF-8 și pot conține orice caracter " +"Unicode." #: src/unsafe-rust/exercise.md #, fuzzy @@ -13785,7 +12837,6 @@ msgid "Text processing in Rust" msgstr "Prelucrarea textului în Rust" #: src/unsafe-rust/exercise.md -#, fuzzy msgid "" "[`CStr`](https://doc.rust-lang.org/std/ffi/struct.CStr.html) and [`CString`]" "(https://doc.rust-lang.org/std/ffi/struct.CString.html)" @@ -13804,13 +12855,12 @@ msgid "Communicating with C functions" msgstr "Comunicarea cu funcțiile C" #: src/unsafe-rust/exercise.md -#, fuzzy msgid "" -"[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) and " -"[`OsString`](https://doc.rust-lang.org/std/ffi/struct.OsString.html)" +"[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) and [`OsString`]" +"(https://doc.rust-lang.org/std/ffi/struct.OsString.html)" msgstr "" -"[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) și " -"[`OsString`](https://doc.rust-lang.org/std/ffi/struct.OsString.html)" +"[`OsStr`](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) și [`OsString`]" +"(https://doc.rust-lang.org/std/ffi/struct.OsString.html)" #: src/unsafe-rust/exercise.md #, fuzzy @@ -13830,8 +12880,7 @@ msgstr "Veți face conversia între toate aceste tipuri:" #: src/unsafe-rust/exercise.md #, fuzzy msgid "" -"`&str` to `CString`: you need to allocate space for a trailing `\\0` " -"character," +"`&str` to `CString`: you need to allocate space for a trailing `\\0` character," msgstr "" "`&str` în `CString`: trebuie să alocați spațiu pentru un caracter `\\0` la " "sfârșit," @@ -13840,8 +12889,7 @@ msgstr "" #, fuzzy msgid "`CString` to `*const i8`: you need a pointer to call C functions," msgstr "" -"`CString` la `*const i8`: aveți nevoie de un pointer pentru a apela " -"funcțiile C," +"`CString` la `*const i8`: aveți nevoie de un pointer pentru a apela funcțiile C," #: src/unsafe-rust/exercise.md #, fuzzy @@ -13899,7 +12947,6 @@ msgstr "" "funcțiile și metodele care lipsesc:" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md -#, fuzzy msgid "\"macos\"" msgstr "\"macos\"" @@ -13915,19 +12962,17 @@ msgid "" " // off_t are resolved according to the definitions in\n" " // /usr/include/x86_64-linux-gnu/{sys/types.h, bits/typesizes.h}.\n" msgstr "" -"// Dispunere în conformitate cu pagina de manual Linux pentru readdir(3), " -"unde ino_t și\n" +"// Dispunere în conformitate cu pagina de manual Linux pentru readdir(3), unde " +"ino_t și\n" " // off_t sunt rezolvate în conformitate cu definițiile din\n" " // /usr/include/x86_64-linux-gnu/{sys/types.h, bits/typesizes.h}.\n" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md #, fuzzy msgid "// Layout according to the macOS man page for dir(5).\n" -msgstr "" -"// Dispunere în conformitate cu pagina de manual macOS pentru dir(5).\n" +msgstr "// Dispunere în conformitate cu pagina de manual macOS pentru dir(5).\n" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md -#, fuzzy msgid "\"x86_64\"" msgstr "\"x86_64\"" @@ -13939,8 +12984,7 @@ msgid "" " //\n" " // \"Platforms that existed before these updates were available\" " "refers\n" -" // to macOS (as opposed to iOS / wearOS / etc.) on Intel and " -"PowerPC.\n" +" // to macOS (as opposed to iOS / wearOS / etc.) on Intel and PowerPC.\n" msgstr "" "// A se vedea https://github.com/rust-lang/libc/issues/414 și secțiunea " "privind\n" @@ -13953,7 +12997,6 @@ msgstr "" "PowerPC.\n" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md -#, fuzzy msgid "\"readdir$INODE64\"" msgstr "\"readdir$INODE64\"" @@ -13979,20 +13022,14 @@ msgstr "// Chemați closedir după cum este necesar.\n" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\".\"" msgstr "\".\"" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md -#, fuzzy msgid "\"files: {:#?}\"" -msgstr "" -"Copiați următorul cod server și client în `src/bin/server.rs` și, respectiv, " -"`src/bin/client.rs`. Sarcina dumneavoastră este de a completa aceste fișiere " -"așa cum este descris mai jos." +msgstr "\"fișiere: {:#?}\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"Invalid path: {err}\"" msgstr "\"Invalid path: {err}\"" @@ -14002,7 +13039,6 @@ msgid "// SAFETY: path.as_ptr() cannot be NULL.\n" msgstr "// SAFETY: path.as_ptr() nu poate fi NULL.\n" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"Could not open {:?}\"" msgstr "\"Nu s-a putut deschide {:?}\"" @@ -14035,47 +13071,38 @@ msgid "// SAFETY: self.dir is not NULL.\n" msgstr "// SIGURANȚĂ: self.dir nu este NULL.\n" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"Could not close {:?}\"" msgstr "\"Nu s-a putut închide {:?}\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"no-such-directory\"" msgstr "\"no-such-directory\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"Non UTF-8 character in path\"" msgstr "\"Caracter non-UTF-8 în calea de acces\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"..\"" msgstr "\"..\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"foo.txt\"" msgstr "\"foo.txt\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"The Foo Diaries\\n\"" msgstr "\"The Foo Diaries\\n\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"bar.png\"" msgstr "\"bar.png\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"\\n\"" msgstr "\"\\n\"" #: src/unsafe-rust/solution.md -#, fuzzy msgid "\"crab.rs\"" msgstr "\"crab.rs\"" @@ -14092,33 +13119,33 @@ msgstr "Bine ați venit la Rust în Android" #: src/android.md #, fuzzy msgid "" -"Rust is supported for system software on Android. This means that you can " -"write new services, libraries, drivers or even firmware in Rust (or improve " -"existing code as needed)." +"Rust is supported for system software on Android. This means that you can write " +"new services, libraries, drivers or even firmware in Rust (or improve existing " +"code as needed)." msgstr "" -"Rust este acceptat pentru dezvoltarea platformei native pe Android. Acest " -"lucru înseamnă că puteți scrie noi servicii de sistem de operare în Rust, " -"precum și extinde serviciile existente." +"Rust este acceptat pentru dezvoltarea platformei native pe Android. Acest lucru " +"înseamnă că puteți scrie noi servicii de sistem de operare în Rust, precum și " +"extinde serviciile existente." #: src/android.md #, fuzzy msgid "" "We will attempt to call Rust from one of your own projects today. So try to " -"find a little corner of your code base where we can move some lines of code " -"to Rust. The fewer dependencies and \"exotic\" types the better. Something " -"that parses some raw bytes would be ideal." +"find a little corner of your code base where we can move some lines of code to " +"Rust. The fewer dependencies and \"exotic\" types the better. Something that " +"parses some raw bytes would be ideal." msgstr "" "Vom încerca să îl sunăm pe Rust de la unul dintre proiectele dumneavoastră " -"astăzi. Așadar, încercați să găsiți un colțișor din baza dumneavoastră de " -"cod în care să putem muta câteva linii de cod în Rust. Cu cât mai puține " -"dependențe și tipuri \"exotice\", cu atât mai bine. Ceva care analizează " -"niște octeți brute ar fi ideal." +"astăzi. Așadar, încercați să găsiți un colțișor din baza dumneavoastră de cod " +"în care să putem muta câteva linii de cod în Rust. Cu cât mai puține dependențe " +"și tipuri \"exotice\", cu atât mai bine. Ceva care analizează niște octeți " +"brute ar fi ideal." #: src/android.md #, fuzzy msgid "" -"The speaker may mention any of the following given the increased use of Rust " -"in Android:" +"The speaker may mention any of the following given the increased use of Rust in " +"Android:" msgstr "" "Vorbitorul poate menționa oricare dintre următoarele, având în vedere " "utilizarea sporită a Rust în Android:" @@ -14144,11 +13171,11 @@ msgstr "" #: src/android.md #, fuzzy msgid "" -"Kernel Drivers: [Binder](https://lore.kernel.org/rust-for-linux/20231101-" -"rust-binder-v1-0-08ba9197f637@google.com/)" +"Kernel Drivers: [Binder](https://lore.kernel.org/rust-for-linux/20231101-rust-" +"binder-v1-0-08ba9197f637@google.com/)" msgstr "" -"Driverele nucleului: [Binder](https://lore.kernel.org/rust-for-" -"linux/20231101-rust-binder-v1-0-08ba9197f637@google.com/)" +"Driverele nucleului: [Binder](https://lore.kernel.org/rust-for-linux/20231101-" +"rust-binder-v1-0-08ba9197f637@google.com/)" #: src/android.md #, fuzzy @@ -14165,8 +13192,8 @@ msgid "" "We will be using a Cuttlefish Android Virtual Device to test our code. Make " "sure you have access to one or create a new one with:" msgstr "" -"Vom folosi un dispozitiv virtual Android pentru a testa codul nostru. " -"Asigurați-vă că aveți acces la unul sau creați unul nou cu:" +"Vom folosi un dispozitiv virtual Android pentru a testa codul nostru. Asigurați-" +"vă că aveți acces la unul sau creați unul nou cu:" #: src/android/setup.md #, fuzzy @@ -14174,8 +13201,8 @@ msgid "" "Please see the [Android Developer Codelab](https://source.android.com/docs/" "setup/start) for details." msgstr "" -"Vă rugăm să consultați [Android Developer Codelab](https://source.android." -"com/docs/setup/start) pentru detalii." +"Vă rugăm să consultați [Android Developer Codelab](https://source.android.com/" +"docs/setup/start) pentru detalii." #: src/android/setup.md #, fuzzy @@ -14183,15 +13210,15 @@ msgid "" "Cuttlefish is a reference Android device designed to work on generic Linux " "desktops. MacOS support is also planned." msgstr "" -"Cuttlefish este un dispozitiv Android de referință conceput pentru a " -"funcționa pe desktop-uri Linux generice. De asemenea, este planificat și " -"suport pentru MacOS." +"Cuttlefish este un dispozitiv Android de referință conceput pentru a funcționa " +"pe desktop-uri Linux generice. De asemenea, este planificat și suport pentru " +"MacOS." #: src/android/setup.md #, fuzzy msgid "" -"The Cuttlefish system image maintains high fidelity to real devices, and is " -"the ideal emulator to run many Rust use cases." +"The Cuttlefish system image maintains high fidelity to real devices, and is the " +"ideal emulator to run many Rust use cases." msgstr "" "Imaginea de sistem Cuttlefish păstrează o fidelitate ridicată față de " "dispozitivele reale și este emulatorul ideal pentru a rula multe cazuri de " @@ -14201,8 +13228,8 @@ msgstr "" #, fuzzy msgid "The Android build system (Soong) supports Rust via a number of modules:" msgstr "" -"Sistemul de compilare Android (Soong) acceptă Rust prin intermediul unui " -"număr de module:" +"Sistemul de compilare Android (Soong) acceptă Rust prin intermediul unui număr " +"de module:" #: src/android/build-rules.md msgid "Module Type" @@ -14218,10 +13245,10 @@ msgid "`rust_binary`" msgstr "" "```javascript\n" "rust_binary {\n" -" name: \"cxx_test\",\n" -" srcs: [\"lib.rs\"],\n" -" rustlibs: [\"libcxx\"],\n" -" static_libs: [\"libcxx_test_cpp\"],\n" +" name: “cxx_test”,\n" +" srcs: [“lib.rs”],\n" +" rustlibs: [“libcxx”],\n" +" static_libs: [“libcxx_test_cpp”],\n" "}\n" "```" @@ -14249,11 +13276,11 @@ msgstr "`rust_ffi`" #: src/android/build-rules.md #, fuzzy msgid "" -"Produces a Rust C library usable by `cc` modules, and provides both static " -"and shared variants." +"Produces a Rust C library usable by `cc` modules, and provides both static and " +"shared variants." msgstr "" -"Produce o bibliotecă Rust C utilizabilă de modulele `cc` și oferă atât " -"variante statice cât și partajate." +"Produce o bibliotecă Rust C utilizabilă de modulele `cc` și oferă atât variante " +"statice cât și partajate." #: src/android/build-rules.md #, fuzzy @@ -14263,11 +13290,10 @@ msgstr "`rust_proc_macro`" #: src/android/build-rules.md #, fuzzy msgid "" -"Produces a `proc-macro` Rust library. These are analogous to compiler " -"plugins." +"Produces a `proc-macro` Rust library. These are analogous to compiler plugins." msgstr "" -"Produce o bibliotecă Rust `proc-macro`. Acestea sunt analoge cu plugin-urile " -"de compilator." +"Produce o bibliotecă Rust `proc-macro`. Acestea sunt analoge cu plugin-urile de " +"compilator." #: src/android/build-rules.md #, fuzzy @@ -14299,11 +13325,11 @@ msgstr "`rust_protobuf`" #: src/android/build-rules.md #, fuzzy msgid "" -"Generates source and produces a Rust library that provides an interface for " -"a particular protobuf." +"Generates source and produces a Rust library that provides an interface for a " +"particular protobuf." msgstr "" -"Generează sursa și produce o bibliotecă Rust care oferă o interfață pentru " -"un anumit protobuf." +"Generează sursa și produce o bibliotecă Rust care oferă o interfață pentru un " +"anumit protobuf." #: src/android/build-rules.md #, fuzzy @@ -14316,8 +13342,8 @@ msgid "" "Generates source and produces a Rust library containing Rust bindings to C " "libraries." msgstr "" -"Generează sursa și produce o bibliotecă Rust care conține legături Rust " -"pentru bibliotecile C." +"Generează sursa și produce o bibliotecă Rust care conține legături Rust pentru " +"bibliotecile C." #: src/android/build-rules.md #, fuzzy @@ -14335,40 +13361,40 @@ msgid "" "Cargo is not optimized for multi-language repos, and also downloads packages " "from the internet." msgstr "" -"Cargo nu este optimizat pentru depozite multilingve și, de asemenea, " -"descarcă pachete de pe internet." +"Cargo nu este optimizat pentru depozite multilingve și, de asemenea, descarcă " +"pachete de pe internet." #: src/android/build-rules.md #, fuzzy msgid "" -"For compliance and performance, Android must have crates in-tree. It must " -"also interop with C/C++/Java code. Soong fills that gap." +"For compliance and performance, Android must have crates in-tree. It must also " +"interop with C/C++/Java code. Soong fills that gap." msgstr "" -"Pentru conformitate și performanță, Android trebuie să aibă cratere în " -"copac. De asemenea, trebuie să interacționeze cu codul C/C++/Java. Soong " -"umple acest gol." +"Pentru conformitate și performanță, Android trebuie să aibă cratere în copac. " +"De asemenea, trebuie să interacționeze cu codul C/C++/Java. Soong umple acest " +"gol." #: src/android/build-rules.md #, fuzzy msgid "" -"Soong has many similarities to Bazel, which is the open-source variant of " -"Blaze (used in google3)." +"Soong has many similarities to Bazel, which is the open-source variant of Blaze " +"(used in google3)." msgstr "" -"Soong are multe asemănări cu Bazel, care este varianta open-source a lui " -"Blaze (utilizată în google3)." +"Soong are multe asemănări cu Bazel, care este varianta open-source a lui Blaze " +"(utilizată în google3)." #: src/android/build-rules.md #, fuzzy msgid "" -"There is a plan to transition [Android](https://source.android.com/docs/" -"setup/build/bazel/introduction), [ChromeOS](https://chromium.googlesource." -"com/chromiumos/bazel/), and [Fuchsia](https://source.android.com/docs/setup/" -"build/bazel/introduction) to Bazel." +"There is a plan to transition [Android](https://source.android.com/docs/setup/" +"build/bazel/introduction), [ChromeOS](https://chromium.googlesource.com/" +"chromiumos/bazel/), and [Fuchsia](https://source.android.com/docs/setup/build/" +"bazel/introduction) to Bazel." msgstr "" "Există un plan de tranziție de la [Android](https://source.android.com/docs/" -"setup/build/bazel/introduction), [ChromeOS](https://chromium.googlesource." -"com/chromiumos/bazel/) și [Fuchsia](https://source.android.com/docs/setup/" -"build/bazel/introduction) la Bazel." +"setup/build/bazel/introduction), [ChromeOS](https://chromium.googlesource.com/" +"chromiumos/bazel/) și [Fuchsia](https://source.android.com/docs/setup/build/" +"bazel/introduction) la Bazel." #: src/android/build-rules.md #, fuzzy @@ -14390,8 +13416,8 @@ msgstr "Binare Rust" #: src/android/build-rules/binary.md #, fuzzy msgid "" -"Let us start with a simple application. At the root of an AOSP checkout, " -"create the following files:" +"Let us start with a simple application. At the root of an AOSP checkout, create " +"the following files:" msgstr "" "Să începem cu o aplicație simplă. La rădăcina unei verificări AOSP, creați " "următoarele fișiere:" @@ -14402,13 +13428,11 @@ msgid "_hello_rust/Android.bp_:" msgstr "hello_rust/Android.bp_:" #: src/android/build-rules/binary.md -#, fuzzy msgid "\"hello_rust\"" msgstr "\"hello_rust\"" #: src/android/build-rules/binary.md src/android/build-rules/library.md #: src/android/logging.md -#, fuzzy msgid "\"src/main.rs\"" msgstr "src/main.rs_:" @@ -14428,9 +13452,8 @@ msgid "/// Prints a greeting to standard output.\n" msgstr "/// Tipărește un mesaj de salut pe ieșirea standard.\n" #: src/android/build-rules/binary.md src/exercises/chromium/build-rules.md -#, fuzzy msgid "\"Hello from Rust!\"" -msgstr "\"Bună ziua de la Rust!\"" +msgstr "\"Bună ziua din partea Rust!\"" #: src/android/build-rules/binary.md #, fuzzy @@ -14485,17 +13508,14 @@ msgstr "" "crates/)." #: src/android/build-rules/library.md -#, fuzzy msgid "\"hello_rust_with_dep\"" msgstr "\"hello_rust_with_dep\"" #: src/android/build-rules/library.md -#, fuzzy msgid "\"libgreetings\"" msgstr "\"libgreetings\"" #: src/android/build-rules/library.md -#, fuzzy msgid "\"libtextwrap\"" msgstr "\"libtextwrap\"" @@ -14505,14 +13525,11 @@ msgid "// Need this to avoid dynamic link error.\n" msgstr "// Este necesar pentru a evita eroarea de link dinamic.\n" #: src/android/build-rules/library.md -#, fuzzy msgid "\"greetings\"" -msgstr "\"Salutări\"" +msgstr "\"salutări\"" -#: src/android/build-rules/library.md -#: src/android/aidl/example-service/service.md src/android/testing.md -#: src/android/interoperability/java.md -#, fuzzy +#: src/android/build-rules/library.md src/android/aidl/example-service/service.md +#: src/android/testing.md src/android/interoperability/java.md msgid "\"src/lib.rs\"" msgstr "src/main.rs_:" @@ -14532,7 +13549,6 @@ msgid "/// Greet `name`.\n" msgstr "/// Salutați `name`.\n" #: src/android/build-rules/library.md -#, fuzzy msgid "\"Hello {name}, it is very nice to meet you!\"" msgstr "\"Bună ziua {name}, mă bucur să vă cunosc!\"" @@ -14581,12 +13597,12 @@ msgstr "Puteți crea noi servere AIDL în Rust." #, fuzzy msgid "" "To illustrate how to use Rust with Binder, we're going to walk through the " -"process of creating a Binder interface. We're then going to both implement " -"the described service and write client code that talks to that service." +"process of creating a Binder interface. We're then going to both implement the " +"described service and write client code that talks to that service." msgstr "" -"Pentru a ilustra cum să folosim Rust cu Binder, vom parcurge procesul de " -"creare a unei interfețe Binder. Apoi, vom implementa serviciul descris și " -"vom scrie codul clientului care vorbește cu serviciul respectiv." +"Pentru a ilustra cum să folosim Rust cu Binder, vom parcurge procesul de creare " +"a unei interfețe Binder. Apoi, vom implementa serviciul descris și vom scrie " +"codul clientului care vorbește cu serviciul respectiv." #: src/android/aidl/example-service/interface.md #, fuzzy @@ -14601,8 +13617,7 @@ msgstr "Declarați API-ul serviciului dumneavoastră utilizând o interfață AI #: src/android/aidl/example-service/interface.md #: src/android/aidl/example-service/service-bindings.md #, fuzzy -msgid "" -"_birthday_service/aidl/com/example/birthdayservice/IBirthdayService.aidl_:" +msgid "_birthday_service/aidl/com/example/birthdayservice/IBirthdayService.aidl_:" msgstr "" "_birthday_service/aidl/com/exemple/birthdayservice/IBirthdayService.aidl_:" @@ -14626,15 +13641,12 @@ msgid "_birthday_service/aidl/Android.bp_:" msgstr "_birthday_service/aidl/Android.bp_:" #: src/android/aidl/example-service/interface.md -#, fuzzy msgid "\"com.example.birthdayservice\"" msgstr "\"com.example.birthdayservice\"" #: src/android/aidl/example-service/interface.md -#, fuzzy msgid "\"com/example/birthdayservice/*.aidl\"" -msgstr "" -"_birthday_service/aidl/com/exemple/birthdayservice/IBirthdayService.aidl_:" +msgstr "\"com/example/birthdayservice/*.aidl\"" #: src/android/aidl/example-service/interface.md #, fuzzy @@ -14649,9 +13661,9 @@ msgid "" "birthdayservice` and the file is at `aidl/com/example/IBirthdayService.aidl`." msgstr "" "Rețineți că structura directoarelor din directorul `aidl/` trebuie să " -"corespundă cu numele pachetului utilizat în fișierul AIDL, de exemplu, " -"pachetul este `com.example.birthdayservice`, iar fișierul se află la `aidl/" -"com/example/IBirthdayService.aidl`." +"corespundă cu numele pachetului utilizat în fișierul AIDL, de exemplu, pachetul " +"este `com.example.birthdayservice`, iar fișierul se află la `aidl/com/example/" +"IBirthdayService.aidl`." #: src/android/aidl/example-service/service-bindings.md #, fuzzy @@ -14664,8 +13676,8 @@ msgid "" "Binder generates a trait corresponding to the interface definition. trait to " "talk to the service." msgstr "" -"Binder generează o trăsătură corespunzătoare definiției interfeței. " -"trăsătură pentru a vorbi cu serviciul." +"Binder generează o trăsătură corespunzătoare definiției interfeței. trăsătură " +"pentru a vorbi cu serviciul." #: src/android/aidl/example-service/service-bindings.md #, fuzzy @@ -14675,11 +13687,11 @@ msgstr "Cod Rust generat:" #: src/android/aidl/example-service/service-bindings.md #, fuzzy msgid "" -"Your service will need to implement this trait, and your client will use " -"this trait to talk to the service." +"Your service will need to implement this trait, and your client will use this " +"trait to talk to the service." msgstr "" -"Serviciul dvs. va trebui să implementeze această trăsătură, iar clientul " -"dvs. va folosi această trăsătură pentru a vorbi cu serviciul." +"Serviciul dvs. va trebui să implementeze această trăsătură, iar clientul dvs. " +"va folosi această trăsătură pentru a vorbi cu serviciul." #: src/android/aidl/example-service/service-bindings.md #, fuzzy @@ -14687,17 +13699,17 @@ msgid "" "The generated bindings can be found at `out/soong/.intermediates//`." msgstr "" -"Legăturile generate pot fi găsite la `out/soong/.intermediates//`." +"Legăturile generate pot fi găsite la `out/soong/.intermediates//" +"`." #: src/android/aidl/example-service/service-bindings.md #, fuzzy msgid "" -"Point out how the generated function signature, specifically the argument " -"and return types, correspond the interface definition." +"Point out how the generated function signature, specifically the argument and " +"return types, correspond the interface definition." msgstr "" -"Evidențiați modul în care semnătura funcției generate, în special tipurile " -"de argumente și de retur, corespund definiției interfeței." +"Evidențiați modul în care semnătura funcției generate, în special tipurile de " +"argumente și de retur, corespund definiției interfeței." #: src/android/aidl/example-service/service-bindings.md #, fuzzy @@ -14705,8 +13717,8 @@ msgid "" "`String` for an argument results in a different Rust type than `String` as a " "return type." msgstr "" -"`String` pentru un argument are ca rezultat un tip Rust diferit de `String` " -"ca tip de returnare." +"`String` pentru un argument are ca rezultat un tip Rust diferit de `String` ca " +"tip de returnare." #: src/android/aidl/example-service/service.md #, fuzzy @@ -14732,9 +13744,8 @@ msgstr "Implementarea serviciilor" #: src/android/aidl/example-service/service.md #: src/android/aidl/example-service/changing-implementation.md #: src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "\"Happy Birthday {name}, congratulations with the {years} years!\"" -msgstr "\"La mulți ani {name}, felicitări cu {years} ani!\"" +msgstr "\"La mulți ani {name}, felicitări pentru împlinirea a {years} ani!\"" #: src/android/aidl/example-service/service.md #: src/android/aidl/example-service/server.md @@ -14745,39 +13756,35 @@ msgstr "_birthday_service/Android.bp_:" #: src/android/aidl/example-service/service.md #: src/android/aidl/example-service/server.md -#, fuzzy msgid "\"libbirthdayservice\"" -msgstr "_birthday_service/src/lib.rs_:" +msgstr "\"libbirthdayservice\"" #: src/android/aidl/example-service/service.md #: src/android/aidl/example-service/server.md #: src/android/aidl/example-service/client.md -#, fuzzy msgid "\"birthdayservice\"" -msgstr "_birthday_service/src/lib.rs_:" +msgstr "\"birthdayservice\"" #: src/android/aidl/example-service/service.md #: src/android/aidl/example-service/server.md #: src/android/aidl/example-service/client.md -#, fuzzy msgid "\"com.example.birthdayservice-rust\"" msgstr "\"com.example.birthdayservice-rust\"" #: src/android/aidl/example-service/service.md #: src/android/aidl/example-service/server.md #: src/android/aidl/example-service/client.md -#, fuzzy msgid "\"libbinder_rs\"" msgstr "\"libbinder_rs\"" #: src/android/aidl/example-service/service.md #, fuzzy msgid "" -"Point out the path to the generated `IBirthdayService` trait, and explain " -"why each of the segments is necessary." +"Point out the path to the generated `IBirthdayService` trait, and explain why " +"each of the segments is necessary." msgstr "" -"Indicați calea către trăsătura generată `IBirthdayService` și explicați de " -"ce este necesar fiecare dintre segmente." +"Indicați calea către trăsătura generată `IBirthdayService` și explicați de ce " +"este necesar fiecare dintre segmente." #: src/android/aidl/example-service/service.md #, fuzzy @@ -14806,7 +13813,7 @@ msgstr "_birthday_service/src/server.rs_:" #: src/android/aidl/example-service/server.md #, fuzzy msgid "//! Birthday service.\n" -msgstr "//! Slujbă de ziua de naștere.\n" +msgstr "Tutorial cu un serviciu pentru ziua de naștere" #: src/android/aidl/example-service/server.md #, fuzzy @@ -14814,17 +13821,14 @@ msgid "/// Entry point for birthday service.\n" msgstr "/// Punct de intrare pentru serviciul de aniversare.\n" #: src/android/aidl/example-service/server.md -#, fuzzy msgid "\"Failed to register service\"" msgstr "\"Nu a reușit să înregistreze serviciul\"" #: src/android/aidl/example-service/server.md -#, fuzzy msgid "\"birthday_server\"" -msgstr "_birthday_service/src/lib.rs_:" +msgstr "\"birthday_server\"" #: src/android/aidl/example-service/server.md -#, fuzzy msgid "\"src/server.rs\"" msgstr "src/bin/server.rs_:" @@ -14837,18 +13841,17 @@ msgstr "// Pentru a evita eroarea de legătură dinamică.\n" #: src/android/aidl/example-service/server.md #, fuzzy msgid "" -"The process for taking a user-defined service implementation (in this case " -"the `BirthdayService` type, which implements the `IBirthdayService`) and " -"starting it as a Binder service has multiple steps, and may appear more " -"complicated than students are used to if they've used Binder from C++ or " -"another language. Explain to students why each step is necessary." +"The process for taking a user-defined service implementation (in this case the " +"`BirthdayService` type, which implements the `IBirthdayService`) and starting " +"it as a Binder service has multiple steps, and may appear more complicated than " +"students are used to if they've used Binder from C++ or another language. " +"Explain to students why each step is necessary." msgstr "" "Procesul de preluare a implementării unui serviciu definit de utilizator (în " -"acest caz, tipul `BirthdayService`, care implementează `IBirthdayService`) " -"și pornirea acestuia ca serviciu Binder are mai mulți pași și poate părea " -"mai complicat decât sunt obișnuiți studenții care au folosit Binder din C++ " -"sau dintr-un alt limbaj. Explicați-le elevilor de ce este necesar fiecare " -"pas." +"acest caz, tipul `BirthdayService`, care implementează `IBirthdayService`) și " +"pornirea acestuia ca serviciu Binder are mai mulți pași și poate părea mai " +"complicat decât sunt obișnuiți cursanții care au folosit Binder din C++ sau " +"dintr-un alt limbaj. Explicați-le elevilor de ce este necesar fiecare pas." #: src/android/aidl/example-service/server.md #, fuzzy @@ -14865,16 +13868,16 @@ msgid "" "`BirthdayService` within the generated `BnBinderService`." msgstr "" "Înfășurați obiectul serviciului în tipul `Bn*` corespunzător " -"(`BnBirthdayService` în acest caz). Acest tip este generat de Binder și " -"oferă funcționalitatea comună Binder care ar fi furnizată de clasa de bază " -"`BnBinder` în C++. În Rust nu avem moștenire, așa că în schimb folosim " -"compoziția, punând `BirthdayService` în cadrul `BnBinderService` generat." +"(`BnBirthdayService` în acest caz). Acest tip este generat de Binder și oferă " +"funcționalitatea comună Binder care ar fi furnizată de clasa de bază `BnBinder` " +"în C++. În Rust nu avem moștenire, așa că în schimb folosim compoziția, punând " +"`BirthdayService` în cadrul `BnBinderService` generat." #: src/android/aidl/example-service/server.md #, fuzzy msgid "" -"Call `add_service`, giving it a service identifier and your service object " -"(the `BnBirthdayService` object in the example)." +"Call `add_service`, giving it a service identifier and your service object (the " +"`BnBirthdayService` object in the example)." msgstr "" "Apelați `add_service`, dându-i un identificator de serviciu și obiectul " "serviciului dumneavoastră (obiectul `BnBirthdayService` în exemplul de față)." @@ -14882,8 +13885,8 @@ msgstr "" #: src/android/aidl/example-service/server.md #, fuzzy msgid "" -"Call `join_thread_pool` to add the current thread to Binder's thread pool " -"and start listening for connections." +"Call `join_thread_pool` to add the current thread to Binder's thread pool and " +"start listening for connections." msgstr "" "Apelați `join_thread_pool` pentru a adăuga firul curent la fondul de fire al " "Binder și pentru a începe să asculte conexiunile." @@ -14898,16 +13901,14 @@ msgstr "Acum putem construi, împinge și porni serviciul:" msgid "" "```shell\n" "m birthday_server\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_server\" /data/local/" -"tmp\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_server\" /data/local/tmp\n" "adb root\n" "adb shell /data/local/tmp/birthday_server\n" "```" msgstr "" "```shell\n" "m birthday_server\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_server /data/local/" -"tmp\"\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_server /data/local/tmp\"\n" "adb shell /data/local/tmp/birthday_server\n" "```" @@ -14929,8 +13930,7 @@ msgstr "Client AIDL" #: src/android/aidl/example-service/client.md #, fuzzy msgid "Finally, we can create a Rust client for our new service." -msgstr "" -"În cele din urmă, putem crea un client Rust pentru noul nostru serviciu." +msgstr "În cele din urmă, putem crea un client Rust pentru noul nostru serviciu." #: src/android/aidl/example-service/client.md #: src/android/aidl/example-service/changing-implementation.md @@ -14944,9 +13944,7 @@ msgid "/// Call the birthday service.\n" msgstr "/// Apelarea serviciului de aniversare.\n" #: src/android/aidl/example-service/client.md src/android/aidl/types/objects.md -#: src/android/aidl/types/parcelables.md -#: src/android/aidl/types/file-descriptor.md -#, fuzzy +#: src/android/aidl/types/parcelables.md src/android/aidl/types/file-descriptor.md msgid "\"Failed to connect to BirthdayService\"" msgstr "\"Nu a reușit să se conecteze la BirthdayService\"" @@ -14956,40 +13954,14 @@ msgid "// Call the service.\n" msgstr "/// Apelarea serviciului de aniversare.\n" #: src/android/aidl/example-service/client.md -#, fuzzy msgid "\"{msg}\"" -msgstr "" -"```rust,editable\n" -"enum Result {\n" -" Ok(i32),\n" -" Err(String),\n" -"}\n" -"\n" -"fn divide_in_two(n: i32) -> Result {\n" -" if n % 2 == 0 {\n" -" Result::Ok(n / 2)\n" -" } else {\n" -" Result::Err(format!(\"nu se poate împărți {n} în două părți " -"egale\"))\n" -" }\n" -"}\n" -"\n" -"fn main() {\n" -" let n = 100;\n" -" match divide_in_two(n) {\n" -" Result::Ok(half) => println!(\"{n} împărțit la doi este {half}\"),\n" -" Result::Err(msg) => println!(\"regret, a apărut o eroare: {msg}\"),\n" -" }\n" -"}\n" -"```" +msgstr "\"{msg}\"" #: src/android/aidl/example-service/client.md -#, fuzzy msgid "\"birthday_client\"" -msgstr "_birthday_service/src/client.rs_:" +msgstr "\"birthday_client\"" #: src/android/aidl/example-service/client.md -#, fuzzy msgid "\"src/client.rs\"" msgstr "src/bin/client.rs_:" @@ -15008,15 +13980,13 @@ msgstr "Creați, distribuiți și rulați clientul pe dispozitivul dvs:" msgid "" "```shell\n" "m birthday_client\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_client\" /data/local/" -"tmp\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_client\" /data/local/tmp\n" "adb shell /data/local/tmp/birthday_client Charlie 60\n" "```" msgstr "" "```shell\n" "m birthday_client\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_client /data/local/" -"tmp\"\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_client /data/local/tmp\"\n" "adb shell /data/local/tmp/birthday_client Charlie 60\n" "```" @@ -15033,47 +14003,45 @@ msgstr "" #, fuzzy msgid "" "`Strong` is a custom smart pointer type for Binder. It handles both an in-" -"process ref count for the service trait object, and the global Binder ref " -"count that tracks how many processes have a reference to the object." +"process ref count for the service trait object, and the global Binder ref count " +"that tracks how many processes have a reference to the object." msgstr "" -"`Strong` este un tip de pointer inteligent personalizat pentru Binder. " -"Acesta gestionează atât un număr de referințe în cadrul procesului pentru " -"obiectul de serviciu, cât și numărul global de referințe Binder care " -"urmărește câte procese au o referință la obiect." +"`Strong` este un tip de pointer inteligent personalizat pentru Binder. Acesta " +"gestionează atât un număr de referințe în cadrul procesului pentru obiectul de " +"serviciu, cât și numărul global de referințe Binder care urmărește câte procese " +"au o referință la obiect." #: src/android/aidl/example-service/client.md #, fuzzy msgid "" -"Note that the trait object that the client uses to talk to the service uses " -"the exact same trait that the server implements. For a given Binder " -"interface, there is a single Rust trait generated that both client and " -"server use." +"Note that the trait object that the client uses to talk to the service uses the " +"exact same trait that the server implements. For a given Binder interface, " +"there is a single Rust trait generated that both client and server use." msgstr "" -"Rețineți că obiectul de trăsătură pe care clientul îl utilizează pentru a " -"vorbi cu serviciul utilizează exact aceeași trăsătură pe care o " -"implementează serverul. Pentru o anumită interfață Binder, există o singură " -"trăsătură Rust generată pe care o utilizează atât clientul, cât și serverul." +"Rețineți că obiectul de trăsătură pe care clientul îl utilizează pentru a vorbi " +"cu serviciul utilizează exact aceeași trăsătură pe care o implementează " +"serverul. Pentru o anumită interfață Binder, există o singură trăsătură Rust " +"generată pe care o utilizează atât clientul, cât și serverul." #: src/android/aidl/example-service/client.md #, fuzzy msgid "" -"Use the same service identifier used when registering the service. This " -"should ideally be defined in a common crate that both the client and server " -"can depend on." +"Use the same service identifier used when registering the service. This should " +"ideally be defined in a common crate that both the client and server can depend " +"on." msgstr "" "Utilizați același identificator de serviciu utilizat la înregistrarea " -"serviciului. Ideal ar fi ca acesta să fie definit într-o casetă comună de " -"care să depindă atât clientul, cât și serverul." +"serviciului. Ideal ar fi ca acesta să fie definit într-o casetă comună de care " +"să depindă atât clientul, cât și serverul." #: src/android/aidl/example-service/changing-definition.md #, fuzzy msgid "" -"Let us extend the API with more functionality: we want to let clients " -"specify a list of lines for the birthday card:" +"Let us extend the API with more functionality: we want to let clients specify a " +"list of lines for the birthday card:" msgstr "" -"Să extindem API-ul cu mai multe funcționalități: dorim să permitem " -"clienților să specifice o listă de linii pentru felicitarea de ziua de " -"naștere:" +"Să extindem API-ul cu mai multe funcționalități: dorim să permitem clienților " +"să specifice o listă de linii pentru felicitarea de ziua de naștere:" #: src/android/aidl/example-service/changing-definition.md #, fuzzy @@ -15085,13 +14053,13 @@ msgstr "" #: src/android/aidl/example-service/changing-definition.md #, fuzzy msgid "" -"Note how the `String[]` in the AIDL definition is translated as a " -"`&[String]` in Rust, i.e. that idiomatic Rust types are used in the " -"generated bindings wherever possible:" +"Note how the `String[]` in the AIDL definition is translated as a `&[String]` " +"in Rust, i.e. that idiomatic Rust types are used in the generated bindings " +"wherever possible:" msgstr "" -"Observați cum `String[]` din definiția AIDL este tradus ca `&[String]` în " -"Rust, adică tipurile idiomatice Rust sunt utilizate în legăturile generate " -"ori de câte ori este posibil:" +"Observați cum `String[]` din definiția AIDL este tradus ca `&[String]` în Rust, " +"adică tipurile idiomatice Rust sunt utilizate în legăturile generate ori de " +"câte ori este posibil:" #: src/android/aidl/example-service/changing-definition.md #, fuzzy @@ -15129,7 +14097,6 @@ msgid "\"Habby birfday to yuuuuu\"" msgstr "\"Habby birfday to yuuuuuuu\"" #: src/android/aidl/example-service/changing-implementation.md -#, fuzzy msgid "\"And also: many more\"" msgstr "\"Și, de asemenea, multe altele\"" @@ -15161,8 +14128,8 @@ msgstr "" #, fuzzy msgid "Collection types like slices, `Vec`s and string types are supported." msgstr "" -"Sunt acceptate tipuri de colecții precum slices, `Vec`s și tipuri de șiruri " -"de caractere." +"Sunt acceptate tipuri de colecții precum slices, `Vec`s și tipuri de șiruri de " +"caractere." #: src/android/aidl/types.md #, fuzzy @@ -15206,17 +14173,12 @@ msgstr "`bool`" #: src/android/aidl/types/primitives.md #, fuzzy msgid "`byte`" -msgstr "`byte`" +msgstr "Șirurile de octeți vă permit să creați direct o valoare `&[u8]`:" #: src/android/aidl/types/primitives.md #, fuzzy msgid "`i8`" -msgstr "" -"Biblioteca standard are o implementare a `From pentru i16`, ceea ce " -"înseamnă că putem converti o variabilă `x` de tip `i8` în `i16` prin " -"apelarea `i16::from(x)`. Sau, mai simplu, cu `x.into()`, deoarece " -"implementarea `From for i16` creează automat o implementare a `Into " -"for i8`." +msgstr "`i8`, `i16`, `i32`, `i64`, `i128`, `isize`" #: src/android/aidl/types/primitives.md #, fuzzy @@ -15241,16 +14203,12 @@ msgstr "`int`" #: src/android/aidl/types/primitives.md #, fuzzy msgid "`i32`" -msgstr "" -"Ar fi avut loc o copiere implicită a matricei. Din moment ce `i32` este un " -"tip care implică copiere, atunci `[i32; 3]` implică, de asemenea, copierea." +msgstr "`i8`, `i16`, `i32`, `i64`, `i128`, `isize`" #: src/android/aidl/types/primitives.md #, fuzzy msgid "`long`" -msgstr "" -"Precizați că bucla `while let` va continua atâta timp cât valoarea se " -"potrivește cu modelul." +msgstr "// Eroare de despachetare deoarece `value` are o lungime de 4 bytes.\n" #: src/android/aidl/types/primitives.md #, fuzzy @@ -15260,7 +14218,7 @@ msgstr "`i64`" #: src/android/aidl/types/primitives.md #, fuzzy msgid "`float`" -msgstr "`float`" +msgstr "// EROARE: nicio implementare pentru `{float} == {integer}`\n" #: src/android/aidl/types/primitives.md #, fuzzy @@ -15284,8 +14242,8 @@ msgid "" "appropriate Rust array type depending on how they are used in the function " "signature:" msgstr "" -"Tipurile de matrice (`T[]`, `byte[]` și `List`) sunt convertite în tipul " -"de matrice Rust corespunzător, în funcție de modul în care sunt utilizate în " +"Tipurile de matrice (`T[]`, `byte[]` și `List`) sunt convertite în tipul de " +"matrice Rust corespunzător, în funcție de modul în care sunt utilizate în " "semnătura funcției:" #: src/android/aidl/types/arrays.md @@ -15295,7 +14253,10 @@ msgstr "Poziție" #: src/android/aidl/types/arrays.md #, fuzzy msgid "`in` argument" -msgstr "argument:" +msgstr "" +"/// Determină dacă primul argument este divizibil cu al doilea argument.\n" +"///\n" +"/// Dacă al doilea argument este zero, rezultatul este fals.\n" #: src/android/aidl/types/arrays.md #, fuzzy @@ -15318,36 +14279,32 @@ msgstr "Înapoi" #: src/android/aidl/types/arrays.md #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`Vec`" -msgstr "`Vec`" +msgstr "`Vec`" #: src/android/aidl/types/arrays.md #, fuzzy msgid "" -"In Android 13 or higher, fixed-size arrays are supported, i.e. `T[N]` " -"becomes `[T; N]`. Fixed-size arrays can have multiple dimensions (e.g. " -"int\\[3\\]\\[4\\]). In the Java backend, fixed-size arrays are represented " -"as array types." +"In Android 13 or higher, fixed-size arrays are supported, i.e. `T[N]` becomes " +"`[T; N]`. Fixed-size arrays can have multiple dimensions (e.g. `int[3][4]`). In " +"the Java backend, fixed-size arrays are represented as array types." msgstr "" -"În Android 13 sau versiunile ulterioare, sunt acceptate matricele de " -"dimensiuni fixe, adică `T[N]` devine `[T; N]`. Tablourile de dimensiuni fixe " -"pot avea dimensiuni multiple (de exemplu, int\\[3\\]\\[4\\]). În backend-ul " -"Java, array-urile de dimensiuni fixe sunt reprezentate ca tipuri de array-" -"uri." +"În Android 13 sau versiunile ulterioare, sunt acceptate matricele de dimensiuni " +"fixe, adică `T[N]` devine `[T; N]`. Tablourile de dimensiuni fixe pot avea " +"dimensiuni multiple (de exemplu, int\\[3\\]\\[4\\]). În backend-ul Java, array-" +"urile de dimensiuni fixe sunt reprezentate ca tipuri de array-uri." #: src/android/aidl/types/arrays.md #, fuzzy msgid "Arrays in parcelable fields always get translated to `Vec`." msgstr "" -"Array-urile din câmpurile parcelabile sunt întotdeauna convertite în " -"`Vec`." +"Array-urile din câmpurile parcelabile sunt întotdeauna convertite în `Vec`." #: src/android/aidl/types/objects.md #, fuzzy msgid "" -"AIDL objects can be sent either as a concrete AIDL type or as the type-" -"erased `IBinder` interface:" +"AIDL objects can be sent either as a concrete AIDL type or as the type-erased " +"`IBinder` interface:" msgstr "" "Obiectele AIDL pot fi trimise fie ca un tip AIDL concret, fie ca interfață " "`IBinder`, care a fost eliminată ca tip:" @@ -15412,8 +14369,8 @@ msgid "" "Note the usage of `BnBirthdayInfoProvider`. This serves the same purpose as " "`BnBirthdayService` that we saw previously." msgstr "" -"Rețineți utilizarea lui `BnBirthdayInfoProvider`. Acesta are același scop ca " -"și `BnBirthdayService` pe care l-am văzut anterior." +"Rețineți utilizarea lui `BnBirthdayInfoProvider`. Acesta are același scop ca și " +"`BnBirthdayService` pe care l-am văzut anterior." #: src/android/aidl/types/parcelables.md #, fuzzy @@ -15422,8 +14379,7 @@ msgstr "Binder for Rust acceptă trimiterea directă de colete:" #: src/android/aidl/types/parcelables.md #, fuzzy -msgid "" -"**birthday_service/aidl/com/example/birthdayservice/BirthdayInfo.aidl**:" +msgid "**birthday_service/aidl/com/example/birthdayservice/BirthdayInfo.aidl**:" msgstr "" "_birthday_service/aidl/com/exemple/birthdayservice/IBirthdayService.aidl_:" @@ -15450,21 +14406,17 @@ msgstr "/** Același lucru, dar încarcă informații dintr-un fișier. */" #, fuzzy msgid "// Open a file and put the birthday info in it.\n" msgstr "" -"// Deschideți un fișier și puneți informațiile despre ziua de naștere în " -"el.\n" +"// Deschideți un fișier și puneți informațiile despre ziua de naștere în el.\n" #: src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "\"/data/local/tmp/birthday.info\"" msgstr "\"/data/local/tmp/birthday.info\"" #: src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "\"{name}\"" -msgstr "Nume registru" +msgstr "\"{name}\"" #: src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "\"{years}\"" msgstr "\"{years}\"" @@ -15482,31 +14434,29 @@ msgstr "_birthday_service/src/lib.rs_:" #, fuzzy msgid "" "// Convert the file descriptor to a `File`. `ParcelFileDescriptor` wraps\n" -" // an `OwnedFd`, which can be cloned and then used to create a " -"`File`\n" +" // an `OwnedFd`, which can be cloned and then used to create a `File`\n" " // object.\n" msgstr "" "// Conversia descriptorului de fișier într-un `File`. `ParcelFileDescriptor` " "înfășoară\n" -" // un `OwnedFd`, care poate fi clonat și apoi utilizat pentru a crea " -"un `File`\n" +" // un `OwnedFd`, care poate fi clonat și apoi utilizat pentru a crea un " +"`File`\n" " // obiect.\n" #: src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "\"Invalid file handle\"" -msgstr "\"Lungime invalidă\"" +msgstr "\"Hanlder de fișier invalid\"" #: src/android/aidl/types/file-descriptor.md #, fuzzy msgid "" -"`ParcelFileDescriptor` wraps an `OwnedFd`, and so can be created from a " -"`File` (or any other type that wraps an `OwnedFd`), and can be used to " -"create a new `File` handle on the other side." +"`ParcelFileDescriptor` wraps an `OwnedFd`, and so can be created from a `File` " +"(or any other type that wraps an `OwnedFd`), and can be used to create a new " +"`File` handle on the other side." msgstr "" -"`ParcelFileDescriptor` înfășoară un `OwnedFd` și, prin urmare, poate fi " -"creat dintr-un `File` (sau orice alt tip care înfășoară un `OwnedFd`) și " -"poate fi utilizat pentru a crea un nou handle `File` pe partea cealaltă." +"`ParcelFileDescriptor` înfășoară un `OwnedFd` și, prin urmare, poate fi creat " +"dintr-un `File` (sau orice alt tip care înfășoară un `OwnedFd`) și poate fi " +"utilizat pentru a crea un nou handle `File` pe partea cealaltă." #: src/android/aidl/types/file-descriptor.md #, fuzzy @@ -15514,8 +14464,8 @@ msgid "" "Other types of file descriptors can be wrapped and sent, e.g. TCP, UDP, and " "UNIX sockets." msgstr "" -"Alte tipuri de descriptori de fișiere pot fi înfășurate și trimise, de " -"exemplu, TCP, UDP și socket-uri UNIX." +"Alte tipuri de descriptori de fișiere pot fi înfășurate și trimise, de exemplu, " +"TCP, UDP și socket-uri UNIX." #: src/android/testing.md #, fuzzy @@ -15525,8 +14475,8 @@ msgstr "Rust în Android" #: src/android/testing.md #, fuzzy msgid "" -"Building on [Testing](../testing.md), we will now look at how unit tests " -"work in AOSP. Use the `rust_test` module for your unit tests:" +"Building on [Testing](../testing.md), we will now look at how unit tests work " +"in AOSP. Use the `rust_test` module for your unit tests:" msgstr "" "Pornind de la [Testing](../testing.md), vom analiza acum modul în care " "funcționează testele unitare în AOSP. Utilizați modulul `rust_test` pentru " @@ -15538,29 +14488,24 @@ msgid "_testing/Android.bp_:" msgstr "hello_rust/Android.bp_:" #: src/android/testing.md -#, fuzzy msgid "\"libleftpad\"" -msgstr "\"libtextwrap\"" +msgstr "\"libleftpad\"" #: src/android/testing.md -#, fuzzy msgid "\"leftpad\"" msgstr "\"leftpad\"" #: src/android/testing.md -#, fuzzy msgid "\"libleftpad_test\"" -msgstr "\"libbirthday_bindgen_test\"" +msgstr "\"libleftpad_test\"" #: src/android/testing.md -#, fuzzy msgid "\"leftpad_test\"" msgstr "\"leftpad_test\"" #: src/android/testing.md src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"general-tests\"" -msgstr "Rust nesigur" +msgstr "\"general-tests\"" #: src/android/testing.md #, fuzzy @@ -15582,12 +14527,10 @@ msgid "\"{s:>width$}\"" msgstr "\"{s:>width$}\"" #: src/android/testing.md -#, fuzzy msgid "\" foo\"" -msgstr "\"foo\"" +msgstr "\" foo\"" #: src/android/testing.md -#, fuzzy msgid "\"foobar\"" msgstr "\"foo\"" @@ -15608,8 +14551,8 @@ msgid "" "INFO: Elapsed time: 2.666s, Critical Path: 2.40s\n" "INFO: 3 processes: 2 internal, 1 linux-sandbox.\n" "INFO: Build completed successfully, 3 total actions\n" -"//comprehensive-rust-android/testing:libleftpad_test_host PASSED " -"in 2.3s\n" +"//comprehensive-rust-android/testing:libleftpad_test_host PASSED in " +"2.3s\n" " PASSED libleftpad_test.tests::long_string (0.0s)\n" " PASSED libleftpad_test.tests::short_string (0.0s)\n" "Test cases: finished with 2 passing and 0 failing out of 2 test cases\n" @@ -15619,12 +14562,12 @@ msgstr "" "INFO: Timp scurs: 2.666s, Calea critică: 2.40s\n" "INFO: 3 procese: 2 interne, 1 linux-sandbox.\n" "INFO: Construirea s-a finalizat cu succes, 3 acțiuni totale\n" -"//comprehensive-rust-android/testing/testing:libleftpad_test_host A TRECUT " -"în 2.3s\n" +"//comprehensive-rust-android/testing/testing:libleftpad_test_host A TRECUT în " +"2.3s\n" " A TRECUT libleftpad_test.tests::long_string (0.0s)\n" " A TRECUT libleftpad_test.tests::short_string (0.0s)\n" -"Cazuri de testare: finalizat cu 2 cazuri de trecere și 0 eșecuri din 2 " -"cazuri de testare\n" +"Cazuri de testare: finalizat cu 2 cazuri de trecere și 0 eșecuri din 2 cazuri " +"de testare\n" "```" #: src/android/testing.md @@ -15642,16 +14585,14 @@ msgid "" "The [GoogleTest](https://docs.rs/googletest/) crate allows for flexible test " "assertions using _matchers_:" msgstr "" -"[googletest](https://docs.rs/googletest): Bibliotecă cuprinzătoare de " -"testare a afirmațiilor de testare în tradiția GoogleTest pentru C++." +"[googletest](https://docs.rs/googletest): Bibliotecă cuprinzătoare de testare a " +"afirmațiilor de testare în tradiția GoogleTest pentru C++." #: src/android/testing/googletest.md -#, fuzzy msgid "\"baz\"" msgstr "\"baz\"" #: src/android/testing/googletest.md -#, fuzzy msgid "\"xyz\"" msgstr "\"xyz\"" @@ -15661,19 +14602,19 @@ msgid "" "If we change the last element to `\"!\"`, the test fails with a structured " "error message pin-pointing the error:" msgstr "" -"Dacă schimbăm ultimul element în `\"!\"`, testul eșuează cu un mesaj de " -"eroare structurat care indică eroarea:" +"Dacă schimbăm ultimul element în `\"!\"`, testul eșuează cu un mesaj de eroare " +"structurat care indică eroarea:" #: src/android/testing/googletest.md #, fuzzy msgid "" -"GoogleTest is not part of the Rust Playground, so you need to run this " -"example in a local environment. Use `cargo add googletest` to quickly add it " -"to an existing Cargo project." +"GoogleTest is not part of the Rust Playground, so you need to run this example " +"in a local environment. Use `cargo add googletest` to quickly add it to an " +"existing Cargo project." msgstr "" -"GoogleTest nu face parte din Rust Playground, așa că trebuie să executați " -"acest exemplu într-un mediu local. Utilizați `cargo add googletest` pentru a-" -"l adăuga rapid la un proiect Cargo existent." +"GoogleTest nu face parte din Rust Playground, așa că trebuie să executați acest " +"exemplu într-un mediu local. Utilizați `cargo add googletest` pentru a-l adăuga " +"rapid la un proiect Cargo existent." #: src/android/testing/googletest.md #, fuzzy @@ -15683,35 +14624,34 @@ msgid "" "html)." msgstr "" "Linia `use googletest::prelude::*;` importă un număr de [macros și tipuri " -"utilizate în mod obișnuit](https://docs.rs/googletest/latest/googletest/" -"prelude/index.html)." +"utilizate în mod obișnuit](https://docs.rs/googletest/latest/googletest/prelude/" +"index.html)." #: src/android/testing/googletest.md #, fuzzy msgid "" "This just scratches the surface, there are many builtin matchers. Consider " -"going through the first chapter of [\"Advanced testing for Rust " -"applications\"](https://github.com/mainmatter/rust-advanced-testing-" -"workshop), a self-guided Rust course: it provides a guided introduction to " -"the library, with exercises to help you get comfortable with `googletest` " -"macros, its matchers and its overall philosophy." +"going through the first chapter of [\"Advanced testing for Rust applications\"]" +"(https://rust-exercises.com/advanced-testing/), a self-guided Rust course: it " +"provides a guided introduction to the library, with exercises to help you get " +"comfortable with `googletest` macros, its matchers and its overall philosophy." msgstr "" "Acest lucru este doar o mică parte, deoarece există numeroase elemente de " "potrivire încorporate. Luați în considerare parcurgerea primului capitol din " -"[\"Testare avansată pentru aplicații Rust\"](https://github.com/mainmatter/" -"rust-advanced-testing-workshop), un curs Rust auto-ghidat: acesta oferă o " +"[\"Testare avansată pentru aplicații Rust\"](https://github.com/mainmatter/rust-" +"advanced-testing-workshop), un curs Rust auto-ghidat: acesta oferă o " "introducere ghidată în bibliotecă, cu exerciții care să vă ajute să vă " -"acomodați cu macro-urile `googletest`, cu potrivitorii săi și cu filozofia " -"sa generală." +"acomodați cu macro-urile `googletest`, cu potrivitorii săi și cu filozofia sa " +"generală." #: src/android/testing/googletest.md #, fuzzy msgid "" -"A particularly nice feature is that mismatches in multi-line strings are " -"shown as a diff:" +"A particularly nice feature is that mismatches in multi-line strings are shown " +"as a diff:" msgstr "" -"O caracteristică deosebit de plăcută este faptul că neconcordanțele în " -"șirurile de caractere de mai multe linii sunt afișate sub forma unui dif:" +"O caracteristică deosebit de plăcută este faptul că neconcordanțele în șirurile " +"de caractere de mai multe linii sunt afișate sub forma unui dif:" #: src/android/testing/googletest.md #, fuzzy @@ -15752,74 +14692,73 @@ msgstr "" #: src/android/testing/mocking.md #, fuzzy msgid "" -"For mocking, [Mockall](https://docs.rs/mockall/) is a widely used library. " -"You need to refactor your code to use traits, which you can then quickly " -"mock:" +"For mocking, [Mockall](https://docs.rs/mockall/) is a widely used library. You " +"need to refactor your code to use traits, which you can then quickly mock:" msgstr "" -"Pentru mocking, [Mockall](https://docs.rs/mockall/) este o bibliotecă " -"utilizată pe scară largă. Trebuie să vă refactorizați codul pentru a utiliza " -"trăsături, pe care le puteți apoi mock-ui rapid:" +"Pentru mocking, [Mockall](https://docs.rs/mockall/) este o bibliotecă utilizată " +"pe scară largă. Trebuie să vă refactorizați codul pentru a utiliza trăsături, " +"pe care le puteți apoi mock-ui rapid:" #: src/android/testing/mocking.md #, fuzzy msgid "" -"Mockall is the recommended mocking library in Android (AOSP). There are " -"other [mocking libraries available on crates.io](https://crates.io/keywords/" -"mock), in particular in the area of mocking HTTP services. The other mocking " -"libraries work in a similar fashion as Mockall, meaning that they make it " -"easy to get a mock implementation of a given trait." +"Mockall is the recommended mocking library in Android (AOSP). There are other " +"[mocking libraries available on crates.io](https://crates.io/keywords/mock), in " +"particular in the area of mocking HTTP services. The other mocking libraries " +"work in a similar fashion as Mockall, meaning that they make it easy to get a " +"mock implementation of a given trait." msgstr "" "Sfatul de aici este pentru Android (AOSP), unde Mockall este biblioteca de " "mocking recomandată. Există și alte [biblioteci de mocking disponibile pe " "crates.io](https://crates.io/keywords/mock), în special în domeniul mocking-" -"ului serviciilor HTTP. Celelalte biblioteci de mocking funcționează într-un " -"mod similar cu Mockall, ceea ce înseamnă că acestea facilitează obținerea " -"unei implementări simulate a unei anumite trăsături." +"ului serviciilor HTTP. Celelalte biblioteci de mocking funcționează într-un mod " +"similar cu Mockall, ceea ce înseamnă că acestea facilitează obținerea unei " +"implementări simulate a unei anumite trăsături." #: src/android/testing/mocking.md #, fuzzy msgid "" "Note that mocking is somewhat _controversial_: mocks allow you to completely " -"isolate a test from its dependencies. The immediate result is faster and " -"more stable test execution. On the other hand, the mocks can be configured " -"wrongly and return output different from what the real dependencies would do." +"isolate a test from its dependencies. The immediate result is faster and more " +"stable test execution. On the other hand, the mocks can be configured wrongly " +"and return output different from what the real dependencies would do." msgstr "" -"Rețineți că mocking-ul este oarecum _controversat_: mocks vă permite să " -"izolați complet un test de dependențele sale. Rezultatul imediat este o " -"execuție mai rapidă și mai stabilă a testelor. Pe de altă parte, mock-urile " -"pot fi configurate greșit și pot returna rezultate diferite de cele pe care " -"le-ar face dependențele reale." +"Rețineți că mocking-ul este oarecum _controversat_: mocks vă permite să izolați " +"complet un test de dependențele sale. Rezultatul imediat este o execuție mai " +"rapidă și mai stabilă a testelor. Pe de altă parte, mock-urile pot fi " +"configurate greșit și pot returna rezultate diferite de cele pe care le-ar face " +"dependențele reale." #: src/android/testing/mocking.md #, fuzzy msgid "" -"If at all possible, it is recommended that you use the real dependencies. As " -"an example, many databases allow you to configure an in-memory backend. This " -"means that you get the correct behavior in your tests, plus they are fast " -"and will automatically clean up after themselves." +"If at all possible, it is recommended that you use the real dependencies. As an " +"example, many databases allow you to configure an in-memory backend. This means " +"that you get the correct behavior in your tests, plus they are fast and will " +"automatically clean up after themselves." msgstr "" "Dacă este posibil, se recomandă să folosiți dependențele reale. Ca exemplu, " -"multe baze de date vă permit să configurați un backend în memorie. Acest " -"lucru înseamnă că obțineți comportamentul corect în testele dvs., în plus, " -"sunt rapide și se vor curăța automat după ele însele." +"multe baze de date vă permit să configurați un backend în memorie. Acest lucru " +"înseamnă că obțineți comportamentul corect în testele dvs., în plus, sunt " +"rapide și se vor curăța automat după ele însele." #: src/android/testing/mocking.md #, fuzzy msgid "" "Similarly, many web frameworks allow you to start an in-process server which " -"binds to a random port on `localhost`. Always prefer this over mocking away " -"the framework since it helps you test your code in the real environment." +"binds to a random port on `localhost`. Always prefer this over mocking away the " +"framework since it helps you test your code in the real environment." msgstr "" -"În mod similar, multe cadre web vă permit să porniți un server în proces " -"care se leagă la un port aleatoriu pe `localhost`. Preferați întotdeauna " -"acest lucru în locul mocking-ului în afara cadrului, deoarece vă ajută să vă " -"testați codul în mediul real." +"În mod similar, multe cadre web vă permit să porniți un server în proces care " +"se leagă la un port aleatoriu pe `localhost`. Preferați întotdeauna acest lucru " +"în locul mocking-ului în afara cadrului, deoarece vă ajută să vă testați codul " +"în mediul real." #: src/android/testing/mocking.md #, fuzzy msgid "" -"Mockall is not part of the Rust Playground, so you need to run this example " -"in a local environment. Use `cargo add mockall` to quickly add Mockall to an " +"Mockall is not part of the Rust Playground, so you need to run this example in " +"a local environment. Use `cargo add mockall` to quickly add Mockall to an " "existing Cargo project." msgstr "" "Mockall nu face parte din Rust Playground, așa că trebuie să executați acest " @@ -15830,33 +14769,33 @@ msgstr "" #, fuzzy msgid "" "Mockall has a lot more functionality. In particular, you can set up " -"expectations which depend on the arguments passed. Here we use this to mock " -"a cat which becomes hungry 3 hours after the last time it was fed:" +"expectations which depend on the arguments passed. Here we use this to mock a " +"cat which becomes hungry 3 hours after the last time it was fed:" msgstr "" "Mockall are mult mai multe funcționalități. În special, puteți configura " -"așteptări care depind de argumentele transmise. Aici folosim acest lucru " -"pentru a imita o pisică care devine flămândă la 3 ore după ce a fost hrănită " -"ultima dată:" +"așteptări care depind de argumentele transmise. Aici folosim acest lucru pentru " +"a imita o pisică care devine flămândă la 3 ore după ce a fost hrănită ultima " +"dată:" #: src/android/testing/mocking.md #, fuzzy msgid "" "You can use `.times(n)` to limit the number of times a mock method can be " -"called to `n` --- the mock will automatically panic when dropped if this " -"isn't satisfied." +"called to `n` --- the mock will automatically panic when dropped if this isn't " +"satisfied." msgstr "" -"Puteți utiliza `.times(n)` pentru a limita numărul de apeluri ale unei " -"metode mock la `n` --- mock-ul va intra automat în panică atunci când va fi " -"abandonat dacă acest lucru nu este îndeplinit." +"Puteți utiliza `.times(n)` pentru a limita numărul de apeluri ale unei metode " +"mock la `n` --- mock-ul va intra automat în panică atunci când va fi abandonat " +"dacă acest lucru nu este îndeplinit." #: src/android/logging.md #, fuzzy msgid "" -"You should use the `log` crate to automatically log to `logcat` (on-device) " -"or `stdout` (on-host):" +"You should use the `log` crate to automatically log to `logcat` (on-device) or " +"`stdout` (on-host):" msgstr "" -"Ar trebui să folosiți caseta `log` pentru a înregistra automat în `logcat` " -"(pe dispozitiv) sau `stdout` (pe gazdă):" +"Ar trebui să folosiți caseta `log` pentru a înregistra automat în `logcat` (pe " +"dispozitiv) sau `stdout` (pe gazdă):" #: src/android/logging.md #, fuzzy @@ -15864,17 +14803,14 @@ msgid "_hello_rust_logs/Android.bp_:" msgstr "salut_rust_logs/Android.bp_:" #: src/android/logging.md -#, fuzzy msgid "\"hello_rust_logs\"" -msgstr "salut_rust_logs/Android.bp_:" +msgstr "\"hello_rust_logs\"" #: src/android/logging.md -#, fuzzy msgid "\"liblog_rust\"" msgstr "\"liblog_rust\"" #: src/android/logging.md -#, fuzzy msgid "\"liblogger\"" msgstr "\"liblogger\"" @@ -15894,24 +14830,18 @@ msgid "/// Logs a greeting.\n" msgstr "/// Înregistrează o salutare.\n" #: src/android/logging.md -#, fuzzy msgid "\"rust\"" -msgstr "" -"Concurența în Rust:\n" -"A se vedea [Concurența în Rust](concurrency.md)." +msgstr "\"rust\"" #: src/android/logging.md -#, fuzzy msgid "\"Starting program.\"" -msgstr "\"Program de pornire.\"" +msgstr "\"Pornire program\"" #: src/android/logging.md -#, fuzzy msgid "\"Things are going fine.\"" msgstr "\"Lucrurile merg bine.\"" #: src/android/logging.md -#, fuzzy msgid "\"Something went wrong!\"" msgstr "\"Ceva a mers prost!\"" @@ -15927,15 +14857,13 @@ msgstr "" msgid "" "```shell\n" "m hello_rust_logs\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs\" /data/local/" -"tmp\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs\" /data/local/tmp\n" "adb shell /data/local/tmp/hello_rust_logs\n" "```" msgstr "" "```shell\n" "m hello_rust_logs\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs /data/local/" -"tmp\"\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs /data/local/tmp\"\n" "adb shell /data/local/tmp/hello_rust_logs\n" "```" @@ -15950,8 +14878,8 @@ msgid "" "Rust has excellent support for interoperability with other languages. This " "means that you can:" msgstr "" -"Rust are un suport excelent pentru interoperabilitatea cu alte limbaje. " -"Acest lucru înseamnă că puteți:" +"Rust are un suport excelent pentru interoperabilitatea cu alte limbaje. Acest " +"lucru înseamnă că puteți:" #: src/android/interoperability.md #, fuzzy @@ -15983,9 +14911,9 @@ msgid "" "Rust has full support for linking object files with a C calling convention. " "Similarly, you can export Rust functions and call them from C." msgstr "" -"Rust are un suport complet pentru legarea fișierelor de obiecte cu o " -"convenție de apelare C. În mod similar, puteți exporta funcții Rust și le " -"puteți apela din C." +"Rust are un suport complet pentru legarea fișierelor de obiecte cu o convenție " +"de apelare C. În mod similar, puteți exporta funcții Rust și le puteți apela " +"din C." #: src/android/interoperability/with-c.md #, fuzzy @@ -15998,15 +14926,14 @@ msgid "// SAFETY: `abs` doesn't have any safety requirements.\n" msgstr "// SIGURANȚĂ: `abs` nu are nicio cerință de siguranță.\n" #: src/android/interoperability/with-c.md -#, fuzzy msgid "\"{x}, {abs_x}\"" msgstr "\"{x}, {abs_x}\"" #: src/android/interoperability/with-c.md #, fuzzy msgid "" -"We already saw this in the [Safe FFI Wrapper exercise](../../exercises/day-3/" -"safe-ffi-wrapper.md)." +"We already saw this in the [Safe FFI Wrapper exercise](../../unsafe-rust/" +"exercise.md)." msgstr "" "Am văzut deja acest lucru în [Exercițiul [Safe FFI Wrapper] (../../exerciții/" "zi-3/safe-ffi-wrapper.md)." @@ -16017,8 +14944,8 @@ msgid "" "This assumes full knowledge of the target platform. Not recommended for " "production." msgstr "" -"Acest lucru presupune cunoașterea completă a platformei țintă. Nu se " -"recomandă pentru producție." +"Acest lucru presupune cunoașterea completă a platformei țintă. Nu se recomandă " +"pentru producție." #: src/android/interoperability/with-c.md #, fuzzy @@ -16033,8 +14960,8 @@ msgstr "Utilizarea Bindgen" #: src/android/interoperability/with-c/bindgen.md #, fuzzy msgid "" -"The [bindgen](https://rust-lang.github.io/rust-bindgen/introduction.html) " -"tool can auto-generate bindings from a C header file." +"The [bindgen](https://rust-lang.github.io/rust-bindgen/introduction.html) tool " +"can auto-generate bindings from a C header file." msgstr "" "Instrumentul [bindgen](https://rust-lang.github.io/rust-bindgen/introduction." "html) poate genera automat legăturile dintr-un fișier de antet C." @@ -16060,20 +14987,14 @@ msgid "" msgstr "" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"libbirthday.h\"" -msgstr "" -"```c\n" -"#include \"libbirthday.h\"\n" -"```" +msgstr "\"libbirthday.h\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"+--------------\\n\"" -msgstr "\"fib(n) = {}\"" +msgstr "\"+--------------\\n\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"| Happy Birthday %s!\\n\"" msgstr "\"| La mulți ani %s!\\n\"" @@ -16093,12 +15014,10 @@ msgid "_interoperability/bindgen/Android.bp_:" msgstr "interoperabilitate/bindgen/Android.bp_:" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"libbirthday\"" msgstr "\"libbirthday\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"libbirthday.c\"" msgstr "\"libbirthday.c\"" @@ -16122,17 +15041,14 @@ msgid "You can now auto-generate the bindings:" msgstr "Acum puteți să generați automat legăturile:" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"libbirthday_bindgen\"" msgstr "\"libbirthday_bindgen\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"birthday_bindgen\"" -msgstr "`rust_bindgen`" +msgstr "\"birthday_bindgen\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"libbirthday_wrapper.h\"" msgstr "\"libbirthday_wrapper.h\"" @@ -16147,12 +15063,10 @@ msgid "Finally, we can use the bindings in our Rust program:" msgstr "În cele din urmă, putem utiliza legăturile în programul nostru Rust:" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"print_birthday_card\"" msgstr "\"print_birthday_card\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"main.rs\"" msgstr "_main.rs_:" @@ -16170,16 +15084,14 @@ msgstr "//! Bindgen demo.\n" #, fuzzy msgid "" "// SAFETY: The pointer we pass is valid because it came from a Rust\n" -" // reference, and the `name` it contains refers to `name` above which " -"also\n" -" // remains valid. `print_card` doesn't store either pointer to use " -"later\n" +" // reference, and the `name` it contains refers to `name` above which also\n" +" // remains valid. `print_card` doesn't store either pointer to use later\n" " // after it returns.\n" msgstr "" -"// SIGURANȚĂ: Pointerul pe care îl trecem este valid pentru că provine dintr-" -"un Rust\n" -" // referință, iar `name` pe care îl conține se referă la `name` de mai " -"sus, care de asemenea\n" +"// SIGURANȚĂ: Pointerul pe care îl trecem este valid pentru că provine dintr-un " +"Rust\n" +" // referință, iar `name` pe care îl conține se referă la `name` de mai sus, " +"care de asemenea\n" " // rămâne valabil. `print_card` nu stochează niciunul dintre cei doi " "pointeri pentru a-i folosi ulterior\n" " // după ce se întoarce.\n" @@ -16209,31 +15121,16 @@ msgstr "" "legăturile funcționează:" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"libbirthday_bindgen_test\"" msgstr "\"libbirthday_bindgen_test\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\":libbirthday_bindgen\"" msgstr "\":libbirthday_bindgen\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"none\"" -msgstr "" -"```rust,editabile\n" -"fn main() {\n" -" match std::env::args().next().as_deref() {\n" -" Some(\"cat\") => println!(\"Va face lucruri de pisică\"),\n" -" Some(\"ls\") => println!(\"Va face ls unor fișiere\"),\n" -" Some(\"mv\") => println!(\"Va muta niște fișiere\"),\n" -" Some(\"rm\") => println!(\"Uh, periculos!\"),\n" -" None => println!(\"Hmm, niciun nume de program?\"),\n" -" _ => println!(\"Nume de program necunoscut!\"),\n" -" }\n" -"}\n" -"```" +msgstr "\"nimic\"" #: src/android/interoperability/with-c/bindgen.md #, fuzzy @@ -16266,12 +15163,10 @@ msgid "/// Analyze the numbers.\n" msgstr "/// Analizați numerele.\n" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"x ({x}) is smallest!\"" msgstr "\"x ({x}) este cel mai mic!\"" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"y ({y}) is probably larger than x ({x})\"" msgstr "\"y ({y}) este probabil mai mare decât x ({x})\"" @@ -16286,17 +15181,14 @@ msgid "_interoperability/rust/libanalyze/Android.bp_" msgstr "interoperabilitate/interoperabilitate/rusine/libanaliza/Android.bp_" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"libanalyze_ffi\"" msgstr "\"libanalyze_ffi\"" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"analyze_ffi\"" msgstr "\"analyze_ffi\"" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"analyze.rs\"" msgstr "\"analyze.rs\"" @@ -16311,7 +15203,6 @@ msgid "_interoperability/rust/analyze/main.c_" msgstr "interoperabilitate/rust/analiza/main.c_" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"analyze.h\"" msgstr "\"analyze.h\"" @@ -16321,12 +15212,10 @@ msgid "_interoperability/rust/analyze/Android.bp_" msgstr "interoperabilitate/încălzire/antreprenoriat/analiza/Android.bp_" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"analyze_numbers\"" msgstr "\"analyze_numbers\"" #: src/android/interoperability/with-c/rust.md -#, fuzzy msgid "\"main.c\"" msgstr "\"main.c\"" @@ -16335,38 +15224,35 @@ msgstr "\"main.c\"" msgid "" "```shell\n" "m analyze_numbers\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers\" /data/local/" -"tmp\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers\" /data/local/tmp\n" "adb shell /data/local/tmp/analyze_numbers\n" "```" msgstr "" "```shell\n" "m analyze_numbers\n" -"adb push \"$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers /data/local/" -"tmp\"\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers /data/local/tmp\"\n" "adb shell /data/local/tmp/analyze_numbers\n" "```" #: src/android/interoperability/with-c/rust.md #, fuzzy msgid "" -"`#[no_mangle]` disables Rust's usual name mangling, so the exported symbol " -"will just be the name of the function. You can also use `#[export_name = " +"`#[no_mangle]` disables Rust's usual name mangling, so the exported symbol will " +"just be the name of the function. You can also use `#[export_name = " "\"some_name\"]` to specify whatever name you want." msgstr "" "`#[no_mangle]` dezactivează manipularea obișnuită a numelor din Rust, astfel " -"încât simbolul exportat va fi doar numele funcției. De asemenea, puteți " -"utiliza `#[export_name = \"some_name\"]` pentru a specifica orice nume " -"doriți." +"încât simbolul exportat va fi doar numele funcției. De asemenea, puteți utiliza " +"`#[export_name = \"some_name\"]` pentru a specifica orice nume doriți." #: src/android/interoperability/cpp.md #, fuzzy msgid "" -"The [CXX crate](https://cxx.rs/) makes it possible to do safe " -"interoperability between Rust and C++." +"The [CXX crate](https://cxx.rs/) makes it possible to do safe interoperability " +"between Rust and C++." msgstr "" -"[CXX crate](https://cxx.rs/) face posibilă realizarea unei " -"interoperabilități sigure între Rust și C++." +"[CXX crate](https://cxx.rs/) face posibilă realizarea unei interoperabilități " +"sigure între Rust și C++." #: src/android/interoperability/cpp.md #, fuzzy @@ -16380,13 +15266,12 @@ msgid "" "from each language to the other. You provide this description using extern " "blocks in a Rust module annotated with the `#[cxx::bridge]` attribute macro." msgstr "" -"CXX se bazează pe o descriere a semnăturilor funcțiilor care vor fi expuse " -"de la un limbaj la celălalt. Această descriere este furnizată cu ajutorul " +"CXX se bazează pe o descriere a semnăturilor funcțiilor care vor fi expuse de " +"la un limbaj la celălalt. Această descriere este furnizată cu ajutorul " "blocurilor externe dintr-un modul Rust adnotat cu macroul atribut `#[cxx::" "bridge]`." #: src/android/interoperability/cpp/bridge.md -#, fuzzy msgid "\"org::blobstore\"" msgstr "\"org::blobstore\"" @@ -16408,11 +15293,8 @@ msgstr "// Tipuri și semnături Rust expuse în C++.\n" #: src/chromium/interoperability-with-cpp/example-bindings.md #: src/chromium/interoperability-with-cpp/error-handling-qr.md #: src/chromium/interoperability-with-cpp/error-handling-png.md -#, fuzzy msgid "\"Rust\"" -msgstr "" -"Concurența în Rust:\n" -"A se vedea [Concurența în Rust](concurrency.md)." +msgstr "\"Rust\"" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/cpp-bridge.md @@ -16424,13 +15306,11 @@ msgstr "// Tipuri și semnături C++ expuse în Rust.\n" #: src/android/interoperability/cpp/cpp-bridge.md #: src/android/interoperability/cpp/cpp-exception.md #: src/chromium/interoperability-with-cpp/example-bindings.md -#, fuzzy msgid "\"C++\"" msgstr "Cu C" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/cpp-bridge.md -#, fuzzy msgid "\"include/blobstore.h\"" msgstr "\"include/blobstore.h\"" @@ -16445,26 +15325,25 @@ msgstr "" #, fuzzy msgid "" "From the declarations made in the bridge module, CXX will generate matching " -"Rust and C++ type/function definitions in order to expose those items to " -"both languages." +"Rust and C++ type/function definitions in order to expose those items to both " +"languages." msgstr "" "Din declarațiile făcute în modulul punte, CXX va genera definiții de tip/" -"funcție Rust și C++ corespunzătoare pentru a expune aceste elemente în " -"ambele limbaje." +"funcție Rust și C++ corespunzătoare pentru a expune aceste elemente în ambele " +"limbaje." #: src/android/interoperability/cpp/bridge.md #, fuzzy msgid "" -"To view the generated Rust code, use [cargo-expand](https://github.com/" -"dtolnay/cargo-expand) to view the expanded proc macro. For most of the " -"examples you would use `cargo expand ::ffi` to expand just the `ffi` module " -"(though this doesn't apply for Android projects)." +"To view the generated Rust code, use [cargo-expand](https://github.com/dtolnay/" +"cargo-expand) to view the expanded proc macro. For most of the examples you " +"would use `cargo expand ::ffi` to expand just the `ffi` module (though this " +"doesn't apply for Android projects)." msgstr "" -"Pentru a vizualiza codul Rust generat, utilizați [cargo-expand](https://" -"github.com/dtolnay/cargo-expand) pentru a vizualiza macroul proc extins. " -"Pentru majoritatea exemplelor, veți folosi `cargo expand ::ffi` pentru a " -"extinde doar modulul `ffi` (deși acest lucru nu se aplică pentru proiectele " -"Android)." +"Pentru a vizualiza codul Rust generat, utilizați [cargo-expand](https://github." +"com/dtolnay/cargo-expand) pentru a vizualiza macroul proc extins. Pentru " +"majoritatea exemplelor, veți folosi `cargo expand ::ffi` pentru a extinde doar " +"modulul `ffi` (deși acest lucru nu se aplică pentru proiectele Android)." #: src/android/interoperability/cpp/bridge.md #, fuzzy @@ -16503,10 +15382,10 @@ msgstr "" #: src/android/interoperability/cpp/rust-bridge.md #, fuzzy msgid "" -"The CXX code generator uses your `extern \"Rust\"` section(s) to produce a C+" -"+ header file containing the corresponding C++ declarations. The generated " -"header has the same path as the Rust source file containing the bridge, " -"except with a .rs.h file extension." +"The CXX code generator uses your `extern \"Rust\"` section(s) to produce a C++ " +"header file containing the corresponding C++ declarations. The generated header " +"has the same path as the Rust source file containing the bridge, except with a ." +"rs.h file extension." msgstr "" "Generatorul de cod CXX utilizează secțiunea (secțiunile) `extern \"Rust\"` " "pentru a produce un fișier antet C++ care conține declarațiile C++ " @@ -16529,31 +15408,29 @@ msgid "Results in (roughly) the following Rust:" msgstr "Rezultă (aproximativ) următorul Rust:" #: src/android/interoperability/cpp/cpp-bridge.md -#, fuzzy msgid "\"org$blobstore$cxxbridge1$new_blobstore_client\"" msgstr "\"org$blobstore$cxxbridge1$new_blobstore_client\"" #: src/android/interoperability/cpp/cpp-bridge.md -#, fuzzy msgid "\"org$blobstore$cxxbridge1$BlobstoreClient$put\"" msgstr "\"org$blobstore$cxxbridge1$BlobstoreClient$put\"" #: src/android/interoperability/cpp/cpp-bridge.md #, fuzzy msgid "" -"The programmer does not need to promise that the signatures they have typed " -"in are accurate. CXX performs static assertions that the signatures exactly " +"The programmer does not need to promise that the signatures they have typed in " +"are accurate. CXX performs static assertions that the signatures exactly " "correspond with what is declared in C++." msgstr "" -"Programatorul nu trebuie să promită că semnăturile pe care le-a introdus " -"sunt corecte. CXX efectuează verificări statice pentru a se asigura că " -"semnăturile corespund exact cu ceea ce este declarat în C++." +"Programatorul nu trebuie să promită că semnăturile pe care le-a introdus sunt " +"corecte. CXX efectuează verificări statice pentru a se asigura că semnăturile " +"corespund exact cu ceea ce este declarat în C++." #: src/android/interoperability/cpp/cpp-bridge.md #, fuzzy msgid "" -"`unsafe extern` blocks allow you to declare C++ functions that are safe to " -"call from Rust." +"`unsafe extern` blocks allow you to declare C++ functions that are safe to call " +"from Rust." msgstr "" "blocurile `unsafe extern` vă permit să declarați funcții C++ care pot fi " "apelate în siguranță din Rust." @@ -16577,9 +15454,9 @@ msgid "" "corresponding C++ type." msgstr "" "Un număr limitat de trăsături sunt acceptate pentru `#[derive()]` pe tipuri " -"partajate. Funcționalitatea corespunzătoare este, de asemenea, generată " -"pentru codul C++, de exemplu, dacă derivați `Hash`, se generează și o " -"implementare a `std::hash` pentru tipul C++ corespunzător." +"partajate. Funcționalitatea corespunzătoare este, de asemenea, generată pentru " +"codul C++, de exemplu, dacă derivați `Hash`, se generează și o implementare a " +"`std::hash` pentru tipul C++ corespunzător." #: src/android/interoperability/cpp/shared-enums.md msgid "Generated Rust:" @@ -16593,23 +15470,21 @@ msgstr "Cod C++ generat:" #, fuzzy msgid "" "On the Rust side, the code generated for shared enums is actually a struct " -"wrapping a numeric value. This is because it is not UB in C++ for an enum " -"class to hold a value different from all of the listed variants, and our " -"Rust representation needs to have the same behavior." +"wrapping a numeric value. This is because it is not UB in C++ for an enum class " +"to hold a value different from all of the listed variants, and our Rust " +"representation needs to have the same behavior." msgstr "" -"În ceea ce privește Rust, codul generat pentru enumerațiile partajate este " -"de fapt o structură care înfășoară o valoare numerică. Acest lucru se " -"datorează faptului că nu este UB în C++ ca o clasă enum să dețină o valoare " -"diferită de toate variantele enumerate, iar reprezentarea noastră Rust " -"trebuie să aibă același comportament." +"În ceea ce privește Rust, codul generat pentru enumerațiile partajate este de " +"fapt o structură care înfășoară o valoare numerică. Acest lucru se datorează " +"faptului că nu este UB în C++ ca o clasă enum să dețină o valoare diferită de " +"toate variantele enumerate, iar reprezentarea noastră Rust trebuie să aibă " +"același comportament." #: src/android/interoperability/cpp/rust-result.md -#, fuzzy msgid "\"fallible1 requires depth > 0\"" msgstr "\"fallible1 necesită adâncime > 0\"" #: src/android/interoperability/cpp/rust-result.md -#, fuzzy msgid "\"Success!\"" msgstr "\"Succes!\"" @@ -16626,8 +15501,8 @@ msgstr "" #, fuzzy msgid "" "The exception thrown will always be of type `rust::Error`, which primarily " -"exposes a way to get the error message string. The error message will come " -"from the error type's `Display` impl." +"exposes a way to get the error message string. The error message will come from " +"the error type's `Display` impl." msgstr "" "Excepția aruncată va fi întotdeauna de tipul `rust::Error`, care expune în " "primul rând o modalitate de a obține șirul de mesaje de eroare. Mesajul de " @@ -16636,39 +15511,37 @@ msgstr "" #: src/android/interoperability/cpp/rust-result.md #, fuzzy msgid "" -"A panic unwinding from Rust to C++ will always cause the process to " -"immediately terminate." +"A panic unwinding from Rust to C++ will always cause the process to immediately " +"terminate." msgstr "" "O dezarhivare de panică din Rust în C++ va determina întotdeauna terminarea " "imediată a procesului." #: src/android/interoperability/cpp/cpp-exception.md -#, fuzzy msgid "\"example/include/example.h\"" msgstr "\"example/include/example.h\"" #: src/android/interoperability/cpp/cpp-exception.md -#, fuzzy msgid "\"Error: {}\"" -msgstr "Trăsături 'Error'" +msgstr "\"Eroare: {}\"" #: src/android/interoperability/cpp/cpp-exception.md #, fuzzy msgid "" -"C++ functions declared to return a `Result` will catch any thrown exception " -"on the C++ side and return it as an `Err` value to the calling Rust function." +"C++ functions declared to return a `Result` will catch any thrown exception on " +"the C++ side and return it as an `Err` value to the calling Rust function." msgstr "" -"Funcțiile C++ declarate pentru a returna un `Result` vor prinde orice " -"excepție lansată în partea C++ și o vor returna ca valoare `Err` funcției " -"Rust care o apelează." +"Funcțiile C++ declarate pentru a returna un `Result` vor prinde orice excepție " +"lansată în partea C++ și o vor returna ca valoare `Err` funcției Rust care o " +"apelează." #: src/android/interoperability/cpp/cpp-exception.md #, fuzzy msgid "" -"If an exception is thrown from an extern \"C++\" function that is not " -"declared by the CXX bridge to return `Result`, the program calls C++'s `std::" -"terminate`. The behavior is equivalent to the same exception being thrown " -"through a `noexcept` C++ function." +"If an exception is thrown from an extern \"C++\" function that is not declared " +"by the CXX bridge to return `Result`, the program calls C++'s `std::terminate`. " +"The behavior is equivalent to the same exception being thrown through a " +"`noexcept` C++ function." msgstr "" "Dacă o excepție este aruncată de o funcție externă \"C++\" care nu este " "declarată de puntea CXX pentru a returna `Result`, programul apelează `std::" @@ -16747,8 +15620,8 @@ msgstr "`mpsc::Receiver`" #: src/android/interoperability/cpp/type-mapping.md #, fuzzy msgid "" -"These types can be used in the fields of shared structs and the arguments " -"and returns of extern functions." +"These types can be used in the fields of shared structs and the arguments and " +"returns of extern functions." msgstr "" "Aceste tipuri pot fi utilizate în câmpurile structurilor partajate și în " "argumentele și returnările funcțiilor externe." @@ -16756,26 +15629,25 @@ msgstr "" #: src/android/interoperability/cpp/type-mapping.md #, fuzzy msgid "" -"Note that Rust's `String` does not map directly to `std::string`. There are " -"a few reasons for this:" +"Note that Rust's `String` does not map directly to `std::string`. There are a " +"few reasons for this:" msgstr "" "Rețineți că `String` din Rust nu se referă direct la `std::string`. Există " "câteva motive pentru acest lucru:" #: src/android/interoperability/cpp/type-mapping.md #, fuzzy -msgid "" -"`std::string` does not uphold the UTF-8 invariant that `String` requires." +msgid "`std::string` does not uphold the UTF-8 invariant that `String` requires." msgstr "`std::string` nu respectă invarianta UTF-8 pe care `String` o cere." #: src/android/interoperability/cpp/type-mapping.md #, fuzzy msgid "" -"The two types have different layouts in memory and so can't be passed " -"directly between languages." +"The two types have different layouts in memory and so can't be passed directly " +"between languages." msgstr "" -"Cele două tipuri au configurații diferite în memorie și, prin urmare, nu pot " -"fi transmise direct între limbi." +"Cele două tipuri au configurații diferite în memorie și, prin urmare, nu pot fi " +"transmise direct între limbi." #: src/android/interoperability/cpp/type-mapping.md #, fuzzy @@ -16783,9 +15655,9 @@ msgid "" "`std::string` requires move constructors that don't match Rust's move " "semantics, so a `std::string` can't be passed by value to Rust." msgstr "" -"`std::string` necesită constructori de mutare care nu se potrivesc cu " -"semantica de mutare a Rust, astfel încât un `std::string` nu poate fi " -"transmis ca valoare către Rust." +"`std::string` necesită constructori de mutare care nu se potrivesc cu semantica " +"de mutare a Rust, astfel încât un `std::string` nu poate fi transmis ca valoare " +"către Rust." #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-cpp-genrules.md @@ -16805,29 +15677,24 @@ msgstr "" #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-build-rust.md -#, fuzzy msgid "\"libcxx_test_cpp\"" msgstr "\"libcxx_test_cpp\"" #: src/android/interoperability/cpp/android-build-cpp.md -#, fuzzy msgid "\"cxx_test.cpp\"" msgstr "\"cxx_test.cpp\"" #: src/android/interoperability/cpp/android-build-cpp.md -#, fuzzy msgid "\"cxx-bridge-header\"" msgstr "\"cxx-bridge-header\"" #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"libcxx_test_bridge_header\"" msgstr "\"libcxx_test_bridge_header\"" #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"libcxx_test_bridge_code\"" msgstr "\"libcxx_test_bridge_code\"" @@ -16835,8 +15702,8 @@ msgstr "\"libcxx_test_bridge_code\"" #, fuzzy msgid "" "Point out that `libcxx_test_bridge_header` and `libcxx_test_bridge_code` are " -"the dependencies for the CXX-generated C++ bindings. We'll show how these " -"are setup on the next slide." +"the dependencies for the CXX-generated C++ bindings. We'll show how these are " +"setup on the next slide." msgstr "" "Indicați că `libcxx_test_bridge_header` și `libcxx_test_bridge_code` sunt " "dependențele pentru legăturile C++ generate de CXX. Vom arăta cum sunt " @@ -16845,26 +15712,26 @@ msgstr "" #: src/android/interoperability/cpp/android-build-cpp.md #, fuzzy msgid "" -"Note that you also need to depend on the `cxx-bridge-header` library in " -"order to pull in common CXX definitions." +"Note that you also need to depend on the `cxx-bridge-header` library in order " +"to pull in common CXX definitions." msgstr "" -"Rețineți că trebuie să depindeți și de biblioteca `cxx-bridge-header` pentru " -"a trage definițiile CXX comune." +"Rețineți că trebuie să depindeți și de biblioteca `cxx-bridge-header` pentru a " +"trage definițiile CXX comune." #: src/android/interoperability/cpp/android-build-cpp.md #, fuzzy msgid "" -"Full docs for using CXX in Android can be found in [the Android docs]" -"(https://source.android.com/docs/setup/build/rust/building-rust-modules/" -"android-rust-patterns#rust-cpp-interop-using-cxx). You may want to share " -"that link with the class so that students know where they can find these " -"instructions again in the future." +"Full docs for using CXX in Android can be found in [the Android docs](https://" +"source.android.com/docs/setup/build/rust/building-rust-modules/android-rust-" +"patterns#rust-cpp-interop-using-cxx). You may want to share that link with the " +"class so that students know where they can find these instructions again in the " +"future." msgstr "" -"Documentația completă pentru utilizarea CXX în Android poate fi găsită în " -"[the Android docs](https://source.android.com/docs/setup/build/rust/building-" -"rust-modules/android-rust-patterns#rust-cpp-interop-using-cxx). Este posibil " -"să doriți să împărtășiți acest link cu clasa, astfel încât elevii să știe " -"unde pot găsi din nou aceste instrucțiuni în viitor." +"Documentația completă pentru utilizarea CXX în Android poate fi găsită în [the " +"Android docs](https://source.android.com/docs/setup/build/rust/building-rust-" +"modules/android-rust-patterns#rust-cpp-interop-using-cxx). Este posibil să " +"doriți să împărtășiți acest link cu clasa, astfel încât elevii să știe unde pot " +"găsi din nou aceste instrucțiuni în viitor." #: src/android/interoperability/cpp/android-cpp-genrules.md #, fuzzy @@ -16886,23 +15753,19 @@ msgstr "" "// la funcțiile exportate Rust din lib.rs.\n" #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"cxxbridge\"" msgstr "\"cxxbridge\"" #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"$(location cxxbridge) $(in) --header > $(out)\"" msgstr "\"$(location cxxbridge) $(in) --header > $(out)\"" #: src/android/interoperability/cpp/android-cpp-genrules.md #: src/android/interoperability/cpp/android-build-rust.md -#, fuzzy msgid "\"lib.rs\"" msgstr "\"lib.rs\"" #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"lib.rs.h\"" msgstr "\"lib.rs.h\"" @@ -16912,12 +15775,10 @@ msgid "// Generate the C++ code that Rust calls into.\n" msgstr "// Generarea codului C++ pe care Rust îl apelează.\n" #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"$(location cxxbridge) $(in) > $(out)\"" msgstr "\"$(locația cxxbridge) $(in) > $(out)\"" #: src/android/interoperability/cpp/android-cpp-genrules.md -#, fuzzy msgid "\"lib.rs.cc\"" msgstr "\"lib.rs.cc\"" @@ -16927,9 +15788,9 @@ msgid "" "The `cxxbridge` tool is a standalone tool that generates the C++ side of the " "bridge module. It is included in Android and available as a Soong tool." msgstr "" -"Instrumentul `cxxbridge` este un instrument independent care generează " -"partea C++ a modulului punte. Acesta este inclus în Android și este " -"disponibil ca instrument Soong." +"Instrumentul `cxxbridge` este un instrument independent care generează partea C+" +"+ a modulului punte. Acesta este inclus în Android și este disponibil ca " +"instrument Soong." #: src/android/interoperability/cpp/android-cpp-genrules.md #, fuzzy @@ -16938,9 +15799,9 @@ msgid "" "named `lib.rs.h` and your source file will be named `lib.rs.cc`. This naming " "convention isn't enforced, though." msgstr "" -"Prin convenție, dacă fișierul sursă Rust este `lib.rs`, fișierul de antet se " -"va numi `lib.rs.h`, iar fișierul sursă se va numi `lib.rs.cc`. Totuși, " -"această convenție de denumire nu este impusă." +"Prin convenție, dacă fișierul sursă Rust este `lib.rs`, fișierul de antet se va " +"numi `lib.rs.h`, iar fișierul sursă se va numi `lib.rs.cc`. Totuși, această " +"convenție de denumire nu este impusă." #: src/android/interoperability/cpp/android-build-rust.md #, fuzzy @@ -16950,12 +15811,10 @@ msgstr "" "Creați un `rust_binary` care depinde de `libcxx` și de `cc_library_static`." #: src/android/interoperability/cpp/android-build-rust.md -#, fuzzy msgid "\"cxx_test\"" msgstr "\"cxx_test\"" #: src/android/interoperability/cpp/android-build-rust.md -#, fuzzy msgid "\"libcxx\"" msgstr "\"libcxx\"" @@ -16972,7 +15831,7 @@ msgid "" "jni/) allows you to create a compatible library." msgstr "" "Java poate încărca obiecte partajate prin intermediul [Java Native Interface " -"(JNI)](https://en.wikipedia.org/wiki/Java_Native_Interface). Crăiasa [`jni` " +"(JNI)](https://en.wikipedia.org/wiki/Java_Native_Interface). Crate-ul [`jni` " "crate](https://docs.rs/jni/) vă permite să creați o bibliotecă compatibilă." #: src/android/interoperability/java.md @@ -16996,12 +15855,10 @@ msgid "/// HelloWorld::hello method implementation.\n" msgstr "/// Implementarea metodei HelloWorld::hello.\n" #: src/android/interoperability/java.md -#, fuzzy msgid "\"system\"" msgstr "\"sistem\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"Hello, {input}!\"" msgstr "\"Bună ziua, {input}!\"" @@ -17011,17 +15868,14 @@ msgid "_interoperability/java/Android.bp_:" msgstr "interoperabilitate/java/Android.bp_:" #: src/android/interoperability/java.md -#, fuzzy msgid "\"libhello_jni\"" msgstr "\"libhello_jni\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"hello_jni\"" msgstr "\"hello_jni\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"libjni\"" msgstr "\"libjni\"" @@ -17036,19 +15890,16 @@ msgid "_interoperability/java/HelloWorld.java_:" msgstr "interoperabilitate/java/HelloWorld.java_:" #: src/android/interoperability/java.md -#, fuzzy msgid "\"helloworld_jni\"" msgstr "\"helloworld_jni\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"HelloWorld.java\"" -msgstr "Bună lume!" +msgstr "\"HelloWorld.java\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"HelloWorld\"" -msgstr "Bună lume!" +msgstr "\"HelloWorld\"" #: src/android/interoperability/java.md #, fuzzy @@ -17060,11 +15911,11 @@ msgstr "" #: src/exercises/android/morning.md #, fuzzy msgid "" -"This is a group exercise: We will look at one of the projects you work with " -"and try to integrate some Rust into it. Some suggestions:" +"This is a group exercise: We will look at one of the projects you work with and " +"try to integrate some Rust into it. Some suggestions:" msgstr "" -"Acesta este un exercițiu de grup: Ne vom uita la unul dintre proiectele la " -"care lucrați și vom încerca să integrăm în el Rust. Câteva sugestii:" +"Acesta este un exercițiu de grup: Ne vom uita la unul dintre proiectele la care " +"lucrați și vom încerca să integrăm în el Rust. Câteva sugestii:" #: src/exercises/android/morning.md #, fuzzy @@ -17079,12 +15930,12 @@ msgstr "Mutați o funcție din proiectul dvs. în Rust și apelați-o." #: src/exercises/android/morning.md #, fuzzy msgid "" -"No solution is provided here since this is open-ended: it relies on someone " -"in the class having a piece of code which you can turn in to Rust on the fly." +"No solution is provided here since this is open-ended: it relies on someone in " +"the class having a piece of code which you can turn in to Rust on the fly." msgstr "" -"Nu se oferă nicio soluție aici, deoarece este o întrebare deschisă: se " -"bazează pe faptul că cineva din clasă are o bucată de cod pe care o puteți " -"transforma în Rust din mers." +"Nu se oferă nicio soluție aici, deoarece este o întrebare deschisă: se bazează " +"pe faptul că cineva din clasă are o bucată de cod pe care o puteți transforma " +"în Rust din mers." #: src/chromium.md #, fuzzy @@ -17094,57 +15945,56 @@ msgstr "Bine ați venit la Rust în Android" #: src/chromium.md #, fuzzy msgid "" -"Rust is supported for third-party libraries in Chromium, with first-party " -"glue code to connect between Rust and existing Chromium C++ code." +"Rust is supported for third-party libraries in Chromium, with first-party glue " +"code to connect between Rust and existing Chromium C++ code." msgstr "" "Rust este suportat pentru bibliotecile terților în Chromium, cu un cod de " -"lipire de prima parte pentru a face legătura între Rust și codul C++ " -"existent în Chromium." +"lipire de prima parte pentru a face legătura între Rust și codul C++ existent " +"în Chromium." #: src/chromium.md #, fuzzy msgid "" -"Today, we'll call into Rust to do something silly with strings. If you've " -"got a corner of the code where you're displaying a UTF8 string to the user, " -"feel free to follow this recipe in your part of the codebase instead of the " -"exact part we talk about." +"Today, we'll call into Rust to do something silly with strings. If you've got a " +"corner of the code where you're displaying a UTF8 string to the user, feel free " +"to follow this recipe in your part of the codebase instead of the exact part we " +"talk about." msgstr "" -"Astăzi, vom apela la Rust pentru a face ceva prostesc cu șiruri de " -"caractere. Dacă aveți un colț de cod în care afișați un șir UTF8 " -"utilizatorului, nu ezitați să urmați această rețetă în partea dvs. de bază " -"de cod în loc de partea despre care vorbim noi." +"Astăzi, vom apela la Rust pentru a face ceva prostesc cu șiruri de caractere. " +"Dacă aveți un colț de cod în care afișați un șir UTF8 utilizatorului, nu " +"ezitați să urmați această rețetă în partea dvs. de bază de cod în loc de partea " +"despre care vorbim noi." #: src/chromium/setup.md #, fuzzy msgid "" -"Make sure you can build and run Chromium. Any platform and set of build " -"flags is OK, so long as your code is relatively recent (commit position " -"1223636 onwards, corresponding to November 2023):" +"Make sure you can build and run Chromium. Any platform and set of build flags " +"is OK, so long as your code is relatively recent (commit position 1223636 " +"onwards, corresponding to November 2023):" msgstr "" -"Asigurați-vă că puteți construi și rula Chromium. Orice platformă și orice " -"set de indicatori de compilare este în regulă, atâta timp cât codul dvs. " -"este relativ recent (începând cu poziția de commit 1223636, corespunzând " -"lunii noiembrie 2023):" +"Asigurați-vă că puteți construi și rula Chromium. Orice platformă și orice set " +"de indicatori de compilare este în regulă, atâta timp cât codul dvs. este " +"relativ recent (începând cu poziția de commit 1223636, corespunzând lunii " +"noiembrie 2023):" #: src/chromium/setup.md -#, fuzzy msgid "" -"(A component, debug build is recommended for quickest iteration time. This " -"is the default!)" +"(A component, debug build is recommended for quickest iteration time. This is " +"the default!)" msgstr "" -"(Pentru un timp de iterație cât mai scurt, se recomandă o componentă, o " -"construcție de depanare. Aceasta este opțiunea implicită)" +"(Pentru un timp de iterație cât mai scurt, se recomandă o construcție de " +"depanare a componentei. Aceasta este opțiunea implicită)" #: src/chromium/setup.md #, fuzzy msgid "" -"See [How to build Chromium](https://www.chromium.org/developers/how-tos/get-" -"the-code/) if you aren't already at that point. Be warned: setting up to " -"build Chromium takes time." +"See [How to build Chromium](https://www.chromium.org/developers/how-tos/get-the-" +"code/) if you aren't already at that point. Be warned: setting up to build " +"Chromium takes time." msgstr "" -"Consultați [How to build Chromium](https://www.chromium.org/developers/how-" -"tos/get-the-code/) dacă nu ați ajuns deja în acest punct. Fiți atenți: " -"configurarea pentru a construi Chromium necesită timp." +"Consultați [How to build Chromium](https://www.chromium.org/developers/how-tos/" +"get-the-code/) dacă nu ați ajuns deja în acest punct. Fiți atenți: configurarea " +"pentru a construi Chromium necesită timp." #: src/chromium/setup.md #, fuzzy @@ -17160,14 +16010,14 @@ msgstr "Despre exerciții" #, fuzzy msgid "" "This part of the course has a series of exercises which build on each other. " -"We'll be doing them spread throughout the course instead of just at the end. " -"If you don't have time to complete a certain part, don't worry: you can " -"catch up in the next slot." +"We'll be doing them spread throughout the course instead of just at the end. If " +"you don't have time to complete a certain part, don't worry: you can catch up " +"in the next slot." msgstr "" -"Această parte a cursului cuprinde o serie de exerciții care se bazează unul " -"pe celălalt. Le vom face repartizate pe tot parcursul cursului și nu doar la " -"sfârșit. Dacă nu aveți timp să terminați o anumită parte, nu vă faceți " -"griji: puteți recupera în intervalul următor." +"Această parte a cursului cuprinde o serie de exerciții care se bazează unul pe " +"celălalt. Le vom face repartizate pe tot parcursul cursului și nu doar la " +"sfârșit. Dacă nu aveți timp să terminați o anumită parte, nu vă faceți griji: " +"puteți recupera în intervalul următor." #: src/chromium/cargo.md #, fuzzy @@ -17188,20 +16038,20 @@ msgstr "Când scrieți cod în Rust, aveți de ales între:" #: src/chromium/cargo.md #, fuzzy msgid "" -"Use `gn` and `ninja` with the help of the templates from `//build/rust/*." -"gni` (e.g. `rust_static_library` that we'll meet later). This uses " -"Chromium's audited toolchain and crates." +"Use `gn` and `ninja` with the help of the templates from `//build/rust/*.gni` " +"(e.g. `rust_static_library` that we'll meet later). This uses Chromium's " +"audited toolchain and crates." msgstr "" -"Utilizați `gn` și `ninja` cu ajutorul șabloanelor din `//build/rust/*.gni` " -"(de exemplu `rust_static_library` pe care îl vom întâlni mai târziu). Acest " -"lucru utilizează toolchain-ul și crates auditate de Chromium." +"Utilizați `gn` și `ninja` cu ajutorul șabloanelor din `//build/rust/*.gni` (de " +"exemplu `rust_static_library` pe care îl vom întâlni mai târziu). Acest lucru " +"utilizează toolchain-ul și crates auditate de Chromium." #: src/chromium/cargo.md #, fuzzy msgid "" -"Use `cargo`, but [restrict yourself to Chromium's audited toolchain and " -"crates](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/" -"docs/rust.md#Using-cargo)" +"Use `cargo`, but [restrict yourself to Chromium's audited toolchain and crates]" +"(https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/rust." +"md#Using-cargo)" msgstr "" "Folosiți `cargo`, dar [limitați-vă la lanțul de instrumente și la crates " "auditate de Chromium](https://chromium.googlesource.com/chromium/src/+/refs/" @@ -17223,10 +16073,10 @@ msgid "" "code can be built into the Chromium browser. At the same time, Cargo is an " "important part of the Rust ecosystem and you should keep it in your toolbox." msgstr "" -"De aici încolo ne vom concentra pe `gn` și `ninja`, deoarece acesta este " -"modul în care codul Rust poate fi integrat în browserul Chromium. În același " -"timp, Cargo este o parte importantă a ecosistemului Rust și ar trebui să îl " -"păstrați în setul de instrumente." +"De aici încolo ne vom concentra pe `gn` și `ninja`, deoarece acesta este modul " +"în care codul Rust poate fi integrat în browserul Chromium. În același timp, " +"Cargo este o parte importantă a ecosistemului Rust și ar trebui să îl păstrați " +"în setul de instrumente." #: src/chromium/cargo.md #, fuzzy @@ -17241,8 +16091,8 @@ msgstr "Împărțiți-vă în grupuri mici și:" #: src/chromium/cargo.md #, fuzzy msgid "" -"Brainstorm scenarios where `cargo` may offer an advantage and assess the " -"risk profile of these scenarios." +"Brainstorm scenarios where `cargo` may offer an advantage and assess the risk " +"profile of these scenarios." msgstr "" "Gândiți-vă la scenarii în care \"încărcătura\" poate oferi un avantaj și " "evaluați profilul de risc al acestor scenarii." @@ -17253,25 +16103,25 @@ msgid "" "Discuss which tools, libraries, and groups of people need to be trusted when " "using `gn` and `ninja`, offline `cargo`, etc." msgstr "" -"Discutați ce instrumente, biblioteci și grupuri de persoane trebuie să fie " -"de încredere atunci când se utilizează `gn` și `ninja`, `cargo` offline etc." +"Discutați ce instrumente, biblioteci și grupuri de persoane trebuie să fie de " +"încredere atunci când se utilizează `gn` și `ninja`, `cargo` offline etc." #: src/chromium/cargo.md #, fuzzy msgid "" "Ask students to avoid peeking at the speaker notes before completing the " -"exercise. Assuming folks taking the course are physically together, ask them " -"to discuss in small groups of 3-4 people." +"exercise. Assuming folks taking the course are physically together, ask them to " +"discuss in small groups of 3-4 people." msgstr "" -"Cereți elevilor să evite să tragă cu ochiul la notele vorbitorului înainte " -"de a finaliza exercițiul. Presupunând că cei care urmează cursul sunt fizic " +"Cereți elevilor să evite să tragă cu ochiul la notele vorbitorului înainte de a " +"finaliza exercițiul. Presupunând că cei care urmează cursul sunt fizic " "împreună, rugați-i să discute în grupuri mici de 3-4 persoane." #: src/chromium/cargo.md #, fuzzy msgid "" -"Notes/hints related to the first part of the exercise (\"scenarios where " -"Cargo may offer an advantage\"):" +"Notes/hints related to the first part of the exercise (\"scenarios where Cargo " +"may offer an advantage\"):" msgstr "" "Note/sugestii legate de prima parte a exercițiului (\"scenarii în care Cargo " "poate oferi un avantaj\"):" @@ -17279,24 +16129,24 @@ msgstr "" #: src/chromium/cargo.md #, fuzzy msgid "" -"It's fantastic that when writing a tool, or prototyping a part of Chromium, " -"one has access to the rich ecosystem of crates.io libraries. There is a " -"crate for almost anything and they are usually quite pleasant to use. " -"(`clap` for command-line parsing, `serde` for serializing/deserializing to/" -"from various formats, `itertools` for working with iterators, etc.)." +"It's fantastic that when writing a tool, or prototyping a part of Chromium, one " +"has access to the rich ecosystem of crates.io libraries. There is a crate for " +"almost anything and they are usually quite pleasant to use. (`clap` for command-" +"line parsing, `serde` for serializing/deserializing to/from various formats, " +"`itertools` for working with iterators, etc.)." msgstr "" "Este fantastic faptul că atunci când se scrie un instrument sau se creează " -"prototipuri pentru o parte din Chromium, se are acces la ecosistemul bogat " -"de biblioteci crates.io. Există un crate pentru aproape orice și, de obicei, " -"acestea sunt destul de plăcute de utilizat. (`clap` pentru parsarea liniei " -"de comandă, `serde` pentru serializare/deserializare în/din diverse formate, " +"prototipuri pentru o parte din Chromium, se are acces la ecosistemul bogat de " +"biblioteci crates.io. Există un crate pentru aproape orice și, de obicei, " +"acestea sunt destul de plăcute de utilizat. (`clap` pentru parsarea liniei de " +"comandă, `serde` pentru serializare/deserializare în/din diverse formate, " "`itertools` pentru lucrul cu iteratori, etc.)." #: src/chromium/cargo.md #, fuzzy msgid "" -"`cargo` makes it easy to try a library (just add a single line to `Cargo." -"toml` and start writing code)" +"`cargo` makes it easy to try a library (just add a single line to `Cargo.toml` " +"and start writing code)" msgstr "" "`cargo` face mai ușoară încercarea unei biblioteci (doar adăugați o singură " "linie la `Cargo.toml` și începeți să scrieți cod)" @@ -17315,18 +16165,18 @@ msgstr "" msgid "" "Development experience is made really nice not only by core Rust tools (e.g. " "using `rustup` to switch to a different `rustc` version when testing a crate " -"that needs to work on nightly, current stable, and older stable) but also by " -"an ecosystem of third-party tools (e.g. Mozilla provides `cargo vet` for " -"streamlining and sharing security audits; `criterion` crate gives a " -"streamlined way to run benchmarks)." -msgstr "" -"Experiența de dezvoltare este foarte plăcută nu numai prin instrumentele " -"Rust de bază (de exemplu, utilizarea `rustup` pentru a trece la o versiune " -"diferită de `rustc` atunci când se testează un crate care trebuie să " -"funcționeze pe nightly, current stable și old stable), ci și printr-un " -"ecosistem de instrumente terțe (de exemplu, Mozilla oferă `cargo vet` pentru " -"simplificarea și partajarea auditurilor de securitate; crate `criterion` " -"oferă o modalitate simplificată de a rula teste de referință)." +"that needs to work on nightly, current stable, and older stable) but also by an " +"ecosystem of third-party tools (e.g. Mozilla provides `cargo vet` for " +"streamlining and sharing security audits; `criterion` crate gives a streamlined " +"way to run benchmarks)." +msgstr "" +"Experiența de dezvoltare este foarte plăcută nu numai prin instrumentele Rust " +"de bază (de exemplu, utilizarea `rustup` pentru a trece la o versiune diferită " +"de `rustc` atunci când se testează un crate care trebuie să funcționeze pe " +"nightly, current stable și old stable), ci și printr-un ecosistem de " +"instrumente terțe (de exemplu, Mozilla oferă `cargo vet` pentru simplificarea " +"și partajarea auditurilor de securitate; crate `criterion` oferă o modalitate " +"simplificată de a rula teste de referință)." #: src/chromium/cargo.md #, fuzzy @@ -17345,8 +16195,7 @@ msgstr "" #: src/chromium/cargo.md #, fuzzy -msgid "" -"Broad, generic examples of projects where `cargo` may be the right choice:" +msgid "Broad, generic examples of projects where `cargo` may be the right choice:" msgstr "" "Exemple generale, generice, de proiecte în care `cargo` poate fi alegerea " "potrivită:" @@ -17354,31 +16203,30 @@ msgstr "" #: src/chromium/cargo.md #, fuzzy msgid "" -"Perhaps surprisingly, Rust is becoming increasingly popular in the industry " -"for writing command line tools. The breadth and ergonomics of libraries is " -"comparable to Python, while being more robust (thanks to the rich " -"typesystem) and running faster (as a compiled, rather than interpreted " -"language)." +"Perhaps surprisingly, Rust is becoming increasingly popular in the industry for " +"writing command line tools. The breadth and ergonomics of libraries is " +"comparable to Python, while being more robust (thanks to the rich typesystem) " +"and running faster (as a compiled, rather than interpreted language)." msgstr "" "Poate surprinzător, Rust devine din ce în ce mai popular în industrie pentru " "scrierea instrumentelor de linie de comandă. Amploarea și ergonomia " "bibliotecilor este comparabilă cu Python, fiind în același timp mai robust " -"(datorită sistemului de tipuri bogat) și funcționând mai rapid (fiind un " -"limbaj compilat, mai degrabă decât interpretat)." +"(datorită sistemului de tipuri bogat) și funcționând mai rapid (fiind un limbaj " +"compilat, mai degrabă decât interpretat)." #: src/chromium/cargo.md #, fuzzy msgid "" "Participating in the Rust ecosystem requires using standard Rust tools like " -"Cargo. Libraries that want to get external contributions, and want to be " -"used outside of Chromium (e.g. in Bazel or Android/Soong build environments) " -"should probably use Cargo." +"Cargo. Libraries that want to get external contributions, and want to be used " +"outside of Chromium (e.g. in Bazel or Android/Soong build environments) should " +"probably use Cargo." msgstr "" "Participarea la ecosistemul Rust necesită utilizarea instrumentelor standard " "Rust, cum ar fi Cargo. Bibliotecile care doresc să primească contribuții " -"externe și care doresc să fie utilizate în afara Chromium (de exemplu, în " -"Bazel sau în mediile de compilare Android/Soong) ar trebui probabil să " -"utilizeze Cargo." +"externe și care doresc să fie utilizate în afara Chromium (de exemplu, în Bazel " +"sau în mediile de compilare Android/Soong) ar trebui probabil să utilizeze " +"Cargo." #: src/chromium/cargo.md #, fuzzy @@ -17388,11 +16236,11 @@ msgstr "Exemple de proiecte legate de Chromium care sunt bazate pe `cargo`:" #: src/chromium/cargo.md #, fuzzy msgid "" -"`serde_json_lenient` (experimented with in other parts of Google which " -"resulted in PRs with performance improvements)" +"`serde_json_lenient` (experimented with in other parts of Google which resulted " +"in PRs with performance improvements)" msgstr "" -"`serde_json_lenient` (experimentat în alte părți ale Google, ceea ce a dus " -"la PR-uri cu îmbunătățiri de performanță)" +"`serde_json_lenient` (experimentat în alte părți ale Google, ceea ce a dus la " +"PR-uri cu îmbunătățiri de performanță)" #: src/chromium/cargo.md #, fuzzy @@ -17402,19 +16250,17 @@ msgstr "Biblioteci de fonturi precum `font-types`" #: src/chromium/cargo.md #, fuzzy msgid "" -"`gnrt` tool (we will meet it later in the course) which depends on `clap` " -"for command-line parsing and on `toml` for configuration files." +"`gnrt` tool (we will meet it later in the course) which depends on `clap` for " +"command-line parsing and on `toml` for configuration files." msgstr "" -"instrumentul `gnrt` (îl vom întâlni mai târziu în curs) care depinde de " -"`clap` pentru analiza liniei de comandă și de `toml` pentru fișierele de " -"configurare." +"instrumentul `gnrt` (îl vom întâlni mai târziu în curs) care depinde de `clap` " +"pentru analiza liniei de comandă și de `toml` pentru fișierele de configurare." #: src/chromium/cargo.md #, fuzzy msgid "" -"Disclaimer: a unique reason for using `cargo` was unavailability of `gn` " -"when building and bootstrapping Rust standard library when building Rust " -"toolchain." +"Disclaimer: a unique reason for using `cargo` was unavailability of `gn` when " +"building and bootstrapping Rust standard library when building Rust toolchain." msgstr "" "Avertisment: un motiv unic pentru a folosi `cargo` a fost indisponibilitatea " "lui `gn` la construirea și bootstraparea bibliotecii standard Rust la " @@ -17427,9 +16273,9 @@ msgid "" "third-party libraries downloaded from the internet, but `run_gnrt.py` asks " "`cargo` that only `--locked` content is allowed via `Cargo.lock`.)" msgstr "" -"`run_gnrt.py` folosește copia Chromium a `cargo` și `rustc`. `gnrt` depinde " -"de biblioteci terțe descărcate de pe internet, prin `run_gnrt.py` cere " -"`cargo` ca numai conținutul `--blocat` să fie permis prin `Cargo.lock`)" +"`run_gnrt.py` folosește copia Chromium a `cargo` și `rustc`. `gnrt` depinde de " +"biblioteci terțe descărcate de pe internet, prin `run_gnrt.py` cere `cargo` ca " +"numai conținutul `--blocat` să fie permis prin `Cargo.lock`)" #: src/chromium/cargo.md #, fuzzy @@ -17437,8 +16283,8 @@ msgid "" "Students may identify the following items as being implicitly or explicitly " "trusted:" msgstr "" -"Elevii pot identifica următoarele elemente ca fiind de încredere implicită " -"sau explicită:" +"Elevii pot identifica următoarele elemente ca fiind de încredere implicită sau " +"explicită:" #: src/chromium/cargo.md #, fuzzy @@ -17447,10 +16293,10 @@ msgid "" "Clang compiler, the `rustc` sources (fetched from GitHub, reviewed by Rust " "compiler team), binary Rust compiler downloaded for bootstrapping" msgstr "" -"`rustc` (compilatorul Rust), care la rândul său depinde de bibliotecile " -"LLVM, de compilatorul Clang, de sursele `rustc` (preluate de pe GitHub, " -"revizuite de echipa compilatorului Rust), de compilatorul binar Rust " -"descărcat pentru bootstrap" +"`rustc` (compilatorul Rust), care la rândul său depinde de bibliotecile LLVM, " +"de compilatorul Clang, de sursele `rustc` (preluate de pe GitHub, revizuite de " +"echipa compilatorului Rust), de compilatorul binar Rust descărcat pentru " +"bootstrap" #: src/chromium/cargo.md #, fuzzy @@ -17472,9 +16318,9 @@ msgid "" "Various internal infrastructure (bots that build `rustc`, system for " "distributing the prebuilt toolchain to Chromium engineers, etc.)" msgstr "" -"Diferite infrastructuri interne (roboți care construiesc `rustc`, sistemul " -"de distribuire a lanțului de instrumente pre-construit către inginerii " -"Chromium, etc.)" +"Diferite infrastructuri interne (roboți care construiesc `rustc`, sistemul de " +"distribuire a lanțului de instrumente pre-construit către inginerii Chromium, " +"etc.)" #: src/chromium/cargo.md #, fuzzy @@ -17484,18 +16330,18 @@ msgstr "Instrumente pentru mărfuri, cum ar fi `cargo audit`, `cargo vet`, etc." #: src/chromium/cargo.md #, fuzzy msgid "" -"Rust libraries vendored into `//third_party/rust` (audited by " -"security@chromium.org)" +"Rust libraries vendored into `//third_party/rust` (audited by security@chromium." +"org)" msgstr "" -"Biblioteci Rust vândute în `//third_party/rust` (auditate de " -"security@chromium.org)" +"Biblioteci Rust vândute în `//third_party/rust` (auditate de security@chromium." +"org)" #: src/chromium/cargo.md #, fuzzy msgid "Other Rust libraries (some niche, some quite popular and commonly used)" msgstr "" -"Alte biblioteci Rust (unele de nișă, altele destul de populare și utilizate " -"în mod obișnuit)" +"Alte biblioteci Rust (unele de nișă, altele destul de populare și utilizate în " +"mod obișnuit)" #: src/chromium/policy.md #, fuzzy @@ -17505,39 +16351,37 @@ msgstr "Politica privind rugina de crom" #: src/chromium/policy.md #, fuzzy msgid "" -"Chromium does not yet allow first-party Rust except in rare cases as " -"approved by Chromium's [Area Tech Leads](https://source.chromium.org/" -"chromium/chromium/src/+/main:ATL_OWNERS)." +"Chromium does not yet allow first-party Rust except in rare cases as approved " +"by Chromium's [Area Tech Leads](https://source.chromium.org/chromium/chromium/" +"src/+/main:ATL_OWNERS)." msgstr "" -"Chromium nu permite încă Rust de la prima parte, cu excepția unor cazuri " -"rare, aprobate de [Area Tech Leads] (https://source.chromium.org/chromium/" -"chromium/src/+/main:ATL_OWNERS)." +"Chromium nu permite încă Rust de la prima parte, cu excepția unor cazuri rare, " +"aprobate de [Area Tech Leads] (https://source.chromium.org/chromium/chromium/" +"src/+/main:ATL_OWNERS)." #: src/chromium/policy.md #, fuzzy msgid "" -"Chromium's policy on third party libraries is outlined [here](https://" -"chromium.googlesource.com/chromium/src/+/main/docs/adding_to_third_party." -"md#rust) - Rust is allowed for third party libraries under various " -"circumstances, including if they're the best option for performance or for " -"security." +"Chromium's policy on third party libraries is outlined [here](https://chromium." +"googlesource.com/chromium/src/+/main/docs/adding_to_third_party.md#rust) - Rust " +"is allowed for third party libraries under various circumstances, including if " +"they're the best option for performance or for security." msgstr "" "Politica Chromium cu privire la bibliotecile terților este prezentată [aici] " "(https://chromium.googlesource.com/chromium/src/+/main/docs/" -"adding_to_third_party.md#rust) - Rust este permis pentru bibliotecile " -"terților în diverse circumstanțe, inclusiv dacă acestea reprezintă cea mai " -"bună opțiune pentru performanță sau securitate." +"adding_to_third_party.md#rust) - Rust este permis pentru bibliotecile terților " +"în diverse circumstanțe, inclusiv dacă acestea reprezintă cea mai bună opțiune " +"pentru performanță sau securitate." #: src/chromium/policy.md #, fuzzy msgid "" -"Very few Rust libraries directly expose a C/C++ API, so that means that " -"nearly all such libraries will require a small amount of first-party glue " -"code." +"Very few Rust libraries directly expose a C/C++ API, so that means that nearly " +"all such libraries will require a small amount of first-party glue code." msgstr "" "Foarte puține biblioteci Rust expun direct un API C/C++, ceea ce înseamnă că " -"aproape toate aceste biblioteci vor necesita o cantitate mică de cod glue de " -"la prima parte." +"aproape toate aceste biblioteci vor necesita o cantitate mică de cod glue de la " +"prima parte." #: src/chromium/policy.md #, fuzzy @@ -17582,12 +16426,12 @@ msgstr "" #: src/chromium/policy.md #, fuzzy msgid "" -"First-party Rust glue code for a particular third-party crate should " -"normally be kept in `third_party/rust///wrapper`." +"First-party Rust glue code for a particular third-party crate should normally " +"be kept in `third_party/rust///wrapper`." msgstr "" -"Codul de lipire Rust de prima parte pentru o anumită crăpătură terță parte " -"ar trebui să fie păstrat în mod normal în `third_party/rust//" -"/wrapper`." +"Codul de lipire Rust de prima parte pentru o anumită crăpătură terță parte ar " +"trebui să fie păstrat în mod normal în `third_party/rust///" +"wrapper`." #: src/chromium/policy.md #, fuzzy @@ -17603,15 +16447,15 @@ msgstr "Introducerea de biblioteci Rust de la terți (\"crates\")" #, fuzzy msgid "Writing glue code to be able to use those crates from Chromium C++." msgstr "" -"Scrierea codului de lipire pentru a putea utiliza aceste crates din Chromium " -"C++." +"Scrierea codului de lipire pentru a putea utiliza aceste crates din Chromium C+" +"+." #: src/chromium/policy.md #, fuzzy msgid "If this policy changes over time, the course will evolve to keep up." msgstr "" -"Dacă această politică se schimbă în timp, cursul va evolua pentru a ține " -"pasul cu ea." +"Dacă această politică se schimbă în timp, cursul va evolua pentru a ține pasul " +"cu ea." #: src/chromium/build-rules.md #, fuzzy @@ -17621,13 +16465,13 @@ msgstr "Reguli de construcție" #: src/chromium/build-rules.md #, fuzzy msgid "" -"Rust code is usually built using `cargo`. Chromium builds with `gn` and " -"`ninja` for efficiency --- its static rules allow maximum parallelism. Rust " -"is no exception." +"Rust code is usually built using `cargo`. Chromium builds with `gn` and `ninja` " +"for efficiency --- its static rules allow maximum parallelism. Rust is no " +"exception." msgstr "" -"Codul Rust este de obicei construit folosind `cargo`. Chromium se " -"construiește cu `gn` și `ninja` pentru eficiență --- regulile sale statice " -"permit un paralelism maxim. Rust nu face excepție." +"Codul Rust este de obicei construit folosind `cargo`. Chromium se construiește " +"cu `gn` și `ninja` pentru eficiență --- regulile sale statice permit un " +"paralelism maxim. Rust nu face excepție." #: src/chromium/build-rules.md #, fuzzy @@ -17666,52 +16510,49 @@ msgstr "" #: src/chromium/build-rules.md #, fuzzy msgid "" -"You can also add `deps` on other Rust targets. Later we'll use this to " -"depend upon third party code." +"You can also add `deps` on other Rust targets. Later we'll use this to depend " +"upon third party code." msgstr "" -"De asemenea, puteți adăuga `deps` pe alte obiective Rust. Mai târziu vom " -"folosi acest lucru pentru a depinde de codul terților." +"De asemenea, puteți adăuga `deps` pe alte obiective Rust. Mai târziu vom folosi " +"acest lucru pentru a depinde de codul terților." #: src/chromium/build-rules.md #, fuzzy msgid "" "You must specify _both_ the crate root, _and_ a full list of sources. The " -"`crate_root` is the file given to the Rust compiler representing the root " -"file of the compilation unit --- typically `lib.rs`. `sources` is a complete " -"list of all source files which `ninja` needs in order to determine when " -"rebuilds are necessary." +"`crate_root` is the file given to the Rust compiler representing the root file " +"of the compilation unit --- typically `lib.rs`. `sources` is a complete list of " +"all source files which `ninja` needs in order to determine when rebuilds are " +"necessary." msgstr "" -"Trebuie să specificați atât rădăcina lăzii, cât și o listă completă de " -"surse. `crate_root` este fișierul dat compilatorului Rust care reprezintă " -"fișierul rădăcină al unității de compilare --- de obicei `lib.rs`. `sources` " -"este o listă completă a tuturor fișierelor sursă de care `ninja` are nevoie " -"pentru a determina când sunt necesare reconstrucțiile." +"Trebuie să specificați atât rădăcina lăzii, cât și o listă completă de surse. " +"`crate_root` este fișierul dat compilatorului Rust care reprezintă fișierul " +"rădăcină al unității de compilare --- de obicei `lib.rs`. `sources` este o " +"listă completă a tuturor fișierelor sursă de care `ninja` are nevoie pentru a " +"determina când sunt necesare reconstrucțiile." #: src/chromium/build-rules.md -#, fuzzy msgid "" -"(There's no such thing as a Rust `source_set`, because in Rust, an entire " -"crate is a compilation unit. A `static_library` is the smallest unit.)" +"(There's no such thing as a Rust `source_set`, because in Rust, an entire crate " +"is a compilation unit. A `static_library` is the smallest unit.)" msgstr "" "(Nu există un astfel de lucru ca un `source_set` Rust, deoarece în Rust, un " -"întreg crate este o unitate de compilare. O `static_library` este cea mai " -"mică unitate)" +"întreg crate este o unitate de compilare. O `static_library` este cea mai mică " +"unitate)" #: src/chromium/build-rules.md -#, fuzzy msgid "" -"Students might be wondering why we need a gn template, rather than using " -"[gn's built-in support for Rust static libraries](https://gn.googlesource." -"com/gn/+/main/docs/reference.md#func_static_library). The answer is that " -"this template provides support for CXX interop, Rust features, and unit " -"tests, some of which we'll use later." +"Students might be wondering why we need a gn template, rather than using [gn's " +"built-in support for Rust static libraries](https://gn.googlesource.com/gn/+/" +"main/docs/reference.md#func_static_library). The answer is that this template " +"provides support for CXX interop, Rust features, and unit tests, some of which " +"we'll use later." msgstr "" -"Studenții s-ar putea să se întrebe de ce avem nevoie de un șablon gn, în loc " -"să folosim [suportul încorporat al gn pentru bibliotecile statice Rust] " -"(https://gn.googlesource.com/gn/+/main/docs/reference." -"md#func_static_library). Răspunsul este că acest șablon oferă suport pentru " -"interopulare CXX, caracteristici Rust și teste unitare, unele dintre acestea " -"urmând să le folosim mai târziu." +"Cursanții s-ar putea să se întrebe de ce avem nevoie de un șablon gn, în loc să " +"folosim [suportul încorporat al gn pentru bibliotecile statice Rust] (https://" +"gn.googlesource.com/gn/+/main/docs/reference.md#func_static_library). Răspunsul " +"este că acest șablon oferă suport pentru interopulare CXX, caracteristici Rust " +"și teste unitare, unele dintre acestea urmând să le folosim mai târziu." #: src/chromium/build-rules/unsafe.md #, fuzzy @@ -17721,15 +16562,14 @@ msgstr "Includerea codului Rust `unsafe` Rust" #: src/chromium/build-rules/unsafe.md #, fuzzy msgid "" -"Unsafe Rust code is forbidden in `rust_static_library` by default --- it " -"won't compile. If you need unsafe Rust code, add `allow_unsafe = true` to " -"the gn target. (Later in the course we'll see circumstances where this is " -"necessary.)" +"Unsafe Rust code is forbidden in `rust_static_library` by default --- it won't " +"compile. If you need unsafe Rust code, add `allow_unsafe = true` to the gn " +"target. (Later in the course we'll see circumstances where this is necessary.)" msgstr "" -"Codul Rust nesigur este interzis în `rust_static_library` în mod implicit " -"--- nu va fi compilat. Dacă aveți nevoie de cod Rust nesigur, adăugați " -"`allow_unsafe = true` la ținta gn. (Mai târziu în curs vom vedea " -"circumstanțe în care acest lucru este necesar)" +"Codul Rust nesigur este interzis în `rust_static_library` în mod implicit --- " +"nu va fi compilat. Dacă aveți nevoie de cod Rust nesigur, adăugați " +"`allow_unsafe = true` la ținta gn. (Mai târziu în curs vom vedea circumstanțe " +"în care acest lucru este necesar)" #: src/chromium/build-rules/unsafe.md #, fuzzy @@ -17800,18 +16640,18 @@ msgstr "" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"Types are elided in Rust code, which makes a good IDE even more useful than " -"for C++. Visual Studio code works well for Rust in Chromium. To use it," +"Types are elided in Rust code, which makes a good IDE even more useful than for " +"C++. Visual Studio code works well for Rust in Chromium. To use it," msgstr "" -"Tipurile sunt elidate în codul Rust, ceea ce face ca un IDE bun să fie și " -"mai util decât în cazul C++. Codul Visual Studio funcționează bine pentru " -"Rust în Chromium. Pentru a-l utiliza," +"Tipurile sunt elidate în codul Rust, ceea ce face ca un IDE bun să fie și mai " +"util decât în cazul C++. Codul Visual Studio funcționează bine pentru Rust în " +"Chromium. Pentru a-l utiliza," #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"Ensure your VSCode has the `rust-analyzer` extension, not earlier forms of " -"Rust support" +"Ensure your VSCode has the `rust-analyzer` extension, not earlier forms of Rust " +"support" msgstr "" "Asigurați-vă că VSCode-ul dumneavoastră are extensia `rust-analyzer`, nu " "formele anterioare de suport Rust" @@ -17822,8 +16662,8 @@ msgid "" "`gn gen out/Debug --export-rust-project` (or equivalent for your output " "directory)" msgstr "" -"`gn gen out/Debug --export-rust-project` (sau echivalent pentru directorul " -"de ieșire)" +"`gn gen out/Debug --export-rust-project` (sau echivalent pentru directorul de " +"ieșire)" #: src/chromium/build-rules/vscode.md #, fuzzy @@ -17833,12 +16673,12 @@ msgstr "`ln -s out/Debug/rust-project.json rust-project.json`" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"A demo of some of the code annotation and exploration features of rust-" -"analyzer might be beneficial if the audience are naturally skeptical of IDEs." +"A demo of some of the code annotation and exploration features of rust-analyzer " +"might be beneficial if the audience are naturally skeptical of IDEs." msgstr "" "O demonstrație a unora dintre caracteristicile de adnotare și explorare a " -"codului din rust-analyzer ar putea fi benefică dacă audiența este sceptică " -"în mod natural față de IDE-uri." +"codului din rust-analyzer ar putea fi benefică dacă audiența este sceptică în " +"mod natural față de IDE-uri." #: src/chromium/build-rules/vscode.md #, fuzzy @@ -17853,8 +16693,7 @@ msgstr "" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "Open `components/qr_code_generator/qr_code_generator_ffi_glue.rs`" -msgstr "" -"Deschideți `components/qr_code_generator/qr_code_generator_ffi_glue.rs`" +msgstr "Deschideți `components/qr_code_generator/qr_code_generator_ffi_glue.rs`" #: src/chromium/build-rules/vscode.md #, fuzzy @@ -17868,11 +16707,10 @@ msgstr "" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"Demo **show documentation** (typical bindings: vscode = ctrl k i; vim/CoC = " -"K)." +"Demo **show documentation** (typical bindings: vscode = ctrl k i; vim/CoC = K)." msgstr "" -"Demo **afișează documentația** (legături tipice: vscode = ctrl k i; vim/CoC " -"= K)." +"Demo **afișează documentația** (legături tipice: vscode = ctrl k i; vim/CoC = " +"K)." #: src/chromium/build-rules/vscode.md #, fuzzy @@ -17880,9 +16718,9 @@ msgid "" "Demo **go to definition** (typical bindings: vscode = F12; vim/CoC = g d). " "(This will take you to `//third_party/rust/.../qr_code-.../src/lib.rs`.)" msgstr "" -"Demonstrație **deplasați-vă la definiție** (legături tipice: vscode = F12; " -"vim/CoC = g d). (Acest lucru vă va duce la `//third_party/rust/.../" -"qr_code-.../src/lib.rs`)" +"Demonstrație **deplasați-vă la definiție** (legături tipice: vscode = F12; vim/" +"CoC = g d). (Acest lucru vă va duce la `//third_party/rust/.../qr_code-.../src/" +"lib.rs`)" #: src/chromium/build-rules/vscode.md #, fuzzy @@ -17898,8 +16736,8 @@ msgstr "" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"Demo **type annotations** (there are quote a few nice examples in the " -"`QrCode::with_bits` method)" +"Demo **type annotations** (there are quite a few nice examples in the `QrCode::" +"with_bits` method)" msgstr "" "Demonstrație **Anotații de tip** (există câteva exemple frumoase în metoda " "`QrCode::with_bits`)" @@ -17907,13 +16745,13 @@ msgstr "" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"It may be worth pointing out that `gn gen ... --export-rust-project` will " -"need to be rerun after editing `BUILD.gn` files (which we will do a few " -"times throughout the exercises in this session)." +"It may be worth pointing out that `gn gen ... --export-rust-project` will need " +"to be rerun after editing `BUILD.gn` files (which we will do a few times " +"throughout the exercises in this session)." msgstr "" -"Ar putea fi util să subliniem că `gn gen ... --export-rust-project` va " -"trebui să fie rulat din nou după editarea fișierelor `BUILD.gn` (ceea ce vom " -"face de câteva ori în timpul exercițiilor din această sesiune)." +"Ar putea fi util să subliniem că `gn gen ... --export-rust-project` va trebui " +"să fie rulat din nou după editarea fișierelor `BUILD.gn` (ceea ce vom face de " +"câteva ori în timpul exercițiilor din această sesiune)." #: src/exercises/chromium/build-rules.md #, fuzzy @@ -17932,45 +16770,43 @@ msgstr "" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"**Important**: note that `no_mangle` here is considered a type of unsafety " -"by the Rust compiler, so you'll need to allow unsafe code in your `gn` " -"target." +"**Important**: note that `no_mangle` here is considered a type of unsafety by " +"the Rust compiler, so you'll need to allow unsafe code in your `gn` target." msgstr "" "**Important**: rețineți că `no_mangle` aici este considerat un tip de " -"nesiguranță de către compilatorul Rust, deci va trebui să permiteți cod " -"nesigur în ținta `gn`." +"nesiguranță de către compilatorul Rust, deci va trebui să permiteți cod nesigur " +"în ținta `gn`." #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" "Add this new Rust target as a dependency of `//ui/base:base`. Declare this " -"function at the top of `ui/base/resource/resource_bundle.cc` (later, we'll " -"see how this can be automated by bindings generation tools):" +"function at the top of `ui/base/resource/resource_bundle.cc` (later, we'll see " +"how this can be automated by bindings generation tools):" msgstr "" "Adăugați această nouă țintă Rust ca dependență a `//ui/base:base`. Declarați " -"această funcție în partea de sus a `ui/base/resource/resource_bundle.cc` " -"(mai târziu, vom vedea cum poate fi automatizat acest lucru de către " -"instrumentele de generare a legăturilor):" +"această funcție în partea de sus a `ui/base/resource/resource_bundle.cc` (mai " +"târziu, vom vedea cum poate fi automatizat acest lucru de către instrumentele " +"de generare a legăturilor):" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"Call this function from somewhere in `ui/base/resource/resource_bundle.cc` - " -"we suggest the top of `ResourceBundle::MaybeMangleLocalizedString`. Build " -"and run Chromium, and ensure that \"Hello from Rust!\" is printed lots of " -"times." +"Call this function from somewhere in `ui/base/resource/resource_bundle.cc` - we " +"suggest the top of `ResourceBundle::MaybeMangleLocalizedString`. Build and run " +"Chromium, and ensure that \"Hello from Rust!\" is printed lots of times." msgstr "" -"Apelați această funcție de undeva din `ui/base/resource/resource_bundle.cc` " -"- sugerăm partea de sus a `ResourceBundle::MaybeMangleLocalizedString`. " +"Apelați această funcție de undeva din `ui/base/resource/resource_bundle.cc` - " +"sugerăm partea de sus a `ResourceBundle::MaybeMangleLocalizedString`. " "Construiți și rulați Chromium și asigurați-vă că \"Hello from Rust!\" este " "tipărit de multe ori." #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"If you use VSCode, now set up Rust to work well in VSCode. It will be useful " -"in subsequent exercises. If you've succeeded, you will be able to use right-" -"click \"Go to definition\" on `println!`." +"If you use VSCode, now set up Rust to work well in VSCode. It will be useful in " +"subsequent exercises. If you've succeeded, you will be able to use right-click " +"\"Go to definition\" on `println!`." msgstr "" "Dacă utilizați VSCode, configurați Rust pentru a funcționa bine în VSCode. " "Aceasta va fi utilă în exercițiile următoare. Dacă ați reușit, veți putea " @@ -17985,42 +16821,42 @@ msgstr "Unde găsiți ajutor" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"The options available to the [`rust_static_library` gn template](https://" -"source.chromium.org/chromium/chromium/src/+/main:build/rust/" -"rust_static_library.gni;l=16)" +"The options available to the [`rust_static_library` gn template](https://source." +"chromium.org/chromium/chromium/src/+/main:build/rust/rust_static_library.gni;" +"l=16)" msgstr "" -"Opțiunile disponibile pentru șablonul [`rust_static_library` gn](https://" -"source.chromium.org/chromium/chromium/src/+/main:build/rust/" -"rust_static_library.gni;l=16)" +"Opțiunile disponibile pentru șablonul [`rust_static_library` gn](https://source." +"chromium.org/chromium/chromium/src/+/main:build/rust/rust_static_library.gni;" +"l=16)" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"Information about [`#[no_mangle]`](https://doc.rust-lang.org/beta/reference/" -"abi.html#the-no_mangle-attribute)" +"Information about [`#[no_mangle]`](https://doc.rust-lang.org/beta/reference/abi." +"html#the-no_mangle-attribute)" msgstr "" -"Informații despre [`#[no_mangle]`](https://doc.rust-lang.org/beta/reference/" -"abi.html#the-no_mangle-attribute)" +"Informații despre [`#[no_mangle]`](https://doc.rust-lang.org/beta/reference/abi." +"html#the-no_mangle-attribute)" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"Information about [`extern \"C\"`](https://doc.rust-lang.org/std/keyword." -"extern.html)" +"Information about [`extern \"C\"`](https://doc.rust-lang.org/std/keyword.extern." +"html)" msgstr "" -"Informații despre [`extern \"C\"`](https://doc.rust-lang.org/std/keyword." -"extern.html)" +"Informații despre [`extern \"C\"`](https://doc.rust-lang.org/std/keyword.extern." +"html)" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"Information about gn's [`--export-rust-project`](https://gn.googlesource.com/" -"gn/+/main/docs/reference.md#compilation-database) switch" +"Information about gn's [`--export-rust-project`](https://gn.googlesource.com/gn/" +"+/main/docs/reference.md#compilation-database) switch" msgstr "" -"Informații despre comutatorul [`--export-rust-project`](https://gn." -"googlesource.com/gn/+/main/docs/reference.md#compilation-database) de la " -"gn's [`--export-rust-project`](https://gn.googlesource.com/gn/+/main/docs/" -"reference.md#compilation-database)" +"Informații despre comutatorul [`--export-rust-project`](https://gn.googlesource." +"com/gn/+/main/docs/reference.md#compilation-database) de la gn's [`--export-" +"rust-project`](https://gn.googlesource.com/gn/+/main/docs/reference." +"md#compilation-database)" #: src/exercises/chromium/build-rules.md #, fuzzy @@ -18028,32 +16864,30 @@ msgid "" "[How to install rust-analyzer in VSCode](https://code.visualstudio.com/docs/" "languages/rust)" msgstr "" -"[Cum se instalează rust-analyzer în VSCode](https://code.visualstudio.com/" -"docs/languages/rust)" +"[Cum se instalează rust-analyzer în VSCode](https://code.visualstudio.com/docs/" +"languages/rust)" #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"This example is unusual because it boils down to the lowest-common-" -"denominator interop language, C. Both C++ and Rust can natively declare and " -"call C ABI functions. Later in the course, we'll connect C++ directly to " -"Rust." +"This example is unusual because it boils down to the lowest-common-denominator " +"interop language, C. Both C++ and Rust can natively declare and call C ABI " +"functions. Later in the course, we'll connect C++ directly to Rust." msgstr "" "Acest exemplu este neobișnuit, deoarece se reduce la cel mai mic limbaj de " -"interoperabilitate, C. Atât C++, cât și Rust pot declara și apela în mod " -"nativ funcții ABI C. Mai târziu, în cadrul cursului, vom conecta C++ direct " -"la Rust." +"interoperabilitate, C. Atât C++, cât și Rust pot declara și apela în mod nativ " +"funcții ABI C. Mai târziu, în cadrul cursului, vom conecta C++ direct la Rust." #: src/exercises/chromium/build-rules.md #, fuzzy msgid "" -"`allow_unsafe = true` is required here because `#[no_mangle]` might allow " -"Rust to generate two functions with the same name, and Rust can no longer " -"guarantee that the right one is called." +"`allow_unsafe = true` is required here because `#[no_mangle]` might allow Rust " +"to generate two functions with the same name, and Rust can no longer guarantee " +"that the right one is called." msgstr "" "`allow_unsafe = true` este necesar aici deoarece `#[no_mangle]` ar putea " -"permite ca Rust să genereze două funcții cu același nume, iar Rust nu mai " -"poate garanta că este apelată cea corectă." +"permite ca Rust să genereze două funcții cu același nume, iar Rust nu mai poate " +"garanta că este apelată cea corectă." #: src/exercises/chromium/build-rules.md #, fuzzy @@ -18061,18 +16895,18 @@ msgid "" "If you need a pure Rust executable, you can also do that using the " "`rust_executable` gn template." msgstr "" -"Dacă aveți nevoie de un executabil Rust pur, puteți face acest lucru " -"folosind șablonul gn `rust_executable`." +"Dacă aveți nevoie de un executabil Rust pur, puteți face acest lucru folosind " +"șablonul gn `rust_executable`." #: src/chromium/testing.md #, fuzzy msgid "" "Rust community typically authors unit tests in a module placed in the same " -"source file as the code being tested. This was covered [earlier](../testing." -"md) in the course and looks like this:" +"source file as the code being tested. This was covered [earlier](../testing.md) " +"in the course and looks like this:" msgstr "" -"Comunitatea Rust autorizează de obicei testele unitare într-un modul plasat " -"în același fișier sursă ca și codul testat. Acest lucru a fost abordat [mai " +"Comunitatea Rust autorizează de obicei testele unitare într-un modul plasat în " +"același fișier sursă ca și codul testat. Acest lucru a fost abordat [mai " "devreme](../testing.md) în cadrul cursului și arată astfel:" #: src/chromium/testing.md @@ -18083,27 +16917,24 @@ msgid "" "and helps to avoid rebuilding `.rs` files a second time (in the `test` " "configuration)." msgstr "" -"În Chromium plasăm testele unitare într-un fișier sursă separat și continuăm " -"să urmăm această practică pentru Rust --- acest lucru face ca testele să " -"poată fi descoperite în mod constant și ajută la evitarea reconstruirii " -"fișierelor `.rs` a doua oară (în configurația `test`)." +"În Chromium plasăm testele unitare într-un fișier sursă separat și continuăm să " +"urmăm această practică pentru Rust --- acest lucru face ca testele să poată fi " +"descoperite în mod constant și ajută la evitarea reconstruirii fișierelor `.rs` " +"a doua oară (în configurația `test`)." #: src/chromium/testing.md #, fuzzy -msgid "" -"This results in the following options for testing Rust code in Chromium:" +msgid "This results in the following options for testing Rust code in Chromium:" msgstr "" -"Acest lucru are ca rezultat următoarele opțiuni pentru testarea codului Rust " -"în Chromium:" +"Acest lucru are ca rezultat următoarele opțiuni pentru testarea codului Rust în " +"Chromium:" #: src/chromium/testing.md #, fuzzy msgid "" -"Native Rust tests (i.e. `#[test]`). Discouraged outside of `//third_party/" -"rust`." +"Native Rust tests (i.e. `#[test]`). Discouraged outside of `//third_party/rust`." msgstr "" -"Teste Rust native (adică `#[test]`). Descurajat în afara `//third_party/" -"rust`." +"Teste Rust native (adică `#[test]`). Descurajat în afara `//third_party/rust`." #: src/chromium/testing.md #, fuzzy @@ -18112,16 +16943,16 @@ msgid "" "when Rust code is just a thin FFI layer and the existing unit tests provide " "sufficient coverage for the feature." msgstr "" -"teste `gtest` scrise în C++ și care utilizează Rust prin apeluri FFI. " -"Suficient atunci când codul Rust este doar un strat FFI subțire și testele " -"unitare existente oferă o acoperire suficientă pentru această caracteristică." +"teste `gtest` scrise în C++ și care utilizează Rust prin apeluri FFI. Suficient " +"atunci când codul Rust este doar un strat FFI subțire și testele unitare " +"existente oferă o acoperire suficientă pentru această caracteristică." #: src/chromium/testing.md #, fuzzy msgid "" "`gtest` tests authored in Rust and using the crate under test through its " -"public API (using `pub mod for_testing { ... }` if needed). This is the " -"subject of the next few slides." +"public API (using `pub mod for_testing { ... }` if needed). This is the subject " +"of the next few slides." msgstr "" "`gtest` testele sunt scrise în Rust și utilizează crate-ul testat prin " "intermediul API-ului său public (folosind `pub mod for_testing { ... }` dacă " @@ -18134,10 +16965,9 @@ msgid "" "exercised by Chromium bots. (Such testing is needed rarely --- only after " "adding or updating third-party crates.)" msgstr "" -"Menționați că testele Rust native ale craterelor terțe ar trebui să fie în " -"cele din urmă exercitate de roboții Chromium. (Astfel de testări sunt " -"necesare rareori --- doar după adăugarea sau actualizarea unor crates de la " -"terți)" +"Menționați că testele Rust native ale craterelor terțe ar trebui să fie în cele " +"din urmă exercitate de roboții Chromium. (Astfel de testări sunt necesare " +"rareori --- doar după adăugarea sau actualizarea unor crates de la terți)" #: src/chromium/testing.md #, fuzzy @@ -18152,9 +16982,9 @@ msgstr "" #, fuzzy msgid "" "QR has very little functionality in the first-party Rust layer (it's just a " -"thin FFI glue) and therefore uses the existing C++ unit tests for testing " -"both the C++ and the Rust implementation (parameterizing the tests so they " -"enable or disable Rust using a `ScopedFeatureList`)." +"thin FFI glue) and therefore uses the existing C++ unit tests for testing both " +"the C++ and the Rust implementation (parameterizing the tests so they enable or " +"disable Rust using a `ScopedFeatureList`)." msgstr "" "QR are foarte puțină funcționalitate în stratul Rust de primă instanță (este " "doar un strat subțire de lipire FFI) și, prin urmare, utilizează testele " @@ -18171,10 +17001,10 @@ msgid "" "functionality may benefit from separate tests authored in Rust." msgstr "" "Integrarea PNG ipotetică/WIP ar putea avea nevoie să implementeze o " -"implementare sigură în memorie a transformărilor de pixeli care sunt " -"furnizate de `libpng`, dar care lipsesc din `png` crate - de exemplu RGBA => " -"BGRA, sau corecția gamma. O astfel de funcționalitate ar putea beneficia de " -"teste separate realizate în Rust." +"implementare sigură în memorie a transformărilor de pixeli care sunt furnizate " +"de `libpng`, dar care lipsesc din `png` crate - de exemplu RGBA => BGRA, sau " +"corecția gamma. O astfel de funcționalitate ar putea beneficia de teste " +"separate realizate în Rust." #: src/chromium/testing/rust-gtest-interop.md #, fuzzy @@ -18188,8 +17018,7 @@ msgstr "" #: src/chromium/testing/rust-gtest-interop.md #, fuzzy msgid "" -"Use a Rust function as a `gtest` testcase (using the `#[gtest(...)]` " -"attribute)" +"Use a Rust function as a `gtest` testcase (using the `#[gtest(...)]` attribute)" msgstr "" "Utilizați o funcție Rust ca și testcase `gtest` (folosind atributul " "`#[gtest(...)]`)" @@ -18197,12 +17026,11 @@ msgstr "" #: src/chromium/testing/rust-gtest-interop.md #, fuzzy msgid "" -"Use `expect_eq!` and similar macros (similar to `assert_eq!` but not " -"panicking and not terminating the test when the assertion fails)." +"Use `expect_eq!` and similar macros (similar to `assert_eq!` but not panicking " +"and not terminating the test when the assertion fails)." msgstr "" -"Utilizați `expect_eq!` și macrocomenzi similare (similar cu `assert_eq!`, " -"dar fără a intra în panică și fără a încheia testul atunci când afirmația " -"eșuează)." +"Utilizați `expect_eq!` și macrocomenzi similare (similar cu `assert_eq!`, dar " +"fără a intra în panică și fără a încheia testul atunci când afirmația eșuează)." #: src/chromium/testing/rust-gtest-interop.md msgid "Example:" @@ -18211,12 +17039,11 @@ msgstr "Exemplu:" #: src/chromium/testing/build-gn.md #, fuzzy msgid "" -"The simplest way to build Rust `gtest` tests is to add them to an existing " -"test binary that already contains tests authored in C++. For example:" +"The simplest way to build Rust `gtest` tests is to add them to an existing test " +"binary that already contains tests authored in C++. For example:" msgstr "" -"Cel mai simplu mod de a construi teste Rust `gtest` este de a le adăuga la " -"un binar de testare existent care conține deja teste scrise în C++. De " -"exemplu:" +"Cel mai simplu mod de a construi teste Rust `gtest` este de a le adăuga la un " +"binar de testare existent care conține deja teste scrise în C++. De exemplu:" #: src/chromium/testing/build-gn.md #, fuzzy @@ -18289,22 +17116,21 @@ msgstr "" #: src/chromium/testing/chromium-import-macro.md #, fuzzy msgid "" -"After adding `:my_rust_lib` to GN `deps`, we still need to learn how to " -"import and use `my_rust_lib` from `my_rust_lib_unittest.rs`. We haven't " -"provided an explicit `crate_name` for `my_rust_lib` so its crate name is " -"computed based on the full target path and name. Fortunately we can avoid " -"working with such an unwieldy name by using the `chromium::import!` macro " -"from the automatically-imported `chromium` crate:" +"After adding `:my_rust_lib` to GN `deps`, we still need to learn how to import " +"and use `my_rust_lib` from `my_rust_lib_unittest.rs`. We haven't provided an " +"explicit `crate_name` for `my_rust_lib` so its crate name is computed based on " +"the full target path and name. Fortunately we can avoid working with such an " +"unwieldy name by using the `chromium::import!` macro from the automatically-" +"imported `chromium` crate:" msgstr "" -"După ce am adăugat `:my_rust_lib` la GN `deps`, mai trebuie să învățăm cum " -"să importăm și să folosim `my_rust_lib` din `my_rust_lib_unittest.rs`. Nu am " -"furnizat un `crate_name` explicit pentru `my_rust_lib`, astfel încât numele " -"său de crate este calculat pe baza căii și a numelui complet al țintei. Din " +"După ce am adăugat `:my_rust_lib` la GN `deps`, mai trebuie să învățăm cum să " +"importăm și să folosim `my_rust_lib` din `my_rust_lib_unittest.rs`. Nu am " +"furnizat un `crate_name` explicit pentru `my_rust_lib`, astfel încât numele său " +"de crate este calculat pe baza căii și a numelui complet al țintei. Din " "fericire, putem evita să lucrăm cu un astfel de nume greoi folosind macroul " "`chromium::import!` din crate-ul `chromium` importat automat:" #: src/chromium/testing/chromium-import-macro.md -#, fuzzy msgid "\"//ui/base:my_rust_lib\"" msgstr "\"//ui/base:my_rust_lib\"" @@ -18316,14 +17142,14 @@ msgstr "Sub acoperire, macroul se extinde la ceva similar cu:" #: src/chromium/testing/chromium-import-macro.md #, fuzzy msgid "" -"More information can be found in [the doc comment](https://source.chromium." -"org/chromium/chromium/src/+/main:build/rust/chromium_prelude/" -"chromium_prelude.rs?q=f:chromium_prelude.rs%20pub.use.*%5Cbimport%5Cb;%20-f:" +"More information can be found in [the doc comment](https://source.chromium.org/" +"chromium/chromium/src/+/main:build/rust/chromium_prelude/chromium_prelude.rs?" +"q=f:chromium_prelude.rs%20pub.use.*%5Cbimport%5Cb;%20-f:" "third_party&ss=chromium%2Fchromium%2Fsrc) of the `chromium::import` macro." msgstr "" -"Mai multe informații pot fi găsite în [comentariul doc](https://source." -"chromium.org/chromium/chromium/src/+/main:build/rust/chromium_prelude/" -"chromium_prelude.rs?q=f:chromium_prelude.rs%20pub.use.*%5Cbimport%5Cb;%20-f:" +"Mai multe informații pot fi găsite în [comentariul doc](https://source.chromium." +"org/chromium/chromium/src/+/main:build/rust/chromium_prelude/chromium_prelude." +"rs?q=f:chromium_prelude.rs%20pub.use.*%5Cbimport%5Cb;%20-f:" "third_party&ss=chromium%2Fchromium%2Fsrc) al macroului `chromium::import`." #: src/chromium/testing/chromium-import-macro.md @@ -18332,15 +17158,15 @@ msgid "" "`rust_static_library` supports specifying an explicit name via `crate_name` " "property, but doing this is discouraged. And it is discouraged because the " "crate name has to be globally unique. crates.io guarantees uniqueness of its " -"crate names so `cargo_crate` GN targets (generated by the `gnrt` tool " -"covered in a later section) use short crate names." +"crate names so `cargo_crate` GN targets (generated by the `gnrt` tool covered " +"in a later section) use short crate names." msgstr "" -"`rust_static_library` acceptă specificarea unui nume explicit prin " -"intermediul proprietății `crate_name`, dar acest lucru este descurajat. Și " -"este descurajată deoarece numele de ladă trebuie să fie unic la nivel " -"global. crates.io garantează unicitatea numelor de ladă, astfel încât " -"țintele GN `cargo_crate` (generate de instrumentul `gnrt`, abordat într-o " -"secțiune ulterioară) utilizează nume de ladă scurte." +"`rust_static_library` acceptă specificarea unui nume explicit prin intermediul " +"proprietății `crate_name`, dar acest lucru este descurajat. Și este descurajată " +"deoarece numele de ladă trebuie să fie unic la nivel global. crates.io " +"garantează unicitatea numelor de ladă, astfel încât țintele GN `cargo_crate` " +"(generate de instrumentul `gnrt`, abordat într-o secțiune ulterioară) " +"utilizează nume de ladă scurte." #: src/exercises/chromium/testing.md #, fuzzy @@ -18360,13 +17186,13 @@ msgstr "În construcția Chromium:" #: src/exercises/chromium/testing.md #, fuzzy msgid "" -"Add a testable function next to `hello_from_rust`. Some suggestions: adding " -"two integers received as arguments, computing the nth Fibonacci number, " -"summing integers in a slice, etc." +"Add a testable function next to `hello_from_rust`. Some suggestions: adding two " +"integers received as arguments, computing the nth Fibonacci number, summing " +"integers in a slice, etc." msgstr "" -"Adăugați o funcție testabilă lângă `hello_from_rust`. Câteva sugestii: " -"adunarea a două numere întregi primite ca argumente, calcularea celui de-al " -"n-lea număr Fibonacci, însumarea numerelor întregi dintr-o felie etc." +"Adăugați o funcție testabilă lângă `hello_from_rust`. Câteva sugestii: adunarea " +"a două numere întregi primite ca argumente, calcularea celui de-al n-lea număr " +"Fibonacci, însumarea numerelor întregi dintr-o felie etc." #: src/exercises/chromium/testing.md #, fuzzy @@ -18382,26 +17208,24 @@ msgstr "Adăugați noile teste la `BUILD.gn`." #: src/exercises/chromium/testing.md #, fuzzy msgid "Build the tests, run them, and verify that the new test works." -msgstr "" -"Construiți testele, rulați-le și verificați dacă noul test funcționează." +msgstr "Construiți testele, rulați-le și verificați dacă noul test funcționează." #: src/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"The Rust community offers multiple options for C++/Rust interop, with new " -"tools being developed all the time. At the moment, Chromium uses a tool " -"called CXX." +"The Rust community offers multiple options for C++/Rust interop, with new tools " +"being developed all the time. At the moment, Chromium uses a tool called CXX." msgstr "" "Comunitatea Rust oferă mai multe opțiuni pentru interopulare C++/Rust, noi " -"instrumente fiind dezvoltate în permanență. În prezent, Chromium utilizează " -"un instrument numit CXX." +"instrumente fiind dezvoltate în permanență. În prezent, Chromium utilizează un " +"instrument numit CXX." #: src/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"You describe your whole language boundary in an interface definition " -"language (which looks a lot like Rust) and then CXX tools generate " -"declarations for functions and types in both Rust and C++." +"You describe your whole language boundary in an interface definition language " +"(which looks a lot like Rust) and then CXX tools generate declarations for " +"functions and types in both Rust and C++." msgstr "" "Descrieți întreaga graniță a limbajului într-un limbaj de definire a " "interfețelor (care seamănă foarte mult cu Rust) și apoi instrumentele CXX " @@ -18420,8 +17244,8 @@ msgstr "" #, fuzzy msgid "" "Talk through the diagram. Explain that behind the scenes, this is doing just " -"the same as you previously did. Point out that automating the process has " -"the following benefits:" +"the same as you previously did. Point out that automating the process has the " +"following benefits:" msgstr "" "Vorbiți despre diagramă. Explicați că, în spatele scenei, aceasta face exact " "ceea ce ați făcut anterior. Precizați că automatizarea procesului are " @@ -18432,62 +17256,58 @@ msgstr "" msgid "" "The tool guarantees that the C++ and Rust sides match (e.g. you get compile " "errors if the `#[cxx::bridge]` doesn't match the actual C++ or Rust " -"definitions, but with out-of-sync manual bindings you'd get Undefined " -"Behavior)" +"definitions, but with out-of-sync manual bindings you'd get Undefined Behavior)" msgstr "" -"Instrumentul garantează că părțile C++ și Rust se potrivesc (de exemplu, " -"veți obține erori de compilare dacă `#[cxx::bridge]` nu se potrivește cu " -"definițiile reale C++ sau Rust, dar cu legături manuale nesincronizate veți " -"obține Comportament nedefinit)" +"Instrumentul garantează că părțile C++ și Rust se potrivesc (de exemplu, veți " +"obține erori de compilare dacă `#[cxx::bridge]` nu se potrivește cu definițiile " +"reale C++ sau Rust, dar cu legături manuale nesincronizate veți obține " +"Comportament nedefinit)" #: src/chromium/interoperability-with-cpp.md #, fuzzy msgid "" "The tool automates generation of FFI thunks (small, C-ABI-compatible, free " "functions) for non-C features (e.g. enabling FFI calls into Rust or C++ " -"methods; manual bindings would require authoring such top-level, free " -"functions manually)" +"methods; manual bindings would require authoring such top-level, free functions " +"manually)" msgstr "" "Instrumentul automatizează generarea de thunks FFI (funcții libere mici, " "compatibile cu C-ABI) pentru caracteristicile non-C (de exemplu, activarea " -"apelurilor FFI în metodele Rust sau C++; legăturile manuale ar necesita " -"crearea manuală a unor astfel de funcții libere de nivel superior)" +"apelurilor FFI în metodele Rust sau C++; legăturile manuale ar necesita crearea " +"manuală a unor astfel de funcții libere de nivel superior)" #: src/chromium/interoperability-with-cpp.md #, fuzzy msgid "The tool and the library can handle a set of core types - for example:" msgstr "" -"Instrumentul și biblioteca pot gestiona un set de tipuri de bază - de " -"exemplu:" +"Instrumentul și biblioteca pot gestiona un set de tipuri de bază - de exemplu:" #: src/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"`&[T]` can be passed across the FFI boundary, even though it doesn't " -"guarantee any particular ABI or memory layout. With manual bindings `std::" -"span` / `&[T]` have to be manually destructured and rebuilt out of a " -"pointer and length - this is error-prone given that each language represents " -"empty slices slightly differently)" +"`&[T]` can be passed across the FFI boundary, even though it doesn't guarantee " +"any particular ABI or memory layout. With manual bindings `std::span` / " +"`&[T]` have to be manually destructured and rebuilt out of a pointer and length " +"- this is error-prone given that each language represents empty slices slightly " +"differently)" msgstr "" "`&[T]` poate fi trecut peste granița FFI, chiar dacă nu garantează o " -"anumită ABI sau o anumită dispunere a memoriei. În cazul legăturilor " -"manuale, `std::span` / `&[T]` trebuie să fie destructurate și " -"reconstruite manual dintr-un pointer și o lungime - acest lucru este " -"predispus la erori, având în vedere că fiecare limbaj reprezintă feliile " -"goale în mod ușor diferit)" +"anumită ABI sau o anumită dispunere a memoriei. În cazul legăturilor manuale, " +"`std::span` / `&[T]` trebuie să fie destructurate și reconstruite manual " +"dintr-un pointer și o lungime - acest lucru este predispus la erori, având în " +"vedere că fiecare limbaj reprezintă feliile goale în mod ușor diferit)" #: src/chromium/interoperability-with-cpp.md #, fuzzy msgid "" "Smart pointers like `std::unique_ptr`, `std::shared_ptr`, and/or `Box` " "are natively supported. With manual bindings, one would have to pass C-ABI-" -"compatible raw pointers, which would increase lifetime and memory-safety " -"risks." +"compatible raw pointers, which would increase lifetime and memory-safety risks." msgstr "" -"Indicatorii inteligenți, cum ar fi `std::unique_ptr`, `std::" -"shared_ptr` și/sau `Box`, sunt suportați nativ. În cazul legăturilor " -"manuale, ar trebui să se treacă pointeri brute compatibile cu C-ABI, ceea ce " -"ar crește riscurile legate de durata de viață și siguranța memoriei." +"Indicatorii inteligenți, cum ar fi `std::unique_ptr`, `std::shared_ptr` " +"și/sau `Box`, sunt suportați nativ. În cazul legăturilor manuale, ar trebui să " +"se treacă pointeri brute compatibile cu C-ABI, ceea ce ar crește riscurile " +"legate de durata de viață și siguranța memoriei." #: src/chromium/interoperability-with-cpp.md #, fuzzy @@ -18498,9 +17318,9 @@ msgid "" "terminate a string)." msgstr "" "tipurile `rust::String` și `CxxString` înțeleg și mențin diferențele de " -"reprezentare a șirurilor de caractere între limbaje (de exemplu, `rust::" -"String::lossy` poate construi un șir Rust de la o intrare non-UTF8 și `rust::" -"String::c_str` poate termina un șir cu NUL)." +"reprezentare a șirurilor de caractere între limbaje (de exemplu, `rust::String::" +"lossy` poate construi un șir Rust de la o intrare non-UTF8 și `rust::String::" +"c_str` poate termina un șir cu NUL)." #: src/chromium/interoperability-with-cpp/example-bindings.md #, fuzzy @@ -18512,7 +17332,6 @@ msgstr "" "bridge` din codul sursă `.rs`." #: src/chromium/interoperability-with-cpp/example-bindings.md -#, fuzzy msgid "\"example/include/blobstore.h\"" msgstr "\"example/include/blobstore.h\"" @@ -18525,16 +17344,16 @@ msgstr "// Definițiile tipurilor și funcțiilor Rust merg aici\n" #, fuzzy msgid "Point out:" msgstr "" -"Ați putea indica modul în care sunt folosite anumite caractere specifice " -"atunci când se află într-un șablon" +"Arătați cum `...` se va extinde pentru a lua în considerare un număr diferit de " +"elemente." #: src/chromium/interoperability-with-cpp/example-bindings.md #, fuzzy msgid "" -"Although this looks like a regular Rust `mod`, the `#[cxx::bridge]` " -"procedural macro does complex things to it. The generated code is quite a " -"bit more sophisticated - though this does still result in a `mod` called " -"`ffi` in your code." +"Although this looks like a regular Rust `mod`, the `#[cxx::bridge]` procedural " +"macro does complex things to it. The generated code is quite a bit more " +"sophisticated - though this does still result in a `mod` called `ffi` in your " +"code." msgstr "" "Deși acesta arată ca un `mod` obișnuit din Rust, macroul procedural `#[cxx::" "bridge]` îi face lucruri complexe. Codul generat este mult mai sofisticat - " @@ -18563,21 +17382,20 @@ msgstr "Apeluri din Rust în C++ și tipuri C++ (în partea de jos)" #: src/chromium/interoperability-with-cpp/example-bindings.md #, fuzzy msgid "" -"**Common misconception**: It _looks_ like a C++ header is being parsed by " -"Rust, but this is misleading. This header is never interpreted by Rust, but " -"simply `#include`d in the generated C++ code for the benefit of C++ " -"compilers." +"**Common misconception**: It _looks_ like a C++ header is being parsed by Rust, " +"but this is misleading. This header is never interpreted by Rust, but simply " +"`#include`d in the generated C++ code for the benefit of C++ compilers." msgstr "" "**Inconștiență greșită frecventă**: Se pare că un antet C++ este analizat de " -"Rust, dar acest lucru este înșelător. Acest antet nu este niciodată " -"interpretat de Rust, ci este pur și simplu `#inclus` în codul C++ generat în " -"beneficiul compilatoarelor C++." +"Rust, dar acest lucru este înșelător. Acest antet nu este niciodată interpretat " +"de Rust, ci este pur și simplu `#inclus` în codul C++ generat în beneficiul " +"compilatoarelor C++." #: src/chromium/interoperability-with-cpp/limitations-of-cxx.md #, fuzzy msgid "" -"By far the most useful page when using CXX is the [type reference](https://" -"cxx.rs/bindings.html)." +"By far the most useful page when using CXX is the [type reference](https://cxx." +"rs/bindings.html)." msgstr "" "Arătați corespondența dintre [tipurile Rust și C++](https://cxx.rs/bindings." "html):" @@ -18590,8 +17408,7 @@ msgstr "CXX se potrivește în mod fundamental cazurilor în care:" #: src/chromium/interoperability-with-cpp/limitations-of-cxx.md #, fuzzy msgid "" -"Your Rust-C++ interface is sufficiently simple that you can declare all of " -"it." +"Your Rust-C++ interface is sufficiently simple that you can declare all of it." msgstr "" "Interfața Rust-C++ este suficient de simplă pentru a o putea declara în " "întregime." @@ -18617,23 +17434,21 @@ msgstr "" #: src/chromium/interoperability-with-cpp/limitations-of-cxx.md #, fuzzy msgid "" -"These limitations constrain us to using Rust in Chromium only for well " -"isolated \"leaf nodes\" rather than for arbitrary Rust-C++ interop. When " -"considering a use-case for Rust in Chromium, a good starting point is to " -"draft the CXX bindings for the language boundary to see if it appears simple " -"enough." +"These limitations constrain us to using Rust in Chromium only for well isolated " +"\"leaf nodes\" rather than for arbitrary Rust-C++ interop. When considering a " +"use-case for Rust in Chromium, a good starting point is to draft the CXX " +"bindings for the language boundary to see if it appears simple enough." msgstr "" -"Aceste limitări ne constrâng să folosim Rust în Chromium doar pentru " -"\"noduri de frunze\" bine izolate, mai degrabă decât pentru o interfață Rust-" -"C++ arbitrară. Atunci când se ia în considerare un caz de utilizare pentru " -"Rust în Chromium, un bun punct de plecare este să se redacteze legăturile " -"CXX pentru limita limbajului pentru a vedea dacă pare suficient de simplu." +"Aceste limitări ne constrâng să folosim Rust în Chromium doar pentru \"noduri " +"de frunze\" bine izolate, mai degrabă decât pentru o interfață Rust-C++ " +"arbitrară. Atunci când se ia în considerare un caz de utilizare pentru Rust în " +"Chromium, un bun punct de plecare este să se redacteze legăturile CXX pentru " +"limita limbajului pentru a vedea dacă pare suficient de simplu." #: src/chromium/interoperability-with-cpp/limitations-of-cxx.md #, fuzzy msgid "" -"You should also discuss some of the other sticky points with CXX, for " -"example:" +"You should also discuss some of the other sticky points with CXX, for example:" msgstr "" "De asemenea, ar trebui să discutați cu CXX despre alte puncte sensibile, de " "exemplu:" @@ -18654,12 +17469,11 @@ msgstr "Indicatorii de funcție sunt greu de utilizat." #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy msgid "" -"CXX's [support for `Result`](https://cxx.rs/binding/result.html) relies " -"on C++ exceptions, so we can't use that in Chromium. Alternatives:" +"CXX's [support for `Result`](https://cxx.rs/binding/result.html) relies on " +"C++ exceptions, so we can't use that in Chromium. Alternatives:" msgstr "" "CXX [suportul pentru `Result`](https://cxx.rs/binding/result.html) se " -"bazează pe excepțiile C++, așa că nu îl putem folosi în Chromium. " -"Alternative:" +"bazează pe excepțiile C++, așa că nu îl putem folosi în Chromium. Alternative:" #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy @@ -18669,12 +17483,12 @@ msgstr "Partea `T` din `Result` poate fi:" #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy msgid "" -"Returned via out parameters (e.g. via `&mut T`). This requires that `T` can " -"be passed across the FFI boundary - for example `T` has to be:" +"Returned via out parameters (e.g. via `&mut T`). This requires that `T` can be " +"passed across the FFI boundary - for example `T` has to be:" msgstr "" -"Se returnează prin intermediul parametrilor de ieșire (de exemplu, prin " -"`&mut T`). Acest lucru necesită ca `T` să poată fi transmis peste granița " -"FFI - de exemplu, `T` trebuie să fie:" +"Se returnează prin intermediul parametrilor de ieșire (de exemplu, prin `&mut " +"T`). Acest lucru necesită ca `T` să poată fi transmis peste granița FFI - de " +"exemplu, `T` trebuie să fie:" #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy @@ -18694,13 +17508,13 @@ msgstr "" #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy msgid "" -"Retained on the Rust side, and exposed via reference. This may be needed " -"when `T` is a Rust type, which cannot be passed across the FFI boundary, and " -"cannot be stored in `UniquePtr`." +"Retained on the Rust side, and exposed via reference. This may be needed when " +"`T` is a Rust type, which cannot be passed across the FFI boundary, and cannot " +"be stored in `UniquePtr`." msgstr "" "Reținută pe partea de rugină și expusă prin referință. Acest lucru poate fi " -"necesar atunci când `T` este un tip Rust, care nu poate fi trecut peste " -"granița FFI și nu poate fi stocat în `UniquePtr`." +"necesar atunci când `T` este un tip Rust, care nu poate fi trecut peste granița " +"FFI și nu poate fi stocat în `UniquePtr`." #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy @@ -18713,14 +17527,14 @@ msgid "" "Returned as a boolean (e.g. `true` representing success, and `false` " "representing failure)" msgstr "" -"Se returnează sub formă de boolean (de exemplu, `true` reprezintă succesul, " -"iar `false` reprezintă eșecul)" +"Se returnează sub formă de boolean (de exemplu, `true` reprezintă succesul, iar " +"`false` reprezintă eșecul)" #: src/chromium/interoperability-with-cpp/error-handling.md #, fuzzy msgid "" -"Preserving error details is in theory possible, but so far hasn't been " -"needed in practice." +"Preserving error details is in theory possible, but so far hasn't been needed " +"in practice." msgstr "" "Păstrarea detaliilor privind erorile este teoretic posibilă, dar până în " "prezent nu a fost necesară în practică." @@ -18734,61 +17548,57 @@ msgstr "Gestionarea erorilor" #, fuzzy msgid "" "The QR code generator is [an example](https://source.chromium.org/chromium/" -"chromium/src/+/main:components/qr_code_generator/qr_code_generator_ffi_glue." -"rs;l=13-18;drc=7bf1b75b910ca430501b9c6a74c1d18a0223ecca) where a boolean is " -"used to communicate success vs failure, and where the successful result can " -"be passed across the FFI boundary:" -msgstr "" -"Generatorul de coduri QR este [un exemplu](https://source.chromium.org/" -"chromium/chromium/src/+/main:components/qr_code_generator/" -"qr_code_generator_ffi_glue.rs;l=13-18;" -"drc=7bf1bb75b910ca430501b9c6a74c1d18a0223ecca) în care se utilizează un " -"boolean pentru a comunica succesul vs. eșecul și în care rezultatul de " -"succes poate fi transmis peste granița FFI:" +"chromium/src/+/main:components/qr_code_generator/qr_code_generator_ffi_glue.rs;" +"l=13-18;drc=7bf1b75b910ca430501b9c6a74c1d18a0223ecca) where a boolean is used " +"to communicate success vs failure, and where the successful result can be " +"passed across the FFI boundary:" +msgstr "" +"Generatorul de coduri QR este [un exemplu](https://source.chromium.org/chromium/" +"chromium/src/+/main:components/qr_code_generator/qr_code_generator_ffi_glue.rs;" +"l=13-18;drc=7bf1bb75b910ca430501b9c6a74c1d18a0223ecca) în care se utilizează un " +"boolean pentru a comunica succesul vs. eșecul și în care rezultatul de succes " +"poate fi transmis peste granița FFI:" #: src/chromium/interoperability-with-cpp/error-handling-qr.md -#, fuzzy msgid "\"qr_code_generator\"" msgstr "\"qr_code_generator\"" #: src/chromium/interoperability-with-cpp/error-handling-qr.md #, fuzzy msgid "" -"Students may be curious about the semantics of the `out_qr_size` output. " -"This is not the size of the vector, but the size of the QR code (and " -"admittedly it is a bit redundant - this is the square root of the size of " -"the vector)." +"Students may be curious about the semantics of the `out_qr_size` output. This " +"is not the size of the vector, but the size of the QR code (and admittedly it " +"is a bit redundant - this is the square root of the size of the vector)." msgstr "" -"Elevii pot fi curioși în legătură cu semantica ieșirii `out_qr_size`. " -"Aceasta nu este dimensiunea vectorului, ci dimensiunea codului QR (și, " -"trebuie să recunoaștem, este un pic redundantă - este rădăcina pătrată a " -"dimensiunii vectorului)." +"Elevii pot fi curioși în legătură cu semantica ieșirii `out_qr_size`. Aceasta " +"nu este dimensiunea vectorului, ci dimensiunea codului QR (și, trebuie să " +"recunoaștem, este un pic redundantă - este rădăcina pătrată a dimensiunii " +"vectorului)." #: src/chromium/interoperability-with-cpp/error-handling-qr.md #, fuzzy msgid "" "It may be worth pointing out the importance of initializing `out_qr_size` " -"before calling into the Rust function. Creation of a Rust reference that " -"points to uninitialized memory results in Undefined Behavior (unlike in C++, " -"when only the act of dereferencing such memory results in UB)." +"before calling into the Rust function. Creation of a Rust reference that points " +"to uninitialized memory results in Undefined Behavior (unlike in C++, when only " +"the act of dereferencing such memory results in UB)." msgstr "" -"Ar putea fi util să subliniem importanța inițializării `out_qr_size` înainte " -"de a apela la funcția Rust. Crearea unei referințe Rust care indică o " -"memorie neinițializată are ca rezultat un comportament nedefinit (spre " -"deosebire de C++, când numai actul de dereferențiere a unei astfel de " -"memorii are ca rezultat UB)." +"Ar putea fi util să subliniem importanța inițializării `out_qr_size` înainte de " +"a apela la funcția Rust. Crearea unei referințe Rust care indică o memorie " +"neinițializată are ca rezultat un comportament nedefinit (spre deosebire de C+" +"+, când numai actul de dereferențiere a unei astfel de memorii are ca rezultat " +"UB)." #: src/chromium/interoperability-with-cpp/error-handling-qr.md #, fuzzy msgid "" "If students ask about `Pin`, then explain why CXX needs it for mutable " -"references to C++ data: the answer is that C++ data can't be moved around " -"like Rust data, because it may contain self-referential pointers." +"references to C++ data: the answer is that C++ data can’t be moved around like " +"Rust data, because it may contain self-referential pointers." msgstr "" "Dacă elevii întreabă despre `Pin`, explicați-le de ce CXX are nevoie de el " -"pentru referințele mutabile la datele C++: răspunsul este că datele C++ nu " -"pot fi mutate ca și datele Rust, deoarece pot conține pointeri " -"autoreferențiali." +"pentru referințele mutabile la datele C++: răspunsul este că datele C++ nu pot " +"fi mutate ca și datele Rust, deoarece pot conține pointeri autoreferențiali." #: src/chromium/interoperability-with-cpp/error-handling-png.md #, fuzzy @@ -18798,14 +17608,13 @@ msgstr "Gestionarea erorilor" #: src/chromium/interoperability-with-cpp/error-handling-png.md #, fuzzy msgid "" -"A prototype of a PNG decoder illustrates what can be done when the " -"successful result cannot be passed across the FFI boundary:" +"A prototype of a PNG decoder illustrates what can be done when the successful " +"result cannot be passed across the FFI boundary:" msgstr "" "Un prototip al unui decodor PNG ilustrează ce se poate face atunci când " "rezultatul pozitiv nu poate fi transmis peste granița FFI:" #: src/chromium/interoperability-with-cpp/error-handling-png.md -#, fuzzy msgid "\"gfx::rust_bindings\"" msgstr "\"gfx::rust_bindings\"" @@ -18831,15 +17640,15 @@ msgstr "/// Legături C++ pentru tipul `crate::png::PngReader`.\n" #: src/chromium/interoperability-with-cpp/error-handling-png.md #, fuzzy msgid "" -"`PngReader` and `ResultOfPngReader` are Rust types --- objects of these " -"types cannot cross the FFI boundary without indirection of a `Box`. We " -"can't have an `out_parameter: &mut PngReader`, because CXX doesn't allow C++ " -"to store Rust objects by value." +"`PngReader` and `ResultOfPngReader` are Rust types --- objects of these types " +"cannot cross the FFI boundary without indirection of a `Box`. We can't have " +"an `out_parameter: &mut PngReader`, because CXX doesn't allow C++ to store Rust " +"objects by value." msgstr "" "`PngReader` și `ResultOfPngReader` sunt tipuri Rust --- obiectele din aceste " -"tipuri nu pot trece granița FFI fără o indirecțiune a unui `Box`. Nu " -"putem avea un `out_parameter: &mut PngReader`, deoarece CXX nu permite " -"ca C++ să stocheze obiecte Rust prin valoare." +"tipuri nu pot trece granița FFI fără o indirecțiune a unui `Box`. Nu putem " +"avea un `out_parameter: &mut PngReader`, deoarece CXX nu permite ca C++ să " +"stocheze obiecte Rust prin valoare." #: src/chromium/interoperability-with-cpp/error-handling-png.md #, fuzzy @@ -18866,13 +17675,13 @@ msgstr "Utilizarea CXX în Chromium" #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md #, fuzzy msgid "" -"In Chromium, we define an independent `#[cxx::bridge] mod` for each leaf-" -"node where we want to use Rust. You'd typically have one for each " +"In Chromium, we define an independent `#[cxx::bridge] mod` for each leaf-node " +"where we want to use Rust. You'd typically have one for each " "`rust_static_library`. Just add" msgstr "" "În Chromium, definim un `#[cxx::bridge] mod` independent pentru fiecare nod " -"frunză în care dorim să folosim Rust. De obicei, veți avea unul pentru " -"fiecare `rust_static_library`. Trebuie doar să adăugați" +"frunză în care dorim să folosim Rust. De obicei, veți avea unul pentru fiecare " +"`rust_static_library`. Trebuie doar să adăugați" #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md #, fuzzy @@ -18895,8 +17704,7 @@ msgid "" "to your existing `rust_static_library` target alongside `crate_root` and " "`sources`." msgstr "" -"la ținta `rust_static_library` existentă, alături de `crate_root` și " -"`sources`." +"la ținta `rust_static_library` existentă, alături de `crate_root` și `sources`." #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md #, fuzzy @@ -18906,17 +17714,15 @@ msgstr "" "doar să" #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md -#, fuzzy msgid "\"ui/base/my_rust_file.rs.h\"" msgstr "\"ui/base/my_rust_file.rs.h\"" #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md #, fuzzy msgid "" -"You will find some utility functions in `//base` to convert to/from Chromium " -"C++ types to CXX Rust types --- for example [`SpanToRustSlice`](https://" -"source.chromium.org/chromium/chromium/src/+/main:base/containers/span_rust.h;" -"l=21)." +"You will find some utility functions in `//base` to convert to/from Chromium C+" +"+ types to CXX Rust types --- for example [`SpanToRustSlice`](https://source." +"chromium.org/chromium/chromium/src/+/main:base/containers/span_rust.h;l=21)." msgstr "" "Veți găsi câteva funcții utilitare în `//base` pentru a converti la/de la " "tipurile Chromium C++ la tipurile CXX Rust --- de exemplu [`SpanToRustSlice`]" @@ -18927,40 +17733,40 @@ msgstr "" #, fuzzy msgid "Students may ask --- why do we still need `allow_unsafe = true`?" msgstr "" -"Studenții se pot întreba --- de ce mai avem nevoie de `allow_unsafe = true`?" +"Cursanții se pot întreba --- de ce mai avem nevoie de `allow_unsafe = true`?" #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md #, fuzzy msgid "" "The broad answer is that no C/C++ code is \"safe\" by the normal Rust " -"standards. Calling back and forth to C/C++ from Rust may do arbitrary things " -"to memory, and compromise the safety of Rust's own data layouts. Presence of " -"_too many_ `unsafe` keywords in C/C++ interop can harm the signal-to-noise " -"ratio of such a keyword, and is [controversial](https://steveklabnik.com/" -"writing/the-cxx-debate), but strictly, bringing any foreign code into a Rust " -"binary can cause unexpected behavior from Rust's perspective." -msgstr "" -"Răspunsul general este că nici un cod C/C++ nu este \"sigur\" după " -"standardele Rust obișnuite. Apelarea din Rust către C/C++ poate face lucruri " -"arbitrare în memorie și poate compromite siguranța propriilor aranjamente de " -"date din Rust. Prezența a _prea multor_ cuvinte cheie `unsafe` în interop C/" -"C++ poate dăuna raportului semnal-zgomot al unui astfel de cuvânt cheie și " -"este [controversată](https://steveklabnik.com/writing/the-cxx-debate), dar, " -"strict, aducerea oricărui cod străin într-un binar Rust poate cauza un " -"comportament neașteptat din perspectiva Rust." +"standards. Calling back and forth to C/C++ from Rust may do arbitrary things to " +"memory, and compromise the safety of Rust's own data layouts. Presence of _too " +"many_ `unsafe` keywords in C/C++ interop can harm the signal-to-noise ratio of " +"such a keyword, and is [controversial](https://steveklabnik.com/writing/the-cxx-" +"debate), but strictly, bringing any foreign code into a Rust binary can cause " +"unexpected behavior from Rust's perspective." +msgstr "" +"Răspunsul general este că nici un cod C/C++ nu este \"sigur\" după standardele " +"Rust obișnuite. Apelarea din Rust către C/C++ poate face lucruri arbitrare în " +"memorie și poate compromite siguranța propriilor aranjamente de date din Rust. " +"Prezența a _prea multor_ cuvinte cheie `unsafe` în interop C/C++ poate dăuna " +"raportului semnal-zgomot al unui astfel de cuvânt cheie și este [controversată]" +"(https://steveklabnik.com/writing/the-cxx-debate), dar, strict, aducerea " +"oricărui cod străin într-un binar Rust poate cauza un comportament neașteptat " +"din perspectiva Rust." #: src/chromium/interoperability-with-cpp/using-cxx-in-chromium.md #, fuzzy msgid "" "The narrow answer lies in the diagram at the top of [this page](../" "interoperability-with-cpp.md) --- behind the scenes, CXX generates Rust " -"`unsafe` and `extern \"C\"` functions just like we did manually in the " -"previous section." +"`unsafe` and `extern \"C\"` functions just like we did manually in the previous " +"section." msgstr "" -"Răspunsul restrâns se află în diagrama din partea de sus a [acestei pagini]" -"(../interoperabilitate-cu-cpp.md) --- în spatele scenei, CXX generează " -"funcții Rust `unsafe` și `extern \"C\"` exact așa cum am făcut manual în " -"secțiunea anterioară." +"Răspunsul restrâns se află în diagrama din partea de sus a [acestei pagini](../" +"interoperabilitate-cu-cpp.md) --- în spatele scenei, CXX generează funcții Rust " +"`unsafe` și `extern \"C\"` exact așa cum am făcut manual în secțiunea " +"anterioară." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy @@ -18975,9 +17781,9 @@ msgstr "Prima parte" #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"In the Rust file you previously created, add a `#[cxx::bridge]` which " -"specifies a single function, to be called from C++, called " -"`hello_from_rust`, taking no parameters and returning no value." +"In the Rust file you previously created, add a `#[cxx::bridge]` which specifies " +"a single function, to be called from C++, called `hello_from_rust`, taking no " +"parameters and returning no value." msgstr "" "În fișierul Rust pe care l-ați creat anterior, adăugați un `#[cxx::bridge]` " "care specifică o singură funcție, care va fi apelată din C++, numită " @@ -18989,8 +17795,8 @@ msgid "" "Modify your previous `hello_from_rust` function to remove `extern \"C\"` and " "`#[no_mangle]`. This is now just a standard Rust function." msgstr "" -"Modificați funcția `hello_from_rust` anterioară pentru a elimina `extern " -"\"C\"` și `#[no_mangle]`. Aceasta este acum doar o funcție Rust standard." +"Modificați funcția `hello_from_rust` anterioară pentru a elimina `extern \"C\"` " +"și `#[no_mangle]`. Aceasta este acum doar o funcție Rust standard." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy @@ -19000,8 +17806,8 @@ msgstr "Modificați ținta `gn` pentru a construi aceste legături." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"In your C++ code, remove the forward-declaration of `hello_from_rust`. " -"Instead, include the generated header file." +"In your C++ code, remove the forward-declaration of `hello_from_rust`. Instead, " +"include the generated header file." msgstr "" "În codul dvs. C++, eliminați declarația forward a lui `hello_from_rust`. În " "schimb, includeți fișierul antet generat." @@ -19041,8 +17847,8 @@ msgid "" "An additional header file which you can `include!` from your `cxx::bridge`. " "You'll need to declare your C++ function in that new header file." msgstr "" -"Un fișier header suplimentar pe care îl puteți `include!` din `cxx::bridge`. " -"Va trebui să vă declarați funcția C++ în acest nou fișier de antet." +"Un fișier header suplimentar pe care îl puteți `include!` din `cxx::bridge`. Va " +"trebui să vă declarați funcția C++ în acest nou fișier de antet." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy @@ -19052,14 +17858,13 @@ msgid "" "extern-c++.html#functions-and-member-functions)." msgstr "" "Un bloc `unsafe` pentru a apela o astfel de funcție sau, alternativ, " -"specificați cuvântul cheie `unsafe` în `#[cxx::bridge]` [așa cum este " -"descris aici](https://cxx.rs/extern-c++.html#functions-and-member-functions)." +"specificați cuvântul cheie `unsafe` în `#[cxx::bridge]` [așa cum este descris " +"aici](https://cxx.rs/extern-c++.html#functions-and-member-functions)." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"You may also need to `#include \"third_party/rust/cxx/v1/crate/include/cxx." -"h\"`" +"You may also need to `#include \"third_party/rust/cxx/v1/crate/include/cxx.h\"`" msgstr "" "Este posibil să aveți nevoie și de `#include \"third_party/rust/cxx/v1/crate/" "include/cxx.h\"``" @@ -19080,8 +17885,8 @@ msgid "" "Intentionally get the Rust function signatures mismatched from the `#[cxx::" "bridge]`, and get used to the errors you see." msgstr "" -"Obțineți în mod intenționat semnăturile funcțiilor Rust nepotrivite din " -"`#[cxx::bridge]` și obișnuiți-vă cu erorile pe care le vedeți." +"Obțineți în mod intenționat semnăturile funcțiilor Rust nepotrivite din `#[cxx::" +"bridge]` și obișnuiți-vă cu erorile pe care le vedeți." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy @@ -19089,14 +17894,14 @@ msgid "" "Intentionally get the C++ function signatures mismatched from the `#[cxx::" "bridge]`, and get used to the errors you see." msgstr "" -"Obțineți în mod intenționat semnăturile funcțiilor C++ nepotrivite din " -"`#[cxx::bridge]` și obișnuiți-vă cu erorile pe care le vedeți." +"Obțineți în mod intenționat semnăturile funcțiilor C++ nepotrivite din `#[cxx::" +"bridge]` și obișnuiți-vă cu erorile pe care le vedeți." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"Pass a `std::unique_ptr` of some type from C++ into Rust, so that Rust can " -"own some C++ object." +"Pass a `std::unique_ptr` of some type from C++ into Rust, so that Rust can own " +"some C++ object." msgstr "" "Treceți un `std::unique_ptr` de un anumit tip din C++ în Rust, astfel încât " "Rust să poată deține un obiect C++." @@ -19104,8 +17909,8 @@ msgstr "" #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"Create a Rust object and pass it into C++, so that C++ owns it. (Hint: you " -"need a `Box`)." +"Create a Rust object and pass it into C++, so that C++ owns it. (Hint: you need " +"a `Box`)." msgstr "" "Creați un obiect Rust și treceți-l în C++, astfel încât C++ să îl dețină. " "(Indicație: aveți nevoie de un `Box`)." @@ -19132,9 +17937,9 @@ msgid "" "couple of use-cases for Rust in Chromium where the interface would be " "sufficiently simple. Sketch how you might define that interface." msgstr "" -"Acum că ați înțeles punctele forte și limitările interoperării CXX, gândiți-" -"vă la câteva cazuri de utilizare pentru Rust în Chromium în care interfața " -"ar fi suficient de simplă. Schițați cum ați putea defini această interfață." +"Acum că ați înțeles punctele forte și limitările interoperării CXX, gândiți-vă " +"la câteva cazuri de utilizare pentru Rust în Chromium în care interfața ar fi " +"suficient de simplă. Schițați cum ați putea defini această interfață." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy @@ -19160,28 +17965,27 @@ msgstr "Câteva dintre întrebările pe care le puteți întâlni:" #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" -"I'm seeing a problem initializing a variable of type X with type Y, where X " -"and Y are both function types. This is because your C++ function doesn't " -"quite match the declaration in your `cxx::bridge`." +"I'm seeing a problem initializing a variable of type X with type Y, where X and " +"Y are both function types. This is because your C++ function doesn't quite " +"match the declaration in your `cxx::bridge`." msgstr "" "Am o problemă în ceea ce privește inițializarea unei variabile de tip X cu " "tipul Y, unde X și Y sunt ambele tipuri de funcții. Acest lucru se datorează " -"faptului că funcția dvs. C++ nu se potrivește cu declarația din `cxx::" -"bridge`." +"faptului că funcția dvs. C++ nu se potrivește cu declarația din `cxx::bridge`." #: src/exercises/chromium/interoperability-with-cpp.md #, fuzzy msgid "" "I seem to be able to freely convert C++ references into Rust references. " "Doesn't that risk UB? For CXX's _opaque_ types, no, because they are zero-" -"sized. For CXX trivial types yes, it's _possible_ to cause UB, although " -"CXX's design makes it quite difficult to craft such an example." +"sized. For CXX trivial types yes, it's _possible_ to cause UB, although CXX's " +"design makes it quite difficult to craft such an example." msgstr "" "Se pare că pot converti în mod liber referințele C++ în referințe Rust. Nu " -"riscă asta UB? În cazul tipurilor _opaque_ din CXX, nu, deoarece acestea " -"sunt de dimensiune zero. Pentru tipurile triviale din CXX, da, este " -"_posibil_ să provoace UB, deși designul CXX face destul de dificilă crearea " -"unui astfel de exemplu." +"riscă asta UB? În cazul tipurilor _opaque_ din CXX, nu, deoarece acestea sunt " +"de dimensiune zero. Pentru tipurile triviale din CXX, da, este _posibil_ să " +"provoace UB, deși designul CXX face destul de dificilă crearea unui astfel de " +"exemplu." #: src/chromium/adding-third-party-crates.md #, fuzzy @@ -19191,8 +17995,8 @@ msgid "" "they do!" msgstr "" "Bibliotecile Rust se numesc \"crates\" și se găsesc la [crates.io](https://" -"crates.io). Este _foarte ușor_ pentru crates Rust să depindă unele de " -"altele. Așa că o fac!" +"crates.io). Este _foarte ușor_ pentru crates Rust să depindă unele de altele. " +"Așa că o fac!" #: src/chromium/adding-third-party-crates.md msgid "Property" @@ -19213,11 +18017,10 @@ msgstr "Ecosistemul Rust" msgid "Build system" msgstr "" "Veți avea nevoie de un [sursele AOSP](https://source.android.com/docs/setup/" -"download/downloading). Efectuați o descărcare a [resurselor cursului]" -"(https://github.com/google/comprehensive-rust) pe aceeași mașină și mutați " -"directorul `src/android/` în rădăcina surselor AOSP. Acest lucru va asigura " -"că sistemul de compilare Android vede fișierele `Android.bp` din `src/" -"android/`." +"download/downloading). Efectuați o descărcare a [resurselor cursului](https://" +"github.com/google/comprehensive-rust) pe aceeași mașină și mutați directorul " +"`src/android/` în rădăcina surselor AOSP. Acest lucru va asigura că sistemul de " +"compilare Android vede fișierele `Android.bp` din `src/android/`." #: src/chromium/adding-third-party-crates.md msgid "Lots" @@ -19262,17 +18065,16 @@ msgid "" "All crates use a common build system so we can automate their inclusion into " "Chromium..." msgstr "" -"Toate craterele folosesc un sistem comun de construire, astfel încât să " -"putem automatiza includerea lor în Chromium..." +"Toate craterele folosesc un sistem comun de construire, astfel încât să putem " +"automatiza includerea lor în Chromium..." #: src/chromium/adding-third-party-crates.md -#, fuzzy msgid "" -"... but, crates typically have transitive dependencies, so you will likely " -"have to bring in multiple libraries." +"... but, crates typically have transitive dependencies, so you will likely have " +"to bring in multiple libraries." msgstr "" -"... dar, de obicei, crates are dependențe tranzitive, așa că va trebui " -"probabil să introduceți mai multe biblioteci." +"... dar, de obicei, crate-urile au dependențe tranzitive, așa că va trebui " +"probabil să adăugați mai multe biblioteci." #: src/chromium/adding-third-party-crates.md #, fuzzy @@ -19302,15 +18104,14 @@ msgstr "Configurarea fișierului `Cargo.toml` pentru a adăuga lăzi" #: src/chromium/adding-third-party-crates/configuring-cargo-toml.md #, fuzzy msgid "" -"Chromium has a single set of centrally-managed direct crate dependencies. " -"These are managed through a single [`Cargo.toml`](https://source.chromium." -"org/chromium/chromium/src/+/main:third_party/rust/chromium_crates_io/Cargo." -"toml):" +"Chromium has a single set of centrally-managed direct crate dependencies. These " +"are managed through a single [`Cargo.toml`](https://source.chromium.org/" +"chromium/chromium/src/+/main:third_party/rust/chromium_crates_io/Cargo.toml):" msgstr "" -"Chromium are un singur set de dependențe directe de crate gestionate la " -"nivel central. Acestea sunt gestionate prin intermediul unui singur [`Cargo." -"toml`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/" -"rust/chromium_crates_io/Cargo.toml):" +"Chromium are un singur set de dependențe directe de crate gestionate la nivel " +"central. Acestea sunt gestionate prin intermediul unui singur [`Cargo.toml`]" +"(https://source.chromium.org/chromium/chromium/src/+/main:third_party/rust/" +"chromium_crates_io/Cargo.toml):" #: src/chromium/adding-third-party-crates/configuring-cargo-toml.md #, fuzzy @@ -19335,14 +18136,14 @@ msgstr "" #, fuzzy msgid "" "As with any other `Cargo.toml`, you can specify [more details about the " -"dependencies](https://doc.rust-lang.org/cargo/reference/specifying-" -"dependencies.html) --- most commonly, you'll want to specify the `features` " -"that you wish to enable in the crate." +"dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies." +"html) --- most commonly, you'll want to specify the `features` that you wish to " +"enable in the crate." msgstr "" -"Ca și în cazul oricărui alt `Cargo.toml`, puteți specifica [mai multe " -"detalii despre dependențe](https://doc.rust-lang.org/cargo/reference/" -"specifying-dependencies.html) --- cel mai frecvent, veți dori să specificați " -"`features` pe care doriți să le activați în crate." +"Ca și în cazul oricărui alt `Cargo.toml`, puteți specifica [mai multe detalii " +"despre dependențe](https://doc.rust-lang.org/cargo/reference/specifying-" +"dependencies.html) --- cel mai frecvent, veți dori să specificați `features` pe " +"care doriți să le activați în crate." #: src/chromium/adding-third-party-crates/configuring-cargo-toml.md #, fuzzy @@ -19350,9 +18151,9 @@ msgid "" "When adding a crate to Chromium, you'll often need to provide some extra " "information in an additional file, `gnrt_config.toml`, which we'll meet next." msgstr "" -"Atunci când adăugați un crate la Chromium, va trebui adesea să furnizați " -"câteva informații suplimentare într-un fișier suplimentar, `gnrt_config." -"toml`, pe care îl vom întâlni în continuare." +"Atunci când adăugați un crate la Chromium, va trebui adesea să furnizați câteva " +"informații suplimentare într-un fișier suplimentar, `gnrt_config.toml`, pe care " +"îl vom întâlni în continuare." #: src/chromium/adding-third-party-crates/configuring-gnrt-config-toml.md #, fuzzy @@ -19369,8 +18170,7 @@ msgstr "" #: src/chromium/adding-third-party-crates/configuring-gnrt-config-toml.md #, fuzzy msgid "" -"If you add a new crate, you should specify at least the `group`. This is one " -"of:" +"If you add a new crate, you should specify at least the `group`. This is one of:" msgstr "" "Dacă adăugați o ladă nouă, trebuie să specificați cel puțin `group`. Acesta " "este unul dintre următoarele:" @@ -19379,26 +18179,29 @@ msgstr "" #: src/chromium/adding-third-party-crates/depending-on-a-crate.md #, fuzzy msgid "For instance," -msgstr "De exemplu," +msgstr "" +"receptor:\n" +"Primul parametru dintr-o metodă Rust care reprezintă instanța asupra căreia " +"este apelată metoda." #: src/chromium/adding-third-party-crates/configuring-gnrt-config-toml.md #, fuzzy msgid "" -"Depending on the crate source code layout, you may also need to use this " -"file to specify where its `LICENSE` file(s) can be found." +"Depending on the crate source code layout, you may also need to use this file " +"to specify where its `LICENSE` file(s) can be found." msgstr "" "În funcție de dispunerea codului sursă al crate-ului, este posibil să fie " -"nevoie să folosiți acest fișier pentru a specifica unde pot fi găsite " -"fișierul (fișierele) `LICENSE`." +"nevoie să folosiți acest fișier pentru a specifica unde pot fi găsite fișierul " +"(fișierele) `LICENSE`." #: src/chromium/adding-third-party-crates/configuring-gnrt-config-toml.md #, fuzzy msgid "" -"Later, we'll see some other things you will need to configure in this file " -"to resolve problems." +"Later, we'll see some other things you will need to configure in this file to " +"resolve problems." msgstr "" -"Mai târziu, vom vedea alte lucruri pe care va trebui să le configurați în " -"acest fișier pentru a rezolva problemele." +"Mai târziu, vom vedea alte lucruri pe care va trebui să le configurați în acest " +"fișier pentru a rezolva problemele." #: src/chromium/adding-third-party-crates/downloading-crates.md #, fuzzy @@ -19417,10 +18220,9 @@ msgstr "Pentru a începe, descărcați caseta pe care o doriți, astfel:" #: src/chromium/adding-third-party-crates/downloading-crates.md #, fuzzy msgid "" -"Although the `gnrt` tool is part of the Chromium source code, by running " -"this command you will be downloading and running its dependencies from " -"`crates.io`. See [the earlier section](../cargo.md) discussing this security " -"decision." +"Although the `gnrt` tool is part of the Chromium source code, by running this " +"command you will be downloading and running its dependencies from `crates.io`. " +"See [the earlier section](../cargo.md) discussing this security decision." msgstr "" "Deși instrumentul `gnrt` face parte din codul sursă Chromium, prin rularea " "acestei comenzi veți descărca și rula dependențele sale de pe `crates.io`. " @@ -19433,9 +18235,8 @@ msgid "This `vendor` command may download:" msgstr "Această comandă `vendor` poate descărca:" #: src/chromium/adding-third-party-crates/downloading-crates.md -#, fuzzy msgid "Your crate" -msgstr "Lăzi (crates) utile" +msgstr "Crate-ul vostru" #: src/chromium/adding-third-party-crates/downloading-crates.md #, fuzzy @@ -19458,15 +18259,13 @@ msgid "" "chromium_crates_io/patches`. These will be reapplied automatically, but if " "patching fails you may need to take manual action." msgstr "" -"Chromium menține patch-uri pentru unele crates, păstrate în `//third_party/" -"rust/chromium_crates_io/patches`. Acestea vor fi reaplicate în mod automat, " -"dar dacă patch-urile nu reușesc este posibil să fie nevoie să luați măsuri " -"manuale." +"Chromium menține patch-uri pentru unele crates, păstrate în `//third_party/rust/" +"chromium_crates_io/patches`. Acestea vor fi reaplicate în mod automat, dar dacă " +"patch-urile nu reușesc este posibil să fie nevoie să luați măsuri manuale." #: src/chromium/adding-third-party-crates/generating-gn-build-rules.md #, fuzzy -msgid "" -"Once you've downloaded the crate, generate the `BUILD.gn` files like this:" +msgid "Once you've downloaded the crate, generate the `BUILD.gn` files like this:" msgstr "După ce ați descărcat crate, generați fișierele `BUILD.gn` astfel:" #: src/chromium/adding-third-party-crates/generating-gn-build-rules.md @@ -19500,8 +18299,8 @@ msgstr "Un `README.chromium` adecvat" #: src/chromium/adding-third-party-crates/generating-gn-build-rules.md #, fuzzy msgid "" -"The \"major semver version\" is a [Rust \"semver\" version number](https://" -"doc.rust-lang.org/cargo/reference/semver.html)." +"The \"major semver version\" is a [Rust \"semver\" version number](https://doc." +"rust-lang.org/cargo/reference/semver.html)." msgstr "" "A se vedea [Rust Reference](https://doc.rust-lang.org/reference/type-layout." "html)." @@ -19516,27 +18315,27 @@ msgstr "" #: src/chromium/adding-third-party-crates/generating-gn-build-rules.md #, fuzzy msgid "" -"Talk a little about semver --- and specifically the way that in Chromium " -"it's to allow multiple incompatible versions of a crate, which is " -"discouraged but sometimes necessary in the Cargo ecosystem." +"Talk a little about semver --- and specifically the way that in Chromium it's " +"to allow multiple incompatible versions of a crate, which is discouraged but " +"sometimes necessary in the Cargo ecosystem." msgstr "" "Vorbiți puțin despre semver --- și în special despre modul în care, în " -"Chromium, permite mai multe versiuni incompatibile ale unei cutii, ceea ce " -"este descurajat, dar uneori necesar în ecosistemul Cargo." +"Chromium, permite mai multe versiuni incompatibile ale unei cutii, ceea ce este " +"descurajat, dar uneori necesar în ecosistemul Cargo." #: src/chromium/adding-third-party-crates/resolving-problems.md #, fuzzy msgid "" "If your build fails, it may be because of a `build.rs`: programs which do " -"arbitrary things at build time. This is fundamentally at odds with the " -"design of `gn` and `ninja` which aim for static, deterministic, build rules " -"to maximize parallelism and repeatability of builds." +"arbitrary things at build time. This is fundamentally at odds with the design " +"of `gn` and `ninja` which aim for static, deterministic, build rules to " +"maximize parallelism and repeatability of builds." msgstr "" -"Dacă nu reușiți să construiți, este posibil să fie din cauza unui `build." -"rs`: programe care fac lucruri arbitrare în momentul construirii. Acest " -"lucru este în mod fundamental în contradicție cu proiectarea `gn` și " -"`ninja`, care vizează reguli de construire statice, deterministe, pentru a " -"maximiza paralelismul și repetabilitatea compilărilor." +"Dacă nu reușiți să construiți, este posibil să fie din cauza unui `build.rs`: " +"programe care fac lucruri arbitrare în momentul construirii. Acest lucru este " +"în mod fundamental în contradicție cu proiectarea `gn` și `ninja`, care vizează " +"reguli de construire statice, deterministe, pentru a maximiza paralelismul și " +"repetabilitatea compilărilor." #: src/chromium/adding-third-party-crates/resolving-problems.md #, fuzzy @@ -19580,8 +18379,8 @@ msgstr "Nici unul" #, fuzzy msgid "Checking platform or CPU to configure features on and off" msgstr "" -"Verificarea platformei sau a unității centrale de procesare pentru a " -"configura funcțiile activate și dezactivate" +"Verificarea platformei sau a unității centrale de procesare pentru a configura " +"funcțiile activate și dezactivate" #: src/chromium/adding-third-party-crates/resolving-problems.md #, fuzzy @@ -19618,9 +18417,9 @@ msgid "" "Fortunately, most crates don't contain a build script, and fortunately, most " "build scripts only do the top two actions." msgstr "" -"Din fericire, cele mai multe cratere nu conțin un script de construcție și, " -"din fericire, majoritatea scripturilor de construcție efectuează doar " -"primele două acțiuni." +"Din fericire, cele mai multe cratere nu conțin un script de construcție și, din " +"fericire, majoritatea scripturilor de construcție efectuează doar primele două " +"acțiuni." #: src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-generate-code.md #, fuzzy @@ -19628,23 +18427,22 @@ msgid "" "If `ninja` complains about missing files, check the `build.rs` to see if it " "writes source code files." msgstr "" -"Dacă `ninja` se plânge că lipsesc fișiere, verificați `build.rs` pentru a " -"vedea dacă scrie fișiere de cod sursă." +"Dacă `ninja` se plânge că lipsesc fișiere, verificați `build.rs` pentru a vedea " +"dacă scrie fișiere de cod sursă." #: src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-generate-code.md #, fuzzy msgid "" -"If so, modify [`gnrt_config.toml`](../configuring-gnrt-config-toml.md) to " -"add `build-script-outputs` to the crate. If this is a transitive dependency, " -"that is, one on which Chromium code should not directly depend, also add " -"`allow-first-party-usage=false`. There are several examples already in that " -"file:" +"If so, modify [`gnrt_config.toml`](../configuring-gnrt-config-toml.md) to add " +"`build-script-outputs` to the crate. If this is a transitive dependency, that " +"is, one on which Chromium code should not directly depend, also add `allow-" +"first-party-usage=false`. There are several examples already in that file:" msgstr "" -"În acest caz, modificați [`gnrt_config_config.toml`](../configuring-gnrt-" -"config-toml.md) pentru a adăuga `build-script-outputs` la crate. Dacă " -"aceasta este o dependență tranzitivă, adică una de care codul Chromium nu ar " -"trebui să depindă direct, adăugați și `allow-first-party-usage=false`. " -"Există deja câteva exemple în acel fișier:" +"În acest caz, modificați [`gnrt_config_config.toml`](../configuring-gnrt-config-" +"toml.md) pentru a adăuga `build-script-outputs` la crate. Dacă aceasta este o " +"dependență tranzitivă, adică una de care codul Chromium nu ar trebui să depindă " +"direct, adăugați și `allow-first-party-usage=false`. Există deja câteva exemple " +"în acel fișier:" #: src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-generate-code.md #, fuzzy @@ -19665,28 +18463,28 @@ msgstr "" #, fuzzy msgid "" "Now rerun [`gnrt.py -- gen`](../generating-gn-build-rules.md) to regenerate " -"`BUILD.gn` files to inform ninja that this particular output file is input " -"to subsequent build steps." +"`BUILD.gn` files to inform ninja that this particular output file is input to " +"subsequent build steps." msgstr "" "Acum rulați din nou [`gnrt.py -- gen`](../generating-gn-gn-build-rules.md) " -"pentru a regenera fișierele `BUILD.gn` pentru a informa ninja că acest " -"fișier de ieșire este o intrare pentru etapele ulterioare de construire." +"pentru a regenera fișierele `BUILD.gn` pentru a informa ninja că acest fișier " +"de ieșire este o intrare pentru etapele ulterioare de construire." #: src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-take-arbitrary-actions.md #, fuzzy msgid "" -"Some crates use the [`cc`](https://crates.io/crates/cc) crate to build and " -"link C/C++ libraries. Other crates parse C/C++ using [`bindgen`](https://" -"crates.io/crates/bindgen) within their build scripts. These actions can't be " -"supported in a Chromium context --- our gn, ninja and LLVM build system is " -"very specific in expressing relationships between build actions." +"Some crates use the [`cc`](https://crates.io/crates/cc) crate to build and link " +"C/C++ libraries. Other crates parse C/C++ using [`bindgen`](https://crates.io/" +"crates/bindgen) within their build scripts. These actions can't be supported in " +"a Chromium context --- our gn, ninja and LLVM build system is very specific in " +"expressing relationships between build actions." msgstr "" -"Unele crates utilizează crate-ul [`cc`](https://crates.io/crates/cc) pentru " -"a construi și lega bibliotecile C/C++. Alte crates analizează C/C++ folosind " -"[`bindgen`](https://crates.io/crates/bindgen) în scripturile lor de " -"compilare. Aceste acțiuni nu pot fi suportate în contextul Chromium --- " -"sistemul nostru de compilare gn, ninja și LLVM este foarte specific în " -"exprimarea relațiilor dintre acțiunile de compilare." +"Unele crates utilizează crate-ul [`cc`](https://crates.io/crates/cc) pentru a " +"construi și lega bibliotecile C/C++. Alte crates analizează C/C++ folosind " +"[`bindgen`](https://crates.io/crates/bindgen) în scripturile lor de compilare. " +"Aceste acțiuni nu pot fi suportate în contextul Chromium --- sistemul nostru de " +"compilare gn, ninja și LLVM este foarte specific în exprimarea relațiilor " +"dintre acțiunile de compilare." #: src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-take-arbitrary-actions.md #, fuzzy @@ -19706,29 +18504,28 @@ msgstr "Aplicați un plasture pe ladă." #: src/chromium/adding-third-party-crates/resolving-problems/build-scripts-which-take-arbitrary-actions.md #, fuzzy msgid "" -"Patches should be kept in `third_party/rust/chromium_crates_io/patches/" -"` - see for example the [patches against the `cxx` crate](https://" -"source.chromium.org/chromium/chromium/src/+/main:third_party/rust/" -"chromium_crates_io/patches/cxx/) - and will be applied automatically by " -"`gnrt` each time it upgrades the crate." +"Patches should be kept in `third_party/rust/chromium_crates_io/patches/` " +"- see for example the [patches against the `cxx` crate](https://source.chromium." +"org/chromium/chromium/src/+/main:third_party/rust/chromium_crates_io/patches/" +"cxx/) - and will be applied automatically by `gnrt` each time it upgrades the " +"crate." msgstr "" -"Patch-urile ar trebui păstrate în `third_party/rust/chromium_crates_io/" -"patches/` - a se vedea, de exemplu, [patches against the `cxx` crate]" -"(https://source.chromium.org/chromium/chromium/src/+/main:third_party/rust/" -"chromium_crates_io/patches/cxx/) - și vor fi aplicate automat de către " -"`gnrt` de fiecare dată când actualizează crate-ul." +"Patch-urile ar trebui păstrate în `third_party/rust/chromium_crates_io/patches/" +"` - a se vedea, de exemplu, [patches against the `cxx` crate](https://" +"source.chromium.org/chromium/chromium/src/+/main:third_party/rust/" +"chromium_crates_io/patches/cxx/) - și vor fi aplicate automat de către `gnrt` " +"de fiecare dată când actualizează crate-ul." #: src/chromium/adding-third-party-crates/depending-on-a-crate.md #, fuzzy msgid "" -"Once you've added a third-party crate and generated build rules, depending " -"on a crate is simple. Find your `rust_static_library` target, and add a " -"`dep` on the `:lib` target within your crate." +"Once you've added a third-party crate and generated build rules, depending on a " +"crate is simple. Find your `rust_static_library` target, and add a `dep` on the " +"`:lib` target within your crate." msgstr "" -"Odată ce ați adăugat o casetă terță parte și ați generat reguli de " -"construcție, este simplu să depindeți de o casetă. Găsiți ținta " -"`rust_static_library` și adăugați un `dep` pe ținta `:lib` în cadrul crate-" -"ului dumneavoastră." +"Odată ce ați adăugat o casetă terță parte și ați generat reguli de construcție, " +"este simplu să depindeți de o casetă. Găsiți ținta `rust_static_library` și " +"adăugați un `dep` pe ținta `:lib` în cadrul crate-ului dumneavoastră." #: src/chromium/adding-third-party-crates/depending-on-a-crate.md #, fuzzy @@ -19740,8 +18537,7 @@ msgstr "Specific sistemului de operare" msgid "" "```bob\n" " +------------+ +----------------------+\n" -"\"//third_party/rust\" | crate name | \"/v\" | major semver version | \":" -"lib\"\n" +"\"//third_party/rust\" | crate name | \"/v\" | major semver version | \":lib\"\n" " +------------+ +----------------------+\n" "```" msgstr "" @@ -19781,41 +18577,40 @@ msgstr "Auditul caselor terților" msgid "" "Adding new libraries is subject to Chromium's standard [policies](https://" "chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/rust." -"md#Third_party-review), but of course also subject to security review. As " -"you may be bringing in not just a single crate but also transitive " -"dependencies, there may be a lot of code to review. On the other hand, safe " -"Rust code can have limited negative side effects. How should you review it?" +"md#Third_party-review), but of course also subject to security review. As you " +"may be bringing in not just a single crate but also transitive dependencies, " +"there may be a lot of code to review. On the other hand, safe Rust code can " +"have limited negative side effects. How should you review it?" msgstr "" "Adăugarea de noi biblioteci este supusă [politicilor] standard ale Chromium " "(https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/rust." "md#Third_party-review), dar, bineînțeles, este supusă și unei revizuiri de " -"securitate. Deoarece este posibil să aduceți nu doar o singură crăiasă, ci " -"și dependențe tranzitive, este posibil să existe o mulțime de cod de " -"revizuit. Pe de altă parte, codul Rust sigur poate avea efecte secundare " -"negative limitate. Cum ar trebui să îl revizuiți?" +"securitate. Deoarece este posibil să aduceți nu doar o singură crăiasă, ci și " +"dependențe tranzitive, este posibil să existe o mulțime de cod de revizuit. Pe " +"de altă parte, codul Rust sigur poate avea efecte secundare negative limitate. " +"Cum ar trebui să îl revizuiți?" #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy msgid "" -"Over time Chromium aims to move to a process based around [cargo vet]" -"(https://mozilla.github.io/cargo-vet/)." +"Over time Chromium aims to move to a process based around [cargo vet](https://" +"mozilla.github.io/cargo-vet/)." msgstr "" "În timp, Chromium își propune să treacă la un proces bazat pe [cargo vet]" "(https://mozilla.github.io/cargo-vet/)." #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy -msgid "" -"Meanwhile, for each new crate addition, we are checking for the following:" +msgid "Meanwhile, for each new crate addition, we are checking for the following:" msgstr "Între timp, pentru fiecare nouă ladă adăugată, verificăm următoarele:" #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy msgid "" -"Understand why each crate is used. What's the relationship between crates? " -"If the build system for each crate contains a `build.rs` or procedural " -"macros, work out what they're for. Are they compatible with the way Chromium " -"is normally built?" +"Understand why each crate is used. What's the relationship between crates? If " +"the build system for each crate contains a `build.rs` or procedural macros, " +"work out what they're for. Are they compatible with the way Chromium is " +"normally built?" msgstr "" "Înțelegeți de ce este folosită fiecare ladă. Care este relația dintre lăzi? " "Dacă sistemul de compilare pentru fiecare crate conține un `build.rs` sau " @@ -19837,19 +18632,19 @@ msgid "" msgstr "" "Folosiți `cd third-party/rust/chromium_crates_io; cargo audit` pentru a " "verifica vulnerabilitățile cunoscute (mai întâi va trebui să `cargo install " -"cargo-audit`, care, în mod ironic, implică descărcarea multor dependențe de " -"pe internet[2](../cargo.md)))" +"cargo-audit`, care, în mod ironic, implică descărcarea multor dependențe de pe " +"internet[2](../cargo.md)))" #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy msgid "" -"Ensure any `unsafe` code is good enough for the [Rule of Two](https://" -"chromium.googlesource.com/chromium/src/+/main/docs/security/rule-of-2." -"md#unsafe-code-in-safe-languages)" +"Ensure any `unsafe` code is good enough for the [Rule of Two](https://chromium." +"googlesource.com/chromium/src/+/main/docs/security/rule-of-2.md#unsafe-code-in-" +"safe-languages)" msgstr "" "Asigurați-vă că orice cod `unsafe` este suficient de bun pentru [Rule of Two]" -"(https://chromium.googlesource.com/chromium/src/+/main/docs/security/rule-" -"of-2.md#unsafe-code-in-safe-languages)" +"(https://chromium.googlesource.com/chromium/src/+/main/docs/security/rule-of-2." +"md#unsafe-code-in-safe-languages)" #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy @@ -19859,20 +18654,20 @@ msgstr "Verificați dacă se utilizează API-urile `fs` sau `net`" #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy msgid "" -"Read all the code at a sufficient level to look for anything out of place " -"that might have been maliciously inserted. (You can't realistically aim for " -"100% perfection here: there's often just too much code.)" +"Read all the code at a sufficient level to look for anything out of place that " +"might have been maliciously inserted. (You can't realistically aim for 100% " +"perfection here: there's often just too much code.)" msgstr "" -"Citiți tot codul la un nivel suficient pentru a căuta orice lucru care nu " -"este la locul lui și care ar fi putut fi introdus în mod rău intenționat. " -"(În mod realist, nu puteți urmări 100% perfecțiune aici: de multe ori este " -"prea mult cod)" +"Citiți tot codul la un nivel suficient pentru a căuta orice lucru care nu este " +"la locul lui și care ar fi putut fi introdus în mod rău intenționat. (În mod " +"realist, nu puteți urmări 100% perfecțiune aici: de multe ori este prea mult " +"cod)" #: src/chromium/adding-third-party-crates/reviews-and-audits.md #, fuzzy msgid "" -"These are just guidelines --- work with reviewers from `security@chromium." -"org` to work out the right way to become confident of the crate." +"These are just guidelines --- work with reviewers from `security@chromium.org` " +"to work out the right way to become confident of the crate." msgstr "" "Acestea sunt doar linii directoare --- lucrați cu recenzenții de la " "`security@chromium.org` pentru a găsi modul corect de a deveni încrezător în " @@ -19912,11 +18707,11 @@ msgstr "" #: src/chromium/adding-third-party-crates/checking-in.md #, fuzzy msgid "" -"You should land all this, along with your `Cargo.toml` and `gnrt_config." -"toml` changes, into the Chromium repo." +"You should land all this, along with your `Cargo.toml` and `gnrt_config.toml` " +"changes, into the Chromium repo." msgstr "" -"Ar trebui să transferați toate acestea, împreună cu modificările `Cargo." -"toml` și `gnrt_config.toml`, în repo-ul Chromium." +"Ar trebui să transferați toate acestea, împreună cu modificările `Cargo.toml` " +"și `gnrt_config.toml`, în repo-ul Chromium." #: src/chromium/adding-third-party-crates/checking-in.md #, fuzzy @@ -19932,57 +18727,55 @@ msgstr "" msgid "" "As you do so, you might find presubmit checks fail because of non-inclusive " "language. This is because Rust crate data tends to include names of git " -"branches, and many projects still use non-inclusive terminology there. So " -"you may need to run:" +"branches, and many projects still use non-inclusive terminology there. So you " +"may need to run:" msgstr "" "Pe măsură ce faceți acest lucru, s-ar putea să constatați că verificările " "înainte de trimitere eșuează din cauza limbajului neincluziv. Acest lucru se " -"datorează faptului că datele din Rust crate tind să includă nume de ramuri " -"git, iar multe proiecte încă folosesc terminologia neinclusivă acolo. " -"Așadar, este posibil să fie nevoie să rulați:" +"datorează faptului că datele din Rust crate tind să includă nume de ramuri git, " +"iar multe proiecte încă folosesc terminologia neinclusivă acolo. Așadar, este " +"posibil să fie nevoie să rulați:" #: src/chromium/adding-third-party-crates/keeping-up-to-date.md #, fuzzy msgid "" -"As the OWNER of any third party Chromium dependency, you are [expected to " -"keep it up to date with any security fixes](https://chromium.googlesource." -"com/chromium/src/+/main/docs/adding_to_third_party.md#add-owners). It is " -"hoped that we will soon automate this for Rust crates, but for now, it's " -"still your responsibility just as it is for any other third party dependency." +"As the OWNER of any third party Chromium dependency, you are [expected to keep " +"it up to date with any security fixes](https://chromium.googlesource.com/" +"chromium/src/+/main/docs/adding_to_third_party.md#add-owners). It is hoped that " +"we will soon automate this for Rust crates, but for now, it's still your " +"responsibility just as it is for any other third party dependency." msgstr "" "În calitate de PROPRIETAR al oricărei dependențe de Chromium de la terți, " "trebuie [să o mențineți la zi cu toate corecturile de securitate] (https://" -"chromium.googlesource.com/chromium/src/+/main/docs/adding_to_third_party." -"md#add-owners). Se speră că în curând vom automatiza acest lucru pentru Rust " -"crates, dar, deocamdată, este în continuare responsabilitatea dvs. la fel ca " -"pentru orice altă dependență terță parte." +"chromium.googlesource.com/chromium/src/+/main/docs/adding_to_third_party.md#add-" +"owners). Se speră că în curând vom automatiza acest lucru pentru Rust crates, " +"dar, deocamdată, este în continuare responsabilitatea dvs. la fel ca pentru " +"orice altă dependență terță parte." #: src/exercises/chromium/third-party.md #, fuzzy msgid "" "Add [uwuify](https://crates.io/crates/uwuify) to Chromium, turning off the " -"crate's [default features](https://doc.rust-lang.org/cargo/reference/" -"features.html#the-default-feature). Assume that the crate will be used in " -"shipping Chromium, but won't be used to handle untrustworthy input." +"crate's [default features](https://doc.rust-lang.org/cargo/reference/features." +"html#the-default-feature). Assume that the crate will be used in shipping " +"Chromium, but won't be used to handle untrustworthy input." msgstr "" "Adăugați [uwuify](https://crates.io/crates/uwuify) la Chromium, dezactivând " -"[caracteristici implicite](https://doc.rust-lang.org/cargo/reference/" -"features.html#the-default-feature). Presupuneți că crate-ul va fi utilizat " -"în livrarea Chromium, dar nu va fi folosit pentru a gestiona intrările " -"nesigure." +"[caracteristici implicite](https://doc.rust-lang.org/cargo/reference/features." +"html#the-default-feature). Presupuneți că crate-ul va fi utilizat în livrarea " +"Chromium, dar nu va fi folosit pentru a gestiona intrările nesigure." #: src/exercises/chromium/third-party.md -#, fuzzy msgid "" "(In the next exercise we'll use uwuify from Chromium, but feel free to skip " "ahead and do that now if you like. Or, you could create a new " -"[`rust_executable` target](https://source.chromium.org/chromium/chromium/src/" -"+/main:build/rust/rust_executable.gni) which uses `uwuify`)." +"[`rust_executable` target](https://source.chromium.org/chromium/chromium/src/+/" +"main:build/rust/rust_executable.gni) which uses `uwuify`)." msgstr "" "(În următorul exercițiu vom folosi uwuify din Chromium, dar nu ezitați să " -"treceți peste și să faceți asta acum dacă doriți. Sau, puteți crea o nouă " -"țintă [`rust_executable`](https://source.chromium.org/chromium/chromium/src/" -"+/main:build/rust/rust_executable.gni) care utilizează `uwuify`)." +"treceți peste și să faceți asta acum dacă doriți. Sau, puteți crea o nouă țintă " +"[`rust_executable`](https://source.chromium.org/chromium/chromium/src/+/main:" +"build/rust/rust_executable.gni) care utilizează `uwuify`)." #: src/exercises/chromium/third-party.md #, fuzzy @@ -20037,8 +18830,8 @@ msgstr "`uwuify`." #: src/exercises/chromium/third-party.md #, fuzzy msgid "" -"If students are downloading even more than that, they probably forgot to " -"turn off the default features." +"If students are downloading even more than that, they probably forgot to turn " +"off the default features." msgstr "" "Dacă elevii descarcă chiar mai mult decât atât, probabil că au uitat să " "dezactiveze funcțiile implicite." @@ -20048,8 +18841,8 @@ msgstr "" msgid "" "Thanks to [Daniel Liu](https://github.com/Daniel-Liu-c0deb0t) for this crate!" msgstr "" -"Mulțumim lui [Daniel Liu](https://github.com/Daniel-Liu-c0deb0t) pentru " -"această ladă!" +"Mulțumim lui [Daniel Liu](https://github.com/Daniel-Liu-c0deb0t) pentru această " +"ladă!" #: src/exercises/chromium/bringing-it-together.md #, fuzzy @@ -20073,33 +18866,31 @@ msgstr "Informarea din partea managementului de produs" #: src/exercises/chromium/bringing-it-together.md #, fuzzy msgid "" -"A community of pixies has been discovered living in a remote rainforest. " -"It's important that we get Chromium for Pixies delivered to them as soon as " -"possible." +"A community of pixies has been discovered living in a remote rainforest. It's " +"important that we get Chromium for Pixies delivered to them as soon as possible." msgstr "" -"A fost descoperită o comunitate de zâne care trăiește într-o pădure " -"tropicală izolată. Este important să le livrăm Chromium pentru Pixies cât " -"mai curând posibil." +"A fost descoperită o comunitate de zâne care trăiește într-o pădure tropicală " +"izolată. Este important să le livrăm Chromium pentru Pixies cât mai curând " +"posibil." #: src/exercises/chromium/bringing-it-together.md #, fuzzy msgid "" -"The requirement is to translate all Chromium's UI strings into Pixie " -"language." +"The requirement is to translate all Chromium's UI strings into Pixie language." msgstr "" -"Cerința este de a traduce toate șirurile interfeței de utilizare a Chromium " -"în limbajul Pixie." +"Cerința este de a traduce toate șirurile interfeței de utilizare a Chromium în " +"limbajul Pixie." #: src/exercises/chromium/bringing-it-together.md #, fuzzy msgid "" "There's not time to wait for proper translations, but fortunately pixie " -"language is very close to English, and it turns out there's a Rust crate " -"which does the translation." +"language is very close to English, and it turns out there's a Rust crate which " +"does the translation." msgstr "" -"Nu avem timp să așteptăm traduceri adecvate, dar din fericire, limba pixie " -"este foarte apropiată de limba engleză și se pare că există o casetă Rust " -"care face traducerea." +"Nu avem timp să așteptăm traduceri adecvate, dar din fericire, limba pixie este " +"foarte apropiată de limba engleză și se pare că există o casetă Rust care face " +"traducerea." #: src/exercises/chromium/bringing-it-together.md #, fuzzy @@ -20107,17 +18898,16 @@ msgid "" "In fact, you already [imported that crate in the previous exercise](https://" "crates.io/crates/uwuify)." msgstr "" -"De fapt, ați [importat deja acea ladă în exercițiul anterior](https://crates." -"io/crates/uwuify)." +"De fapt, ați [importat deja acea ladă în exercițiul anterior](https://crates.io/" +"crates/uwuify)." #: src/exercises/chromium/bringing-it-together.md -#, fuzzy msgid "" -"(Obviously, real translations of Chrome require incredible care and " -"diligence. Don't ship this!)" +"(Obviously, real translations of Chrome require incredible care and diligence. " +"Don't ship this!)" msgstr "" "(Evident, traducerile reale ale lui Chrome necesită o atenție și o diligență " -"incredibile. Nu expediați asta!)" +"incredibile. Nu livrați asta!)" #: src/exercises/chromium/bringing-it-together.md msgid "Steps" @@ -20127,13 +18917,13 @@ msgstr "Pași" #, fuzzy msgid "" "Modify `ResourceBundle::MaybeMangleLocalizedString` so that it uwuifies all " -"strings before display. In this special build of Chromium, it should always " -"do this irrespective of the setting of `mangle_localized_strings_`." +"strings before display. In this special build of Chromium, it should always do " +"this irrespective of the setting of `mangle_localized_strings_`." msgstr "" -"Modifică `ResourceBundle::MaybeMangleLocalizedString` astfel încât să " -"uwuifice toate șirurile înainte de afișare. În această versiune specială a " -"Chromium, ar trebui să facă întotdeauna acest lucru indiferent de setarea " -"lui `mangle_localized_strings_`." +"Modifică `ResourceBundle::MaybeMangleLocalizedString` astfel încât să uwuifice " +"toate șirurile înainte de afișare. În această versiune specială a Chromium, ar " +"trebui să facă întotdeauna acest lucru indiferent de setarea lui " +"`mangle_localized_strings_`." #: src/exercises/chromium/bringing-it-together.md #, fuzzy @@ -20145,62 +18935,59 @@ msgstr "" "creezi Chrome pentru pixeli!" #: src/exercises/chromium/bringing-it-together.md -#, fuzzy msgid "" -"UTF16 vs UTF8. Students should be aware that Rust strings are always UTF8, " -"and will probably decide that it's better to do the conversion on the C++ " -"side using `base::UTF16ToUTF8` and back again." +"UTF16 vs UTF8. Students should be aware that Rust strings are always UTF8, and " +"will probably decide that it's better to do the conversion on the C++ side " +"using `base::UTF16ToUTF8` and back again." msgstr "" -"UTF16 vs UTF8. Studenții ar trebui să fie conștienți de faptul că șirurile " -"de caractere Rust sunt întotdeauna UTF8 și probabil vor decide că este mai " -"bine să facă conversia pe partea C++ folosind `base::UTF16ToUTF8` și invers." +"UTF16 vs UTF8. Cursanții ar trebui să fie conștienți de faptul că șirurile de " +"caractere Rust sunt întotdeauna UTF8 și probabil vor decide că este mai bine să " +"facă conversia pe partea C++ folosind `base::UTF16ToUTF8` și invers." #: src/exercises/chromium/bringing-it-together.md -#, fuzzy msgid "" "If students decide to do the conversion on the Rust side, they'll need to " "consider [`String::from_utf16`](https://doc.rust-lang.org/std/string/struct." "String.html#method.from_utf16), consider error handling, and consider which " -"[CXX supported types can transfer a lot of u16s](https://cxx.rs/binding/" -"slice.html)." +"[CXX supported types can transfer a lot of u16s](https://cxx.rs/binding/slice." +"html)." msgstr "" -"Dacă studenții decid să facă conversia pe partea Rust, ei vor trebui să ia " -"în considerare [`String::from_utf16`](https://doc.rust-lang.org/std/string/" -"struct.String.html#method.from_utf16), să ia în considerare gestionarea " -"erorilor și să ia în considerare care dintre tipurile acceptate de [CXX pot " -"transfera o mulțime de u16s](https://cxx.rs/binding/slice.html)." +"Dacă cursanții decid să facă conversia pe partea Rust, ei vor trebui să ia în " +"considerare [`String::from_utf16`](https://doc.rust-lang.org/std/string/struct." +"String.html#method.from_utf16), să ia în considerare gestionarea erorilor și să " +"ia în considerare care dintre tipurile acceptate de [CXX pot transfera o " +"mulțime de u16s](https://cxx.rs/binding/slice.html)." #: src/exercises/chromium/bringing-it-together.md #, fuzzy msgid "" "Students may design the C++/Rust boundary in several different ways, e.g. " "taking and returning strings by value, or taking a mutable reference to a " -"string. If a mutable reference is used, CXX will likely tell the student " -"that they need to use [`Pin`](https://doc.rust-lang.org/std/pin/). You may " -"need to explain what `Pin` does, and then explain why CXX needs it for " -"mutable references to C++ data: the answer is that C++ data can't be moved " -"around like Rust data, because it may contain self-referential pointers." -msgstr "" -"Elevii pot proiecta granița C++/Rust în mai multe moduri diferite, de " -"exemplu, preluarea și returnarea șirurilor de caractere prin valoare sau " -"preluarea unei referințe mutabile la un șir de caractere. În cazul în care " -"se utilizează o referință mutabilă, CXX îi va spune probabil elevului că " -"trebuie să utilizeze [`Pin`](https://doc.rust-lang.org/std/pin/). Este " -"posibil să fie necesar să explicați ce face `Pin` și apoi să explicați de ce " -"CXX are nevoie de el pentru referințele mutabile la datele C++: răspunsul " -"este că datele C++ nu pot fi mutate ca datele Rust, deoarece pot conține " -"pointeri autoreferențiali." +"string. If a mutable reference is used, CXX will likely tell the student that " +"they need to use [`Pin`](https://doc.rust-lang.org/std/pin/). You may need to " +"explain what `Pin` does, and then explain why CXX needs it for mutable " +"references to C++ data: the answer is that C++ data can't be moved around like " +"Rust data, because it may contain self-referential pointers." +msgstr "" +"Elevii pot proiecta granița C++/Rust în mai multe moduri diferite, de exemplu, " +"preluarea și returnarea șirurilor de caractere prin valoare sau preluarea unei " +"referințe mutabile la un șir de caractere. În cazul în care se utilizează o " +"referință mutabilă, CXX îi va spune probabil elevului că trebuie să utilizeze " +"[`Pin`](https://doc.rust-lang.org/std/pin/). Este posibil să fie necesar să " +"explicați ce face `Pin` și apoi să explicați de ce CXX are nevoie de el pentru " +"referințele mutabile la datele C++: răspunsul este că datele C++ nu pot fi " +"mutate ca datele Rust, deoarece pot conține pointeri autoreferențiali." #: src/exercises/chromium/bringing-it-together.md #, fuzzy msgid "" "The C++ target containing `ResourceBundle::MaybeMangleLocalizedString` will " -"need to depend on a `rust_static_library` target. The student probably " -"already did this." +"need to depend on a `rust_static_library` target. The student probably already " +"did this." msgstr "" -"Ținta C++ care conține `ResourceBundle::MaybeMangleLocalizedString` va " -"trebui să depindă de o țintă `rust_static_library`. Probabil că studentul a " -"făcut deja acest lucru." +"Ținta C++ care conține `ResourceBundle::MaybeMangleLocalizedString` va trebui " +"să depindă de o țintă `rust_static_library`. Probabil că studentul a făcut deja " +"acest lucru." #: src/exercises/chromium/bringing-it-together.md #, fuzzy @@ -20208,8 +18995,8 @@ msgid "" "The `rust_static_library` target will need to depend on `//third_party/rust/" "uwuify/v0_2:lib`." msgstr "" -"Ținta `rust_static_library` va trebui să depindă de `//third_party/rust/" -"uwuify/v0_2:lib`." +"Ținta `rust_static_library` va trebui să depindă de `//third_party/rust/uwuify/" +"v0_2:lib`." #: src/exercises/chromium/solutions.md #, fuzzy @@ -20217,8 +19004,8 @@ msgid "" "Solutions to the Chromium exercises can be found in [this series of CLs]" "(https://chromium-review.googlesource.com/c/chromium/src/+/5096560)." msgstr "" -"Soluțiile la exercițiile cu Chromium se găsesc în [această serie de CL]" -"(https://chromium-review.googlesource.com/c/chromium/src/+/5096560)." +"Soluțiile la exercițiile cu Chromium se găsesc în [această serie de CL](https://" +"chromium-review.googlesource.com/c/chromium/src/+/5096560)." #: src/bare-metal.md #, fuzzy @@ -20228,10 +19015,10 @@ msgstr "Bine ați venit la Bare Metal Rust" #: src/bare-metal.md #, fuzzy msgid "" -"This is a standalone one-day course about bare-metal Rust, aimed at people " -"who are familiar with the basics of Rust (perhaps from completing the " -"Comprehensive Rust course), and ideally also have some experience with bare-" -"metal programming in some other language such as C." +"This is a standalone one-day course about bare-metal Rust, aimed at people who " +"are familiar with the basics of Rust (perhaps from completing the Comprehensive " +"Rust course), and ideally also have some experience with bare-metal programming " +"in some other language such as C." msgstr "" "Acesta este un curs independent de o zi despre Rust, care se adresează " "persoanelor care sunt familiarizate cu elementele de bază ale Rust (poate în " @@ -20272,41 +19059,40 @@ msgstr "Câteva lădițe utile pentru dezvoltarea Rust pe suport metalic gol." msgid "" "For the microcontroller part of the course we will use the [BBC micro:bit]" "(https://microbit.org/) v2 as an example. It's a [development board](https://" -"tech.microbit.org/hardware/) based on the Nordic nRF51822 microcontroller " -"with some LEDs and buttons, an I2C-connected accelerometer and compass, and " -"an on-board SWD debugger." +"tech.microbit.org/hardware/) based on the Nordic nRF52833 microcontroller with " +"some LEDs and buttons, an I2C-connected accelerometer and compass, and an on-" +"board SWD debugger." msgstr "" -"Pentru partea de microcontroler a cursului vom folosi [BBC micro:bit]" -"(https://microbit.org/) v2 ca exemplu. Este o [placă de dezvoltare](https://" -"tech.microbit.org/hardware/) bazată pe microcontrolerul Nordic nRF51822 cu " -"câteva LED-uri și butoane, un accelerometru și o busolă conectate I2C și un " -"depanator SWD la bord." +"Pentru partea de microcontroler a cursului vom folosi [BBC micro:bit](https://" +"microbit.org/) v2 ca exemplu. Este o [placă de dezvoltare](https://tech." +"microbit.org/hardware/) bazată pe microcontrolerul Nordic nRF51822 cu câteva " +"LED-uri și butoane, un accelerometru și o busolă conectate I2C și un depanator " +"SWD la bord." #: src/bare-metal.md #, fuzzy -msgid "" -"To get started, install some tools we'll need later. On gLinux or Debian:" +msgid "To get started, install some tools we'll need later. On gLinux or Debian:" msgstr "" "Pentru a începe, instalați câteva instrumente de care vom avea nevoie mai " "târziu. Pe gLinux sau Debian:" #: src/bare-metal.md #, fuzzy -msgid "" -"And give users in the `plugdev` group access to the micro:bit programmer:" +msgid "And give users in the `plugdev` group access to the micro:bit programmer:" msgstr "" -"Și oferiți utilizatorilor din grupul `plugdev` acces la programatorul micro:" -"bit:" +"Și oferiți utilizatorilor din grupul `plugdev` acces la programatorul micro:bit:" #: src/bare-metal.md src/bare-metal/microcontrollers/debugging.md #, fuzzy msgid "On MacOS:" -msgstr "Pe MacOS:" +msgstr "\"macos\"" #: src/bare-metal/no_std.md #, fuzzy msgid "`core`" -msgstr "`core`" +msgstr "" +"`core` include cele mai de bază tipuri și funcții care nu depind de `libc`, de " +"alocator sau chiar de prezența unui sistem de operare." #: src/bare-metal/no_std.md #, fuzzy @@ -20376,7 +19162,7 @@ msgstr "`String`, `CString`, `format!`" #: src/bare-metal/no_std.md #, fuzzy msgid "`Error`" -msgstr "[Gestionarea erorilor](../error-handling.md) (45 minute)" +msgstr "\"Eroare: {}\"" #: src/bare-metal/no_std.md #, fuzzy @@ -20442,8 +19228,8 @@ msgstr "Aceasta va compila un binar gol." #, fuzzy msgid "`std` provides a panic handler; without it we must provide our own." msgstr "" -"`std` oferă un gestionar de panică; în lipsa acestuia, trebuie să ne " -"furnizăm propriul gestionar." +"`std` oferă un gestionar de panică; în lipsa acestuia, trebuie să ne furnizăm " +"propriul gestionar." #: src/bare-metal/minimal.md #, fuzzy @@ -20462,20 +19248,20 @@ msgstr "" #: src/bare-metal/minimal.md #, fuzzy msgid "" -"Note that there is no `main` or any other entry point; it's up to you to " -"define your own entry point. This will typically involve a linker script and " -"some assembly code to set things up ready for Rust code to run." +"Note that there is no `main` or any other entry point; it's up to you to define " +"your own entry point. This will typically involve a linker script and some " +"assembly code to set things up ready for Rust code to run." msgstr "" "Rețineți că nu există niciun `main` sau alt punct de intrare; depinde de " -"dumneavoastră să vă definiți propriul punct de intrare. Acest lucru va " -"implica, de obicei, un script de linker și ceva cod de asamblare pentru a " -"pregăti lucrurile pentru a permite rularea codului Rust." +"dumneavoastră să vă definiți propriul punct de intrare. Acest lucru va implica, " +"de obicei, un script de linker și ceva cod de asamblare pentru a pregăti " +"lucrurile pentru a permite rularea codului Rust." #: src/bare-metal/alloc.md #, fuzzy msgid "" -"To use `alloc` you must implement a [global (heap) allocator](https://doc." -"rust-lang.org/stable/std/alloc/trait.GlobalAlloc.html)." +"To use `alloc` you must implement a [global (heap) allocator](https://doc.rust-" +"lang.org/stable/std/alloc/trait.GlobalAlloc.html)." msgstr "" "Pentru a utiliza `alloc` trebuie să implementați un [alocator global (heap)]" "(https://doc.rust-lang.org/stable/std/alloc/trait.GlobalAlloc.html)." @@ -20484,8 +19270,8 @@ msgstr "" #, fuzzy msgid "// SAFETY: `HEAP` is only used here and `entry` is only called once.\n" msgstr "" -"// Sigur, deoarece `HEAP` este folosit doar aici și `entry` este apelat doar " -"o singură dată.\n" +"// Sigur, deoarece `HEAP` este folosit doar aici și `entry` este apelat doar o " +"singură dată.\n" #: src/bare-metal/alloc.md #, fuzzy @@ -20498,30 +19284,28 @@ msgid "// Now we can do things that require heap allocation.\n" msgstr "// Acum putem face lucruri care necesită alocare de heap.\n" #: src/bare-metal/alloc.md -#, fuzzy msgid "\"A string\"" -msgstr "Șir" +msgstr "\"Un șir\"" #: src/bare-metal/alloc.md #, fuzzy msgid "" "`buddy_system_allocator` is a third-party crate implementing a basic buddy " -"system allocator. Other crates are available, or you can write your own or " -"hook into your existing allocator." +"system allocator. Other crates are available, or you can write your own or hook " +"into your existing allocator." msgstr "" -"`buddy_system_allocator` este un crate terț care implementează un alocator " -"de bază pentru sistemul de prieteni. Sunt disponibile și alte crates, sau " -"puteți să vă scrieți propriul alocator sau să vă conectați la alocatorul " -"existent." +"`buddy_system_allocator` este un crate terț care implementează un alocator de " +"bază pentru sistemul de prieteni. Sunt disponibile și alte crates, sau puteți " +"să vă scrieți propriul alocator sau să vă conectați la alocatorul existent." #: src/bare-metal/alloc.md #, fuzzy msgid "" -"The const parameter of `LockedHeap` is the max order of the allocator; i.e. " -"in this case it can allocate regions of up to 2\\*\\*32 bytes." +"The const parameter of `LockedHeap` is the max order of the allocator; i.e. in " +"this case it can allocate regions of up to 2\\*\\*32 bytes." msgstr "" -"Parametrul const al `LockedHeap` este ordinea maximă a alocatorului; adică, " -"în acest caz, acesta poate aloca regiuni de până la 2\\*\\*32 octeți." +"Parametrul const al `LockedHeap` este ordinea maximă a alocatorului; adică, în " +"acest caz, acesta poate aloca regiuni de până la 2\\*\\*32 octeți." #: src/bare-metal/alloc.md #, fuzzy @@ -20530,9 +19314,9 @@ msgid "" "exactly one global allocator defined in your binary. Usually this is done in " "the top-level binary crate." msgstr "" -"Dacă orice crate din arborele de dependență depinde de `alloc`, atunci " -"trebuie să aveți exact un alocator global definit în binarul dumneavoastră. " -"De obicei, acest lucru se face în crate-ul binar de nivel superior." +"Dacă orice crate din arborele de dependență depinde de `alloc`, atunci trebuie " +"să aveți exact un alocator global definit în binarul dumneavoastră. De obicei, " +"acest lucru se face în crate-ul binar de nivel superior." #: src/bare-metal/alloc.md #, fuzzy @@ -20548,8 +19332,8 @@ msgstr "" #, fuzzy msgid "This example will build but not run, as it doesn't have an entry point." msgstr "" -"Acest exemplu va fi construit, dar nu va fi executat, deoarece nu are un " -"punct de intrare." +"Acest exemplu va fi construit, dar nu va fi executat, deoarece nu are un punct " +"de intrare." #: src/bare-metal/microcontrollers.md #, fuzzy @@ -20572,8 +19356,8 @@ msgstr "" #: src/bare-metal/microcontrollers.md #, fuzzy msgid "" -"The `cortex_m_rt::entry` macro requires that the function have type `fn() -" -"> !`, because returning to the reset handler doesn't make sense." +"The `cortex_m_rt::entry` macro requires that the function have type `fn() -> !" +"`, because returning to the reset handler doesn't make sense." msgstr "" "Macroul `cortex_m_rt::entry` necesită ca funcția să aibă tipul `fn() -> !`, " "deoarece întoarcerea la gestionarul de resetare nu are sens." @@ -20607,8 +19391,7 @@ msgstr "// Decalajele perifericelor GPIO\n" msgid "// PIN_CNF fields\n" msgstr "// Câmpurile PIN_CNF\n" -#: src/bare-metal/microcontrollers/mmio.md -#: src/bare-metal/microcontrollers/pacs.md +#: src/bare-metal/microcontrollers/mmio.md src/bare-metal/microcontrollers/pacs.md #: src/bare-metal/microcontrollers/hals.md #, fuzzy msgid "// Configure GPIO 0 pins 21 and 28 as push-pull outputs.\n" @@ -20620,12 +19403,11 @@ msgid "" "// SAFETY: The pointers are to valid peripheral control registers, and no\n" " // aliases exist.\n" msgstr "" -"// Sigur, deoarece indicatorii sunt la registrele de control periferic " -"valide, și\n" +"// Sigur, deoarece indicatorii sunt la registrele de control periferic valide, " +"și\n" " // nu există alias-uri.\n" -#: src/bare-metal/microcontrollers/mmio.md -#: src/bare-metal/microcontrollers/pacs.md +#: src/bare-metal/microcontrollers/mmio.md src/bare-metal/microcontrollers/pacs.md #: src/bare-metal/microcontrollers/hals.md #, fuzzy msgid "// Set pin 28 low and pin 21 high to turn the LED on.\n" @@ -20636,14 +19418,13 @@ msgstr "" #: src/bare-metal/microcontrollers/mmio.md #, fuzzy msgid "" -"GPIO 0 pin 21 is connected to the first column of the LED matrix, and pin 28 " -"to the first row." +"GPIO 0 pin 21 is connected to the first column of the LED matrix, and pin 28 to " +"the first row." msgstr "" "Pinul 21 al GPIO 0 este conectat la prima coloană a matricei de LED-uri, iar " "pinul 28 la primul rând." -#: src/bare-metal/microcontrollers/mmio.md -#: src/bare-metal/microcontrollers/pacs.md +#: src/bare-metal/microcontrollers/mmio.md src/bare-metal/microcontrollers/pacs.md #: src/bare-metal/microcontrollers/hals.md #: src/bare-metal/microcontrollers/board-support.md #, fuzzy @@ -20656,24 +19437,23 @@ msgid "Peripheral Access Crates" msgstr "Lăzi de acces periferic" #: src/bare-metal/microcontrollers/pacs.md -#, fuzzy msgid "" "[`svd2rust`](https://crates.io/crates/svd2rust) generates mostly-safe Rust " "wrappers for memory-mapped peripherals from [CMSIS-SVD](https://www.keil.com/" "pack/doc/CMSIS/SVD/html/index.html) files." msgstr "" -"[`svd2rust`](https://crates.io/crates/svd2rust) generează învelișuri Rust în " -"mare parte sigure pentru perifericele cu memorie mapă din fișierele [CMSIS-" +"[`svd2rust`](https://crates.io/crates/svd2rust) generează învelitori Rust în " +"mare parte sigure pentru perifericele cu memoria mapătă din fișierele [CMSIS-" "SVD](https://www.keil.com/pack/doc/CMSIS/SVD/html/index.html)." #: src/bare-metal/microcontrollers/pacs.md #, fuzzy msgid "" -"SVD (System View Description) files are XML files typically provided by " -"silicon vendors which describe the memory map of the device." +"SVD (System View Description) files are XML files typically provided by silicon " +"vendors which describe the memory map of the device." msgstr "" -"Fișierele SVD (System View Description) sunt fișiere XML furnizate de obicei " -"de furnizorii de siliciu care descriu harta de memorie a dispozitivului." +"Fișierele SVD (System View Description) sunt fișiere XML furnizate de obicei de " +"furnizorii de siliciu care descriu harta de memorie a dispozitivului." #: src/bare-metal/microcontrollers/pacs.md #, fuzzy @@ -20681,19 +19461,18 @@ msgid "" "They are organised by peripheral, register, field and value, with names, " "descriptions, addresses and so on." msgstr "" -"Acestea sunt organizate în funcție de periferic, registru, câmp și valoare, " -"cu nume, descrieri, adrese etc." +"Acestea sunt organizate în funcție de periferic, registru, câmp și valoare, cu " +"nume, descrieri, adrese etc." #: src/bare-metal/microcontrollers/pacs.md #, fuzzy msgid "" -"SVD files are often buggy and incomplete, so there are various projects " -"which patch the mistakes, add missing details, and publish the generated " -"crates." +"SVD files are often buggy and incomplete, so there are various projects which " +"patch the mistakes, add missing details, and publish the generated crates." msgstr "" "Fișierele SVD sunt deseori eronate și incomplete, așa că există diverse " -"proiecte care corectează greșelile, adaugă detaliile lipsă și publică " -"lădițele generate." +"proiecte care corectează greșelile, adaugă detaliile lipsă și publică lădițele " +"generate." #: src/bare-metal/microcontrollers/pacs.md #, fuzzy @@ -20703,11 +19482,11 @@ msgstr "`cortex-m-rt` furnizează, printre altele, tabelul vectorial." #: src/bare-metal/microcontrollers/pacs.md #, fuzzy msgid "" -"If you `cargo install cargo-binutils` then you can run `cargo objdump --bin " -"pac -- -d --no-show-raw-insn` to see the resulting binary." +"If you `cargo install cargo-binutils` then you can run `cargo objdump --bin pac " +"-- -d --no-show-raw-insn` to see the resulting binary." msgstr "" -"Dacă instalați `cargo install cargo-binutils` atunci puteți rula `cargo " -"objdump --bin pac -- -d --no-show-raw-insn` pentru a vedea binarul rezultat." +"Dacă instalați `cargo install cargo-binutils` atunci puteți rula `cargo objdump " +"--bin pac -- -d --no-show-raw-insn` pentru a vedea binarul rezultat." #: src/bare-metal/microcontrollers/hals.md #, fuzzy @@ -20723,31 +19502,29 @@ msgid "" "(https://crates.io/crates/embedded-hal)." msgstr "" "[HAL crates](https://github.com/rust-embedded/awesome-embedded-rust#hal-" -"implementation-crates) pentru multe microcontrolere oferă învelișuri în " -"jurul diferitelor periferice. Acestea implementează în general trăsături din " +"implementation-crates) pentru multe microcontrolere oferă învelișuri în jurul " +"diferitelor periferice. Acestea implementează în general trăsături din " "[`embedded-hal`](https://crates.io/crates/embedded-hal)." #: src/bare-metal/microcontrollers/hals.md -#, fuzzy msgid "// Create HAL wrapper for GPIO port 0.\n" -msgstr "// Creați un înveliș HAL pentru portul GPIO 0.\n" +msgstr "// Creați un adaptor HAL pentru portul GPIO 0.\n" #: src/bare-metal/microcontrollers/hals.md #, fuzzy msgid "" "`set_low` and `set_high` are methods on the `embedded_hal` `OutputPin` trait." msgstr "" -"`set_low` și `set_high` sunt metode ale trăsăturii `OutputPin` " -"`embedded_hal`." +"`set_low` și `set_high` sunt metode ale trăsăturii `OutputPin` `embedded_hal`." #: src/bare-metal/microcontrollers/hals.md #, fuzzy msgid "" -"HAL crates exist for many Cortex-M and RISC-V devices, including various " -"STM32, GD32, nRF, NXP, MSP430, AVR and PIC microcontrollers." +"HAL crates exist for many Cortex-M and RISC-V devices, including various STM32, " +"GD32, nRF, NXP, MSP430, AVR and PIC microcontrollers." msgstr "" -"HAL crates există pentru multe dispozitive Cortex-M și RISC-V, inclusiv " -"pentru diverse microcontrolere STM32, GD32, nRF, NXP, MSP430, AVR și PIC." +"HAL crates există pentru multe dispozitive Cortex-M și RISC-V, inclusiv pentru " +"diverse microcontrolere STM32, GD32, nRF, NXP, MSP430, AVR și PIC." #: src/bare-metal/microcontrollers/board-support.md #, fuzzy @@ -20757,17 +19534,17 @@ msgstr "Crates cu suport pentru plăci" #: src/bare-metal/microcontrollers/board-support.md #, fuzzy msgid "" -"Board support crates provide a further level of wrapping for a specific " -"board for convenience." +"Board support crates provide a further level of wrapping for a specific board " +"for convenience." msgstr "" -"Lăzile de susținere a plăcilor oferă un nivel suplimentar de împachetare " -"pentru o anumită placă, pentru mai multă comoditate." +"Lăzile de susținere a plăcilor oferă un nivel suplimentar de împachetare pentru " +"o anumită placă, pentru mai multă comoditate." #: src/bare-metal/microcontrollers/board-support.md #, fuzzy msgid "" -"In this case the board support crate is just providing more useful names, " -"and a bit of initialisation." +"In this case the board support crate is just providing more useful names, and a " +"bit of initialisation." msgstr "" "În acest caz, suportul pentru plăci oferă doar nume mai utile și o mică " "inițializare." @@ -20778,8 +19555,8 @@ msgid "" "The crate may also include drivers for some on-board devices outside of the " "microcontroller itself." msgstr "" -"De asemenea, pachetul poate include drivere pentru unele dispozitive de la " -"bord în afara microcontrolerului propriu-zis." +"De asemenea, pachetul poate include drivere pentru unele dispozitive de la bord " +"în afara microcontrolerului propriu-zis." #: src/bare-metal/microcontrollers/board-support.md #, fuzzy @@ -20804,8 +19581,8 @@ msgstr "// pin_input.is_high(); // Eroare, mutat.\n" #: src/bare-metal/microcontrollers/type-state.md #, fuzzy msgid "" -"Pins don't implement `Copy` or `Clone`, so only one instance of each can " -"exist. Once a pin is moved out of the port struct nobody else can take it." +"Pins don't implement `Copy` or `Clone`, so only one instance of each can exist. " +"Once a pin is moved out of the port struct nobody else can take it." msgstr "" "Pinii nu implementează `Copy` sau `Clone`, astfel încât poate exista doar o " "singură instanță a fiecăruia. Odată ce un pin este mutat din structura " @@ -20814,36 +19591,35 @@ msgstr "" #: src/bare-metal/microcontrollers/type-state.md #, fuzzy msgid "" -"Changing the configuration of a pin consumes the old pin instance, so you " -"can't keep use the old instance afterwards." +"Changing the configuration of a pin consumes the old pin instance, so you can’t " +"keep use the old instance afterwards." msgstr "" -"Schimbarea configurației unui pin consumă vechea instanță de pin, astfel " -"încât nu mai puteți continua să folosiți vechea instanță după aceea." +"Schimbarea configurației unui pin consumă vechea instanță de pin, astfel încât " +"nu mai puteți continua să folosiți vechea instanță după aceea." #: src/bare-metal/microcontrollers/type-state.md #, fuzzy msgid "" -"The type of a value indicates the state that it is in: e.g. in this case, " -"the configuration state of a GPIO pin. This encodes the state machine into " -"the type system, and ensures that you don't try to use a pin in a certain " -"way without properly configuring it first. Illegal state transitions are " -"caught at compile time." +"The type of a value indicates the state that it is in: e.g. in this case, the " +"configuration state of a GPIO pin. This encodes the state machine into the type " +"system, and ensures that you don't try to use a pin in a certain way without " +"properly configuring it first. Illegal state transitions are caught at compile " +"time." msgstr "" -"Tipul unei valori indică starea în care se află aceasta: de exemplu, în " -"acest caz, starea de configurare a unui pin GPIO. Acest lucru codifică " -"mașina de stare în sistemul de tipuri și garantează că nu încercați să " -"utilizați un pin într-un anumit mod fără să-l configurați mai întâi în mod " -"corespunzător. Tranzițiile de stare ilegale sunt detectate în momentul " -"compilării." +"Tipul unei valori indică starea în care se află aceasta: de exemplu, în acest " +"caz, starea de configurare a unui pin GPIO. Acest lucru codifică mașina de " +"stare în sistemul de tipuri și garantează că nu încercați să utilizați un pin " +"într-un anumit mod fără să-l configurați mai întâi în mod corespunzător. " +"Tranzițiile de stare ilegale sunt detectate în momentul compilării." #: src/bare-metal/microcontrollers/type-state.md #, fuzzy msgid "" -"You can call `is_high` on an input pin and `set_high` on an output pin, but " -"not vice-versa." +"You can call `is_high` on an input pin and `set_high` on an output pin, but not " +"vice-versa." msgstr "" -"Puteți apela `is_high` pe un pin de intrare și `set_high` pe un pin de " -"ieșire, dar nu și invers." +"Puteți apela `is_high` pe un pin de intrare și `set_high` pe un pin de ieșire, " +"dar nu și invers." #: src/bare-metal/microcontrollers/type-state.md #, fuzzy @@ -20856,9 +19632,8 @@ msgid "" "The [`embedded-hal`](https://crates.io/crates/embedded-hal) crate provides a " "number of traits covering common microcontroller peripherals:" msgstr "" -"Crăiasa [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o " -"serie de caracteristici care acoperă perifericele comune ale " -"microcontrolerului." +"Crate-ul [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o serie " +"de caracteristici care acoperă perifericele comune ale microcontrolerului." #: src/bare-metal/microcontrollers/embedded-hal.md msgid "GPIO" @@ -20882,84 +19657,77 @@ msgstr "Busuri și dispozitive I2C și SPI" #: src/bare-metal/microcontrollers/embedded-hal.md #, fuzzy msgid "" -"Similar traits for byte streams (e.g. UARTs), CAN buses and RNGs and broken " -"out into [`embedded-io`](https://crates.io/crates/embedded-io), [`embedded-" -"can`](https://crates.io/crates/embedded-can) and [`rand_core`](https://" -"crates.io/crates/rand_core) respectively." +"Similar traits for byte streams (e.g. UARTs), CAN buses and RNGs and broken out " +"into [`embedded-io`](https://crates.io/crates/embedded-io), [`embedded-can`]" +"(https://crates.io/crates/embedded-can) and [`rand_core`](https://crates.io/" +"crates/rand_core) respectively." msgstr "" -"Trăsături similare pentru fluxurile de octeți (de exemplu, UART), " -"magistralele CAN și RNG-uri și împărțite în [`embedded-io`](https://crates." -"io/crates/embedded-io), [`embedded-can`](https://crates.io/crates/embedded-" -"can) și, respectiv, [`rand_core`](https://crates.io/crates/rand_core)." +"Trăsături similare pentru fluxurile de octeți (de exemplu, UART), magistralele " +"CAN și RNG-uri și împărțite în [`embedded-io`](https://crates.io/crates/" +"embedded-io), [`embedded-can`](https://crates.io/crates/embedded-can) și, " +"respectiv, [`rand_core`](https://crates.io/crates/rand_core)." #: src/bare-metal/microcontrollers/embedded-hal.md #, fuzzy msgid "" -"Other crates then implement [drivers](https://github.com/rust-embedded/" -"awesome-embedded-rust#driver-crates) in terms of these traits, e.g. an " -"accelerometer driver might need an I2C or SPI device instance." +"Other crates then implement [drivers](https://github.com/rust-embedded/awesome-" +"embedded-rust#driver-crates) in terms of these traits, e.g. an accelerometer " +"driver might need an I2C or SPI device instance." msgstr "" "Alte crates implementează apoi [drivere](https://github.com/rust-embedded/" "awesome-embedded-rust#driver-crates) în funcție de aceste caracteristici, de " -"exemplu, un driver pentru accelerometru poate avea nevoie de o implementare " -"a bus-ului I2C sau SPI." +"exemplu, un driver pentru accelerometru poate avea nevoie de o implementare a " +"bus-ului I2C sau SPI." #: src/bare-metal/microcontrollers/embedded-hal.md #, fuzzy msgid "" "The traits cover using the peripherals but not initialising or configuring " -"them, as initialisation and configuration is usually highly platform-" -"specific." +"them, as initialisation and configuration is usually highly platform-specific." msgstr "" -"Trăsăturile se referă la utilizarea perifericelor, dar nu la inițializarea " -"sau configurarea acestora, deoarece inițializarea și configurarea sunt de " -"obicei foarte specifice platformei." +"Trăsăturile se referă la utilizarea perifericelor, dar nu la inițializarea sau " +"configurarea acestora, deoarece inițializarea și configurarea sunt de obicei " +"foarte specifice platformei." #: src/bare-metal/microcontrollers/embedded-hal.md #, fuzzy msgid "" -"There are implementations for many microcontrollers, as well as other " -"platforms such as Linux on Raspberry Pi." +"There are implementations for many microcontrollers, as well as other platforms " +"such as Linux on Raspberry Pi." msgstr "" "Există implementări pentru multe microcontrolere, precum și pentru alte " "platforme, cum ar fi Linux pe Raspberry Pi." #: src/bare-metal/microcontrollers/embedded-hal.md -#, fuzzy msgid "" "[`embedded-hal-async`](https://crates.io/crates/embedded-hal-async) provides " "async versions of the traits." msgstr "" -"Crăiasa [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o " -"serie de caracteristici care acoperă perifericele comune ale " -"microcontrolerului." +"Crate-ul [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o serie " +"de caracteristici care acoperă perifericele comune ale microcontrolerului." #: src/bare-metal/microcontrollers/embedded-hal.md -#, fuzzy msgid "" -"[`embedded-hal-nb`](https://crates.io/crates/embedded-hal-nb) provides " -"another approach to non-blocking I/O, based on the [`nb`](https://crates.io/" -"crates/nb) crate." +"[`embedded-hal-nb`](https://crates.io/crates/embedded-hal-nb) provides another " +"approach to non-blocking I/O, based on the [`nb`](https://crates.io/crates/nb) " +"crate." msgstr "" -"Crăiasa [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o " -"serie de caracteristici care acoperă perifericele comune ale " -"microcontrolerului." +"Crate-ul [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o serie " +"de caracteristici care acoperă perifericele comune ale microcontrolerului." #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy msgid "" -"[probe-rs](https://probe.rs/) is a handy toolset for embedded debugging, " -"like OpenOCD but better integrated." +"[probe-rs](https://probe.rs/) is a handy toolset for embedded debugging, like " +"OpenOCD but better integrated." msgstr "" -"[probe-rs](https://probe.rs/) este un set de instrumente utile pentru " -"depanarea embedded, precum OpenOCD, dar mai bine integrat." +"[probe-rs](https://probe.rs/) este un set de instrumente utile pentru depanarea " +"embedded, precum OpenOCD, dar mai bine integrat." #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy -msgid "" -"SWD (Serial Wire Debug) and JTAG via CMSIS-DAP, ST-Link and J-Link probes" -msgstr "" -"SWD (Serial Wire Debug) și JTAG prin sonde CMSIS-DAP, ST-Link și J-Link" +msgid "SWD (Serial Wire Debug) and JTAG via CMSIS-DAP, ST-Link and J-Link probes" +msgstr "SWD (Serial Wire Debug) și JTAG prin sonde CMSIS-DAP, ST-Link și J-Link" #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy @@ -20973,42 +19741,40 @@ msgstr "Integrarea Cargo" #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy msgid "" -"`cargo-embed` is a cargo subcommand to build and flash binaries, log RTT " -"(Real Time Transfers) output and connect GDB. It's configured by an `Embed." -"toml` file in your project directory." +"`cargo-embed` is a cargo subcommand to build and flash binaries, log RTT (Real " +"Time Transfers) output and connect GDB. It's configured by an `Embed.toml` file " +"in your project directory." msgstr "" "`cargo-embed` este o subcomandă cargo pentru a construi și afișa binare, a " -"înregistra ieșirea RTT (Real Time Transfers) și a conecta GDB. Este " -"configurată de un fișier `Embed.toml` din directorul proiectului " -"dumneavoastră." +"înregistra ieșirea RTT (Real Time Transfers) și a conecta GDB. Este configurată " +"de un fișier `Embed.toml` din directorul proiectului dumneavoastră." #: src/bare-metal/microcontrollers/probe-rs.md -#, fuzzy msgid "" -"[CMSIS-DAP](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) is " -"an Arm standard protocol over USB for an in-circuit debugger to access the " -"CoreSight Debug Access Port of various Arm Cortex processors. It's what the " -"on-board debugger on the BBC micro:bit uses." +"[CMSIS-DAP](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) is an " +"Arm standard protocol over USB for an in-circuit debugger to access the " +"CoreSight Debug Access Port of various Arm Cortex processors. It's what the on-" +"board debugger on the BBC micro:bit uses." msgstr "" -"[CMSIS-DAP](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) este " -"un protocol standard Arm prin USB pentru ca un depanator in-circuit să " -"acceseze portul de acces la depanare CoreSight al diferitelor procesoare Arm " -"Cortex. Este ceea ce folosește depanatorul de bord de pe BBC micro:bit." +"[CMSIS-DAP](https://arm-software.github.io/CMSIS_5/DAP/html/index.html) este un " +"protocol standard Arm prin USB pentru ca un depanator in-circuit să acceseze " +"portul de depanare CoreSight al diferitelor procesoare Arm Cortex. Este ceea ce " +"folosește depanatorul de pe BBC micro:bit." #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy msgid "" -"ST-Link is a range of in-circuit debuggers from ST Microelectronics, J-Link " -"is a range from SEGGER." +"ST-Link is a range of in-circuit debuggers from ST Microelectronics, J-Link is " +"a range from SEGGER." msgstr "" -"ST-Link este o gamă de depanatoare în circuit de la ST Microelectronics, iar " -"J-Link este o gamă de la SEGGER." +"ST-Link este o gamă de depanatoare în circuit de la ST Microelectronics, iar J-" +"Link este o gamă de la SEGGER." #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy msgid "" -"The Debug Access Port is usually either a 5-pin JTAG interface or 2-pin " -"Serial Wire Debug." +"The Debug Access Port is usually either a 5-pin JTAG interface or 2-pin Serial " +"Wire Debug." msgstr "" "Portul de acces pentru depanare este, de obicei, fie o interfață JTAG cu 5 " "pini, fie o interfață de depanare prin cablu serial cu 2 pini." @@ -21016,11 +19782,11 @@ msgstr "" #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy msgid "" -"probe-rs is a library which you can integrate into your own tools if you " -"want to." +"probe-rs is a library which you can integrate into your own tools if you want " +"to." msgstr "" -"probe-rs este o bibliotecă pe care o puteți integra în propriile " -"instrumente, dacă doriți." +"probe-rs este o bibliotecă pe care o puteți integra în propriile instrumente, " +"dacă doriți." #: src/bare-metal/microcontrollers/probe-rs.md #, fuzzy @@ -21044,8 +19810,8 @@ msgid "" "RTT (Real Time Transfers) is a mechanism to transfer data between the debug " "host and the target through a number of ringbuffers." msgstr "" -"RTT (Real Time Transfers) este un mecanism de transfer de date între gazda " -"de depanare și țintă prin intermediul unui număr de ringbufferi." +"RTT (Real Time Transfers) este un mecanism de transfer de date între gazda de " +"depanare și țintă prin intermediul unui număr de ringbufferi." #: src/bare-metal/microcontrollers/debugging.md #, fuzzy @@ -21084,17 +19850,15 @@ msgid "[RTIC](https://rtic.rs/)" msgstr "[RTIC](https://rtic.rs/)" #: src/bare-metal/microcontrollers/other-projects.md -#, fuzzy msgid "\"Real-Time Interrupt-driven Concurrency\"" msgstr "\"Concurrența în timp real bazată pe întreruperi\"" #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy -msgid "" -"Shared resource management, message passing, task scheduling, timer queue" +msgid "Shared resource management, message passing, task scheduling, timer queue" msgstr "" -"Gestionarea resurselor partajate, trecerea mesajelor, programarea " -"sarcinilor, coada de timp" +"Gestionarea resurselor partajate, trecerea mesajelor, programarea sarcinilor, " +"coada de timp" #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy @@ -21117,8 +19881,8 @@ msgid "" "Security-focused RTOS with preemptive scheduling and Memory Protection Unit " "support" msgstr "" -"RTOS axat pe securitate, cu programare preemptivă și suport pentru unitatea " -"de protecție a memoriei" +"RTOS axat pe securitate, cu programare preemptivă și suport pentru unitatea de " +"protecție a memoriei" #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy @@ -21131,19 +19895,18 @@ msgid "" "Microkernel RTOS from Oxide Computer Company with memory protection, " "unprivileged drivers, IPC" msgstr "" -"Microkernel RTOS de la Oxide Computer Company cu protecție de memorie, " -"drivere neprivilegiate, IPC" +"Microkernel RTOS de la Oxide Computer Company cu protecție de memorie, drivere " +"neprivilegiate, IPC" #: src/bare-metal/microcontrollers/other-projects.md -#, fuzzy msgid "[Bindings for FreeRTOS](https://github.com/lobaro/FreeRTOS-rust)" msgstr "[Legături pentru FreeRTOS](https://github.com/lobaro/FreeRTOS-rust)" #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy msgid "" -"Some platforms have `std` implementations, e.g. [esp-idf](https://esp-rs." -"github.io/book/overview/using-the-standard-library.html)." +"Some platforms have `std` implementations, e.g. [esp-idf](https://esp-rs.github." +"io/book/overview/using-the-standard-library.html)." msgstr "" "Unele platforme au implementări `std`, de exemplu [esp-idf](https://esp-rs." "github.io/book/overview/using-the-standard-library.html)." @@ -21161,8 +19924,8 @@ msgstr "Nu include niciun HAL." #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy msgid "" -"It uses the Cortex-M NVIC (Nested Virtual Interrupt Controller) for " -"scheduling rather than a proper kernel." +"It uses the Cortex-M NVIC (Nested Virtual Interrupt Controller) for scheduling " +"rather than a proper kernel." msgstr "" "Acesta utilizează Cortex-M NVIC (Nested Virtual Interrupt Controller) pentru " "programare, în loc de un kernel propriu-zis." @@ -21174,11 +19937,10 @@ msgstr "Numai Cortex-M." #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy -msgid "" -"Google uses TockOS on the Haven microcontroller for Titan security keys." +msgid "Google uses TockOS on the Haven microcontroller for Titan security keys." msgstr "" -"Google folosește TockOS pe microcontrolerul Haven pentru cheile de " -"securitate Titan." +"Google folosește TockOS pe microcontrolerul Haven pentru cheile de securitate " +"Titan." #: src/bare-metal/microcontrollers/other-projects.md #, fuzzy @@ -21203,8 +19965,8 @@ msgid "" "After looking at the exercises, you can look at the [solutions](solutions-" "morning.md) provided." msgstr "" -"După ce ați studiat exercițiile, puteți consulta [soluțile](solutions-" -"morning.md) furnizate." +"După ce ați studiat exercițiile, puteți consulta [soluțile](solutions-morning." +"md) furnizate." #: src/exercises/bare-metal/compass.md #, fuzzy @@ -21225,38 +19987,37 @@ msgstr "Sugestii:" #: src/exercises/bare-metal/compass.md #, fuzzy msgid "" -"Check the documentation for the [`lsm303agr`](https://docs.rs/lsm303agr/" -"latest/lsm303agr/) and [`microbit-v2`](https://docs.rs/microbit-v2/latest/" -"microbit/) crates, as well as the [micro:bit hardware](https://tech.microbit." -"org/hardware/)." +"Check the documentation for the [`lsm303agr`](https://docs.rs/lsm303agr/latest/" +"lsm303agr/) and [`microbit-v2`](https://docs.rs/microbit-v2/latest/microbit/) " +"crates, as well as the [micro:bit hardware](https://tech.microbit.org/" +"hardware/)." msgstr "" "Consultați documentația pentru pachetele [`lsm303agr`](https://docs.rs/" "lsm303agr/latest/lsm303agr/) și [`microbit-v2`](https://docs.rs/microbit-v2/" -"latest/microbit/), precum și pentru [micro:bit hardware](https://tech." -"microbit.org/hardware/)." +"latest/microbit/), precum și pentru [micro:bit hardware](https://tech.microbit." +"org/hardware/)." #: src/exercises/bare-metal/compass.md #, fuzzy msgid "" "The LSM303AGR Inertial Measurement Unit is connected to the internal I2C bus." msgstr "" -"Unitatea de măsurare inerțială LSM303AGR este conectată la magistrala " -"internă I2C." +"Unitatea de măsurare inerțială LSM303AGR este conectată la magistrala internă " +"I2C." #: src/exercises/bare-metal/compass.md #, fuzzy -msgid "" -"TWI is another name for I2C, so the I2C master peripheral is called TWIM." +msgid "TWI is another name for I2C, so the I2C master peripheral is called TWIM." msgstr "" -"TWI este un alt nume pentru I2C, astfel încât perifericul master I2C se " -"numește TWIM." +"TWI este un alt nume pentru I2C, astfel încât perifericul master I2C se numește " +"TWIM." #: src/exercises/bare-metal/compass.md #, fuzzy msgid "" -"The LSM303AGR driver needs something implementing the `embedded_hal::" -"blocking::i2c::WriteRead` trait. The [`microbit::hal::Twim`](https://docs.rs/" -"microbit-v2/latest/microbit/hal/struct.Twim.html) struct implements this." +"The LSM303AGR driver needs something implementing the `embedded_hal::i2c::I2c` " +"trait. The [`microbit::hal::Twim`](https://docs.rs/microbit-v2/latest/microbit/" +"hal/struct.Twim.html) struct implements this." msgstr "" "Driverul LSM303AGR are nevoie de ceva care să implementeze trăsătura " "`embedded_hal::blocking::i2c::WriteRead`. Structura [`microbit::hal::Twim`]" @@ -21275,9 +20036,9 @@ msgstr "" #: src/exercises/bare-metal/compass.md #, fuzzy msgid "" -"You can also look at the [nRF52833 datasheet](https://infocenter.nordicsemi." -"com/pdf/nRF52833_PS_v1.5.pdf) if you want, but it shouldn't be necessary for " -"this exercise." +"You can also look at the [nRF52833 datasheet](https://infocenter.nordicsemi.com/" +"pdf/nRF52833_PS_v1.5.pdf) if you want, but it shouldn't be necessary for this " +"exercise." msgstr "" "Dacă doriți, puteți consulta și [nRF52833 datasheet](https://infocenter." "nordicsemi.com/pdf/nRF52833_PS_v1.5.pdf), dar nu ar trebui să fie necesar " @@ -21289,8 +20050,8 @@ msgid "" "Download the [exercise template](../../comprehensive-rust-exercises.zip) and " "look in the `compass` directory for the following files." msgstr "" -"Descărcați [șablonul de exerciții] (../../comprehensive-rust-exercises.zip) " -"și căutați în directorul `compass` următoarele fișiere." +"Descărcați [șablonul de exerciții] (../../comprehensive-rust-exercises.zip) și " +"căutați în directorul `compass` următoarele fișiere." #: src/exercises/bare-metal/compass.md src/exercises/bare-metal/rtc.md #, fuzzy @@ -21308,10 +20069,8 @@ msgid "_Embed.toml_ (you shouldn't need to change this):" msgstr "_Embed.toml_ (nu ar trebui să fie nevoie să modificați acest lucru):" #: src/exercises/bare-metal/compass.md src/exercises/bare-metal/rtc.md -#, fuzzy msgid "_.cargo/config.toml_ (you shouldn't need to change this):" -msgstr "" -"_.cargo/config.toml_ (nu ar trebui să fie nevoie să modificați acest lucru):" +msgstr "_.cargo/config.toml_ (nu e nevoie să modificați asta):" #: src/exercises/bare-metal/compass.md #, fuzzy @@ -21320,8 +20079,7 @@ msgstr "Vedeți ieșirea serială pe Linux cu:" #: src/exercises/bare-metal/compass.md #, fuzzy -msgid "" -"Or on Mac OS something like (the device name may be slightly different):" +msgid "Or on Mac OS something like (the device name may be slightly different):" msgstr "" "Sau, pe Mac OS, ceva de genul (numele dispozitivului poate fi ușor diferit):" @@ -21336,9 +20094,8 @@ msgid "Bare Metal Rust Morning Exercise" msgstr "Exercițiu de dimineață Bare Metal Rust" #: src/exercises/bare-metal/solutions-morning.md -#, fuzzy msgid "([back to exercise](compass.md))" -msgstr "([back to exercise](compass.md))" +msgstr "([înapoi la exercițiu](compass.md))" #: src/exercises/bare-metal/solutions-morning.md #, fuzzy @@ -21356,7 +20113,6 @@ msgid "// Set up the I2C controller and Inertial Measurement Unit.\n" msgstr "// Configurați controlerul I2C și unitatea de măsurare inerțială.\n" #: src/exercises/bare-metal/solutions-morning.md -#, fuzzy msgid "\"Setting up IMU...\"" msgstr "\"Configurarea IMU...\"" @@ -21366,7 +20122,6 @@ msgid "// Set up display and timer.\n" msgstr "// Configurați afișajul și cronometrul.\n" #: src/exercises/bare-metal/solutions-morning.md -#, fuzzy msgid "\"Ready.\"" msgstr "\"Gata.\"" @@ -21376,15 +20131,13 @@ msgid "// Read compass data and log it to the serial port.\n" msgstr "// Citiți datele busolei și înregistrați-le pe portul serial.\n" #: src/exercises/bare-metal/solutions-morning.md -#, fuzzy msgid "\"{},{},{}\\t{},{},{}\"" -msgstr "Partiții: `&[T]`" +msgstr "\"{},{},{}\\t{},{},{}\"" #: src/exercises/bare-metal/solutions-morning.md #, fuzzy msgid "" -"// If button A is pressed, switch to the next mode and briefly blink all " -"LEDs\n" +"// If button A is pressed, switch to the next mode and briefly blink all LEDs\n" " // on.\n" msgstr "" "// Dacă este apăsat butonul A, se trece la modul următor și clipesc pentru " @@ -21404,10 +20157,10 @@ msgid "" "with QEMU's aarch64 ['virt'](https://qemu-project.gitlab.io/qemu/system/arm/" "virt.html) board." msgstr "" -"Până acum am vorbit despre microcontrolere, cum ar fi seria Arm Cortex-M. " -"Acum să încercăm să scriem ceva pentru Cortex-A. Pentru simplitate, vom " -"lucra doar cu placa aarch64 ['virt'](https://qemu-project.gitlab.io/qemu/" -"system/arm/virt.html) a lui QEMU." +"Până acum am vorbit despre microcontrolere, cum ar fi seria Arm Cortex-M. Acum " +"să încercăm să scriem ceva pentru Cortex-A. Pentru simplitate, vom lucra doar " +"cu placa aarch64 ['virt'](https://qemu-project.gitlab.io/qemu/system/arm/virt." +"html) a lui QEMU." #: src/bare-metal/aps.md #, fuzzy @@ -21417,8 +20170,8 @@ msgid "" "processors do." msgstr "" "În linii mari, microcontrolerele nu au un MMU sau mai multe niveluri de " -"privilegii (niveluri de excepție la procesoarele Arm, inele la x86), în timp " -"ce procesoarele de aplicații au." +"privilegii (niveluri de excepție la procesoarele Arm, inele la x86), în timp ce " +"procesoarele de aplicații au." #: src/bare-metal/aps.md #, fuzzy @@ -21428,13 +20181,12 @@ msgid "" "hardware, but is designed purely for virtual machines." msgstr "" "QEMU suportă emularea mai multor mașini sau modele de plăci diferite pentru " -"fiecare arhitectură. Placa \"virt\" nu corespunde unui anumit hardware real, " -"ci este concepută exclusiv pentru mașini virtuale." +"fiecare arhitectură. Placa \"virt\" nu corespunde unui anumit hardware real, ci " +"este concepută exclusiv pentru mașini virtuale." #: src/bare-metal/aps/entry-point.md #, fuzzy -msgid "" -"Before we can start running Rust code, we need to do some initialisation." +msgid "Before we can start running Rust code, we need to do some initialisation." msgstr "" "Înainte de a începe să rulăm codul Rust, trebuie să facem o anumită " "inițializare." @@ -21447,8 +20199,8 @@ msgid "" ".global entry\n" "entry:\n" " /*\n" -" * Load and apply the memory management configuration, ready to enable " -"MMU and\n" +" * Load and apply the memory management configuration, ready to enable MMU " +"and\n" " * caches.\n" " */\n" " adrp x30, idmap\n" @@ -21467,8 +20219,7 @@ msgid "" " mov_i x30, .Lsctlrval\n" "\n" " /*\n" -" * Ensure everything before this point has completed, then invalidate " -"any\n" +" * Ensure everything before this point has completed, then invalidate any\n" " * potentially stale local TLB entries before they start being used.\n" " */\n" " isb\n" @@ -21520,8 +20271,8 @@ msgstr "" ".global entry\n" "intrare:\n" " /*\n" -" * Încărcați și aplicați configurația de gestionare a memoriei, " -"pregătită pentru a activa MMU și\n" +" * Încărcați și aplicați configurația de gestionare a memoriei, pregătită " +"pentru a activa MMU și\n" " * memoria cache.\n" " */\n" " adrp x30, idmap\n" @@ -21603,47 +20354,46 @@ msgstr "" msgid "" "The BSS (block starting symbol, for historical reasons) is the part of the " "object file which containing statically allocated variables which are " -"initialised to zero. They are omitted from the image, to avoid wasting space " -"on zeroes. The compiler assumes that the loader will take care of zeroing " -"them." +"initialised to zero. They are omitted from the image, to avoid wasting space on " +"zeroes. The compiler assumes that the loader will take care of zeroing them." msgstr "" "BSS (simbolul de pornire al blocului, din motive istorice) este partea din " -"fișierul obiect care conține variabilele alocate static care sunt " -"inițializate la zero. Acestea sunt omise din imagine, pentru a se evita " -"risipa de spațiu cu zerouri. Compilatorul pornește de la premisa că " -"încărcătorul se va ocupa de punerea lor la zero." +"fișierul obiect care conține variabilele alocate static care sunt inițializate " +"la zero. Acestea sunt omise din imagine, pentru a se evita risipa de spațiu cu " +"zerouri. Compilatorul pornește de la premisa că încărcătorul se va ocupa de " +"punerea lor la zero." #: src/bare-metal/aps/entry-point.md #, fuzzy msgid "" -"The BSS may already be zeroed, depending on how memory is initialised and " -"the image is loaded, but we zero it to be sure." +"The BSS may already be zeroed, depending on how memory is initialised and the " +"image is loaded, but we zero it to be sure." msgstr "" -"Este posibil ca BSS să fie deja zero, în funcție de modul în care memoria " -"este inițializată și imaginea este încărcată, dar trebuie să îl punem la " -"zero pentru a fi siguri." +"Este posibil ca BSS să fie deja zero, în funcție de modul în care memoria este " +"inițializată și imaginea este încărcată, dar trebuie să îl punem la zero pentru " +"a fi siguri." #: src/bare-metal/aps/entry-point.md #, fuzzy msgid "" -"We need to enable the MMU and cache before reading or writing any memory. If " -"we don't:" +"We need to enable the MMU and cache before reading or writing any memory. If we " +"don't:" msgstr "" -"Trebuie să activăm MMU și memoria cache înainte de a citi sau scrie în " -"memorie. Dacă nu o facem:" +"Trebuie să activăm MMU și memoria cache înainte de a citi sau scrie în memorie. " +"Dacă nu o facem:" #: src/bare-metal/aps/entry-point.md #, fuzzy msgid "" -"Unaligned accesses will fault. We build the Rust code for the `aarch64-" -"unknown-none` target which sets `+strict-align` to prevent the compiler " -"generating unaligned accesses, so it should be fine in this case, but this " -"is not necessarily the case in general." +"Unaligned accesses will fault. We build the Rust code for the `aarch64-unknown-" +"none` target which sets `+strict-align` to prevent the compiler generating " +"unaligned accesses, so it should be fine in this case, but this is not " +"necessarily the case in general." msgstr "" -"Accesările nealiniate vor fi defectuoase. Noi construim codul Rust pentru " -"ținta `aarch64-unknown-none` care setează `+strict-align` pentru a preveni " -"compilatorul să genereze accese nealiniate, deci ar trebui să fie în regulă " -"în acest caz, dar nu este neapărat cazul în general." +"Accesările nealiniate vor fi defectuoase. Noi construim codul Rust pentru ținta " +"`aarch64-unknown-none` care setează `+strict-align` pentru a preveni " +"compilatorul să genereze accese nealiniate, deci ar trebui să fie în regulă în " +"acest caz, dar nu este neapărat cazul în general." #: src/bare-metal/aps/entry-point.md #, fuzzy @@ -21652,12 +20402,12 @@ msgid "" "problem is that the VM is accessing memory directly with the cache disabled, " "while the host has cacheable aliases to the same memory. Even if the host " "doesn't explicitly access the memory, speculative accesses can lead to cache " -"fills, and then changes from one or the other will get lost when the cache " -"is cleaned or the VM enables the cache. (Cache is keyed by physical address, " -"not VA or IPA.)" +"fills, and then changes from one or the other will get lost when the cache is " +"cleaned or the VM enables the cache. (Cache is keyed by physical address, not " +"VA or IPA.)" msgstr "" -"Dacă ar fi rulat într-o mașină virtuală, acest lucru poate duce la probleme " -"de coerență a memoriei cache. Problema constă în faptul că mașina virtuală " +"Dacă ar fi rulat într-o mașină virtuală, acest lucru poate duce la probleme de " +"coerență a memoriei cache. Problema constă în faptul că mașina virtuală " "accesează memoria direct, cu memoria cache dezactivată, în timp ce gazda are " "alias-uri care pot fi stocate în memoria cache pentru aceeași memorie. Chiar " "dacă gazda nu accesează în mod explicit memoria, accesările speculative pot " @@ -21670,15 +20420,15 @@ msgstr "" #, fuzzy msgid "" "For simplicity, we just use a hardcoded pagetable (see `idmap.S`) which " -"identity maps the first 1 GiB of address space for devices, the next 1 GiB " -"for DRAM, and another 1 GiB higher up for more devices. This matches the " -"memory layout that QEMU uses." +"identity maps the first 1 GiB of address space for devices, the next 1 GiB for " +"DRAM, and another 1 GiB higher up for more devices. This matches the memory " +"layout that QEMU uses." msgstr "" "Pentru simplitate, folosim doar o tabelă de pagini codificată (a se vedea " "`idmap.S`) care mapează identitar primul 1 GiB de spațiu de adrese pentru " -"dispozitive, următorul 1 GiB pentru DRAM și încă 1 GiB mai sus pentru mai " -"multe dispozitive. Acest lucru se potrivește cu dispunerea memoriei pe care " -"o folosește QEMU." +"dispozitive, următorul 1 GiB pentru DRAM și încă 1 GiB mai sus pentru mai multe " +"dispozitive. Acest lucru se potrivește cu dispunerea memoriei pe care o " +"folosește QEMU." #: src/bare-metal/aps/entry-point.md #, fuzzy @@ -21686,19 +20436,19 @@ msgid "" "We also set up the exception vector (`vbar_el1`), which we'll see more about " "later." msgstr "" -"De asemenea, am configurat vectorul de excepții (`vbar_el1`), despre care " -"vom vedea mai multe mai târziu." +"De asemenea, am configurat vectorul de excepții (`vbar_el1`), despre care vom " +"vedea mai multe mai târziu." #: src/bare-metal/aps/entry-point.md #, fuzzy msgid "" "All examples this afternoon assume we will be running at exception level 1 " -"(EL1). If you need to run at a different exception level you'll need to " -"modify `entry.S` accordingly." +"(EL1). If you need to run at a different exception level you'll need to modify " +"`entry.S` accordingly." msgstr "" -"Toate exemplele din această după-amiază presupun că vom funcționa la nivelul " -"de excepție 1 (EL1). Dacă aveți nevoie să rulați la un alt nivel de " -"excepție, va trebui să modificați `entry.S` în consecință." +"Toate exemplele din această după-amiază presupun că vom funcționa la nivelul de " +"excepție 1 (EL1). Dacă aveți nevoie să rulați la un alt nivel de excepție, va " +"trebui să modificați `entry.S` în consecință." #: src/bare-metal/aps/inline-assembly.md #, fuzzy @@ -21708,13 +20458,13 @@ msgstr "Ansamblare în linie" #: src/bare-metal/aps/inline-assembly.md #, fuzzy msgid "" -"Sometimes we need to use assembly to do things that aren't possible with " -"Rust code. For example, to make an HVC (hypervisor call) to tell the " -"firmware to power off the system:" +"Sometimes we need to use assembly to do things that aren't possible with Rust " +"code. For example, to make an HVC (hypervisor call) to tell the firmware to " +"power off the system:" msgstr "" "Uneori trebuie să folosim asamblarea pentru a face lucruri care nu sunt " -"posibile cu codul Rust. De exemplu, pentru a face un apel HVC (hypervisor " -"call) pentru a spune firmware-ului să oprească sistemul:" +"posibile cu codul Rust. De exemplu, pentru a face un apel HVC (hypervisor call) " +"pentru a spune firmware-ului să oprească sistemul:" #: src/bare-metal/aps/inline-assembly.md #, fuzzy @@ -21722,74 +20472,63 @@ msgid "" "// SAFETY: this only uses the declared registers and doesn't do anything\n" " // with memory.\n" msgstr "" -"// Sigur pentru că acest lucru folosește doar registrele declarate și nu " -"face\n" +"// Sigur pentru că acest lucru folosește doar registrele declarate și nu face\n" " // nimic cu memoria.\n" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"hvc #0\"" msgstr "\"hvc #0\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w0\"" msgstr "\"w0\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w1\"" msgstr "\"w1\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w2\"" msgstr "\"w2\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w3\"" msgstr "\"w3\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w4\"" msgstr "\"w4\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w5\"" msgstr "\"w5\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w6\"" msgstr "\"w6\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "\"w7\"" msgstr "\"w7\"" #: src/bare-metal/aps/inline-assembly.md -#, fuzzy msgid "" "(If you actually want to do this, use the [`smccc`](https://crates.io/crates/" "smccc) crate which has wrappers for all these functions.)" msgstr "" -"(Dacă doriți să faceți acest lucru, folosiți crăiasa [`smccc`](https://" -"crates.io/crates/smccc) care are învelișuri pentru toate aceste funcții.)" +"(Dacă doriți să faceți acest lucru, folosiți crate-ul [`smccc`](https://crates." +"io/crates/smccc) care are acoperire pentru toate aceste funcții.)" #: src/bare-metal/aps/inline-assembly.md #, fuzzy msgid "" -"PSCI is the Arm Power State Coordination Interface, a standard set of " -"functions to manage system and CPU power states, among other things. It is " -"implemented by EL3 firmware and hypervisors on many systems." +"PSCI is the Arm Power State Coordination Interface, a standard set of functions " +"to manage system and CPU power states, among other things. It is implemented by " +"EL3 firmware and hypervisors on many systems." msgstr "" "PSCI este Interfața de coordonare a stării de alimentare a brațului, un set " -"standard de funcții pentru gestionarea stării de alimentare a sistemului și " -"a procesorului, printre altele. Este implementată de firmware-ul EL3 și de " +"standard de funcții pentru gestionarea stării de alimentare a sistemului și a " +"procesorului, printre altele. Este implementată de firmware-ul EL3 și de " "hipervizoarele de pe multe sisteme." #: src/bare-metal/aps/inline-assembly.md @@ -21802,17 +20541,17 @@ msgid "" msgstr "" "Sintaxa `0 => _` înseamnă inițializarea registrului la 0 înainte de a rula " "codul de asamblare în linie și ignorarea conținutului acestuia după aceea. " -"Trebuie să folosim mai degrabă `inout` decât `in` deoarece apelul ar putea " -"să distrugă conținutul registrelor." +"Trebuie să folosim mai degrabă `inout` decât `in` deoarece apelul ar putea să " +"distrugă conținutul registrelor." #: src/bare-metal/aps/inline-assembly.md #, fuzzy msgid "" -"This `main` function needs to be `#[no_mangle]` and `extern \"C\"` because " -"it is called from our entry point in `entry.S`." +"This `main` function needs to be `#[no_mangle]` and `extern \"C\"` because it " +"is called from our entry point in `entry.S`." msgstr "" -"Această funcție `main` trebuie să fie `#[no_mangle]` și `extern \"C\"` " -"deoarece este apelată din punctul nostru de intrare în `entry.S`." +"Această funcție `main` trebuie să fie `#[no_mangle]` și `extern \"C\"` deoarece " +"este apelată din punctul nostru de intrare în `entry.S`." #: src/bare-metal/aps/inline-assembly.md #, fuzzy @@ -21825,13 +20564,12 @@ msgid "" "special except make sure it doesn't change these registers." msgstr "" "`_x0`-`_x3` sunt valorile registrelor `x0`-`x3`, care sunt utilizate în mod " -"convențional de către bootloader pentru a transmite lucruri precum un " -"pointer la arborele de dispozitive. În conformitate cu convenția standard de " -"apelare aarch64 (care este cea pe care `extern \"C\"` specifică să o " -"folosească), registrele `x0`-`x7` sunt folosite pentru primele 8 argumente " -"transmise unei funcții, astfel încât `entry.S` nu trebuie să facă nimic " -"special, cu excepția faptului că trebuie să se asigure că nu modifică aceste " -"registre." +"convențional de către bootloader pentru a transmite lucruri precum un pointer " +"la arborele de dispozitive. În conformitate cu convenția standard de apelare " +"aarch64 (care este cea pe care `extern \"C\"` specifică să o folosească), " +"registrele `x0`-`x7` sunt folosite pentru primele 8 argumente transmise unei " +"funcții, astfel încât `entry.S` nu trebuie să facă nimic special, cu excepția " +"faptului că trebuie să se asigure că nu modifică aceste registre." #: src/bare-metal/aps/inline-assembly.md #, fuzzy @@ -21868,19 +20606,19 @@ msgstr "" #: src/bare-metal/aps/mmio.md #, fuzzy msgid "" -"Volatile access: read or write operations may have side-effects, so prevent " -"the compiler or hardware from reordering, duplicating or eliding them." +"Volatile access: read or write operations may have side-effects, so prevent the " +"compiler or hardware from reordering, duplicating or eliding them." msgstr "" "Acces volatil: Operațiunile de citire sau scriere pot avea efecte secundare, " -"deci împiedicați compilatorul sau hardware-ul să le reordoneze, să le " -"dubleze sau să le eludeze." +"deci împiedicați compilatorul sau hardware-ul să le reordoneze, să le dubleze " +"sau să le eludeze." #: src/bare-metal/aps/mmio.md #, fuzzy msgid "" -"Usually if you write and then read, e.g. via a mutable reference, the " -"compiler may assume that the value read is the same as the value just " -"written, and not bother actually reading memory." +"Usually if you write and then read, e.g. via a mutable reference, the compiler " +"may assume that the value read is the same as the value just written, and not " +"bother actually reading memory." msgstr "" "De obicei, dacă scrieți și apoi citiți, de exemplu, prin intermediul unei " "referințe mutabile, compilatorul poate presupune că valoarea citită este " @@ -21894,9 +20632,9 @@ msgid "" "this is unsound. Whenever a reference exist, the compiler may choose to " "dereference it." msgstr "" -"Unele cutii existente pentru accesul volatil la hardware conțin referințe, " -"dar acest lucru nu este corect. Ori de câte ori există o referință, " -"compilatorul poate alege să o deregleze." +"Unele cutii existente pentru accesul volatil la hardware conțin referințe, dar " +"acest lucru nu este corect. Ori de câte ori există o referință, compilatorul " +"poate alege să o deregleze." #: src/bare-metal/aps/mmio.md #, fuzzy @@ -21904,8 +20642,8 @@ msgid "" "Use the `addr_of!` macro to get struct field pointers from a pointer to the " "struct." msgstr "" -"Utilizați macroul `addr_of!` pentru a obține pointeri de câmpuri de " -"structură dintr-un pointer la structură." +"Utilizați macroul `addr_of!` pentru a obține pointeri de câmpuri de structură " +"dintr-un pointer la structură." #: src/bare-metal/aps/uart.md #, fuzzy @@ -21915,11 +20653,11 @@ msgstr "Să scriem un driver UART" #: src/bare-metal/aps/uart.md #, fuzzy msgid "" -"The QEMU 'virt' machine has a [PL011](https://developer.arm.com/" -"documentation/ddi0183/g) UART, so let's write a driver for that." +"The QEMU 'virt' machine has a [PL011](https://developer.arm.com/documentation/" +"ddi0183/g) UART, so let's write a driver for that." msgstr "" -"Mașina QEMU 'virt' are o UART [PL011](https://developer.arm.com/" -"documentation/ddi0183/g), așa că haideți să scriem un driver pentru aceasta." +"Mașina QEMU 'virt' are o UART [PL011](https://developer.arm.com/documentation/" +"ddi0183/g), așa că haideți să scriem un driver pentru aceasta." #: src/bare-metal/aps/uart.md #, fuzzy @@ -21934,22 +20672,20 @@ msgid "" " ///\n" " /// # Safety\n" " ///\n" -" /// The given base address must point to the 8 MMIO control registers of " -"a\n" +" /// The given base address must point to the 8 MMIO control registers of a\n" " /// PL011 device, which must be mapped into the address space of the " "process\n" " /// as device memory and not have any other aliases.\n" msgstr "" -"/// Construiește o nouă instanță a driverului UART pentru un dispozitiv " -"PL011 la nivelul\n" +"/// Construiește o nouă instanță a driverului UART pentru un dispozitiv PL011 " +"la nivelul\n" " /// adresa de bază dată.\n" " ///\n" " /// # Siguranță\n" " ///\n" -" /// Adresa de bază dată trebuie să indice cele 8 registre de control " -"MMIO ale unui dispozitiv de tip\n" -" /// PL011, care trebuie să fie mapate în spațiul de adrese al " -"procesului\n" +" /// Adresa de bază dată trebuie să indice cele 8 registre de control MMIO " +"ale unui dispozitiv de tip\n" +" /// PL011, care trebuie să fie mapate în spațiul de adrese al procesului\n" " /// ca memorie a dispozitivului și să nu aibă alte pseudonime.\n" #: src/bare-metal/aps/uart.md src/bare-metal/aps/better-uart/driver.md @@ -21987,40 +20723,40 @@ msgstr "// Așteptați până când UART nu mai este ocupată.\n" msgid "" "Note that `Uart::new` is unsafe while the other methods are safe. This is " "because as long as the caller of `Uart::new` guarantees that its safety " -"requirements are met (i.e. that there is only ever one instance of the " -"driver for a given UART, and nothing else aliasing its address space), then " -"it is always safe to call `write_byte` later because we can assume the " -"necessary preconditions." -msgstr "" -"Rețineți că `Uart::new` este nesigură, în timp ce celelalte metode sunt " -"sigure. Acest lucru se datorează faptului că, atâta timp cât apelantul lui " -"`Uart::new` garantează că cerințele sale de siguranță sunt îndeplinite (de " -"exemplu, că există doar o singură instanță a driverului pentru o anumită " -"UART și nimic altceva care să se alăture spațiului său de adrese), atunci " -"este întotdeauna sigur să apelăm mai târziu `write_byte`, deoarece putem " -"presupune condițiile prealabile necesare." +"requirements are met (i.e. that there is only ever one instance of the driver " +"for a given UART, and nothing else aliasing its address space), then it is " +"always safe to call `write_byte` later because we can assume the necessary " +"preconditions." +msgstr "" +"Rețineți că `Uart::new` este nesigură, în timp ce celelalte metode sunt sigure. " +"Acest lucru se datorează faptului că, atâta timp cât apelantul lui `Uart::new` " +"garantează că cerințele sale de siguranță sunt îndeplinite (de exemplu, că " +"există doar o singură instanță a driverului pentru o anumită UART și nimic " +"altceva care să se alăture spațiului său de adrese), atunci este întotdeauna " +"sigur să apelăm mai târziu `write_byte`, deoarece putem presupune condițiile " +"prealabile necesare." #: src/bare-metal/aps/uart.md #, fuzzy msgid "" -"We could have done it the other way around (making `new` safe but " -"`write_byte` unsafe), but that would be much less convenient to use as every " -"place that calls `write_byte` would need to reason about the safety" +"We could have done it the other way around (making `new` safe but `write_byte` " +"unsafe), but that would be much less convenient to use as every place that " +"calls `write_byte` would need to reason about the safety" msgstr "" -"Am fi putut face invers (făcând `new` sigur, dar `write_byte` nesigur), dar " -"ar fi fost mult mai puțin convenabil de utilizat, deoarece fiecare loc care " +"Am fi putut face invers (făcând `new` sigur, dar `write_byte` nesigur), dar ar " +"fi fost mult mai puțin convenabil de utilizat, deoarece fiecare loc care " "apelează `write_byte` ar trebui să se gândească la siguranța lui `write_byte`" #: src/bare-metal/aps/uart.md #, fuzzy msgid "" -"This is a common pattern for writing safe wrappers of unsafe code: moving " -"the burden of proof for soundness from a large number of places to a smaller " -"number of places." +"This is a common pattern for writing safe wrappers of unsafe code: moving the " +"burden of proof for soundness from a large number of places to a smaller number " +"of places." msgstr "" "Acesta este un model comun pentru scrierea de învelișuri sigure pentru cod " -"nesigur: mutarea sarcinii de a dovedi soliditatea de la un număr mare de " -"locuri la un număr mai mic de locuri." +"nesigur: mutarea sarcinii de a dovedi soliditatea de la un număr mare de locuri " +"la un număr mai mic de locuri." #: src/bare-metal/aps/uart/traits.md #, fuzzy @@ -22030,8 +20766,8 @@ msgstr "Mai multe trăsături" #: src/bare-metal/aps/uart/traits.md #, fuzzy msgid "" -"We derived the `Debug` trait. It would be useful to implement a few more " -"traits too." +"We derived the `Debug` trait. It would be useful to implement a few more traits " +"too." msgstr "" "Am derivat trăsătura `Debug`. Ar fi util să implementăm și alte câteva " "trăsături." @@ -22042,8 +20778,8 @@ msgid "" "// SAFETY: `Uart` just contains a pointer to device memory, which can be\n" "// accessed from any context.\n" msgstr "" -"// Sigur, deoarece conține doar un pointer către memoria dispozitivului, " -"care poate fi\n" +"// Sigur, deoarece conține doar un pointer către memoria dispozitivului, care " +"poate fi\n" "// accesată din orice context.\n" #: src/bare-metal/aps/uart/traits.md @@ -22052,8 +20788,8 @@ msgid "" "Implementing `Write` lets us use the `write!` and `writeln!` macros with our " "`Uart` type." msgstr "" -"Implementarea `Write` ne permite să folosim macrogramele `write!` și " -"`writeln!` cu tipul nostru `Uart`." +"Implementarea `Write` ne permite să folosim macrogramele `write!` și `writeln!` " +"cu tipul nostru `Uart`." #: src/bare-metal/aps/uart/traits.md #, fuzzy @@ -22061,8 +20797,7 @@ msgid "" "Run the example in QEMU with `make qemu_minimal` under `src/bare-metal/aps/" "examples`." msgstr "" -"Rulați exemplul în QEMU cu `make qemu_minimal` în `src/bare-metal/aps/" -"examples`." +"Rulați exemplul în QEMU cu `make qemu_minimal` în `src/bare-metal/aps/examples`." #: src/bare-metal/aps/better-uart.md #, fuzzy @@ -22074,15 +20809,15 @@ msgstr "Un driver UART mai bun" msgid "" "The PL011 actually has [a bunch more registers](https://developer.arm.com/" "documentation/ddi0183/g/programmers-model/summary-of-registers), and adding " -"offsets to construct pointers to access them is error-prone and hard to " -"read. Plus, some of them are bit fields which would be nice to access in a " -"structured way." +"offsets to construct pointers to access them is error-prone and hard to read. " +"Plus, some of them are bit fields which would be nice to access in a structured " +"way." msgstr "" "PL011 are de fapt [o grămadă de registre](https://developer.arm.com/" -"documentation/ddi0183/g/programmers-model/summary-of-registers), iar " -"adăugarea de offset-uri pentru a construi pointeri pentru a le accesa este " -"predispusă la erori și greu de citit. În plus, unele dintre ele sunt câmpuri " -"de biți care ar fi frumos să fie accesate într-un mod structurat." +"documentation/ddi0183/g/programmers-model/summary-of-registers), iar adăugarea " +"de offset-uri pentru a construi pointeri pentru a le accesa este predispusă la " +"erori și greu de citit. În plus, unele dintre ele sunt câmpuri de biți care ar " +"fi frumos să fie accesate într-un mod structurat." #: src/bare-metal/aps/better-uart.md msgid "Offset" @@ -22228,16 +20963,16 @@ msgstr "DMACR" #, fuzzy msgid "There are also some ID registers which have been omitted for brevity." msgstr "" -"Există, de asemenea, unele registre de identificare care au fost omise " -"pentru a fi mai scurte." +"Există, de asemenea, unele registre de identificare care au fost omise pentru a " +"fi mai scurte." #: src/bare-metal/aps/better-uart/bitflags.md #, fuzzy msgid "" -"The [`bitflags`](https://crates.io/crates/bitflags) crate is useful for " -"working with bitflags." +"The [`bitflags`](https://crates.io/crates/bitflags) crate is useful for working " +"with bitflags." msgstr "" -"Crăiasa [`bitflags`](https://crates.io/crates/bitflags) este utilă pentru a " +"Crate-ul [`bitflags`](https://crates.io/crates/bitflags) este utilă pentru a " "lucra cu bitflags." #: src/bare-metal/aps/better-uart/bitflags.md @@ -22293,11 +21028,11 @@ msgstr "/// Indicator de inel.\n" #: src/bare-metal/aps/better-uart/bitflags.md #, fuzzy msgid "" -"The `bitflags!` macro creates a newtype something like `Flags(u16)`, along " -"with a bunch of method implementations to get and set flags." +"The `bitflags!` macro creates a newtype something like `Flags(u16)`, along with " +"a bunch of method implementations to get and set flags." msgstr "" -"Macroul `bitflags!` creează un nou tip, ceva de genul `Flags(u16)`, împreună " -"cu o serie de implementări de metode pentru a obține și seta steaguri." +"Macroul `bitflags!` creează un nou tip, ceva de genul `Flags(u16)`, împreună cu " +"o serie de implementări de metode pentru a obține și seta steaguri." #: src/bare-metal/aps/better-uart/registers.md #, fuzzy @@ -22309,11 +21044,10 @@ msgstr "Registre multiple" msgid "" "We can use a struct to represent the memory layout of the UART's registers." msgstr "" -"Putem folosi o structură pentru a reprezenta structura de memorie a " -"registrelor UART." +"Putem folosi o structură pentru a reprezenta structura de memorie a registrelor " +"UART." #: src/bare-metal/aps/better-uart/registers.md -#, fuzzy msgid "" "[`#[repr(C)]`](https://doc.rust-lang.org/reference/type-layout.html#the-c-" "representation) tells the compiler to lay the struct fields out in order, " @@ -22323,10 +21057,10 @@ msgid "" msgstr "" "[`#[repr(C)]`](https://doc.rust-lang.org/reference/type-layout.html#the-c-" "representation) îi spune compilatorului să așeze câmpurile structurii în " -"ordine, urmând aceleași reguli ca și în C. Acest lucru este necesar pentru " -"ca structura noastră să aibă o dispunere previzibilă, deoarece reprezentarea " -"implicită Rust permite compilatorului (printre altele) să reordoneze " -"câmpurile după cum crede de cuviință." +"ordine, urmând aceleași reguli ca și în C. Acest lucru este necesar pentru ca " +"structura noastră să aibă o dispunere previzibilă, deoarece reprezentarea " +"implicită Rust permite compilatorului (printre altele) să reordoneze câmpurile " +"după cum crede de cuviință." #: src/bare-metal/aps/better-uart/driver.md #, fuzzy @@ -22379,9 +21113,8 @@ msgid "" "Note the use of `addr_of!` / `addr_of_mut!` to get pointers to individual " "fields without creating an intermediate reference, which would be unsound." msgstr "" -"Rețineți utilizarea lui `addr_of!` / `addr_of_mut!` pentru a obține pointeri " -"la câmpuri individuale fără a crea o referință intermediară, ceea ce ar fi " -"nesigur." +"Rețineți utilizarea lui `addr_of!` / `addr_of_mut!` pentru a obține pointeri la " +"câmpuri individuale fără a crea o referință intermediară, ceea ce ar fi nesigur." #: src/bare-metal/aps/better-uart/using.md src/bare-metal/aps/logging/using.md #, fuzzy @@ -22410,12 +21143,11 @@ msgid "" "// SAFETY: `PL011_BASE_ADDRESS` is the base address of a PL011 device, and\n" " // nothing else accesses that address range.\n" msgstr "" -"// Sigur, deoarece `PL011_BASE_ADDRESS` este adresa de bază a unui " -"dispozitiv PL011,\n" +"// Sigur, deoarece `PL011_BASE_ADDRESS` este adresa de bază a unui dispozitiv " +"PL011,\n" " // și nimic altceva nu accesează acest interval de adrese.\n" #: src/bare-metal/aps/better-uart/using.md src/bare-metal/aps/logging/using.md -#, fuzzy msgid "\"main({x0:#x}, {x1:#x}, {x2:#x}, {x3:#x})\"" msgstr "\"main({x0:#x}, {x1:#x}, {x2:#x}, {x3:#x})\"" @@ -22436,7 +21168,6 @@ msgid "b'q'" msgstr "b'q'" #: src/bare-metal/aps/better-uart/using.md -#, fuzzy msgid "\"Bye!\"" msgstr "\"La revedere!\"" @@ -22455,22 +21186,19 @@ msgstr "" #, fuzzy msgid "" "Run the example in QEMU with `make qemu` under `src/bare-metal/aps/examples`." -msgstr "" -"Rulați exemplul în QEMU cu `make qemu` în `src/bare-metal/aps/examples`." +msgstr "Rulați exemplul în QEMU cu `make qemu` în `src/bare-metal/aps/examples`." #: src/bare-metal/aps/logging.md #, fuzzy msgid "" -"It would be nice to be able to use the logging macros from the [`log`]" -"(https://crates.io/crates/log) crate. We can do this by implementing the " -"`Log` trait." +"It would be nice to be able to use the logging macros from the [`log`](https://" +"crates.io/crates/log) crate. We can do this by implementing the `Log` trait." msgstr "" "Ar fi frumos să putem folosi macrogramele de logare de la [`log`](https://" "crates.io/crates/log) crate. Putem face acest lucru prin implementarea " "trăsăturii `Log`." #: src/bare-metal/aps/logging.md -#, fuzzy msgid "\"[{}] {}\"" msgstr "\"[{}] {}\"" @@ -22495,7 +21223,6 @@ msgstr "Trebuie să inițializăm loggerul înainte de a-l utiliza." #: src/bare-metal/aps/logging/using.md #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"{info}\"" msgstr "\"{info}\"" @@ -22503,8 +21230,8 @@ msgstr "\"{info}\"" #, fuzzy msgid "Note that our panic handler can now log details of panics." msgstr "" -"Rețineți că gestionarul nostru de panică poate acum să înregistreze " -"detaliile panicii." +"Rețineți că gestionarul nostru de panică poate acum să înregistreze detaliile " +"panicii." #: src/bare-metal/aps/logging/using.md #, fuzzy @@ -22512,21 +21239,20 @@ msgid "" "Run the example in QEMU with `make qemu_logger` under `src/bare-metal/aps/" "examples`." msgstr "" -"Rulați exemplul în QEMU cu `make qemu_logger` în `src/bare-metal/aps/" -"examples`." +"Rulați exemplul în QEMU cu `make qemu_logger` în `src/bare-metal/aps/examples`." #: src/bare-metal/aps/exceptions.md #, fuzzy msgid "" "AArch64 defines an exception vector table with 16 entries, for 4 types of " -"exceptions (synchronous, IRQ, FIQ, SError) from 4 states (current EL with " -"SP0, current EL with SPx, lower EL using AArch64, lower EL using AArch32). " -"We implement this in assembly to save volatile registers to the stack before " +"exceptions (synchronous, IRQ, FIQ, SError) from 4 states (current EL with SP0, " +"current EL with SPx, lower EL using AArch64, lower EL using AArch32). We " +"implement this in assembly to save volatile registers to the stack before " "calling into Rust code:" msgstr "" "AArch64 definește un tabel de vectori de excepții cu 16 intrări, pentru 4 " -"tipuri de excepții (sincronă, IRQ, FIQ, SError) din 4 stări (EL curent cu " -"SP0, EL curent cu SPx, EL inferior utilizând AArch64, EL inferior utilizând " +"tipuri de excepții (sincronă, IRQ, FIQ, SError) din 4 stări (EL curent cu SP0, " +"EL curent cu SPx, EL inferior utilizând AArch64, EL inferior utilizând " "AArch32). Implementăm acest lucru în asamblare pentru a salva registrele " "volatile pe stivă înainte de a apela în codul Rust:" @@ -22540,17 +21266,17 @@ msgstr "" #: src/bare-metal/aps/exceptions.md #, fuzzy msgid "" -"For simplicity we aren't distinguishing between SP0 and SPx for the current " -"EL exceptions, or between AArch32 and AArch64 for the lower EL exceptions." +"For simplicity we aren't distinguishing between SP0 and SPx for the current EL " +"exceptions, or between AArch32 and AArch64 for the lower EL exceptions." msgstr "" -"Pentru simplificare, nu facem distincție între SP0 și SPx pentru excepțiile " -"EL curente, sau între AArch32 și AArch64 pentru excepțiile EL inferioare." +"Pentru simplificare, nu facem distincție între SP0 și SPx pentru excepțiile EL " +"curente, sau între AArch32 și AArch64 pentru excepțiile EL inferioare." #: src/bare-metal/aps/exceptions.md #, fuzzy msgid "" -"For this example we just log the exception and power down, as we don't " -"expect any of them to actually happen." +"For this example we just log the exception and power down, as we don't expect " +"any of them to actually happen." msgstr "" "Pentru acest exemplu, ne limităm la înregistrarea excepției și la oprirea " "alimentării, deoarece nu ne așteptăm ca vreuna dintre acestea să se întâmple." @@ -22558,20 +21284,20 @@ msgstr "" #: src/bare-metal/aps/exceptions.md #, fuzzy msgid "" -"We can think of exception handlers and our main execution context more or " -"less like different threads. [`Send` and `Sync`](../../concurrency/send-sync." -"md) will control what we can share between them, just like with threads. For " -"example, if we want to share some value between exception handlers and the " -"rest of the program, and it's `Send` but not `Sync`, then we'll need to wrap " -"it in something like a `Mutex` and put it in a static." +"We can think of exception handlers and our main execution context more or less " +"like different threads. [`Send` and `Sync`](../../concurrency/send-sync.md) " +"will control what we can share between them, just like with threads. For " +"example, if we want to share some value between exception handlers and the rest " +"of the program, and it's `Send` but not `Sync`, then we'll need to wrap it in " +"something like a `Mutex` and put it in a static." msgstr "" -"Ne putem gândi la gestionarii de excepții și la contextul nostru principal " -"de execuție mai mult sau mai puțin ca la fire diferite. [`Send` și `Sync`]" -"(../../concurrency/send-sync.md) vor controla ceea ce putem partaja între " -"ele, la fel ca în cazul firelor de execuție. De exemplu, dacă dorim să " -"partajăm o anumită valoare între gestionarii de excepții și restul " -"programului, iar aceasta este `Send`, dar nu `Sync`, atunci va trebui să o " -"înfășurăm în ceva de genul `Mutex` și să o punem într-o statică." +"Ne putem gândi la gestionarii de excepții și la contextul nostru principal de " +"execuție mai mult sau mai puțin ca la fire diferite. [`Send` și `Sync`](../../" +"concurrency/send-sync.md) vor controla ceea ce putem partaja între ele, la fel " +"ca în cazul firelor de execuție. De exemplu, dacă dorim să partajăm o anumită " +"valoare între gestionarii de excepții și restul programului, iar aceasta este " +"`Send`, dar nu `Sync`, atunci va trebui să o înfășurăm în ceva de genul `Mutex` " +"și să o punem într-o statică." #: src/bare-metal/aps/other-projects.md #, fuzzy @@ -22579,7 +21305,6 @@ msgid "[oreboot](https://github.com/oreboot/oreboot)" msgstr "[oreboot](https://github.com/oreboot/oreboot)" #: src/bare-metal/aps/other-projects.md -#, fuzzy msgid "\"coreboot without the C\"" msgstr "\"coreboot fără C\"" @@ -22617,11 +21342,10 @@ msgid "" "Some dodginess around cache maintenance and initialisation in Rust, not " "necessarily a good example to copy for production code." msgstr "" -"Unele dificultăți în ceea ce privește întreținerea și inițializarea cache-" -"ului în Rust, nu neapărat un exemplu bun de copiat pentru codul de producție." +"Unele dificultăți în ceea ce privește întreținerea și inițializarea cache-ului " +"în Rust, nu neapărat un exemplu bun de copiat pentru codul de producție." #: src/bare-metal/aps/other-projects.md -#, fuzzy msgid "[`cargo-call-stack`](https://crates.io/crates/cargo-call-stack)" msgstr "[`cargo-call-stack`](https://crates.io/crates/cargo-call-stack)" @@ -22636,9 +21360,9 @@ msgid "" "The RaspberryPi OS tutorial runs Rust code before the MMU and caches are " "enabled. This will read and write memory (e.g. the stack). However:" msgstr "" -"Tutorialul RaspberryPi OS rulează codul Rust înainte ca MMU și memoria cache " -"să fie activate. Aceasta va citi și va scrie în memorie (de exemplu, stiva). " -"Cu toate acestea:" +"Tutorialul RaspberryPi OS rulează codul Rust înainte ca MMU și memoria cache să " +"fie activate. Aceasta va citi și va scrie în memorie (de exemplu, stiva). Cu " +"toate acestea:" #: src/bare-metal/aps/other-projects.md #, fuzzy @@ -22648,8 +21372,8 @@ msgid "" "generating unaligned accesses so it should be alright, but this is not " "necessarily the case in general." msgstr "" -"Fără MMU și memoria cache, accesările nealiniate vor eșua. Se construiește " -"cu `aarch64-unknown-none`, care setează `+strict-align` pentru a împiedica " +"Fără MMU și memoria cache, accesările nealiniate vor eșua. Se construiește cu " +"`aarch64-unknown-none`, care setează `+strict-align` pentru a împiedica " "compilatorul să genereze accese nealiniate, deci ar trebui să fie în regulă, " "dar acest lucru nu este neapărat valabil în general." @@ -22664,8 +21388,8 @@ msgid "" "alright in this particular case (running directly on the hardware with no " "hypervisor), but isn't a good pattern in general." msgstr "" -"Dacă ar fi rulat într-o mașină virtuală, acest lucru poate duce la probleme " -"de coerență a memoriei cache. Problema constă în faptul că mașina virtuală " +"Dacă ar fi rulat într-o mașină virtuală, acest lucru poate duce la probleme de " +"coerență a memoriei cache. Problema constă în faptul că mașina virtuală " "accesează memoria direct, cu memoria cache dezactivată, în timp ce gazda are " "alias-uri care pot fi stocate în memoria cache pentru aceeași memorie. Chiar " "dacă gazda nu accesează în mod explicit memoria, accesările speculative pot " @@ -22691,19 +21415,18 @@ msgstr "" #, fuzzy msgid "" "The [`zerocopy`](https://docs.rs/zerocopy/) crate (from Fuchsia) provides " -"traits and macros for safely converting between byte sequences and other " -"types." +"traits and macros for safely converting between byte sequences and other types." msgstr "" -"Crăiasa [`zerocopy`](https://docs.rs/zerocopy/) (din Fuchsia) oferă " -"trăsături și macro-uri pentru conversia în siguranță între secvențe de " -"octeți și alte tipuri." +"Crate-ul [`zerocopy`](https://docs.rs/zerocopy/) (din Fuchsia) oferă trăsături " +"și macro-uri pentru conversia în siguranță între secvențe de octeți și alte " +"tipuri." #: src/bare-metal/useful-crates/zerocopy.md #, fuzzy msgid "" "This is not suitable for MMIO (as it doesn't use volatile reads and writes), " -"but can be useful for working with structures shared with hardware e.g. by " -"DMA, or sent over some external interface." +"but can be useful for working with structures shared with hardware e.g. by DMA, " +"or sent over some external interface." msgstr "" "Acest lucru nu este potrivit pentru MMIO (deoarece nu utilizează citiri și " "scrieri volatile), dar poate fi util pentru lucrul cu structuri partajate cu " @@ -22713,8 +21436,8 @@ msgstr "" #: src/bare-metal/useful-crates/zerocopy.md #, fuzzy msgid "" -"`FromBytes` can be implemented for types for which any byte pattern is " -"valid, and so can safely be converted from an untrusted sequence of bytes." +"`FromBytes` can be implemented for types for which any byte pattern is valid, " +"and so can safely be converted from an untrusted sequence of bytes." msgstr "" "`FromBytes` poate fi implementat pentru tipurile pentru care orice model de " "octeți este valabil și, prin urmare, poate fi convertit în siguranță dintr-o " @@ -22724,8 +21447,8 @@ msgstr "" #, fuzzy msgid "" "Attempting to derive `FromBytes` for these types would fail, because " -"`RequestType` doesn't use all possible u32 values as discriminants, so not " -"all byte patterns are valid." +"`RequestType` doesn't use all possible u32 values as discriminants, so not all " +"byte patterns are valid." msgstr "" "Încercarea de a deriva `FromBytes` pentru aceste tipuri ar eșua, deoarece " "`RequestType` nu utilizează toate valorile u32 posibile ca discriminanți, " @@ -22733,32 +21456,28 @@ msgstr "" #: src/bare-metal/useful-crates/zerocopy.md #, fuzzy -msgid "" -"`zerocopy::byteorder` has types for byte-order aware numeric primitives." +msgid "`zerocopy::byteorder` has types for byte-order aware numeric primitives." msgstr "" -"`zerocopy::byteorder` are tipuri pentru primitive numerice care cunosc " -"ordinea octeților." +"`zerocopy::byteorder` are tipuri pentru primitive numerice care cunosc ordinea " +"octeților." #: src/bare-metal/useful-crates/zerocopy.md #, fuzzy msgid "" -"Run the example with `cargo run` under `src/bare-metal/useful-crates/" -"zerocopy-example/`. (It won't run in the Playground because of the crate " -"dependency.)" +"Run the example with `cargo run` under `src/bare-metal/useful-crates/zerocopy-" +"example/`. (It won't run in the Playground because of the crate dependency.)" msgstr "" "Rulați exemplul cu `cargo run` în `src/bare-metal/useful-crates/zerocopy-" "example/`. (Nu va rula în Playground din cauza dependenței de crate)" #: src/bare-metal/useful-crates/aarch64-paging.md -#, fuzzy msgid "" -"The [`aarch64-paging`](https://crates.io/crates/aarch64-paging) crate lets " -"you create page tables according to the AArch64 Virtual Memory System " -"Architecture." +"The [`aarch64-paging`](https://crates.io/crates/aarch64-paging) crate lets you " +"create page tables according to the AArch64 Virtual Memory System Architecture." msgstr "" -"Crăiasa [`aarch64-paging`](https://crates.io/crates/aarch64-paging) vă " -"permite să creați tabele de pagini în conformitate cu arhitectura sistemului " -"de memorie virtuală AArch64." +"Crate-ul [`aarch64-paging`](https://crates.io/crates/aarch64-paging) vă permite " +"să creați tabele de pagini în conformitate cu arhitectura sistemului de memorie " +"virtuală AArch64." #: src/bare-metal/useful-crates/aarch64-paging.md #, fuzzy @@ -22779,8 +21498,8 @@ msgstr "// Setați `TTBR0_EL1` pentru a activa tabelul de pagini.\n" #: src/bare-metal/useful-crates/aarch64-paging.md #, fuzzy msgid "" -"For now it only supports EL1, but support for other exception levels should " -"be straightforward to add." +"For now it only supports EL1, but support for other exception levels should be " +"straightforward to add." msgstr "" "Deocamdată, acceptă doar EL1, dar ar trebui să fie ușor de adăugat suportul " "pentru alte niveluri de excepție." @@ -22788,9 +21507,8 @@ msgstr "" #: src/bare-metal/useful-crates/aarch64-paging.md #, fuzzy msgid "" -"This is used in Android for the [Protected VM Firmware](https://cs.android." -"com/android/platform/superproject/+/master:packages/modules/Virtualization/" -"pvmfw/)." +"This is used in Android for the [Protected VM Firmware](https://cs.android.com/" +"android/platform/superproject/+/master:packages/modules/Virtualization/pvmfw/)." msgstr "" "Aceasta este utilizată în Android pentru [Protected VM Firmware] (https://cs." "android.com/android/platform/superproject/+/master:packages/modules/" @@ -22799,31 +21517,30 @@ msgstr "" #: src/bare-metal/useful-crates/aarch64-paging.md #, fuzzy msgid "" -"There's no easy way to run this example, as it needs to run on real hardware " -"or under QEMU." +"There's no easy way to run this example, as it needs to run on real hardware or " +"under QEMU." msgstr "" "Nu există o modalitate ușoară de a rula acest exemplu, deoarece trebuie să " "ruleze pe hardware real sau în QEMU." #: src/bare-metal/useful-crates/buddy_system_allocator.md -#, fuzzy msgid "" -"[`buddy_system_allocator`](https://crates.io/crates/buddy_system_allocator) " -"is a third-party crate implementing a basic buddy system allocator. It can " -"be used both for [`LockedHeap`](https://docs.rs/buddy_system_allocator/0.9.0/" +"[`buddy_system_allocator`](https://crates.io/crates/buddy_system_allocator) is " +"a third-party crate implementing a basic buddy system allocator. It can be used " +"both for [`LockedHeap`](https://docs.rs/buddy_system_allocator/0.9.0/" "buddy_system_allocator/struct.LockedHeap.html) implementing [`GlobalAlloc`]" "(https://doc.rust-lang.org/core/alloc/trait.GlobalAlloc.html) so you can use " -"the standard `alloc` crate (as we saw [before](../alloc.md)), or for " -"allocating other address space. For example, we might want to allocate MMIO " -"space for PCI BARs:" +"the standard `alloc` crate (as we saw [before](../alloc.md)), or for allocating " +"other address space. For example, we might want to allocate MMIO space for PCI " +"BARs:" msgstr "" "[`buddy_system_allocator`](https://crates.io/crates/buddy_system_allocator) " -"este o crăiasă terță parte care implementează un alocator de bază pentru " -"sistemul de prieteni. Acesta poate fi utilizat atât pentru [`LockedHeap`]" +"este un crate de terță parte care implementează un alocator de bază bazat pe " +"'sistemul de prietenii'. Acesta poate fi utilizat atât pentru [`LockedHeap`]" "(https://docs.rs/buddy_system_allocator/0.9.0/buddy_system_allocator/struct." -"LockedHeap.html) care implementează [`GlobalAlloc`](https://doc.rust-lang." -"org/core/alloc/trait.GlobalAlloc.html), astfel încât să puteți utiliza crate-" -"ul standard `alloc` (așa cum am văzut [înainte](../alloc.md)), cât și pentru " +"LockedHeap.html) care implementează [`GlobalAlloc`](https://doc.rust-lang.org/" +"core/alloc/trait.GlobalAlloc.html), astfel încât să puteți utiliza crate-ul " +"standard `alloc` (așa cum am văzut [înainte](../alloc.md)), cât și pentru " "alocarea altor spații de adrese. De exemplu, am putea dori să alocăm spațiu " "MMIO pentru BAR-uri PCI:" @@ -22835,9 +21552,8 @@ msgstr "BAR-urile PCI au întotdeauna o aliniere egală cu dimensiunea lor." #: src/bare-metal/useful-crates/buddy_system_allocator.md #, fuzzy msgid "" -"Run the example with `cargo run` under `src/bare-metal/useful-crates/" -"allocator-example/`. (It won't run in the Playground because of the crate " -"dependency.)" +"Run the example with `cargo run` under `src/bare-metal/useful-crates/allocator-" +"example/`. (It won't run in the Playground because of the crate dependency.)" msgstr "" "Rulați exemplul cu `cargo run` în `src/bare-metal/useful-crates/allocator-" "example/`. (Nu va rula în Playground din cauza dependenței de crate)" @@ -22846,22 +21562,21 @@ msgstr "" #, fuzzy msgid "" "Sometimes you want something which can be resized like a `Vec`, but without " -"heap allocation. [`tinyvec`](https://crates.io/crates/tinyvec) provides " -"this: a vector backed by an array or slice, which could be statically " -"allocated or on the stack, which keeps track of how many elements are used " -"and panics if you try to use more than are allocated." +"heap allocation. [`tinyvec`](https://crates.io/crates/tinyvec) provides this: a " +"vector backed by an array or slice, which could be statically allocated or on " +"the stack, which keeps track of how many elements are used and panics if you " +"try to use more than are allocated." msgstr "" -"Uneori doriți ceva care poate fi redimensionat ca un `Vec`, dar fără alocare " -"de heap. [`tinyvec`](https://crates.io/crates/tinyvec) oferă acest lucru: un " -"vector susținut de o matrice sau de o felie, care poate fi alocat static sau " -"pe stivă, care ține evidența numărului de elemente utilizate și intră în " -"panică dacă încercați să utilizați mai multe decât sunt alocate." +"Uneori doriți ceva care poate fi redimensionat ca un `Vec`, dar fără alocare de " +"heap. [`tinyvec`](https://crates.io/crates/tinyvec) oferă acest lucru: un " +"vector susținut de o matrice sau de o felie, care poate fi alocat static sau pe " +"stivă, care ține evidența numărului de elemente utilizate și intră în panică " +"dacă încercați să utilizați mai multe decât sunt alocate." #: src/bare-metal/useful-crates/tinyvec.md #, fuzzy msgid "" -"`tinyvec` requires that the element type implement `Default` for " -"initialisation." +"`tinyvec` requires that the element type implement `Default` for initialisation." msgstr "" "`tinyvec` necesită ca tipul de element să implementeze `Default` pentru " "inițializare." @@ -22891,7 +21606,7 @@ msgid "" "The [`spin`](https://crates.io/crates/spin) crate provides spinlock-based " "equivalents of many of these primitives." msgstr "" -"Crăiasa [`spin`](https://crates.io/crates/spin) oferă echivalente bazate pe " +"Crate-ul [`spin`](https://crates.io/crates/spin) oferă echivalente bazate pe " "spinlock pentru multe dintre aceste primitive." #: src/bare-metal/useful-crates/spin.md @@ -22918,31 +21633,29 @@ msgid "" "useful types for late initialisation with a slightly different approach to " "`spin::once::Once`." msgstr "" -"Crăiasa [`once_cell`](https://crates.io/crates/once_cell) are, de asemenea, " -"câteva tipuri utile pentru inițializarea târzie cu o abordare ușor diferită " -"de `spin::once::Once`." +"Crate-ul [`once_cell`](https://crates.io/crates/once_cell) are, de asemenea, " +"câteva tipuri utile pentru inițializarea târzie cu o abordare ușor diferită de " +"`spin::once::Once`." #: src/bare-metal/useful-crates/spin.md #, fuzzy -msgid "" -"The Rust Playground includes `spin`, so this example will run fine inline." +msgid "The Rust Playground includes `spin`, so this example will run fine inline." msgstr "" -"Rust Playground include `spin`, astfel că acest exemplu va rula fără " -"probleme în linie." +"Rust Playground include `spin`, astfel că acest exemplu va rula fără probleme " +"în linie." #: src/bare-metal/android.md #, fuzzy msgid "" -"To build a bare-metal Rust binary in AOSP, you need to use a " -"`rust_ffi_static` Soong rule to build your Rust code, then a `cc_binary` " -"with a linker script to produce the binary itself, and then a `raw_binary` " -"to convert the ELF to a raw binary ready to be run." +"To build a bare-metal Rust binary in AOSP, you need to use a `rust_ffi_static` " +"Soong rule to build your Rust code, then a `cc_binary` with a linker script to " +"produce the binary itself, and then a `raw_binary` to convert the ELF to a raw " +"binary ready to be run." msgstr "" -"Pentru a construi un binar Rust de tip bare-metal în AOSP, trebuie să " -"utilizați o regulă Soong `rust_ffi_static` pentru a construi codul Rust, " -"apoi un `cc_binary` cu un script linker pentru a produce binarul propriu-zis " -"și apoi un `raw_binary` pentru a converti ELF-ul într-un binar brut gata de " -"a fi rulat." +"Pentru a construi un binar Rust de tip bare-metal în AOSP, trebuie să utilizați " +"o regulă Soong `rust_ffi_static` pentru a construi codul Rust, apoi un " +"`cc_binary` cu un script linker pentru a produce binarul propriu-zis și apoi un " +"`raw_binary` pentru a converti ELF-ul într-un binar brut gata de a fi rulat." #: src/bare-metal/android/vmbase.md msgid "vmbase" @@ -22952,15 +21665,15 @@ msgstr "vmbase" #, fuzzy msgid "" "For VMs running under crosvm on aarch64, the [vmbase](https://android." -"googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/" -"master/vmbase/) library provides a linker script and useful defaults for the " +"googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main/" +"libs/libvmbase/) library provides a linker script and useful defaults for the " "build rules, along with an entry point, UART console logging and more." msgstr "" -"Pentru mașinile virtuale care rulează sub crosvm pe aarch64, biblioteca " -"[vmbase](https://android.googlesource.com/platform/packages/modules/" -"Virtualization/+/refs/heads/master/vmbase/) oferă un script de linker și " -"valori implicite utile pentru regulile de compilare, împreună cu un punct de " -"intrare, logare a consolei UART și multe altele." +"Pentru mașinile virtuale care rulează sub crosvm pe aarch64, biblioteca [vmbase]" +"(https://android.googlesource.com/platform/packages/modules/Virtualization/+/" +"refs/heads/master/vmbase/) oferă un script de linker și valori implicite utile " +"pentru regulile de compilare, împreună cu un punct de intrare, logare a " +"consolei UART și multe altele." #: src/bare-metal/android/vmbase.md #, fuzzy @@ -22968,8 +21681,8 @@ msgid "" "The `main!` macro marks your main function, to be called from the `vmbase` " "entry point." msgstr "" -"Macroul `main!` marchează funcția principală, care va fi apelată din punctul " -"de intrare `vmbase`." +"Macroul `main!` marchează funcția principală, care va fi apelată din punctul de " +"intrare `vmbase`." #: src/bare-metal/android/vmbase.md #, fuzzy @@ -22993,8 +21706,7 @@ msgstr "" "După ce ați studiat exercițiile, puteți consulta [soluțiile](solutions-" "afternoon.md) furnizate." -#: src/exercises/bare-metal/rtc.md -#: src/exercises/bare-metal/solutions-afternoon.md +#: src/exercises/bare-metal/rtc.md src/exercises/bare-metal/solutions-afternoon.md #, fuzzy msgid "RTC driver" msgstr "Conductor RTC" @@ -23003,12 +21715,12 @@ msgstr "Conductor RTC" #, fuzzy msgid "" "The QEMU aarch64 virt machine has a [PL031](https://developer.arm.com/" -"documentation/ddi0224/c) real-time clock at 0x9010000. For this exercise, " -"you should write a driver for it." +"documentation/ddi0224/c) real-time clock at 0x9010000. For this exercise, you " +"should write a driver for it." msgstr "" -"Mașina virtuală QEMU aarch64 are un ceas în timp real [PL031](https://" -"developer.arm.com/documentation/ddi0224/c) la 0x9010000. Pentru acest " -"exercițiu, trebuie să scrieți un driver pentru acesta." +"Mașina virtuală QEMU aarch64 are un ceas în timp real [PL031](https://developer." +"arm.com/documentation/ddi0224/c) la 0x9010000. Pentru acest exercițiu, trebuie " +"să scrieți un driver pentru acesta." #: src/exercises/bare-metal/rtc.md #, fuzzy @@ -23024,8 +21736,8 @@ msgstr "" #, fuzzy msgid "" "Use the match register and raw interrupt status to busy-wait until a given " -"time, e.g. 3 seconds in the future. (Call [`core::hint::spin_loop`](https://" -"doc.rust-lang.org/core/hint/fn.spin_loop.html) inside the loop.)" +"time, e.g. 3 seconds in the future. (Call [`core::hint::spin_loop`](https://doc." +"rust-lang.org/core/hint/fn.spin_loop.html) inside the loop.)" msgstr "" "Utilizați registrul de potrivire și starea brută a întreruperii pentru a " "aștepta ocupat până la un anumit moment, de exemplu, 3 secunde în viitor. " @@ -23035,12 +21747,12 @@ msgstr "" #: src/exercises/bare-metal/rtc.md #, fuzzy msgid "" -"_Extension if you have time:_ Enable and handle the interrupt generated by " -"the RTC match. You can use the driver provided in the [`arm-gic`](https://" -"docs.rs/arm-gic/) crate to configure the Arm Generic Interrupt Controller." +"_Extension if you have time:_ Enable and handle the interrupt generated by the " +"RTC match. You can use the driver provided in the [`arm-gic`](https://docs.rs/" +"arm-gic/) crate to configure the Arm Generic Interrupt Controller." msgstr "" "extindere dacă aveți timp:_ Activați și gestionați întreruperea generată de " -"meciul RTC. Puteți utiliza driverul furnizat în crăiasa [`arm-gic`](https://" +"meciul RTC. Puteți utiliza driverul furnizat în crate-ul [`arm-gic`](https://" "docs.rs/arm-gic/) pentru a configura controlerul generic de întreruperi Arm " "Generic Interrupt Controller." @@ -23056,9 +21768,9 @@ msgid "" "Once the interrupt is enabled, you can put the core to sleep via `arm_gic::" "wfi()`, which will cause the core to sleep until it receives an interrupt." msgstr "" -"Odată ce întreruperea este activată, puteți pune nucleul în stare de veghe " -"prin intermediul `arm_gic::wfi()`, ceea ce va face ca nucleul să doarmă până " -"când va primi o întrerupere." +"Odată ce întreruperea este activată, puteți pune nucleul în stare de veghe prin " +"intermediul `arm_gic::wfi()`, ceea ce va face ca nucleul să doarmă până când va " +"primi o întrerupere." #: src/exercises/bare-metal/rtc.md #, fuzzy @@ -23066,8 +21778,8 @@ msgid "" "Download the [exercise template](../../comprehensive-rust-exercises.zip) and " "look in the `rtc` directory for the following files." msgstr "" -"Descărcați [șablonul de exerciții] (../../comprehensive-rust-exercises.zip) " -"și căutați în directorul `rtc` următoarele fișiere." +"Descărcați [șablonul de exerciții] (../../comprehensive-rust-exercises.zip) și " +"căutați în directorul `rtc` următoarele fișiere." #: src/exercises/bare-metal/rtc.md #, fuzzy @@ -23081,8 +21793,7 @@ msgstr "" #: src/exercises/bare-metal/rtc.md #, fuzzy msgid "_src/logger.rs_ (you shouldn't need to change this):" -msgstr "" -"_src/logger.rs_ (nu ar trebui să fie nevoie să modificați acest lucru):" +msgstr "_src/logger.rs_ (nu ar trebui să fie nevoie să modificați acest lucru):" #: src/exercises/bare-metal/rtc.md #, fuzzy @@ -23129,9 +21840,8 @@ msgid "Bare Metal Rust Afternoon" msgstr "Rust bare metal După-amiază" #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "([back to exercise](rtc.md))" -msgstr "([back to exercise](rtc.md))" +msgstr "([înapoi la exercițiu](rtc.md))" #: src/exercises/bare-metal/solutions-afternoon.md #, fuzzy @@ -23154,7 +21864,6 @@ msgid "/// The IRQ used by the PL031 RTC.\n" msgstr "/// IRQ-ul utilizat de PL031 RTC.\n" #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"main({:#x}, {:#x}, {:#x}, {:#x})\"" msgstr "\"main({:#x}, {:#x}, {:#x}, {:#x})\"" @@ -23175,12 +21884,11 @@ msgid "" "// SAFETY: `PL031_BASE_ADDRESS` is the base address of a PL031 device, and\n" " // nothing else accesses that address range.\n" msgstr "" -"// Sigur, deoarece `PL031_BASE_ADDRESS` este adresa de bază a unui " -"dispozitiv PL031,\n" +"// Sigur, deoarece `PL031_BASE_ADDRESS` este adresa de bază a unui dispozitiv " +"PL031,\n" " // și nimic altceva nu accesează acest interval de adrese.\n" #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"RTC: {time}\"" msgstr "\"RTC: {time}\"" @@ -23190,17 +21898,14 @@ msgid "// Wait for 3 seconds, without interrupts.\n" msgstr "// Așteptați timp de 3 secunde, fără întreruperi.\n" #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"Waiting for {}\"" -msgstr "\"În așteptare pentru {}\"" +msgstr "\"Aștepând pe {}\"" #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"matched={}, interrupt_pending={}\"" msgstr "\"matched={}, interrupt_pending={}\"" #: src/exercises/bare-metal/solutions-afternoon.md -#, fuzzy msgid "\"Finished waiting\"" msgstr "\"Am terminat de așteptat\"" @@ -23267,14 +21972,13 @@ msgid "" " ///\n" " /// # Safety\n" " ///\n" -" /// The given base address must point to the MMIO control registers of " -"a\n" +" /// The given base address must point to the MMIO control registers of a\n" " /// PL031 device, which must be mapped into the address space of the " "process\n" " /// as device memory and not have any other aliases.\n" msgstr "" -"/// Construiește o nouă instanță a driverului RTC pentru un dispozitiv PL031 " -"la nivelul\n" +"/// Construiește o nouă instanță a driverului RTC pentru un dispozitiv PL031 la " +"nivelul\n" " /// adresa de bază dată.\n" " ///\n" " /// # Siguranță\n" @@ -23313,8 +22017,7 @@ msgstr "" #: src/exercises/bare-metal/solutions-afternoon.md #, fuzzy msgid "" -"/// Returns whether the match register matches the RTC value, whether or " -"not\n" +"/// Returns whether the match register matches the RTC value, whether or not\n" " /// the interrupt is enabled.\n" msgstr "" "/// Întoarce dacă registrul de potrivire se potrivește cu valoarea RTC, dacă " @@ -23340,14 +22043,13 @@ msgstr "" msgid "" "/// Sets or clears the interrupt mask.\n" " ///\n" -" /// When the mask is true the interrupt is enabled; when it is false " -"the\n" +" /// When the mask is true the interrupt is enabled; when it is false the\n" " /// interrupt is disabled.\n" msgstr "" "/// Setează sau șterge masca de întrerupere.\n" " ///\n" -" /// Când masca este adevărată, întreruperea este activată; când este " -"falsă, întreruperea este activată\n" +" /// Când masca este adevărată, întreruperea este activată; când este falsă, " +"întreruperea este activată\n" " /// întreruperea este dezactivată.\n" #: src/exercises/bare-metal/solutions-afternoon.md @@ -23361,8 +22063,8 @@ msgid "" "// SAFETY: `Rtc` just contains a pointer to device memory, which can be\n" "// accessed from any context.\n" msgstr "" -"// Sigur, deoarece conține doar un pointer către memoria dispozitivului, " -"care poate fi\n" +"// Sigur, deoarece conține doar un pointer către memoria dispozitivului, care " +"poate fi\n" "// accesată din orice context.\n" #: src/concurrency/welcome.md @@ -23386,10 +22088,10 @@ msgid "" "compile time bugs. This is often referred to as _fearless concurrency_ since " "you can rely on the compiler to ensure correctness at runtime." msgstr "" -"Sistemul de tipuri Rust joacă un rol important în transformarea multor erori " -"de concurență în erori de timp de compilare. Acest lucru este deseori " -"denumit _concurență fără frică_, deoarece vă puteți baza pe compilator " -"pentru a asigura corectitudinea la momentul execuției." +"Sistemul de tipuri Rust joacă un rol important în transformarea multor erori de " +"concurență în erori de timp de compilare. Acest lucru este deseori denumit " +"_concurență fără frică_, deoarece vă puteți baza pe compilator pentru a asigura " +"corectitudinea la momentul execuției." #: src/concurrency/welcome.md #, fuzzy @@ -23397,9 +22099,8 @@ msgid "[Threads](./concurrency/threads.md) (30 minutes)" msgstr "[Referințe partajate](./references/shared.md) (10 minute)" #: src/concurrency/welcome.md -#, fuzzy msgid "[Channels](./concurrency/channels.md) (20 minutes)" -msgstr "[Referințe partajate](./references/shared.md) (10 minute)" +msgstr "[Canale](./concurrency/channels.md) (20 minute)" #: src/concurrency/welcome.md #, fuzzy @@ -23417,12 +22118,11 @@ msgid "[Exercises](./concurrency/sync-exercises.md) (1 hour and 10 minutes)" msgstr "[Exercițiu: Geometrie](./references/exercise.md) (30 minute)" #: src/concurrency/welcome.md src/concurrency/welcome-async.md -#, fuzzy msgid "" "Including 10 minute breaks, this session should take about 3 hours and 20 " "minutes" msgstr "" -"Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " +"Împreună cu pauzele de 10 minute, această sesiune ar trebui să dureze " "aproximativ 2 ore și 20 de minute" #: src/concurrency/welcome.md @@ -23430,26 +22130,26 @@ msgstr "" msgid "" "Rust lets us access OS concurrency toolkit: threads, sync. primitives, etc." msgstr "" -"Rust ne permite să accesăm setul de instrumente de simultaneitate al " -"sistemului de operare: fire, primitive de sincronizare, etc." +"Rust ne permite să accesăm setul de instrumente de simultaneitate al sistemului " +"de operare: fire, primitive de sincronizare, etc." #: src/concurrency/welcome.md #, fuzzy msgid "" "The type system gives us safety for concurrency without any special features." msgstr "" -"Sistemul de tipuri ne oferă siguranță pentru simultaneitate fără " -"caracteristici speciale." +"Sistemul de tipuri ne oferă siguranță pentru simultaneitate fără caracteristici " +"speciale." #: src/concurrency/welcome.md #, fuzzy msgid "" -"The same tools that help with \"concurrent\" access in a single thread (e." -"g., a called function that might mutate an argument or save references to it " -"to read later) save us from multi-threading issues." +"The same tools that help with \"concurrent\" access in a single thread (e.g., a " +"called function that might mutate an argument or save references to it to read " +"later) save us from multi-threading issues." msgstr "" -"Aceleași instrumente care ajută la accesul \"concurent\" într-un singur fir " -"(de exemplu, o funcție apelată care ar putea modifica un argument sau salva " +"Aceleași instrumente care ajută la accesul \"concurent\" într-un singur fir (de " +"exemplu, o funcție apelată care ar putea modifica un argument sau salva " "referințe la acesta pentru a fi citite mai târziu) ne salvează de problemele " "legate de mai multe fire de execuție." @@ -23477,19 +22177,21 @@ msgstr "" "limbaje:" #: src/concurrency/threads/plain.md -#, fuzzy msgid "\"Count in thread: {i}!\"" -msgstr "\"Numărătoarea în fir: {i}!\"" +msgstr "\"Numărătoarea în firul de execuție: {i}!\"" #: src/concurrency/threads/plain.md -#, fuzzy msgid "\"Main thread: {i}\"" msgstr "\"Firul principal: {i}\"" #: src/concurrency/threads/plain.md #, fuzzy -msgid "Threads are all daemon threads, the main thread does not wait for them." -msgstr "Firele sunt toate fire de tip daemon, firul principal nu le așteaptă." +msgid "" +"Spawning new threads does not automatically delay program termination at the " +"end of `main`." +msgstr "" +"Crearea de noi fire nu întârzie automat terminarea programului la sfârșitul lui " +"`main`." #: src/concurrency/threads/plain.md #, fuzzy @@ -23520,8 +22222,8 @@ msgid "" "5ms timing is loose enough that main and spawned threads stay mostly in " "lockstep." msgstr "" -"o sincronizare de 5ms este suficient de liberă pentru ca firele principale " -"și cele generate să rămână în mare parte în același timp." +"o sincronizare de 5ms este suficient de liberă pentru ca firele principale și " +"cele generate să rămână în mare parte în același timp." #: src/concurrency/threads/plain.md #, fuzzy @@ -23542,8 +22244,7 @@ msgstr "" #, fuzzy msgid "Compare to pthreads/C++ std::thread/boost::thread if desired." msgstr "" -"Comparați cu pthreads/C++ std::thread/boost::thread dacă se dorește acest " -"lucru." +"Comparați cu pthreads/C++ std::thread/boost::thread dacă se dorește acest lucru." #: src/concurrency/threads/plain.md #, fuzzy @@ -23551,13 +22252,12 @@ msgid "How do we wait around for the spawned thread to complete?" msgstr "Cum putem aștepta ca firul generat să se finalizeze?" #: src/concurrency/threads/plain.md -#, fuzzy msgid "" -"[`thread::spawn`](https://doc.rust-lang.org/std/thread/fn.spawn.html) " -"returns a `JoinHandle`. Look at the docs." +"[`thread::spawn`](https://doc.rust-lang.org/std/thread/fn.spawn.html) returns a " +"`JoinHandle`. Look at the docs." msgstr "" -"[`Default`](https://doc.rust-lang.org/std/default/trait.Default.html) " -"utilizat pentru a construi o instanță implicită a unui tip." +"[`thread::spawn`](https://doc.rust-lang.org/std/thread/fn.spawn.html) întoarce " +"`JoinHandle`. Consultați documentația." #: src/concurrency/threads/plain.md #, fuzzy @@ -23571,8 +22271,8 @@ msgstr "" #: src/concurrency/threads/plain.md #, fuzzy msgid "" -"Use `let handle = thread::spawn(...)` and later `handle.join()` to wait for " -"the thread to finish and have the program count all the way to 10." +"Use `let handle = thread::spawn(...)` and later `handle.join()` to wait for the " +"thread to finish and have the program count all the way to 10." msgstr "" "Utilizați `let handle = thread::spawn(...)` și mai târziu `handle.join()` " "pentru a aștepta ca firul să se termine." @@ -23588,22 +22288,21 @@ msgid "Look at docs again:" msgstr "Uită-te din nou la documente:" #: src/concurrency/threads/plain.md -#, fuzzy msgid "" -"[`thread::spawn`](https://doc.rust-lang.org/std/thread/fn.spawn.html)'s " -"closure returns `T`" +"[`thread::spawn`](https://doc.rust-lang.org/std/thread/fn.spawn.html)'s closure " +"returns `T`" msgstr "" -"Cu toate acestea, puteți utiliza un [scoped thread](https://doc.rust-lang." -"org/std/thread/fn.scope.html) pentru acest lucru:" +"[`thread::spawn`](https://doc.rust-lang.org/std/thread/fn.spawn.html) întoarce " +"`T`" #: src/concurrency/threads/plain.md #, fuzzy msgid "" -"`JoinHandle` [`.join()`](https://doc.rust-lang.org/std/thread/struct." -"JoinHandle.html#method.join) returns `thread::Result`" +"`JoinHandle` [`.join()`](https://doc.rust-lang.org/std/thread/struct.JoinHandle." +"html#method.join) returns `thread::Result`" msgstr "" -"`JoinHandle` [`.join()`](https://doc.rust-lang.org/std/thread/struct." -"JoinHandle.html#method.join) returnează `thread::Result`" +"`JoinHandle` [`.join()`](https://doc.rust-lang.org/std/thread/struct.JoinHandle." +"html#method.join) returnează `thread::Result`" #: src/concurrency/threads/plain.md #, fuzzy @@ -23630,8 +22329,8 @@ msgstr "" #: src/concurrency/threads/plain.md #, fuzzy msgid "" -"Access the panic payload. This is a good time to talk about [`Any`](https://" -"doc.rust-lang.org/std/any/index.html)." +"Access the panic payload. This is a good time to talk about [`Any`](https://doc." +"rust-lang.org/std/any/index.html)." msgstr "" "Utilizați valoarea de returnare `Result` din `handle.join()` pentru a obține " "acces la sarcina utilă de panică. Acesta este un moment bun pentru a vorbi " @@ -23657,8 +22356,7 @@ msgstr "Un mesaj de eroare indică faptul că trebuie să o mutăm." #, fuzzy msgid "Move it in, see we can compute and then return a derived value." msgstr "" -"Mutați-l înăuntru, vedeți că putem calcula și apoi returna o valoare " -"derivată." +"Mutați-l înăuntru, vedeți că putem calcula și apoi returna o valoare derivată." #: src/concurrency/threads/plain.md #, fuzzy @@ -23671,8 +22369,8 @@ msgid "" "Main kills child threads when it returns, but another function would just " "return and leave them running." msgstr "" -"Main ucide firele de execuție ale copiilor atunci când se întoarce, dar o " -"altă funcție s-ar întoarce și le-ar lăsa în funcțiune." +"Main ucide firele de execuție ale copiilor atunci când se întoarce, dar o altă " +"funcție s-ar întoarce și le-ar lăsa în funcțiune." #: src/concurrency/threads/plain.md #, fuzzy @@ -23694,11 +22392,11 @@ msgstr "Firele normale nu pot împrumuta din mediul lor:" #: src/concurrency/threads/scoped.md #, fuzzy msgid "" -"However, you can use a [scoped thread](https://doc.rust-lang.org/std/thread/" -"fn.scope.html) for this:" +"However, you can use a [scoped thread](https://doc.rust-lang.org/std/thread/fn." +"scope.html) for this:" msgstr "" -"Cu toate acestea, puteți utiliza un [scoped thread](https://doc.rust-lang." -"org/std/thread/fn.scope.html) pentru acest lucru:" +"Cu toate acestea, puteți utiliza un [scoped thread](https://doc.rust-lang.org/" +"std/thread/fn.scope.html) pentru acest lucru:" #: src/concurrency/threads/scoped.md #, fuzzy @@ -23712,12 +22410,11 @@ msgstr "" #: src/concurrency/threads/scoped.md #, fuzzy msgid "" -"Normal Rust borrowing rules apply: you can either borrow mutably by one " -"thread, or immutably by any number of threads." +"Normal Rust borrowing rules apply: you can either borrow mutably by one thread, " +"or immutably by any number of threads." msgstr "" "Se aplică regulile normale de împrumut Rust: puteți împrumuta fie în mod " -"mutabil de către un singur fir, fie în mod imuabil de către orice număr de " -"fire." +"mutabil de către un singur fir, fie în mod imuabil de către orice număr de fire." #: src/concurrency/channels.md #, fuzzy @@ -23732,9 +22429,8 @@ msgid "[Unbounded Channels](./concurrency/channels/unbounded.md) (2 minutes)" msgstr "[Uniuni](./unsafe-rust/unions.md) (5 minute)" #: src/concurrency/channels.md -#, fuzzy msgid "[Bounded Channels](./concurrency/channels/bounded.md) (10 minutes)" -msgstr "[Limite ale trăsăturilor](./generics/trait-bounds.md) (10 minute)" +msgstr "[Canale cu limită](./concurrency/channels/bounded.md) (10 minute)" #: src/concurrency/channels.md src/concurrency/async-control-flow.md msgid "This segment should take about 20 minutes" @@ -23743,15 +22439,14 @@ msgstr "Acest segment ar trebui să dureze aproximativ 20 de minute" #: src/concurrency/channels/senders-receivers.md #, fuzzy msgid "" -"Rust channels have two parts: a `Sender` and a `Receiver`. The two " -"parts are connected via the channel, but you only see the end-points." +"Rust channels have two parts: a `Sender` and a `Receiver`. The two parts " +"are connected via the channel, but you only see the end-points." msgstr "" "Canalele Rust au două părți: un `Sender` și un `Receiver`. Cele două " -"părți sunt conectate prin intermediul canalului, dar nu se văd decât " -"punctele finale." +"părți sunt conectate prin intermediul canalului, dar nu se văd decât punctele " +"finale." #: src/concurrency/channels/senders-receivers.md -#, fuzzy msgid "\"Received: {:?}\"" msgstr "\"Recepționat: {:?}\"" @@ -23759,12 +22454,11 @@ msgstr "\"Recepționat: {:?}\"" #, fuzzy msgid "" "`mpsc` stands for Multi-Producer, Single-Consumer. `Sender` and `SyncSender` " -"implement `Clone` (so you can make multiple producers) but `Receiver` does " -"not." +"implement `Clone` (so you can make multiple producers) but `Receiver` does not." msgstr "" "`mpsc` înseamnă Multi-Producer, Single-Consumer. `Sender` și `SyncSender` " -"implementează `Clone` (astfel încât să puteți face mai mulți producători), " -"dar `Receiver` nu o face." +"implementează `Clone` (astfel încât să puteți face mai mulți producători), dar " +"`Receiver` nu o face." #: src/concurrency/channels/senders-receivers.md #, fuzzy @@ -23782,57 +22476,51 @@ msgid "You get an unbounded and asynchronous channel with `mpsc::channel()`:" msgstr "Obțineți un canal nemărginit și asincron cu `mpsc::channel()`:" #: src/concurrency/channels/unbounded.md src/concurrency/channels/bounded.md -#, fuzzy msgid "\"Message {i}\"" msgstr "\"Mesaj {i}\"" #: src/concurrency/channels/unbounded.md src/concurrency/channels/bounded.md -#, fuzzy msgid "\"{thread_id:?}: sent Message {i}\"" msgstr "\"{thread_id:?}: mesaj trimis {i}\"" #: src/concurrency/channels/unbounded.md src/concurrency/channels/bounded.md -#, fuzzy msgid "\"{thread_id:?}: done\"" -msgstr "\"{thread_id:?}: terminat\"" +msgstr "\"{thread_id:?}: gata\"" #: src/concurrency/channels/unbounded.md src/concurrency/channels/bounded.md -#, fuzzy msgid "\"Main: got {msg}\"" msgstr "\"Main: got {msg}\"" #: src/concurrency/channels/bounded.md #, fuzzy -msgid "" -"With bounded (synchronous) channels, `send` can block the current thread:" +msgid "With bounded (synchronous) channels, `send` can block the current thread:" msgstr "Cu canale limitate (sincrone), `send` poate bloca firul curent:" #: src/concurrency/channels/bounded.md #, fuzzy msgid "" "Calling `send` will block the current thread until there is space in the " -"channel for the new message. The thread can be blocked indefinitely if there " -"is nobody who reads from the channel." +"channel for the new message. The thread can be blocked indefinitely if there is " +"nobody who reads from the channel." msgstr "" "Apelul la `send` va bloca firul curent până când va exista spațiu în canal " -"pentru noul mesaj. Firul poate fi blocat la nesfârșit dacă nimeni nu citește " -"de pe canal." +"pentru noul mesaj. Firul poate fi blocat la nesfârșit dacă nimeni nu citește de " +"pe canal." #: src/concurrency/channels/bounded.md #, fuzzy msgid "" -"A call to `send` will abort with an error (that is why it returns `Result`) " -"if the channel is closed. A channel is closed when the receiver is dropped." +"A call to `send` will abort with an error (that is why it returns `Result`) if " +"the channel is closed. A channel is closed when the receiver is dropped." msgstr "" "Un apel la `send` va eșua cu o eroare (de aceea returnează `Result`) dacă " -"canalul este închis. Un canal este închis atunci când receptorul este " -"abandonat." +"canalul este închis. Un canal este închis atunci când receptorul este abandonat." #: src/concurrency/channels/bounded.md #, fuzzy msgid "" -"A bounded channel with a size of zero is called a \"rendezvous channel\". " -"Every send will block the current thread until another thread calls `recv`." +"A bounded channel with a size of zero is called a \"rendezvous channel\". Every " +"send will block the current thread until another thread calls `recv`." msgstr "" "Un canal delimitat cu dimensiunea zero se numește \"canal de întâlnire\". " "Fiecare trimitere va bloca firul curent până când un alt fir va apela `read`." @@ -23861,37 +22549,35 @@ msgstr "" #: src/concurrency/send-sync/marker-traits.md #, fuzzy msgid "" -"How does Rust know to forbid shared access across threads? The answer is in " -"two traits:" +"How does Rust know to forbid shared access across threads? The answer is in two " +"traits:" msgstr "" -"Cum știe Rust să interzică accesul partajat între fire de execuție? " -"Răspunsul se află în două trăsături:" +"Cum știe Rust să interzică accesul partajat între fire de execuție? Răspunsul " +"se află în două trăsături:" #: src/concurrency/send-sync/marker-traits.md -#, fuzzy msgid "" -"[`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html): a type `T` " -"is `Send` if it is safe to move a `T` across a thread boundary." +"[`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html): a type `T` is " +"`Send` if it is safe to move a `T` across a thread boundary." msgstr "" -"[`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html): un tip `T` " -"este `Send` dacă este sigur să muți un `T` peste o limită de fir." +"[`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html): un tip `T` este " +"`Send` dacă este sigur să muți un `T` între fire de execuție." #: src/concurrency/send-sync/marker-traits.md -#, fuzzy msgid "" -"[`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html): a type `T` " -"is `Sync` if it is safe to move a `&T` across a thread boundary." +"[`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html): a type `T` is " +"`Sync` if it is safe to move a `&T` across a thread boundary." msgstr "" -"[`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html): un tip `T` " -"este `Sync` dacă este sigur să muți un `&T` peste o limită de fir." +"[`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html): un tip `T` este " +"`Sync` dacă este sigur să muți un `&T` între fire de execuție." #: src/concurrency/send-sync/marker-traits.md #, fuzzy msgid "" -"`Send` and `Sync` are [unsafe traits](../../unsafe-rust/unsafe-traits.md). " -"The compiler will automatically derive them for your types as long as they " -"only contain `Send` and `Sync` types. You can also implement them manually " -"when you know it is valid." +"`Send` and `Sync` are [unsafe traits](../../unsafe-rust/unsafe-traits.md). The " +"compiler will automatically derive them for your types as long as they only " +"contain `Send` and `Sync` types. You can also implement them manually when you " +"know it is valid." msgstr "" "`Send` și `Sync` sunt [trăsături nesigure](../unsafe/unsafe-traits.md). " "Compilatorul le va deriva în mod automat pentru tipurile dvs. atâta timp cât " @@ -23904,8 +22590,8 @@ msgid "" "One can think of these traits as markers that the type has certain thread-" "safety properties." msgstr "" -"Aceste trăsături pot fi considerate ca fiind indicatoare ale faptului că " -"tipul are anumite proprietăți de siguranță a firelor." +"Aceste trăsături pot fi considerate ca fiind indicatoare ale faptului că tipul " +"are anumite proprietăți de siguranță a firelor." #: src/concurrency/send-sync/marker-traits.md #, fuzzy @@ -23917,41 +22603,41 @@ msgstr "" #: src/concurrency/send-sync/send.md #, fuzzy msgid "" -"A type `T` is [`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html) " -"if it is safe to move a `T` value to another thread." +"A type `T` is [`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html) if " +"it is safe to move a `T` value to another thread." msgstr "" -"Un tip `T` este [`Send`](https://doc.rust-lang.org/std/marker/trait.Send." -"html) dacă este sigur să muți o valoare `T` către un alt fir." +"Un tip `T` este [`Send`](https://doc.rust-lang.org/std/marker/trait.Send.html) " +"dacă este sigur să muți o valoare `T` către un alt fir." #: src/concurrency/send-sync/send.md #, fuzzy msgid "" -"The effect of moving ownership to another thread is that _destructors_ will " -"run in that thread. So the question is when you can allocate a value in one " -"thread and deallocate it in another." +"The effect of moving ownership to another thread is that _destructors_ will run " +"in that thread. So the question is when you can allocate a value in one thread " +"and deallocate it in another." msgstr "" -"Efectul mutării proprietății către un alt fir este că _destructori_ vor rula " -"în acel fir. Așadar, întrebarea este când puteți aloca o valoare într-un fir " -"și o puteți dezaloca în alt fir." +"Efectul mutării proprietății către un alt fir este că _destructori_ vor rula în " +"acel fir. Așadar, întrebarea este când puteți aloca o valoare într-un fir și o " +"puteți dezaloca în alt fir." #: src/concurrency/send-sync/send.md #, fuzzy msgid "" -"As an example, a connection to the SQLite library must only be accessed from " -"a single thread." +"As an example, a connection to the SQLite library must only be accessed from a " +"single thread." msgstr "" -"De exemplu, o conexiune la biblioteca SQLite trebuie să fie accesată numai " -"de pe un singur fir de execuție." +"De exemplu, o conexiune la biblioteca SQLite trebuie să fie accesată numai de " +"pe un singur fir de execuție." #: src/concurrency/send-sync/sync.md #, fuzzy msgid "" -"A type `T` is [`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html) " -"if it is safe to access a `T` value from multiple threads at the same time." +"A type `T` is [`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html) if " +"it is safe to access a `T` value from multiple threads at the same time." msgstr "" -"Un tip `T` este [`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync." -"html) dacă este sigur să accesezi o valoare `T` din mai multe fire de " -"execuție în același timp." +"Un tip `T` este [`Sync`](https://doc.rust-lang.org/std/marker/trait.Sync.html) " +"dacă este sigur să accesezi o valoare `T` din mai multe fire de execuție în " +"același timp." #: src/concurrency/send-sync/sync.md #, fuzzy @@ -23970,25 +22656,25 @@ msgid "" "thread-safe for shared use, it is also thread-safe to pass references of it " "across threads." msgstr "" -"Această afirmație este, în esență, un mod prescurtat de a spune că, dacă un " -"tip este sigur pentru utilizarea partajată, este, de asemenea, sigur pentru " -"a trece referințe ale acestuia între fire." +"Această afirmație este, în esență, un mod prescurtat de a spune că, dacă un tip " +"este sigur pentru utilizarea partajată, este, de asemenea, sigur pentru a trece " +"referințe ale acestuia între fire." #: src/concurrency/send-sync/sync.md #, fuzzy msgid "" "This is because if a type is Sync it means that it can be shared across " "multiple threads without the risk of data races or other synchronization " -"issues, so it is safe to move it to another thread. A reference to the type " -"is also safe to move to another thread, because the data it references can " -"be accessed from any thread safely." +"issues, so it is safe to move it to another thread. A reference to the type is " +"also safe to move to another thread, because the data it references can be " +"accessed from any thread safely." msgstr "" -"Acest lucru se datorează faptului că, dacă un tip este Sync, înseamnă că " -"poate fi partajat între mai multe fire de execuție fără riscul de curse de " -"date sau alte probleme de sincronizare, astfel încât este sigur să îl mutați " -"pe un alt fir de execuție. O referință la tip este, de asemenea, sigură " -"pentru a fi mutată în alt fir, deoarece datele la care face referire pot fi " -"accesate în siguranță din orice fir." +"Acest lucru se datorează faptului că, dacă un tip este Sync, înseamnă că poate " +"fi partajat între mai multe fire de execuție fără riscul de curse de date sau " +"alte probleme de sincronizare, astfel încât este sigur să îl mutați pe un alt " +"fir de execuție. O referință la tip este, de asemenea, sigură pentru a fi " +"mutată în alt fir, deoarece datele la care face referire pot fi accesate în " +"siguranță din orice fir." #: src/concurrency/send-sync/examples.md #, fuzzy @@ -24018,8 +22704,7 @@ msgstr "`String`, `Option`, `Vec`, `Box`, ..." #: src/concurrency/send-sync/examples.md #, fuzzy msgid "`Arc`: Explicitly thread-safe via atomic reference count." -msgstr "" -"`Arc`: În mod explicit, thread-safe prin numărul de referințe atomice." +msgstr "`Arc`: În mod explicit, thread-safe prin numărul de referințe atomice." #: src/concurrency/send-sync/examples.md #, fuzzy @@ -24034,8 +22719,7 @@ msgstr "`mpsc::Sender`" #: src/concurrency/send-sync/examples.md #, fuzzy msgid "`AtomicBool`, `AtomicU8`, ...: Uses special atomic instructions." -msgstr "" -"`AtomicBool`, `AtomicU8`, ....: Utilizează instrucțiuni atomice speciale." +msgstr "`AtomicBool`, `AtomicU8`, ....: Utilizează instrucțiuni atomice speciale." #: src/concurrency/send-sync/examples.md #, fuzzy @@ -24057,8 +22741,8 @@ msgid "" "These types can be moved to other threads, but they're not thread-safe. " "Typically because of interior mutability:" msgstr "" -"Aceste tipuri pot fi mutate în alte fire de execuție, dar nu sunt sigure " -"pentru fire de execuție. De obicei, din cauza mutabilității interioare:" +"Aceste tipuri pot fi mutate în alte fire de execuție, dar nu sunt sigure pentru " +"fire de execuție. De obicei, din cauza mutabilității interioare:" #: src/concurrency/send-sync/examples.md #, fuzzy @@ -24083,16 +22767,18 @@ msgstr "`!Send + Sync`" #: src/concurrency/send-sync/examples.md #, fuzzy msgid "" -"These types are thread-safe, but they cannot be moved to another thread:" +"These types are safe to access (via shared references) from multiple threads, " +"but they cannot be moved to another thread:" msgstr "" -"Aceste tipuri sunt sigure pentru firul de execuție, dar nu pot fi mutate în " -"alt fir de execuție:" +"Aceste tipuri sunt sigure pentru firul de execuție, dar nu pot fi mutate în alt " +"fir de execuție:" #: src/concurrency/send-sync/examples.md #, fuzzy msgid "" "`MutexGuard`: Uses OS level primitives which must be deallocated on " -"the thread which created them." +"the thread which created them. However, an already-locked mutex can have its " +"guarded variable read by any thread with which the guard is shared." msgstr "" "`MutexGuard`: Utilizează primitive la nivelul sistemului de operare " "care trebuie să fie dezalocate pe firul care le-a creat." @@ -24128,9 +22814,8 @@ msgstr "" "considerații speciale privind concurența." #: src/concurrency/shared-state.md -#, fuzzy msgid "[Arc](./concurrency/shared-state/arc.md) (5 minutes)" -msgstr "[Rc](./smart-pointers/rc.md) (5 minute)" +msgstr "[Arc](./concurrency/shared-state/arc.md) (5 minute)" #: src/concurrency/shared-state.md #, fuzzy @@ -24143,21 +22828,18 @@ msgid "[Example](./concurrency/shared-state/example.md) (10 minutes)" msgstr "[Nesigur](./unsafe-rust/unsafe.md) (5 minute)" #: src/concurrency/shared-state/arc.md -#, fuzzy msgid "" "[`Arc`](https://doc.rust-lang.org/std/sync/struct.Arc.html) allows shared " "read-only access via `Arc::clone`:" msgstr "" -"[`Arc`](https://doc.rust-lang.org/std/sync/struct.Arc.html) permite " -"accesul partajat numai pentru citire prin intermediul `Arc::clone`:" +"[`Arc`](https://doc.rust-lang.org/std/sync/struct.Arc.html) permite accesul " +"partajat numai pentru citire prin intermediul `Arc::clone`:" #: src/concurrency/shared-state/arc.md -#, fuzzy msgid "\"{thread_id:?}: {v:?}\"" msgstr "\"{thread_id:?}: {v:?}\"" #: src/concurrency/shared-state/arc.md src/concurrency/shared-state/example.md -#, fuzzy msgid "\"v: {v:?}\"" msgstr "\"v: {v:?}\"" @@ -24167,27 +22849,26 @@ msgid "" "`Arc` stands for \"Atomic Reference Counted\", a thread safe version of `Rc` " "that uses atomic operations." msgstr "" -"`Arc` este acronimul de la \"Atomic Reference Counted\", o versiune thread " -"safe a `Rc` care utilizează operații atomice." +"`Arc` este acronimul de la \"Atomic Reference Counted\", o versiune thread safe " +"a `Rc` care utilizează operații atomice." #: src/concurrency/shared-state/arc.md #, fuzzy msgid "" -"`Arc` implements `Clone` whether or not `T` does. It implements `Send` " -"and `Sync` if and only if `T` implements them both." +"`Arc` implements `Clone` whether or not `T` does. It implements `Send` and " +"`Sync` if and only if `T` implements them both." msgstr "" -"`Arc` implementează `Clone` indiferent dacă `T` o face sau nu. " -"Implementează `Send` și `Sync` dacă și numai dacă `T` le implementează pe " -"amândouă." +"`Arc` implementează `Clone` indiferent dacă `T` o face sau nu. Implementează " +"`Send` și `Sync` dacă și numai dacă `T` le implementează pe amândouă." #: src/concurrency/shared-state/arc.md #, fuzzy msgid "" -"`Arc::clone()` has the cost of atomic operations that get executed, but " -"after that the use of the `T` is free." +"`Arc::clone()` has the cost of atomic operations that get executed, but after " +"that the use of the `T` is free." msgstr "" -"`Arc::clone()` are costul operațiunilor atomice care se execută, dar după " -"aceea utilizarea lui `T` este gratuită." +"`Arc::clone()` are costul operațiunilor atomice care se execută, dar după aceea " +"utilizarea lui `T` este gratuită." #: src/concurrency/shared-state/arc.md #, fuzzy @@ -24209,33 +22890,32 @@ msgid "" "[`Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex.html) ensures " "mutual exclusion _and_ allows mutable access to `T` behind a read-only " "interface (another form of [interior mutability](../../borrowing/interior-" -"mutability)):" +"mutability.md)):" msgstr "" "[`Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex.html) asigură " "excluderea reciprocă _și_ permite accesul mutabil la `T` în spatele unei " "interfețe de numai citire:" #: src/concurrency/shared-state/mutex.md -#, fuzzy msgid "\"v: {:?}\"" -msgstr "\"Magnitudinea lui {v:?} după normalizare: {}\"" +msgstr "\"v: {:?}\"" #: src/concurrency/shared-state/mutex.md #, fuzzy msgid "" -"Notice how we have a [`impl Sync for Mutex`](https://doc.rust-" -"lang.org/std/sync/struct.Mutex.html#impl-Sync-for-Mutex%3CT%3E) blanket " +"Notice how we have a [`impl Sync for Mutex`](https://doc.rust-lang." +"org/std/sync/struct.Mutex.html#impl-Sync-for-Mutex%3CT%3E) blanket " "implementation." msgstr "" -"Observați cum avem o implementare de pătură [`impl Sync for " -"Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex.html#impl-Sync-" -"for-Mutex%3CT%3E)." +"Observați cum avem o implementare de pătură [`impl Sync for Mutex`]" +"(https://doc.rust-lang.org/std/sync/struct.Mutex.html#impl-Sync-for-" +"Mutex%3CT%3E)." #: src/concurrency/shared-state/mutex.md #, fuzzy msgid "" -"`Mutex` in Rust looks like a collection with just one element --- the " -"protected data." +"`Mutex` in Rust looks like a collection with just one element --- the protected " +"data." msgstr "" "`Mutex` în Rust arată ca o colecție cu un singur element - datele protejate." @@ -24254,9 +22934,9 @@ msgid "" "You can get an `&mut T` from an `&Mutex` by taking the lock. The " "`MutexGuard` ensures that the `&mut T` doesn't outlive the lock being held." msgstr "" -"Puteți obține un `&mut T` dintr-un `&Mutex` prin luarea unui " -"blocaj. `MutexGuard` se asigură că `&mut T` nu supraviețuiește mai mult " -"decât blocajul deținut." +"Puteți obține un `&mut T` dintr-un `&Mutex` prin luarea unui blocaj. " +"`MutexGuard` se asigură că `&mut T` nu supraviețuiește mai mult decât " +"blocajul deținut." #: src/concurrency/shared-state/mutex.md #, fuzzy @@ -24280,18 +22960,18 @@ msgstr "De ce `lock()` returnează `Result`? " #: src/concurrency/shared-state/mutex.md #, fuzzy msgid "" -"If the thread that held the `Mutex` panicked, the `Mutex` becomes " -"\"poisoned\" to signal that the data it protected might be in an " -"inconsistent state. Calling `lock()` on a poisoned mutex fails with a " -"[`PoisonError`](https://doc.rust-lang.org/std/sync/struct.PoisonError.html). " -"You can call `into_inner()` on the error to recover the data regardless." +"If the thread that held the `Mutex` panicked, the `Mutex` becomes \"poisoned\" " +"to signal that the data it protected might be in an inconsistent state. Calling " +"`lock()` on a poisoned mutex fails with a [`PoisonError`](https://doc.rust-lang." +"org/std/sync/struct.PoisonError.html). You can call `into_inner()` on the error " +"to recover the data regardless." msgstr "" "În cazul în care firul care deținea `Mutex` intră în panică, `Mutex` devine " -"\"otrăvit\" pentru a semnala că datele pe care le protejează ar putea fi " -"într-o stare inconsistentă. Apelul la `lock()` pe un mutex otrăvit eșuează " -"cu un [`PoisonError`](https://doc.rust-lang.org/std/sync/struct.PoisonError." -"html). Puteți apela `into_inner()` la eroare pentru a recupera datele " -"indiferent de situație." +"\"otrăvit\" pentru a semnala că datele pe care le protejează ar putea fi într-o " +"stare inconsistentă. Apelul la `lock()` pe un mutex otrăvit eșuează cu un " +"[`PoisonError`](https://doc.rust-lang.org/std/sync/struct.PoisonError.html). " +"Puteți apela `into_inner()` la eroare pentru a recupera datele indiferent de " +"situație." #: src/concurrency/shared-state/example.md #, fuzzy @@ -24314,11 +22994,10 @@ msgstr "Părți notabile:" #: src/concurrency/shared-state/example.md #, fuzzy msgid "" -"`v` is wrapped in both `Arc` and `Mutex`, because their concerns are " -"orthogonal." +"`v` is wrapped in both `Arc` and `Mutex`, because their concerns are orthogonal." msgstr "" -"`v` este înfășurat atât în `Arc` cât și în `Mutex`, deoarece preocupările " -"lor sunt ortogonale." +"`v` este înfășurat atât în `Arc` cât și în `Mutex`, deoarece preocupările lor " +"sunt ortogonale." #: src/concurrency/shared-state/example.md #, fuzzy @@ -24335,9 +23014,8 @@ msgid "" "`v: Arc<_>` needs to be cloned as `v2` before it can be moved into another " "thread. Note `move` was added to the lambda signature." msgstr "" -"`v: Arc<_>` trebuie să fie clonat ca `v2` înainte de a putea fi mutat într-" -"un alt fir de execuție. Rețineți că `move` a fost adăugat la semnătura " -"lambda." +"`v: Arc<_>` trebuie să fie clonat ca `v2` înainte de a putea fi mutat într-un " +"alt fir de execuție. Rețineți că `move` a fost adăugat la semnătura lambda." #: src/concurrency/shared-state/example.md #, fuzzy @@ -24351,31 +23029,26 @@ msgstr "" #: src/concurrency/sync-exercises.md #, fuzzy msgid "" -"[Dining Philosophers](./concurrency/sync-exercises/dining-philosophers.md) " -"(20 minutes)" +"[Dining Philosophers](./concurrency/sync-exercises/dining-philosophers.md) (20 " +"minutes)" msgstr "" -"[Dining Philosophers](./concurrency/sync-exercises/dining-philosophers.md) " -"(20 minute)" +"[Dining Philosophers](./concurrency/sync-exercises/dining-philosophers.md) (20 " +"minute)" #: src/concurrency/sync-exercises.md #, fuzzy msgid "" -"[Multi-threaded Link Checker](./concurrency/sync-exercises/link-checker.md) " -"(20 minutes)" +"[Multi-threaded Link Checker](./concurrency/sync-exercises/link-checker.md) (20 " +"minutes)" msgstr "" -"[Verificator de legături cu mai multe fire](./concurrency/sync-exercises/" -"link-checker.md) (20 minute)" +"[Verificator de legături cu mai multe fire](./concurrency/sync-exercises/link-" +"checker.md) (20 minute)" #: src/concurrency/sync-exercises.md #, fuzzy msgid "[Solutions](./concurrency/sync-exercises/solutions.md) (30 minutes)" msgstr "[Șiruri](./types-and-values/strings.md) (10 minute)" -#: src/concurrency/sync-exercises.md src/concurrency/async-exercises.md -#, fuzzy -msgid "This segment should take about 1 hour and 10 minutes" -msgstr "Acest segment ar trebui să dureze aproximativ 1 oră și 10 minute" - #: src/concurrency/sync-exercises/dining-philosophers.md #, fuzzy msgid "The dining philosophers problem is a classic problem in concurrency:" @@ -24386,36 +23059,33 @@ msgstr "" #: src/concurrency/sync-exercises/dining-philosophers.md #, fuzzy msgid "" -"Five philosophers dine together at the same table. Each philosopher has " -"their own place at the table. There is a fork between each plate. The dish " -"served is a kind of spaghetti which has to be eaten with two forks. Each " -"philosopher can only alternately think and eat. Moreover, a philosopher can " -"only eat their spaghetti when they have both a left and right fork. Thus two " -"forks will only be available when their two nearest neighbors are thinking, " -"not eating. After an individual philosopher finishes eating, they will put " -"down both forks." -msgstr "" -"Cinci filozofi iau masa împreună la aceeași masă. Fiecare filozof are " -"propriul loc la masă. Între fiecare farfurie se află câte o furculiță. Felul " -"de mâncare servit este un fel de spaghete care trebuie mâncate cu două " -"furculițe. Fiecare filozof nu poate decât să gândească și să mănânce " -"alternativ. În plus, un filozof poate mânca spaghetele doar dacă are atât " -"furculița din stânga, cât și cea din dreapta. Astfel, cele două furculițe " -"vor fi disponibile doar atunci când cei doi vecini cei mai apropiați " -"gândesc, nu mănâncă. După ce un filozof individual termină de mâncat, el va " -"pune jos ambele furculițe." +"Five philosophers dine together at the same table. Each philosopher has their " +"own place at the table. There is a fork between each plate. The dish served is " +"a kind of spaghetti which has to be eaten with two forks. Each philosopher can " +"only alternately think and eat. Moreover, a philosopher can only eat their " +"spaghetti when they have both a left and right fork. Thus two forks will only " +"be available when their two nearest neighbors are thinking, not eating. After " +"an individual philosopher finishes eating, they will put down both forks." +msgstr "" +"Cinci filozofi iau masa împreună la aceeași masă. Fiecare filozof are propriul " +"loc la masă. Între fiecare farfurie se află câte o furculiță. Felul de mâncare " +"servit este un fel de spaghete care trebuie mâncate cu două furculițe. Fiecare " +"filozof nu poate decât să gândească și să mănânce alternativ. În plus, un " +"filozof poate mânca spaghetele doar dacă are atât furculița din stânga, cât și " +"cea din dreapta. Astfel, cele două furculițe vor fi disponibile doar atunci " +"când cei doi vecini cei mai apropiați gândesc, nu mănâncă. După ce un filozof " +"individual termină de mâncat, el va pune jos ambele furculițe." #: src/concurrency/sync-exercises/dining-philosophers.md #, fuzzy msgid "" -"You will need a local [Cargo installation](../../cargo/running-locally.md) " -"for this exercise. Copy the code below to a file called `src/main.rs`, fill " -"out the blanks, and test that `cargo run` does not deadlock:" +"You will need a local [Cargo installation](../../cargo/running-locally.md) for " +"this exercise. Copy the code below to a file called `src/main.rs`, fill out the " +"blanks, and test that `cargo run` does not deadlock:" msgstr "" -"Veți avea nevoie de o [instalare Cargo] locală (../../cargo/running-locally." -"md) pentru acest exercițiu. Copiați codul de mai jos într-un fișier numit " -"`src/main.rs`, completați spațiile goale și testați dacă `cargo run` nu se " -"blochează:" +"Veți avea nevoie de o [instalare Cargo] locală (../../cargo/running-locally.md) " +"pentru acest exercițiu. Copiați codul de mai jos într-un fișier numit `src/main." +"rs`, completați spațiile goale și testați dacă `cargo run` nu se blochează:" #: src/concurrency/sync-exercises/dining-philosophers.md #: src/concurrency/async-exercises/dining-philosophers.md @@ -24433,7 +23103,6 @@ msgstr "" #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"Eureka! {} has a new idea!\"" msgstr "\"Eureka! {} are o idee nouă!\"" @@ -24447,7 +23116,6 @@ msgstr "// Ridicați furculițele...\n" #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"{} is eating...\"" msgstr "\"{} mănâncă...\"" @@ -24455,15 +23123,13 @@ msgstr "\"{} mănâncă...\"" #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"Socrates\"" -msgstr "Lăzi HAL" +msgstr "\"Socrate\"" #: src/concurrency/sync-exercises/dining-philosophers.md #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"Hypatia\"" msgstr "\"Hypatia\"" @@ -24471,7 +23137,6 @@ msgstr "\"Hypatia\"" #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"Plato\"" msgstr "\"Platon\"" @@ -24479,7 +23144,6 @@ msgstr "\"Platon\"" #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"Aristotle\"" msgstr "\"Aristotel\"" @@ -24487,9 +23151,8 @@ msgstr "\"Aristotel\"" #: src/concurrency/sync-exercises/solutions.md #: src/concurrency/async-exercises/dining-philosophers.md #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "\"Pythagoras\"" -msgstr "\"Pythagoras\"" +msgstr "\"Pythagora\"" #: src/concurrency/sync-exercises/dining-philosophers.md #: src/concurrency/async-exercises/dining-philosophers.md @@ -24508,8 +23171,7 @@ msgstr "// Creați filosofi\n" #: src/concurrency/sync-exercises/dining-philosophers.md #, fuzzy msgid "// Make each of them think and eat 100 times\n" -msgstr "" -"// Fă-i pe fiecare dintre ei să gândească și să mănânce de 100 de ori\n" +msgstr "// Fă-i pe fiecare dintre ei să gândească și să mănânce de 100 de ori\n" #: src/concurrency/sync-exercises/dining-philosophers.md #: src/concurrency/async-exercises/dining-philosophers.md @@ -24543,30 +23205,30 @@ msgstr "" #: src/concurrency/sync-exercises/link-checker.md #, fuzzy msgid "" -"Let us use our new knowledge to create a multi-threaded link checker. It " -"should start at a webpage and check that links on the page are valid. It " -"should recursively check other pages on the same domain and keep doing this " -"until all pages have been validated." +"Let us use our new knowledge to create a multi-threaded link checker. It should " +"start at a webpage and check that links on the page are valid. It should " +"recursively check other pages on the same domain and keep doing this until all " +"pages have been validated." msgstr "" -"Să folosim noile noastre cunoștințe pentru a crea un verificator de legături " -"cu mai multe fire. Acesta ar trebui să pornească de la o pagină web și să " -"verifice dacă legăturile de pe pagină sunt valide. Ar trebui să verifice în " -"mod recursiv alte pagini din același domeniu și să continue să facă acest " -"lucru până când toate paginile sunt validate." +"Să folosim noile noastre cunoștințe pentru a crea un verificator de legături cu " +"mai multe fire. Acesta ar trebui să pornească de la o pagină web și să verifice " +"dacă legăturile de pe pagină sunt valide. Ar trebui să verifice în mod recursiv " +"alte pagini din același domeniu și să continue să facă acest lucru până când " +"toate paginile sunt validate." #: src/concurrency/sync-exercises/link-checker.md #, fuzzy msgid "" "For this, you will need an HTTP client such as [`reqwest`](https://docs.rs/" "reqwest/). You will also need a way to find links, we can use [`scraper`]" -"(https://docs.rs/scraper/). Finally, we'll need some way of handling errors, " -"we will use [`thiserror`](https://docs.rs/thiserror/)." +"(https://docs.rs/scraper/). Finally, we'll need some way of handling errors, we " +"will use [`thiserror`](https://docs.rs/thiserror/)." msgstr "" "Pentru aceasta, veți avea nevoie de un client HTTP, cum ar fi [`reqwest`]" -"(https://docs.rs/reqwest/). De asemenea, veți avea nevoie de o modalitate de " -"a găsi link-uri, putem folosi [`scraper`](https://docs.rs/scraper/). În cele " -"din urmă, vom avea nevoie de o modalitate de gestionare a erorilor, vom " -"folosi [`thiserror`](https://docs.rs/thiserror/)." +"(https://docs.rs/reqwest/). De asemenea, veți avea nevoie de o modalitate de a " +"găsi link-uri, putem folosi [`scraper`](https://docs.rs/scraper/). În cele din " +"urmă, vom avea nevoie de o modalitate de gestionare a erorilor, vom folosi " +"[`thiserror`](https://docs.rs/thiserror/)." #: src/concurrency/sync-exercises/link-checker.md #, fuzzy @@ -24580,16 +23242,14 @@ msgid "" "`Cargo.toml` file by hand. Add the dependencies listed below." msgstr "" "Dacă `cargo add` eșuează cu `error: no such subcommand`, atunci vă rugăm să " -"editați manual fișierul `Cargo.toml`. Adăugați dependențele enumerate mai " -"jos." +"editați manual fișierul `Cargo.toml`. Adăugați dependențele enumerate mai jos." #: src/concurrency/sync-exercises/link-checker.md #, fuzzy -msgid "" -"The `cargo add` calls will update the `Cargo.toml` file to look like this:" +msgid "The `cargo add` calls will update the `Cargo.toml` file to look like this:" msgstr "" -"Apelurile `cargo add` vor actualiza fișierul `Cargo.toml` astfel încât să " -"arate astfel:" +"Apelurile `cargo add` vor actualiza fișierul `Cargo.toml` astfel încât să arate " +"astfel:" #: src/concurrency/sync-exercises/link-checker.md #, fuzzy @@ -24602,8 +23262,7 @@ msgid "" "publish = false\n" "\n" "[dependencies]\n" -"reqwest = { version = \"0.11.12\", features = [\"blocking\", \"rustls-" -"tls\"] }\n" +"reqwest = { version = \"0.11.12\", features = [\"blocking\", \"rustls-tls\"] }\n" "scraper = \"0.13.0\"\n" "thiserror = \"1.0.37\"\n" "```" @@ -24625,8 +23284,8 @@ msgstr "" #: src/concurrency/sync-exercises/link-checker.md #, fuzzy msgid "" -"You can now download the start page. Try with a small site such as `https://" -"www.google.org/`." +"You can now download the start page. Try with a small site such as `https://www." +"google.org/`." msgstr "" "Acum puteți descărca pagina de start. Încercați cu un site mic, cum ar fi " "`https://www.google.org/`." @@ -24638,49 +23297,41 @@ msgstr "Fișierul dvs. `src/main.rs` ar trebui să arate cam așa:" #: src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"request error: {0}\"" msgstr "\"eroare de solicitare: {0}\"" #: src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"bad http response: {0}\"" -msgstr "\"bad http response: {0}\"" +msgstr "\"răspuns http eronat: {0}\"" #: src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"Checking {:#}\"" -msgstr "Verificarea împrumuturilor" +msgstr "\"Verific {:#}\"" #: src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"href\"" msgstr "\"href\"" #: src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"On {base_url:#}: ignored unparsable {href:?}: {err}\"" -msgstr "\"On {base_url:#}: ignorat neparsabil {href:?}: {err}\"" +msgstr "\"La {base_url:#}: ignorat neparsabil {href:?}: {err}\"" #: src/concurrency/sync-exercises/link-checker.md #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"https://www.google.org\"" msgstr "\"https://www.google.org\"" #: src/concurrency/sync-exercises/link-checker.md -#, fuzzy msgid "\"Links: {links:#?}\"" msgstr "\"Link-uri: {links:#?}\"" #: src/concurrency/sync-exercises/link-checker.md -#, fuzzy msgid "\"Could not extract links: {err:#}\"" -msgstr "\"Could not extract links: {err:#}\"" +msgstr "\"Nu am putut extrage legăturile: {err:#}\"" #: src/concurrency/sync-exercises/link-checker.md #, fuzzy @@ -24694,23 +23345,21 @@ msgid "" "channel and let a few threads check the URLs in parallel." msgstr "" "Folosiți fire de execuție pentru a verifica legăturile în paralel: trimiteți " -"URL-urile care trebuie verificate pe un canal și lăsați câteva fire de " -"execuție să verifice URL-urile în paralel." +"URL-urile care trebuie verificate pe un canal și lăsați câteva fire de execuție " +"să verifice URL-urile în paralel." #: src/concurrency/sync-exercises/link-checker.md #, fuzzy msgid "" -"Extend this to recursively extract links from all pages on the `www.google." -"org` domain. Put an upper limit of 100 pages or so so that you don't end up " -"being blocked by the site." +"Extend this to recursively extract links from all pages on the `www.google.org` " +"domain. Put an upper limit of 100 pages or so so that you don't end up being " +"blocked by the site." msgstr "" "Extindeți acest lucru pentru a extrage în mod recursiv legăturile din toate " "paginile de pe domeniul `www.google.org`. Puneți o limită superioară de " -"aproximativ 100 de pagini, astfel încât să nu ajungeți să fiți blocat de " -"site." +"aproximativ 100 de pagini, astfel încât să nu ajungeți să fiți blocat de site." #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"{} is trying to eat\"" msgstr "\"{} încearcă să mănânce\"" @@ -24727,7 +23376,6 @@ msgstr "" " //fără a dezinitializa niciuna dintre ele.\n" #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"{thought}\"" msgstr "\"{thought}\"" @@ -24738,8 +23386,7 @@ msgstr "Verificator de legături" #: src/concurrency/sync-exercises/solutions.md #, fuzzy -msgid "" -"/// Determine whether links within the given page should be extracted.\n" +msgid "/// Determine whether links within the given page should be extracted.\n" msgstr "/// Determină dacă legăturile din pagina dată trebuie extrase.\n" #: src/concurrency/sync-exercises/solutions.md @@ -24748,8 +23395,8 @@ msgid "" "/// Mark the given page as visited, returning false if it had already\n" " /// been visited.\n" msgstr "" -"/// Marchează pagina dată ca fiind vizitată, returnând false dacă a fost " -"deja vizitată\n" +"/// Marchează pagina dată ca fiind vizitată, returnând false dacă a fost deja " +"vizitată\n" " /// fost vizitată.\n" #: src/concurrency/sync-exercises/solutions.md @@ -24763,38 +23410,36 @@ msgid "\"Got crawling error: {:#}\"" msgstr "\"Am primit o eroare de crawling: {:#}\"" #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"Bad URLs: {:#?}\"" -msgstr "\"URL-uri proaste: {:#?}\"" +msgstr "\"URL-uri incorecte: {:#?}\"" #: src/concurrency/welcome-async.md -#, fuzzy msgid "" -"\"Async\" is a concurrency model where multiple tasks are executed " -"concurrently by executing each task until it would block, then switching to " -"another task that is ready to make progress. The model allows running a " -"larger number of tasks on a limited number of threads. This is because the " -"per-task overhead is typically very low and operating systems provide " -"primitives for efficiently identifying I/O that is able to proceed." -msgstr "" -"\"Async\" este un model de simultaneitate în care mai multe sarcini sunt " -"executate simultan prin executarea fiecărei sarcini până când se blochează, " -"apoi se trece la o altă sarcină care este gata să progreseze. Acest model " -"permite rularea unui număr mai mare de sarcini pe un număr limitat de fire " -"de execuție. Acest lucru se datorează faptului că, de obicei, costurile de " -"operare per sarcină sunt foarte scăzute, iar sistemele de operare oferă " -"primitive pentru identificarea eficientă a I/O care pot continua." +"\"Async\" is a concurrency model where multiple tasks are executed concurrently " +"by executing each task until it would block, then switching to another task " +"that is ready to make progress. The model allows running a larger number of " +"tasks on a limited number of threads. This is because the per-task overhead is " +"typically very low and operating systems provide primitives for efficiently " +"identifying I/O that is able to proceed." +msgstr "" +"\"Async\" este un model de concurență în care mai multe sarcini sunt executate " +"simultan prin executarea fiecărei sarcini până când se blochează, apoi se trece " +"la o altă sarcină care este gata să progreseze. Acest model permite rularea " +"unui număr mai mare de sarcini pe un număr limitat de fire de execuție pentru " +"că, de obicei, costurile de operare per sarcină sunt foarte scăzute, iar " +"sistemele de operare oferă primitive pentru identificarea eficientă a I/O care " +"pot continua." #: src/concurrency/welcome-async.md #, fuzzy msgid "" "Rust's asynchronous operation is based on \"futures\", which represent work " -"that may be completed in the future. Futures are \"polled\" until they " -"signal that they are complete." +"that may be completed in the future. Futures are \"polled\" until they signal " +"that they are complete." msgstr "" -"Funcționarea asincronă a Rust se bazează pe \"futures\", care reprezintă " -"munca ce poate fi finalizată în viitor. Futures sunt \"interogate\" până " -"când semnalează că sunt finalizate." +"Funcționarea asincronă a Rust se bazează pe \"futures\", care reprezintă munca " +"ce poate fi finalizată în viitor. Futures sunt \"interogate\" până când " +"semnalează că sunt finalizate." #: src/concurrency/welcome-async.md #, fuzzy @@ -24802,8 +23447,8 @@ msgid "" "Futures are polled by an async runtime, and several different runtimes are " "available." msgstr "" -"Futures sunt interogate de un timp de execuție asincron și sunt disponibile " -"mai multe timpuri de execuție diferite." +"Futures sunt interogate de un timp de execuție asincron și sunt disponibile mai " +"multe timpuri de execuție diferite." #: src/concurrency/welcome-async.md #, fuzzy @@ -24812,25 +23457,24 @@ msgid "" "callback-based, and not polled. Async Python programs require a \"loop\", " "similar to a runtime in Rust." msgstr "" -"Python are un model similar în `asyncio`. Cu toate acestea, tipul său " -"`Future` se bazează pe callback și nu pe polled. Programele asincrone din " -"Python necesită o \"buclă\", similară cu un timp de execuție în Rust." +"Python are un model similar în `asyncio`. Cu toate acestea, tipul său `Future` " +"se bazează pe callback și nu pe polled. Programele asincrone din Python " +"necesită o \"buclă\", similară cu un timp de execuție în Rust." #: src/concurrency/welcome-async.md #, fuzzy msgid "" "JavaScript's `Promise` is similar, but again callback-based. The language " -"runtime implements the event loop, so many of the details of Promise " -"resolution are hidden." +"runtime implements the event loop, so many of the details of Promise resolution " +"are hidden." msgstr "" "`Promise` din JavaScript este similar, dar se bazează din nou pe callback. " "Timpul de execuție al limbajului implementează bucla de evenimente, astfel " "încât multe dintre detaliile rezolvării promisiunilor sunt ascunse." #: src/concurrency/welcome-async.md -#, fuzzy msgid "[Async Basics](./concurrency/async.md) (30 minutes)" -msgstr "[Generice](../generics.md) (45 minute)" +msgstr "[Bazele async](./concurrency/async.md) (30 minute)" #: src/concurrency/welcome-async.md #, fuzzy @@ -24850,7 +23494,6 @@ msgid "[Exercises](./concurrency/async-exercises.md) (1 hour and 10 minutes)" msgstr "[Exercițiu: Geometrie](./references/exercise.md) (30 minute)" #: src/concurrency/async.md -#, fuzzy msgid "[async/await](./concurrency/async/async-await.md) (10 minutes)" msgstr "[async/await](./concurrency/async/async/async-await.md) (10 minute)" @@ -24875,13 +23518,12 @@ msgid "" "At a high level, async Rust code looks very much like \"normal\" sequential " "code:" msgstr "" -"La un nivel înalt, codul Rust asincron seamănă foarte mult cu codul " -"secvențial \"normal\":" +"La un nivel înalt, codul Rust asincron seamănă foarte mult cu codul secvențial " +"\"normal\":" #: src/concurrency/async/async-await.md -#, fuzzy msgid "\"Count is: {i}!\"" -msgstr "\"Contele este: {i}!\"" +msgstr "\"Numărătoarea este: {i}!\"" #: src/concurrency/async/async-await.md #, fuzzy @@ -24904,22 +23546,21 @@ msgstr "" "Utilizați `let future: () = async_main(10);` în `main` pentru a vedea tipul." #: src/concurrency/async/async-await.md -#, fuzzy msgid "" -"The \"async\" keyword is syntactic sugar. The compiler replaces the return " -"type with a future." +"The \"async\" keyword is syntactic sugar. The compiler replaces the return type " +"with a future." msgstr "" -"Cuvântul cheie \"async\" este un zahăr sintactic. Compilatorul înlocuiește " -"tipul return cu un future." +"Cuvântul cheie \"async\" este o simplificare sintactică. Compilatorul " +"înlocuiește tipul return cu un future." #: src/concurrency/async/async-await.md #, fuzzy msgid "" -"You cannot make `main` async, without additional instructions to the " -"compiler on how to use the returned future." +"You cannot make `main` async, without additional instructions to the compiler " +"on how to use the returned future." msgstr "" -"Nu puteți face ca `main` să fie asincron, fără instrucțiuni suplimentare " -"pentru compilator cu privire la modul de utilizare a viitorului returnat." +"Nu puteți face ca `main` să fie asincron, fără instrucțiuni suplimentare pentru " +"compilator cu privire la modul de utilizare a viitorului returnat." #: src/concurrency/async/async-await.md #, fuzzy @@ -24933,8 +23574,8 @@ msgstr "" #: src/concurrency/async/async-await.md #, fuzzy msgid "" -"`.await` asynchronously waits for the completion of another operation. " -"Unlike `block_on`, `.await` doesn't block the current thread." +"`.await` asynchronously waits for the completion of another operation. Unlike " +"`block_on`, `.await` doesn't block the current thread." msgstr "" "`.await` așteaptă în mod asincron finalizarea unei alte operațiuni. Spre " "deosebire de `block_on`, `.await` nu blochează firul curent." @@ -24945,40 +23586,38 @@ msgid "" "`.await` can only be used inside an `async` function (or block; these are " "introduced later)." msgstr "" -"`.await` poate fi folosit numai în interiorul unei funcții `async` (sau " -"bloc; acestea sunt prezentate mai târziu)." +"`.await` poate fi folosit numai în interiorul unei funcții `async` (sau bloc; " +"acestea sunt prezentate mai târziu)." #: src/concurrency/async/futures.md -#, fuzzy msgid "" -"[`Future`](https://doc.rust-lang.org/std/future/trait.Future.html) is a " -"trait, implemented by objects that represent an operation that may not be " -"complete yet. A future can be polled, and `poll` returns a [`Poll`](https://" -"doc.rust-lang.org/std/task/enum.Poll.html)." +"[`Future`](https://doc.rust-lang.org/std/future/trait.Future.html) is a trait, " +"implemented by objects that represent an operation that may not be complete " +"yet. A future can be polled, and `poll` returns a [`Poll`](https://doc.rust-" +"lang.org/std/task/enum.Poll.html)." msgstr "" "[`Future`](https://doc.rust-lang.org/std/future/trait.Future.html) este o " -"trăsătură, implementată de obiecte care reprezintă o operațiune care poate " -"să nu fie încă finalizată. Un viitor poate fi interogat, iar `poll` " -"returnează un [`Poll`](https://doc.rust-lang.org/std/task/enum.Poll.html)." +"trăsătură, implementată de obiecte care reprezintă o operațiune care poate să " +"nu fie încă finalizată. Un 'future' poate fi interogat, iar `poll` returnează " +"un [`Poll`](https://doc.rust-lang.org/std/task/enum.Poll.html)." #: src/concurrency/async/futures.md #, fuzzy msgid "" -"An async function returns an `impl Future`. It's also possible (but " -"uncommon) to implement `Future` for your own types. For example, the " -"`JoinHandle` returned from `tokio::spawn` implements `Future` to allow " -"joining to it." +"An async function returns an `impl Future`. It's also possible (but uncommon) " +"to implement `Future` for your own types. For example, the `JoinHandle` " +"returned from `tokio::spawn` implements `Future` to allow joining to it." msgstr "" -"O funcție asincronă returnează un `impl Future`. De asemenea, este posibil " -"(dar mai puțin obișnuit) să implementați `Future` pentru propriile tipuri. " -"De exemplu, `JoinHandle` returnat de `tokio::spawn` implementează `Future` " -"pentru a permite îmbinarea cu acesta." +"O funcție asincronă returnează un `impl Future`. De asemenea, este posibil (dar " +"mai puțin obișnuit) să implementați `Future` pentru propriile tipuri. De " +"exemplu, `JoinHandle` returnat de `tokio::spawn` implementează `Future` pentru " +"a permite îmbinarea cu acesta." #: src/concurrency/async/futures.md #, fuzzy msgid "" -"The `.await` keyword, applied to a Future, causes the current async function " -"to pause until that Future is ready, and then evaluates to its output." +"The `.await` keyword, applied to a Future, causes the current async function to " +"pause until that Future is ready, and then evaluates to its output." msgstr "" "Cuvântul cheie `.await`, aplicat la un Future, determină funcția asincronă " "curentă să se oprească până când Future-ul este gata și apoi evaluează la " @@ -24987,8 +23626,8 @@ msgstr "" #: src/concurrency/async/futures.md #, fuzzy msgid "" -"The `Future` and `Poll` types are implemented exactly as shown; click the " -"links to show the implementations in the docs." +"The `Future` and `Poll` types are implemented exactly as shown; click the links " +"to show the implementations in the docs." msgstr "" "Tipurile `Future` și `Poll` sunt implementate exact așa cum se arată; faceți " "clic pe linkuri pentru a vedea implementările din documentație." @@ -24996,18 +23635,18 @@ msgstr "" #: src/concurrency/async/futures.md #, fuzzy msgid "" -"We will not get to `Pin` and `Context`, as we will focus on writing async " -"code, rather than building new async primitives. Briefly:" +"We will not get to `Pin` and `Context`, as we will focus on writing async code, " +"rather than building new async primitives. Briefly:" msgstr "" -"Nu vom ajunge la `Pin` și `Context`, deoarece ne vom concentra pe scrierea " -"de cod asincron, mai degrabă decât pe construirea de noi primitive " -"asincrone. Pe scurt:" +"Nu vom ajunge la `Pin` și `Context`, deoarece ne vom concentra pe scrierea de " +"cod asincron, mai degrabă decât pe construirea de noi primitive asincrone. Pe " +"scurt:" #: src/concurrency/async/futures.md #, fuzzy msgid "" -"`Context` allows a Future to schedule itself to be polled again when an " -"event occurs." +"`Context` allows a Future to schedule itself to be polled again when an event " +"occurs." msgstr "" "`Context` permite unui Future să se programeze pentru a fi interogat din nou " "atunci când are loc un eveniment." @@ -25015,25 +23654,25 @@ msgstr "" #: src/concurrency/async/futures.md #, fuzzy msgid "" -"`Pin` ensures that the Future isn't moved in memory, so that pointers into " -"that future remain valid. This is required to allow references to remain " -"valid after an `.await`." +"`Pin` ensures that the Future isn't moved in memory, so that pointers into that " +"future remain valid. This is required to allow references to remain valid after " +"an `.await`." msgstr "" -"`Pin` se asigură că viitorul nu este mutat în memorie, astfel încât " -"indicatorii către acel viitor rămân valabili. Acest lucru este necesar " -"pentru a permite ca referințele să rămână valabile după un `.await`." +"`Pin` se asigură că viitorul nu este mutat în memorie, astfel încât indicatorii " +"către acel viitor rămân valabili. Acest lucru este necesar pentru a permite ca " +"referințele să rămână valabile după un `.await`." #: src/concurrency/async/runtimes.md #, fuzzy msgid "" "A _runtime_ provides support for performing operations asynchronously (a " -"_reactor_) and is responsible for executing futures (an _executor_). Rust " -"does not have a \"built-in\" runtime, but several options are available:" +"_reactor_) and is responsible for executing futures (an _executor_). Rust does " +"not have a \"built-in\" runtime, but several options are available:" msgstr "" "Un _runtime_ oferă suport pentru efectuarea de operații asincrone (un " -"_reactor_) și este responsabil pentru executarea futures (un _executor_). " -"Rust nu are un timp de execuție \"încorporat\", dar sunt disponibile mai " -"multe opțiuni:" +"_reactor_) și este responsabil pentru executarea futures (un _executor_). Rust " +"nu are un timp de execuție \"încorporat\", dar sunt disponibile mai multe " +"opțiuni:" #: src/concurrency/async/runtimes.md #, fuzzy @@ -25049,11 +23688,11 @@ msgstr "" #: src/concurrency/async/runtimes.md #, fuzzy msgid "" -"[async-std](https://async.rs/): aims to be a \"std for async\", and includes " -"a basic runtime in `async::task`." +"[async-std](https://async.rs/): aims to be a \"std for async\", and includes a " +"basic runtime in `async::task`." msgstr "" -"[async-std](https://async.rs/): își propune să fie un \"std pentru async\" " -"și include un timp de execuție de bază în `async::task`." +"[async-std](https://async.rs/): își propune să fie un \"std pentru async\" și " +"include un timp de execuție de bază în `async::task`." #: src/concurrency/async/runtimes.md #, fuzzy @@ -25067,9 +23706,9 @@ msgid "" "(https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/lib/fuchsia-" "async/src/lib.rs) already has one." msgstr "" -"Mai multe aplicații mai mari au propriile lor timpuri de execuție. De " -"exemplu, [Fuchsia](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/" -"main/src/lib/fuchsia-async/src/lib.rs) are deja unul." +"Mai multe aplicații mai mari au propriile lor timpuri de execuție. De exemplu, " +"[Fuchsia](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/lib/" +"fuchsia-async/src/lib.rs) are deja unul." #: src/concurrency/async/runtimes.md #, fuzzy @@ -25078,23 +23717,22 @@ msgid "" "playground. The playground also does not permit any I/O, so most interesting " "async things can't run in the playground." msgstr "" -"Rețineți că, dintre timpii de execuție enumerați, numai Tokio este acceptat " -"în zona de joacă Rust. De asemenea, terenul de joacă nu permite niciun fel " -"de I/O, astfel încât cele mai multe lucruri asincrone interesante nu pot fi " -"rulate în terenul de joacă." +"Rețineți că, dintre timpii de execuție enumerați, numai Tokio este acceptat în " +"zona de joacă Rust. De asemenea, terenul de joacă nu permite niciun fel de I/O, " +"astfel încât cele mai multe lucruri asincrone interesante nu pot fi rulate în " +"terenul de joacă." #: src/concurrency/async/runtimes.md #, fuzzy msgid "" "Futures are \"inert\" in that they do not do anything (not even start an I/O " "operation) unless there is an executor polling them. This differs from JS " -"Promises, for example, which will run to completion even if they are never " -"used." +"Promises, for example, which will run to completion even if they are never used." msgstr "" "Futures sunt \"inerți\", în sensul că nu fac nimic (nici măcar nu încep o " -"operațiune de I/O) decât dacă există un executor care să le interogheze. " -"Acest lucru este diferit de JS Promises, de exemplu, care vor fi executate " -"până la finalizare chiar dacă nu sunt folosite niciodată." +"operațiune de I/O) decât dacă există un executor care să le interogheze. Acest " +"lucru este diferit de JS Promises, de exemplu, care vor fi executate până la " +"finalizare chiar dacă nu sunt folosite niciodată." #: src/concurrency/async/runtimes/tokio.md #, fuzzy @@ -25119,12 +23757,10 @@ msgid "A large ecosystem of libraries." msgstr "Un ecosistem mare de biblioteci." #: src/concurrency/async/runtimes/tokio.md -#, fuzzy msgid "\"Count in task: {i}!\"" -msgstr "\"Numărătoarea în sarcină: {i}!\"" +msgstr "\"Numărătoarea în sarcina: {i}!\"" #: src/concurrency/async/runtimes/tokio.md -#, fuzzy msgid "\"Main task: {i}\"" msgstr "\"Sarcina principală: {i}\"" @@ -25157,9 +23793,9 @@ msgid "" "cancellation. `tokio::spawn` returns a handle which can be awaited to wait " "until it finishes." msgstr "" -"De ce `count_to` nu ajunge (de obicei) la 10? Acesta este un exemplu de " -"anulare asincronă. `tokio::spawn` returnează un handle care poate fi " -"așteptat pentru a aștepta până când se termină." +"De ce `count_to` nu ajunge (de obicei) la 10? Acesta este un exemplu de anulare " +"asincronă. `tokio::spawn` returnează un handle care poate fi așteptat pentru a " +"aștepta până când se termină." #: src/concurrency/async/runtimes/tokio.md #, fuzzy @@ -25179,33 +23815,29 @@ msgstr "Rust are un sistem de sarcini, care este o formă de threading ușor." #: src/concurrency/async/tasks.md #, fuzzy msgid "" -"A task has a single top-level future which the executor polls to make " -"progress. That future may have one or more nested futures that its `poll` " -"method polls, corresponding loosely to a call stack. Concurrency within a " -"task is possible by polling multiple child futures, such as racing a timer " -"and an I/O operation." +"A task has a single top-level future which the executor polls to make progress. " +"That future may have one or more nested futures that its `poll` method polls, " +"corresponding loosely to a call stack. Concurrency within a task is possible by " +"polling multiple child futures, such as racing a timer and an I/O operation." msgstr "" -"O sarcină are un singur viitor de nivel superior pe care executorul îl " -"sondează pentru a progresa. Acel viitor poate avea unul sau mai multe " -"viitoare imbricate pe care metoda sa `poll` le interoghează, ceea ce " -"corespunde, în linii mari, unei stive de apeluri. Concurența în cadrul unei " -"sarcini este posibilă prin interogarea mai multor futures mai mici, cum ar " -"fi cursele dintre un cronometru și o operațiune I/O." +"O sarcină are un singur viitor de nivel superior pe care executorul îl sondează " +"pentru a progresa. Acel viitor poate avea unul sau mai multe viitoare imbricate " +"pe care metoda sa `poll` le interoghează, ceea ce corespunde, în linii mari, " +"unei stive de apeluri. Concurența în cadrul unei sarcini este posibilă prin " +"interogarea mai multor futures mai mici, cum ar fi cursele dintre un cronometru " +"și o operațiune I/O." #: src/concurrency/async/tasks.md -#, fuzzy msgid "\"127.0.0.1:0\"" msgstr "\"127.0.0.1:0\"" #: src/concurrency/async/tasks.md -#, fuzzy msgid "\"listening on port {}\"" -msgstr "\"ascultând pe portul 2000\"" +msgstr "\"ascultând pe portul {}\"" #: src/concurrency/async/tasks.md -#, fuzzy msgid "\"connection from {addr:?}\"" -msgstr "\"Conexiune nouă de la {addr:?}\"" +msgstr "\"conexiune de la {addr:?}\"" #: src/concurrency/async/tasks.md #, fuzzy @@ -25213,39 +23845,35 @@ msgid "b\"Who are you?\\n\"" msgstr "b \"Cine ești tu?\\n\"" #: src/concurrency/async/tasks.md -#, fuzzy msgid "\"socket error\"" msgstr "\"eroare de socket\"" #: src/concurrency/async/tasks.md -#, fuzzy msgid "\"Thanks for dialing in, {name}!\\n\"" msgstr "\"Mulțumesc că ați sunat, {name}!\\n\"" #: src/concurrency/async/tasks.md src/concurrency/async-control-flow/join.md #, fuzzy -msgid "" -"Copy this example into your prepared `src/main.rs` and run it from there." +msgid "Copy this example into your prepared `src/main.rs` and run it from there." msgstr "" -"Copiați acest exemplu în fișierul pregătit `src/main.rs` și rulați-l de " -"acolo." +"Copiați acest exemplu în fișierul pregătit `src/main.rs` și rulați-l de acolo." #: src/concurrency/async/tasks.md #, fuzzy msgid "" -"Try connecting to it with a TCP connection tool like [nc](https://www.unix." -"com/man-page/linux/1/nc/) or [telnet](https://www.unix.com/man-page/linux/1/" +"Try connecting to it with a TCP connection tool like [nc](https://www.unix.com/" +"man-page/linux/1/nc/) or [telnet](https://www.unix.com/man-page/linux/1/" "telnet/)." msgstr "" -"Încercați să vă conectați la acesta cu un instrument de conexiune TCP, cum " -"ar fi [nc](https://www.unix.com/man-page/linux/1/nc/) sau [telnet](https://" -"www.unix.com/man-page/linux/1/telnet/)." +"Încercați să vă conectați la acesta cu un instrument de conexiune TCP, cum ar " +"fi [nc](https://www.unix.com/man-page/linux/1/nc/) sau [telnet](https://www." +"unix.com/man-page/linux/1/telnet/)." #: src/concurrency/async/tasks.md #, fuzzy msgid "" -"Ask students to visualize what the state of the example server would be with " -"a few connected clients. What tasks exist? What are their Futures?" +"Ask students to visualize what the state of the example server would be with a " +"few connected clients. What tasks exist? What are their Futures?" msgstr "" "Cereți elevilor să vizualizeze care ar fi starea serverului de exemplu cu " "câțiva clienți conectați. Ce sarcini există? Care este viitorul lor?" @@ -25254,24 +23882,23 @@ msgstr "" #, fuzzy msgid "" "This is the first time we've seen an `async` block. This is similar to a " -"closure, but does not take any arguments. Its return value is a Future, " -"similar to an `async fn`." +"closure, but does not take any arguments. Its return value is a Future, similar " +"to an `async fn`." msgstr "" -"Aceasta este prima dată când vedem un bloc `async`. Acesta este asemănător " -"cu o închidere, dar nu primește niciun argument. Valoarea sa de întoarcere " -"este un Future, similar cu un `async fn`." +"Aceasta este prima dată când vedem un bloc `async`. Acesta este asemănător cu o " +"închidere, dar nu primește niciun argument. Valoarea sa de întoarcere este un " +"Future, similar cu un `async fn`." #: src/concurrency/async/tasks.md #, fuzzy msgid "" -"Refactor the async block into a function, and improve the error handling " -"using `?`." +"Refactor the async block into a function, and improve the error handling using " +"`?`." msgstr "" "Refaceți blocul asincron într-o funcție și îmbunătățiți gestionarea erorilor " "folosind `?`." #: src/concurrency/async-control-flow.md -#, fuzzy msgid "" "[Async Channels](./concurrency/async-control-flow/channels.md) (10 minutes)" msgstr "" @@ -25291,48 +23918,41 @@ msgstr "[Selectare](control-flow/select.md)" #, fuzzy msgid "" "Several crates have support for asynchronous channels. For instance `tokio`:" -msgstr "" -"Mai multe crates au suport pentru canale asincrone. De exemplu, `tokio`:" +msgstr "Mai multe crates au suport pentru canale asincrone. De exemplu, `tokio`:" #: src/concurrency/async-control-flow/channels.md -#, fuzzy msgid "\"Received {count} pings so far.\"" msgstr "\"A primit {count} ping-uri până acum.\"" #: src/concurrency/async-control-flow/channels.md -#, fuzzy msgid "\"ping_handler complete\"" -msgstr "\"ping_handler complete\"" +msgstr "\"ping_handler complet\"" #: src/concurrency/async-control-flow/channels.md -#, fuzzy msgid "\"Failed to send ping.\"" msgstr "\"Nu a reușit să trimită ping.\"" #: src/concurrency/async-control-flow/channels.md -#, fuzzy msgid "\"Sent {} pings so far.\"" msgstr "\"A trimis {} ping-uri până acum.\"" #: src/concurrency/async-control-flow/channels.md -#, fuzzy msgid "\"Something went wrong in ping handler task.\"" msgstr "\"Ceva a mers prost în sarcina de gestionare a ping-ului.\"" #: src/concurrency/async-control-flow/channels.md #, fuzzy msgid "Change the channel size to `3` and see how it affects the execution." -msgstr "" -"Schimbați dimensiunea canalului la `3` și vedeți cum afectează execuția." +msgstr "Schimbați dimensiunea canalului la `3` și vedeți cum afectează execuția." #: src/concurrency/async-control-flow/channels.md #, fuzzy msgid "" "Overall, the interface is similar to the `sync` channels as seen in the " -"[morning class](concurrency/channels.md)." +"[morning class](../channels.md)." msgstr "" -"În general, interfața este similară cu cea a canalelor `sync`, așa cum se " -"vede în [morning class](concurrency/channels.md)." +"În general, interfața este similară cu cea a canalelor `sync`, așa cum se vede " +"în [morning class](concurrency/channels.md)." #: src/concurrency/async-control-flow/channels.md #, fuzzy @@ -25343,31 +23963,30 @@ msgstr "Încercați să eliminați apelul `std::mem::drop`. Ce se întâmplă? D #, fuzzy msgid "" "The [Flume](https://docs.rs/flume/latest/flume/) crate has channels that " -"implement both `sync` and `async` `send` and `recv`. This can be convenient " -"for complex applications with both IO and heavy CPU processing tasks." +"implement both `sync` and `async` `send` and `recv`. This can be convenient for " +"complex applications with both IO and heavy CPU processing tasks." msgstr "" "Crate [Flume](https://docs.rs/flume/latest/flume/) are canale care " -"implementează atât `sync` cât și `async` `send` și `recv`. Acest lucru poate " -"fi convenabil pentru aplicațiile complexe cu sarcini de procesare atât IO, " -"cât și grele pentru CPU." +"implementează atât `sync` cât și `async` `send` și `recv`. Acest lucru poate fi " +"convenabil pentru aplicațiile complexe cu sarcini de procesare atât IO, cât și " +"grele pentru CPU." #: src/concurrency/async-control-flow/channels.md #, fuzzy msgid "" -"What makes working with `async` channels preferable is the ability to " -"combine them with other `future`s to combine them and create complex control " -"flow." +"What makes working with `async` channels preferable is the ability to combine " +"them with other `future`s to combine them and create complex control flow." msgstr "" -"Ceea ce face ca lucrul cu canalele `async` să fie preferabil este " -"capacitatea de a le combina cu alte `future` pentru a le combina și a crea " -"un flux de control complex." +"Ceea ce face ca lucrul cu canalele `async` să fie preferabil este capacitatea " +"de a le combina cu alte `future` pentru a le combina și a crea un flux de " +"control complex." #: src/concurrency/async-control-flow/join.md #, fuzzy msgid "" -"A join operation waits until all of a set of futures are ready, and returns " -"a collection of their results. This is similar to `Promise.all` in " -"JavaScript or `asyncio.gather` in Python." +"A join operation waits until all of a set of futures are ready, and returns a " +"collection of their results. This is similar to `Promise.all` in JavaScript or " +"`asyncio.gather` in Python." msgstr "" "O operațiune de îmbinare așteaptă până când toți viitorii dintr-un set de " "viitoare sunt gata și returnează o colecție de rezultate ale acestora. Acest " @@ -25375,36 +23994,31 @@ msgstr "" "Python." #: src/concurrency/async-control-flow/join.md -#, fuzzy msgid "\"https://google.com\"" msgstr "\"https://google.com\"" #: src/concurrency/async-control-flow/join.md -#, fuzzy msgid "\"https://httpbin.org/ip\"" msgstr "\"https://httpbin.org/ip\"" #: src/concurrency/async-control-flow/join.md -#, fuzzy msgid "\"https://play.rust-lang.org/\"" msgstr "\"https://play.rust-lang.org/\"" #: src/concurrency/async-control-flow/join.md -#, fuzzy msgid "\"BAD_URL\"" msgstr "\"BAD_URL\"" #: src/concurrency/async-control-flow/join.md -#, fuzzy msgid "" "For multiple futures of disjoint types, you can use `std::future::join!` but " -"you must know how many futures you will have at compile time. This is " -"currently in the `futures` crate, soon to be stabilised in `std::future`." +"you must know how many futures you will have at compile time. This is currently " +"in the `futures` crate, soon to be stabilised in `std::future`." msgstr "" -"Pentru mai multe futures de tipuri disjuncte, puteți utiliza `std::future::" -"join!`, dar trebuie să știți câte futures veți avea în momentul compilării. " -"Acest lucru se află în prezent în crăiasa `futures`, urmând a fi stabilizat " -"în curând în `std::future`." +"Pentru mai multe futures de tipuri disjuncte, puteți utiliza `std::future::join!" +"`, dar trebuie să știți câte futures veți avea în momentul compilării. Acest " +"lucru se află în prezent în crate-ul `futures`, urmând a fi stabilizat în " +"curând în `std::future`." #: src/concurrency/async-control-flow/join.md #, fuzzy @@ -25412,45 +24026,44 @@ msgid "" "The risk of `join` is that one of the futures may never resolve, this would " "cause your program to stall." msgstr "" -"Riscul `join` este ca unul dintre futures să nu se rezolve niciodată, ceea " -"ce ar face ca programul dumneavoastră să se blocheze." +"Riscul `join` este ca unul dintre futures să nu se rezolve niciodată, ceea ce " +"ar face ca programul dumneavoastră să se blocheze." #: src/concurrency/async-control-flow/join.md #, fuzzy msgid "" -"You can also combine `join_all` with `join!` for instance to join all " -"requests to an http service as well as a database query. Try adding a " -"`tokio::time::sleep` to the future, using `futures::join!`. This is not a " -"timeout (that requires `select!`, explained in the next chapter), but " -"demonstrates `join!`." +"You can also combine `join_all` with `join!` for instance to join all requests " +"to an http service as well as a database query. Try adding a `tokio::time::" +"sleep` to the future, using `futures::join!`. This is not a timeout (that " +"requires `select!`, explained in the next chapter), but demonstrates `join!`." msgstr "" "De asemenea, puteți combina `join_all` cu `join!`, de exemplu, pentru a uni " "toate cererile către un serviciu http, precum și o interogare a unei baze de " "date. Încercați să adăugați un `tokio::time::sleep` la viitor, folosind " -"`futures::join!`. Acesta nu este un timeout (care necesită `select!`, " -"explicat în capitolul următor), ci demonstrează `join!`." +"`futures::join!`. Acesta nu este un timeout (care necesită `select!`, explicat " +"în capitolul următor), ci demonstrează `join!`." #: src/concurrency/async-control-flow/select.md #, fuzzy msgid "" -"A select operation waits until any of a set of futures is ready, and " -"responds to that future's result. In JavaScript, this is similar to `Promise." -"race`. In Python, it compares to `asyncio.wait(task_set, return_when=asyncio." +"A select operation waits until any of a set of futures is ready, and responds " +"to that future's result. In JavaScript, this is similar to `Promise.race`. In " +"Python, it compares to `asyncio.wait(task_set, return_when=asyncio." "FIRST_COMPLETED)`." msgstr "" -"O operațiune de selectare așteaptă până când oricare dintre un set de " -"viitoare este gata și răspunde la rezultatul viitorului respectiv. În " -"JavaScript, această operațiune este similară cu `Promise.race`. În Python, " -"se compară cu `asyncio.wait(task_set, return_when=asyncio.FIRST_COMPLETED)`." +"O operațiune de selectare așteaptă până când oricare dintre un set de viitoare " +"este gata și răspunde la rezultatul viitorului respectiv. În JavaScript, " +"această operațiune este similară cu `Promise.race`. În Python, se compară cu " +"`asyncio.wait(task_set, return_when=asyncio.FIRST_COMPLETED)`." #: src/concurrency/async-control-flow/select.md #, fuzzy msgid "" -"Similar to a match statement, the body of `select!` has a number of arms, " -"each of the form `pattern = future => statement`. When a `future` is ready, " -"its return value is destructured by the `pattern`. The `statement` is then " -"run with the resulting variables. The `statement` result becomes the result " -"of the `select!` macro." +"Similar to a match statement, the body of `select!` has a number of arms, each " +"of the form `pattern = future => statement`. When a `future` is ready, its " +"return value is destructured by the `pattern`. The `statement` is then run with " +"the resulting variables. The `statement` result becomes the result of the " +"`select!` macro." msgstr "" "La fel ca o instrucțiune match, corpul instrucțiunii `select!` are mai multe " "brațe, fiecare de forma `pattern = future => statement`. Când `future` este " @@ -25459,79 +24072,45 @@ msgstr "" #: src/concurrency/async-control-flow/select.md #, fuzzy -msgid "\"Felix\"" -msgstr "\"Felix\"" - -#: src/concurrency/async-control-flow/select.md -#, fuzzy -msgid "\"Failed to send cat.\"" -msgstr "\"Nu a reușit să trimită pisica.\"" - -#: src/concurrency/async-control-flow/select.md -#, fuzzy -msgid "\"Failed to send dog.\"" -msgstr "\"Nu a reușit să trimită câinele.\"" - -#: src/concurrency/async-control-flow/select.md -#, fuzzy -msgid "\"Failed to receive winner\"" -msgstr "\"Nu a reușit să primească câștigătorul\"" - -#: src/concurrency/async-control-flow/select.md -#, fuzzy -msgid "\"Winner is {winner:?}\"" -msgstr "\"Câștigătorul este {winner:?}\"" +msgid "\"got: {msg}\"" +msgstr "\"Main: got {msg}\"" #: src/concurrency/async-control-flow/select.md #, fuzzy -msgid "" -"In this example, we have a race between a cat and a dog. " -"`first_animal_to_finish_race` listens to both channels and will pick " -"whichever arrives first. Since the dog takes 50ms, it wins against the cat " -"that take 500ms." -msgstr "" -"În acest exemplu, avem o cursă între o pisică și un câine. " -"`first_animal_to_finish_race` ascultă ambele canale și îl va alege pe cel " -"care ajunge primul. Deoarece câinele are nevoie de 50ms, câștigă împotriva " -"pisicii care are nevoie de 500ms." +msgid "\"timeout\"" +msgstr "\"timeout\"" #: src/concurrency/async-control-flow/select.md #, fuzzy -msgid "" -"You can use `oneshot` channels in this example as the channels are supposed " -"to receive only one `send`." -msgstr "" -"În acest exemplu, puteți utiliza canale `oneshot`, deoarece canalele trebuie " -"să primească doar un singur `send`." +msgid "\"Failed to send greeting\"" +msgstr "\"Nu a reușit să trimită ping.\"" #: src/concurrency/async-control-flow/select.md #, fuzzy -msgid "" -"Try adding a deadline to the race, demonstrating selecting different sorts " -"of futures." -msgstr "" -"Încercați să adăugați un termen limită la cursă, demonstrând că ați selectat " -"diferite tipuri de viitoruri." +msgid "\"Listener failed\"" +msgstr "\"Listener eșuat\"" #: src/concurrency/async-control-flow/select.md #, fuzzy msgid "" -"Note that `select!` drops unmatched branches, which cancels their futures. " -"It is easiest to use when every execution of `select!` creates new futures." +"The `listener` async block here is a common form: wait for some async event, or " +"for a timeout. Change the `sleep` to sleep longer to see it fail. Why does the " +"`send` also fail in this situation?" msgstr "" -"Rețineți că `select!` renunță la ramurile nepotrivite, ceea ce anulează " -"viitorul acestora. Este cel mai ușor de utilizat atunci când fiecare " -"execuție a `select!` creează noi futures." +"Blocul asincron `listener` de aici este o formă comună: așteptați un eveniment " +"asincron sau un timeout. Schimbați `sleep` pentru a dormi mai mult pentru a " +"vedea că eșuează. De ce eșuează și `send` în această situație?" #: src/concurrency/async-control-flow/select.md #, fuzzy msgid "" -"An alternative is to pass `&mut future` instead of the future itself, but " -"this can lead to issues, further discussed in the pinning slide." +"`select!` is also often used in a loop in \"actor\" architectures, where a task " +"reacts to events in a loop. That has some pitfalls, which will be discussed in " +"the next segment." msgstr "" -"O alternativă este de a trece `&mut future` în locul viitorului însuși, dar " -"acest lucru poate duce la probleme, discutate în continuare în slide-ul cu " -"privire la fixarea." +"`select!` este, de asemenea, adesea utilizat într-o buclă în arhitecturile " +"\"actor\", în care o sarcină reacționează la evenimente într-o buclă. Aceasta " +"are unele capcane, care vor fi discutate în următorul segment." #: src/concurrency/async-pitfalls.md #, fuzzy @@ -25541,16 +24120,15 @@ msgid "" "with its share of pitfalls and footguns. We illustrate some of them in this " "chapter." msgstr "" -"Async / await oferă o abstractizare convenabilă și eficientă pentru " -"programarea asincronă concurentă. Cu toate acestea, modelul async/await din " -"Rust vine și el cu partea sa de capcane și piedici. În acest capitol " -"ilustrăm câteva dintre ele:" +"Async / await oferă o abstractizare convenabilă și eficientă pentru programarea " +"asincronă concurentă. Cu toate acestea, modelul async/await din Rust vine și el " +"cu partea sa de capcane și piedici. În acest capitol ilustrăm câteva dintre ele:" #: src/concurrency/async-pitfalls.md #, fuzzy msgid "" -"[Blocking the Executor](./concurrency/async-pitfalls/blocking-executor.md) " -"(10 minutes)" +"[Blocking the Executor](./concurrency/async-pitfalls/blocking-executor.md) (10 " +"minutes)" msgstr "[Blocarea executorului](pitfalls/blocking-executor.md)" #: src/concurrency/async-pitfalls.md @@ -25559,16 +24137,13 @@ msgid "[Pin](./concurrency/async-pitfalls/pin.md) (20 minutes)" msgstr "[Șiruri](./types-and-values/strings.md) (10 minute)" #: src/concurrency/async-pitfalls.md -#, fuzzy -msgid "" -"[Async Traits](./concurrency/async-pitfalls/async-traits.md) (5 minutes)" -msgstr "[Trăsături asincrone](pitfalls/async-traits.md)" +msgid "[Async Traits](./concurrency/async-pitfalls/async-traits.md) (5 minutes)" +msgstr "" +"[Trăsături asincrone](./concurrency/async-pitfalls/async-traits.md) (5 minute)" #: src/concurrency/async-pitfalls.md -#, fuzzy -msgid "" -"[Cancellation](./concurrency/async-pitfalls/cancellation.md) (20 minutes)" -msgstr "[Anulare](pitfalls/cancellation.md)" +msgid "[Cancellation](./concurrency/async-pitfalls/cancellation.md) (20 minutes)" +msgstr "[Anulare](./concurrency/async-pitfalls/cancellation.md) (20 minute)" #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy @@ -25579,23 +24154,20 @@ msgstr "Blocarea executorului" #, fuzzy msgid "" "Most async runtimes only allow IO tasks to run concurrently. This means that " -"CPU blocking tasks will block the executor and prevent other tasks from " -"being executed. An easy workaround is to use async equivalent methods where " -"possible." +"CPU blocking tasks will block the executor and prevent other tasks from being " +"executed. An easy workaround is to use async equivalent methods where possible." msgstr "" -"Majoritatea timpilor de execuție asincronă permit doar executarea simultană " -"a sarcinilor IO. Aceasta înseamnă că sarcinile care blochează CPU vor bloca " +"Majoritatea timpilor de execuție asincronă permit doar executarea simultană a " +"sarcinilor IO. Aceasta înseamnă că sarcinile care blochează CPU vor bloca " "executorul și vor împiedica executarea altor sarcini. O soluție ușoară este " "utilizarea unor metode echivalente asincrone acolo unde este posibil." #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy msgid "\"future {id} slept for {duration_ms}ms, finished after {}ms\"" -msgstr "" -"\"viitorul {id} a dormit timp de {duration_ms}ms, a terminat după {}ms\"" +msgstr "\"viitorul {id} a dormit timp de {duration_ms}ms, a terminat după {}ms\"" #: src/concurrency/async-pitfalls/blocking-executor.md -#, fuzzy msgid "\"current_thread\"" msgstr "\"current_thread\"" @@ -25604,19 +24176,18 @@ msgstr "\"current_thread\"" msgid "" "Run the code and see that the sleeps happen consecutively rather than " "concurrently." -msgstr "" -"Rulați codul și vedeți că somnul se produce consecutiv și nu concomitent." +msgstr "Rulați codul și vedeți că somnul se produce consecutiv și nu concomitent." #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy msgid "" -"The `\"current_thread\"` flavor puts all tasks on a single thread. This " -"makes the effect more obvious, but the bug is still present in the multi-" -"threaded flavor." +"The `\"current_thread\"` flavor puts all tasks on a single thread. This makes " +"the effect more obvious, but the bug is still present in the multi-threaded " +"flavor." msgstr "" -"Aroma `\"current_thread\"` pune toate sarcinile pe un singur fir. Acest " -"lucru face ca efectul să fie mai evident, dar eroarea este încă prezentă în " -"varianta cu mai multe fire." +"Aroma `\"current_thread\"` pune toate sarcinile pe un singur fir. Acest lucru " +"face ca efectul să fie mai evident, dar eroarea este încă prezentă în varianta " +"cu mai multe fire." #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy @@ -25631,37 +24202,36 @@ msgid "" "Another fix would be to `tokio::task::spawn_blocking` which spawns an actual " "thread and transforms its handle into a future without blocking the executor." msgstr "" -"O altă soluție ar fi `tokio::task::spawn_blocking` care generează un fir " -"real și transformă mânerul său într-un viitor fără a bloca executorul." +"O altă soluție ar fi `tokio::task::spawn_blocking` care generează un fir real " +"și transformă mânerul său într-un viitor fără a bloca executorul." #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy msgid "" "You should not think of tasks as OS threads. They do not map 1 to 1 and most " "executors will allow many tasks to run on a single OS thread. This is " -"particularly problematic when interacting with other libraries via FFI, " -"where that library might depend on thread-local storage or map to specific " -"OS threads (e.g., CUDA). Prefer `tokio::task::spawn_blocking` in such " -"situations." -msgstr "" -"Nu ar trebui să vă gândiți la sarcini ca la fire de sistem de operare. " -"Acestea nu se corelează 1 la 1 și majoritatea executorilor vor permite " -"rularea mai multor sarcini pe un singur fir OS. Acest lucru este deosebit de " -"problematic atunci când interacționați cu alte biblioteci prin intermediul " -"FFI, în cazul în care biblioteca respectivă ar putea depinde de stocarea " -"locală a firelor de execuție sau ar putea fi mapată pe anumite fire de " -"execuție ale sistemului de operare (de exemplu, CUDA). Preferați `tokio::" -"task::spawn_blocking` în astfel de situații." +"particularly problematic when interacting with other libraries via FFI, where " +"that library might depend on thread-local storage or map to specific OS threads " +"(e.g., CUDA). Prefer `tokio::task::spawn_blocking` in such situations." +msgstr "" +"Nu ar trebui să vă gândiți la sarcini ca la fire de sistem de operare. Acestea " +"nu se corelează 1 la 1 și majoritatea executorilor vor permite rularea mai " +"multor sarcini pe un singur fir OS. Acest lucru este deosebit de problematic " +"atunci când interacționați cu alte biblioteci prin intermediul FFI, în cazul în " +"care biblioteca respectivă ar putea depinde de stocarea locală a firelor de " +"execuție sau ar putea fi mapată pe anumite fire de execuție ale sistemului de " +"operare (de exemplu, CUDA). Preferați `tokio::task::spawn_blocking` în astfel " +"de situații." #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy msgid "" -"Use sync mutexes with care. Holding a mutex over an `.await` may cause " -"another task to block, and that task may be running on the same thread." +"Use sync mutexes with care. Holding a mutex over an `.await` may cause another " +"task to block, and that task may be running on the same thread." msgstr "" -"Utilizați mutexurile de sincronizare cu grijă. Menținerea unui mutex peste " -"un `.await` poate provoca blocarea unei alte sarcini, iar acea sarcină poate " -"fi executată pe același fir." +"Utilizați mutexurile de sincronizare cu grijă. Menținerea unui mutex peste un `." +"await` poate provoca blocarea unei alte sarcini, iar acea sarcină poate fi " +"executată pe același fir." #: src/concurrency/async-pitfalls/pin.md #, fuzzy @@ -25670,24 +24240,22 @@ msgid "" "type returned is the result of a compiler transformation which turns local " "variables into data stored inside the future." msgstr "" -"Blocurile și funcțiile asincrone returnează tipuri care implementează " -"trăsătura `Future`. Tipul returnat este rezultatul unei transformări a " -"compilatorului care transformă variabilele locale în date stocate în " -"interiorul viitorului." +"Blocurile și funcțiile asincrone returnează tipuri care implementează trăsătura " +"`Future`. Tipul returnat este rezultatul unei transformări a compilatorului " +"care transformă variabilele locale în date stocate în interiorul viitorului." #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" -"Some of those variables can hold pointers to other local variables. Because " -"of that, the future should never be moved to a different memory location, as " -"it would invalidate those pointers." +"Some of those variables can hold pointers to other local variables. Because of " +"that, the future should never be moved to a different memory location, as it " +"would invalidate those pointers." msgstr "" "Unele dintre aceste variabile pot conține indicatori către alte variabile " "locale. Din acest motiv, viitorul nu ar trebui să fie mutat niciodată într-o " "altă locație de memorie, deoarece aceasta ar invalida acești indicatori." #: src/concurrency/async-pitfalls/pin.md -#, fuzzy msgid "" "To prevent moving the future type in memory, it can only be polled through a " "pinned pointer. `Pin` is a wrapper around a reference that disallows all " @@ -25695,8 +24263,8 @@ msgid "" "location." msgstr "" "Pentru a preveni deplasarea tipului de viitor în memorie, acesta poate fi " -"interogat numai prin intermediul unui pointer fixat. `Pin` este un înveliș " -"în jurul unei referințe care interzice toate operațiunile care ar putea muta " +"interogat numai prin intermediul unui pointer fixat. `Pin` este un container în " +"jurul unei referințe care interzice toate operațiunile care ar putea muta " "instanța la care indică într-o altă locație de memorie." #: src/concurrency/async-pitfalls/pin.md @@ -25720,7 +24288,6 @@ msgid "// Pretend to work.\n" msgstr "// Prefă-te că lucrezi.\n" #: src/concurrency/async-pitfalls/pin.md -#, fuzzy msgid "\"failed to send response\"" msgstr "\"nu a reușit să trimită răspunsul\"" @@ -25742,12 +24309,10 @@ msgid "\"failed to send on work queue\"" msgstr "\"nu a reușit să trimită în coada de lucru\"" #: src/concurrency/async-pitfalls/pin.md -#, fuzzy msgid "\"failed waiting for response\"" -msgstr "\"eșuat în așteptarea răspunsului\"" +msgstr "\"a eșuat în așteptarea răspunsului\"" #: src/concurrency/async-pitfalls/pin.md -#, fuzzy msgid "\"work result for iteration {i}: {resp}\"" msgstr "\"rezultatul muncii pentru iterația {i}: {resp}\"" @@ -25757,14 +24322,14 @@ msgid "" "You may recognize this as an example of the actor pattern. Actors typically " "call `select!` in a loop." msgstr "" -"Este posibil să recunoașteți acest lucru ca fiind un exemplu de model actor. " -"De obicei, actorii apelează `select!` într-o buclă." +"Este posibil să recunoașteți acest lucru ca fiind un exemplu de model actor. De " +"obicei, actorii apelează `select!` într-o buclă." #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" -"This serves as a summation of a few of the previous lessons, so take your " -"time with it." +"This serves as a summation of a few of the previous lessons, so take your time " +"with it." msgstr "" "Aceasta este o rezumare a câtorva dintre lecțiile anterioare, așa că nu vă " "grăbiți cu ea." @@ -25780,8 +24345,7 @@ msgstr "" #: src/concurrency/async-pitfalls/pin.md #, fuzzy -msgid "" -"Instead, add a `timeout_fut` containing that future outside of the `loop`:" +msgid "Instead, add a `timeout_fut` containing that future outside of the `loop`:" msgstr "" "În schimb, adăugați un `timeout_fut` care să conțină acel viitor în afara " "`loop`:" @@ -25790,41 +24354,39 @@ msgstr "" #, fuzzy msgid "" "This still doesn't work. Follow the compiler errors, adding `&mut` to the " -"`timeout_fut` in the `select!` to work around the move, then using `Box::" -"pin`:" +"`timeout_fut` in the `select!` to work around the move, then using `Box::pin`:" msgstr "" -"Acest lucru tot nu funcționează. Urmați erorile compilatorului, adăugând " -"`&mut` la `timeout_fut` în `select!` pentru a evita deplasarea, apoi " -"utilizați `Box::pin`:" +"Acest lucru tot nu funcționează. Urmați erorile compilatorului, adăugând `&mut` " +"la `timeout_fut` în `select!` pentru a evita deplasarea, apoi utilizați `Box::" +"pin`:" #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" "This compiles, but once the timeout expires it is `Poll::Ready` on every " -"iteration (a fused future would help with this). Update to reset " -"`timeout_fut` every time it expires." +"iteration (a fused future would help with this). Update to reset `timeout_fut` " +"every time it expires:" msgstr "" -"Acest lucru se compilează, dar odată ce expiră timpul de așteptare este " -"`Poll::Ready` la fiecare iterație (un viitor fuzionat ar ajuta cu acest " -"lucru). Actualizați pentru a reseta `timeout_fut` de fiecare dată când " -"expiră." +"Acest lucru se compilează, dar odată ce expiră timpul de așteptare este `Poll::" +"Ready` la fiecare iterație (un viitor fuzionat ar ajuta cu acest lucru). " +"Actualizați pentru a reseta `timeout_fut` de fiecare dată când expiră." #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" "Box allocates on the heap. In some cases, `std::pin::pin!` (only recently " -"stabilized, with older code often using `tokio::pin!`) is also an option, " -"but that is difficult to use for a future that is reassigned." +"stabilized, with older code often using `tokio::pin!`) is also an option, but " +"that is difficult to use for a future that is reassigned." msgstr "" -"Box alocă pe heap. În unele cazuri, `std::pin::pin!` (stabilizat doar " -"recent, codul mai vechi folosind adesea `tokio::pin!`) este, de asemenea, o " -"opțiune, dar este dificil de utilizat pentru un viitor care este realocat." +"Box alocă pe heap. În unele cazuri, `std::pin::pin!` (stabilizat doar recent, " +"codul mai vechi folosind adesea `tokio::pin!`) este, de asemenea, o opțiune, " +"dar este dificil de utilizat pentru un viitor care este realocat." #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" -"Another alternative is to not use `pin` at all but spawn another task that " -"will send to a `oneshot` channel every 100ms." +"Another alternative is to not use `pin` at all but spawn another task that will " +"send to a `oneshot` channel every 100ms." msgstr "" "O altă alternativă este să nu folosiți `pin` deloc, ci să generați o altă " "sarcină care va trimite la un canal `oneshot` la fiecare 100ms." @@ -25832,52 +24394,50 @@ msgstr "" #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" -"Data that contains pointers to itself is called self-referential. Normally, " -"the Rust borrow checker would prevent self-referential data from being " -"moved, as the references cannot outlive the data they point to. However, the " -"code transformation for async blocks and functions is not verified by the " -"borrow checker." +"Data that contains pointers to itself is called self-referential. Normally, the " +"Rust borrow checker would prevent self-referential data from being moved, as " +"the references cannot outlive the data they point to. However, the code " +"transformation for async blocks and functions is not verified by the borrow " +"checker." msgstr "" -"Datele care conțin indicatoare către ele însele se numesc autoreferențiale. " -"În mod normal, verificatorul de împrumuturi Rust ar împiedica mutarea " -"datelor autoreferențiale, deoarece referințele nu pot supraviețui datelor la " -"care indică. Cu toate acestea, transformarea codului pentru blocurile și " -"funcțiile asincrone nu este verificată de verificatorul de împrumuturi." +"Datele care conțin indicatoare către ele însele se numesc autoreferențiale. În " +"mod normal, verificatorul de împrumuturi Rust ar împiedica mutarea datelor " +"autoreferențiale, deoarece referințele nu pot supraviețui datelor la care " +"indică. Cu toate acestea, transformarea codului pentru blocurile și funcțiile " +"asincrone nu este verificată de verificatorul de împrumuturi." #: src/concurrency/async-pitfalls/pin.md -#, fuzzy msgid "" -"`Pin` is a wrapper around a reference. An object cannot be moved from its " -"place using a pinned pointer. However, it can still be moved through an " -"unpinned pointer." +"`Pin` is a wrapper around a reference. An object cannot be moved from its place " +"using a pinned pointer. However, it can still be moved through an unpinned " +"pointer." msgstr "" -"`Pin` este un înveliș în jurul unei referințe. Un obiect nu poate fi mutat " -"de la locul său folosind un pointer fixat. Cu toate acestea, el poate fi " -"mutat printr-un pointer nefixat." +"`Pin` este un container în jurul unei referințe. Un obiect nu poate fi mutat de " +"la locul său folosind un pointer fixat. Cu toate acestea, el poate fi mutat " +"printr-un pointer nefixat." #: src/concurrency/async-pitfalls/pin.md #, fuzzy msgid "" -"The `poll` method of the `Future` trait uses `Pin<&mut Self>` instead of " -"`&mut Self` to refer to the instance. That's why it can only be called on a " -"pinned pointer." +"The `poll` method of the `Future` trait uses `Pin<&mut Self>` instead of `&mut " +"Self` to refer to the instance. That's why it can only be called on a pinned " +"pointer." msgstr "" -"Metoda `poll` a trăsăturii `Future` utilizează `Pin<&mut Self>` în loc de " -"`&mut Self` pentru a se referi la instanță. De aceea, poate fi apelată numai " -"pe un pointer fixat." +"Metoda `poll` a trăsăturii `Future` utilizează `Pin<&mut Self>` în loc de `&mut " +"Self` pentru a se referi la instanță. De aceea, poate fi apelată numai pe un " +"pointer fixat." #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy msgid "" -"Async methods in traits are were stabilized only recently, in the 1.75 " -"release. This required support for using return-position `impl Trait` (RPIT) " -"in traits, as the desugaring for `async fn` includes `-> impl Future`." +"Async methods in traits are were stabilized only recently, in the 1.75 release. " +"This required support for using return-position `impl Trait` (RPIT) in traits, " +"as the desugaring for `async fn` includes `-> impl Future`." msgstr "" -"Metodele asincrone din trăsături au fost stabilizate doar recent, în " -"versiunea 1.75. Acest lucru a necesitat suport pentru utilizarea poziției de " -"întoarcere `impl Trait` (RPIT) în traits, deoarece desugrăvirea pentru " -"`async fn` include `-> impl Future`." +"Metodele asincrone din trăsături au fost stabilizate doar recent, în versiunea " +"1.75. Acest lucru a necesitat suport pentru utilizarea poziției de întoarcere " +"`impl Trait` (RPIT) în traits, deoarece desugrăvirea pentru `async fn` include " +"`-> impl Future`." #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy @@ -25885,14 +24445,14 @@ msgid "" "However, even with the native support today there are some pitfalls around " "`async fn` and RPIT in traits:" msgstr "" -"Cu toate acestea, chiar și cu suportul nativ de astăzi, există unele capcane " -"în jurul `async fn` și RPIT în trăsături:" +"Cu toate acestea, chiar și cu suportul nativ de astăzi, există unele capcane în " +"jurul `async fn` și RPIT în trăsături:" #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy msgid "" -"Return-position impl Trait captures all in-scope lifetimes (so some patterns " -"of borrowing cannot be expressed)" +"Return-position impl Trait captures all in-scope lifetimes (so some patterns of " +"borrowing cannot be expressed)" msgstr "" "Return-position impl Trait captează toate duratele de viață din domeniul de " "aplicare (astfel încât unele modele de împrumut nu pot fi exprimate)" @@ -25900,11 +24460,11 @@ msgstr "" #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy msgid "" -"Traits whose methods use return-position `impl trait` or `async` are not " -"`dyn` compatible." +"Traits whose methods use return-position `impl trait` or `async` are not `dyn` " +"compatible." msgstr "" -"Trăsăturile ale căror metode utilizează poziția de returnare `impl trait` " -"sau `async` nu sunt compatibile cu `dyn`." +"Trăsăturile ale căror metode utilizează poziția de returnare `impl trait` sau " +"`async` nu sunt compatibile cu `dyn`." #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy @@ -25917,12 +24477,10 @@ msgstr "" "soluție de rezolvare prin intermediul unei macro:" #: src/concurrency/async-pitfalls/async-traits.md -#, fuzzy msgid "\"running all sleepers..\"" -msgstr "\"alergând toți cei care dorm...\"" +msgstr "\"Rulând toate procesele dormante…\"" #: src/concurrency/async-pitfalls/async-traits.md -#, fuzzy msgid "\"slept for {}ms\"" msgstr "\"adormit pentru {}ms\"" @@ -25933,40 +24491,39 @@ msgid "" "achieve this. This heap allocation has performance overhead." msgstr "" "`async_trait` este ușor de utilizat, dar rețineți că utilizează alocări heap " -"pentru a realiza acest lucru. Această alocare în heap are costuri " -"suplimentare de performanță." +"pentru a realiza acest lucru. Această alocare în heap are costuri suplimentare " +"de performanță." #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy msgid "" -"The challenges in language support for `async trait` are deep Rust and " -"probably not worth describing in-depth. Niko Matsakis did a good job of " -"explaining them in [this post](https://smallcultfollowing.com/babysteps/" -"blog/2019/10/26/async-fn-in-traits-are-hard/) if you are interested in " -"digging deeper." +"The challenges in language support for `async trait` are deep Rust and probably " +"not worth describing in-depth. Niko Matsakis did a good job of explaining them " +"in [this post](https://smallcultfollowing.com/babysteps/blog/2019/10/26/async-" +"fn-in-traits-are-hard/) if you are interested in digging deeper." msgstr "" -"Provocările în ceea ce privește suportul lingvistic pentru `async trait` " -"sunt adânci Rust și probabil nu merită să fie descrise în profunzime. Niko " -"Matsakis a făcut o treabă bună explicându-le în [această postare](https://" -"smallcultfollowing.com/babysteps/blog/2019/10/26/async-fn-in-traits-are-" -"hard/) dacă sunteți interesat să aprofundați." +"Provocările în ceea ce privește suportul lingvistic pentru `async trait` sunt " +"adânci Rust și probabil nu merită să fie descrise în profunzime. Niko Matsakis " +"a făcut o treabă bună explicându-le în [această postare](https://" +"smallcultfollowing.com/babysteps/blog/2019/10/26/async-fn-in-traits-are-hard/) " +"dacă sunteți interesat să aprofundați." #: src/concurrency/async-pitfalls/async-traits.md #, fuzzy msgid "" -"Try creating a new sleeper struct that will sleep for a random amount of " -"time and adding it to the Vec." +"Try creating a new sleeper struct that will sleep for a random amount of time " +"and adding it to the Vec." msgstr "" -"Încercați să creați o nouă structură de somn care va dormi pentru o perioadă " -"de timp aleatorie și adăugați-o la Vec." +"Încercați să creați o nouă structură de somn care va dormi pentru o perioadă de " +"timp aleatorie și adăugați-o la Vec." #: src/concurrency/async-pitfalls/cancellation.md #, fuzzy msgid "" "Dropping a future implies it can never be polled again. This is called " -"_cancellation_ and it can occur at any `await` point. Care is needed to " -"ensure the system works correctly even when futures are cancelled. For " -"example, it shouldn't deadlock or lose data." +"_cancellation_ and it can occur at any `await` point. Care is needed to ensure " +"the system works correctly even when futures are cancelled. For example, it " +"shouldn't deadlock or lose data." msgstr "" "Renunțarea la un viitor implică faptul că acesta nu mai poate fi interogat " "niciodată. Acest lucru se numește _cancellation_ și poate avea loc în orice " @@ -25975,19 +24532,14 @@ msgstr "" "anulate. De exemplu, nu trebuie să se blocheze sau să piardă date." #: src/concurrency/async-pitfalls/cancellation.md -#, fuzzy msgid "\"not UTF-8\"" -msgstr "" -"Șirurile de caractere Rust sunt codificate UTF-8 și pot conține orice " -"caracter Unicode." +msgstr "\"nu este UTF-8\"" #: src/concurrency/async-pitfalls/cancellation.md -#, fuzzy msgid "\"hi\\nthere\\n\"" -msgstr "\"hi\\nthere\\n\"" +msgstr "\"Hey\\ntu\\n\"" #: src/concurrency/async-pitfalls/cancellation.md -#, fuzzy msgid "\"tick!\"" msgstr "\"tic!\"" @@ -25997,15 +24549,14 @@ msgid "" "The compiler doesn't help with cancellation-safety. You need to read API " "documentation and consider what state your `async fn` holds." msgstr "" -"Compilatorul nu vă ajută în ceea ce privește siguranța la anulare. Trebuie " -"să citiți documentația API și să vă gândiți la starea pe care o deține " -"`async fn`." +"Compilatorul nu vă ajută în ceea ce privește siguranța la anulare. Trebuie să " +"citiți documentația API și să vă gândiți la starea pe care o deține `async fn`." #: src/concurrency/async-pitfalls/cancellation.md #, fuzzy msgid "" -"Unlike `panic` and `?`, cancellation is part of normal control flow (vs " -"error-handling)." +"Unlike `panic` and `?`, cancellation is part of normal control flow (vs error-" +"handling)." msgstr "" "Spre deosebire de `panic` și `?`, anularea face parte din fluxul normal de " "control (față de gestionarea erorilor)." @@ -26018,20 +24569,18 @@ msgstr "Exemplul pierde părți din șir." #: src/concurrency/async-pitfalls/cancellation.md #, fuzzy msgid "" -"Whenever the `tick()` branch finishes first, `next()` and its `buf` are " -"dropped." +"Whenever the `tick()` branch finishes first, `next()` and its `buf` are dropped." msgstr "" -"Ori de câte ori ramura `tick()` se termină prima, se renunță la `next()` și " -"la `buf` al acestuia." +"Ori de câte ori ramura `tick()` se termină prima, se renunță la `next()` și la " +"`buf` al acestuia." #: src/concurrency/async-pitfalls/cancellation.md #, fuzzy msgid "" -"`LinesReader` can be made cancellation-safe by making `buf` part of the " -"struct:" +"`LinesReader` can be made cancellation-safe by making `buf` part of the struct:" msgstr "" -"`LinesReader` poate fi securizat împotriva anulării prin includerea lui " -"`buf` în structură:" +"`LinesReader` poate fi securizat împotriva anulării prin includerea lui `buf` " +"în structură:" #: src/concurrency/async-pitfalls/cancellation.md #, fuzzy @@ -26039,29 +24588,26 @@ msgid "// prefix buf and bytes with self.\n" msgstr "// prefixează buf și bytes cu self.\n" #: src/concurrency/async-pitfalls/cancellation.md -#, fuzzy msgid "" "[`Interval::tick`](https://docs.rs/tokio/latest/tokio/time/struct.Interval." -"html#method.tick) is cancellation-safe because it keeps track of whether a " -"tick has been 'delivered'." +"html#method.tick) is cancellation-safe because it keeps track of whether a tick " +"has been 'delivered'." msgstr "" "[`Interval::tick`](https://docs.rs/tokio/latest/tokio/time/struct.Interval." "html#method.tick) este sigur în ceea ce privește anularea, deoarece ține " "evidența dacă un tick a fost \"livrat\"." #: src/concurrency/async-pitfalls/cancellation.md -#, fuzzy msgid "" -"[`AsyncReadExt::read`](https://docs.rs/tokio/latest/tokio/io/trait." -"AsyncReadExt.html#method.read) is cancellation-safe because it either " -"returns or doesn't read data." +"[`AsyncReadExt::read`](https://docs.rs/tokio/latest/tokio/io/trait.AsyncReadExt." +"html#method.read) is cancellation-safe because it either returns or doesn't " +"read data." msgstr "" -"[`AsyncReadExt::read`](https://docs.rs/tokio/latest/tokio/io/trait." -"AsyncReadExt.html#method.read) este sigur în ceea ce privește anularea, " -"deoarece fie returnează, fie nu citește datele." +"[`AsyncReadExt::read`](https://docs.rs/tokio/latest/tokio/io/trait.AsyncReadExt." +"html#method.read) este sigur în ceea ce privește anularea, deoarece fie " +"returnează, fie nu citește datele." #: src/concurrency/async-pitfalls/cancellation.md -#, fuzzy msgid "" "[`AsyncBufReadExt::read_line`](https://docs.rs/tokio/latest/tokio/io/trait." "AsyncBufReadExt.html#method.read_line) is similar to the example and _isn't_ " @@ -26074,20 +24620,19 @@ msgstr "" #: src/concurrency/async-exercises.md #, fuzzy msgid "" -"[Dining Philosophers](./concurrency/async-exercises/dining-philosophers.md) " -"(20 minutes)" +"[Dining Philosophers](./concurrency/async-exercises/dining-philosophers.md) (20 " +"minutes)" msgstr "" -"[Dining Philosophers](./concurrency/async-exercises/dining-philosophers.md) " -"(20 minute)" +"[Dining Philosophers](./concurrency/async-exercises/dining-philosophers.md) (20 " +"minute)" #: src/concurrency/async-exercises.md -#, fuzzy msgid "" "[Broadcast Chat Application](./concurrency/async-exercises/chat-app.md) (30 " "minutes)" msgstr "" -"[Aplicație de chat cu difuzare](./concurrency/async-exercises/chat-app.md) " -"(30 minute)" +"[Aplicație de chat cu difuzare](./concurrency/async-exercises/chat-app.md) (30 " +"minute)" #: src/concurrency/async-exercises.md #, fuzzy @@ -26103,8 +24648,8 @@ msgstr "Filozofii care mănâncă - Async" #: src/concurrency/async-exercises/dining-philosophers.md #, fuzzy msgid "" -"See [dining philosophers](dining-philosophers.md) for a description of the " -"problem." +"See [dining philosophers](../sync-exercises/dining-philosophers.md) for a " +"description of the problem." msgstr "" "Vezi [dining philosophers](dining-philosophers.md) pentru o descriere a " "problemei." @@ -26113,8 +24658,8 @@ msgstr "" #, fuzzy msgid "" "As before, you will need a local [Cargo installation](../../cargo/running-" -"locally.md) for this exercise. Copy the code below to a file called `src/" -"main.rs`, fill out the blanks, and test that `cargo run` does not deadlock:" +"locally.md) for this exercise. Copy the code below to a file called `src/main." +"rs`, fill out the blanks, and test that `cargo run` does not deadlock:" msgstr "" "Ca și înainte, veți avea nevoie de o [instalare Cargo] locală (../../cargo/" "running-locally.md) pentru acest exercițiu. Copiați codul de mai jos într-un " @@ -26136,11 +24681,11 @@ msgstr "// Fă-i să gândească și să mănânce\n" #: src/concurrency/async-exercises/dining-philosophers.md #, fuzzy msgid "" -"Since this time you are using Async Rust, you'll need a `tokio` dependency. " -"You can use the following `Cargo.toml`:" +"Since this time you are using Async Rust, you'll need a `tokio` dependency. You " +"can use the following `Cargo.toml`:" msgstr "" -"Deoarece de data aceasta folosiți Async Rust, veți avea nevoie de o " -"dependență `tokio`. Puteți utiliza următorul `Cargo.toml`:" +"Deoarece de data aceasta folosiți Async Rust, veți avea nevoie de o dependență " +"`tokio`. Puteți utiliza următorul `Cargo.toml`:" #: src/concurrency/async-exercises/dining-philosophers.md #, fuzzy @@ -26163,18 +24708,18 @@ msgstr "" "edition = \"2021\"\n" "\n" "[dependențe]\n" -"tokio = {version = \"1.26.0\", features = [\"sync\", \"time\", \"macros\", " -"\"rt-multi-thread\"]}\n" +"tokio = {version = \"1.26.0\", features = [\"sync\", \"time\", \"macros\", \"rt-" +"multi-thread\"]}\n" "```" #: src/concurrency/async-exercises/dining-philosophers.md #, fuzzy msgid "" -"Also note that this time you have to use the `Mutex` and the `mpsc` module " -"from the `tokio` crate." +"Also note that this time you have to use the `Mutex` and the `mpsc` module from " +"the `tokio` crate." msgstr "" -"De asemenea, rețineți că de data aceasta trebuie să folosiți modulele " -"`Mutex` și `mpsc` de la `tokio` crate." +"De asemenea, rețineți că de data aceasta trebuie să folosiți modulele `Mutex` " +"și `mpsc` de la `tokio` crate." #: src/concurrency/async-exercises/dining-philosophers.md #, fuzzy @@ -26185,10 +24730,10 @@ msgstr "Poți face ca implementarea ta să fie cu un singur fir de execuție?" #, fuzzy msgid "" "In this exercise, we want to use our new knowledge to implement a broadcast " -"chat application. We have a chat server that the clients connect to and " -"publish their messages. The client reads user messages from the standard " -"input, and sends them to the server. The chat server broadcasts each message " -"that it receives to all the clients." +"chat application. We have a chat server that the clients connect to and publish " +"their messages. The client reads user messages from the standard input, and " +"sends them to the server. The chat server broadcasts each message that it " +"receives to all the clients." msgstr "" "În acest exercițiu, dorim să folosim noile noastre cunoștințe pentru a " "implementa o aplicație de chat cu difuzare. Avem un server de chat la care " @@ -26199,15 +24744,14 @@ msgstr "" #: src/concurrency/async-exercises/chat-app.md #, fuzzy msgid "" -"For this, we use [a broadcast channel](https://docs.rs/tokio/latest/tokio/" -"sync/broadcast/fn.channel.html) on the server, and [`tokio_websockets`]" -"(https://docs.rs/tokio-websockets/) for the communication between the client " -"and the server." +"For this, we use [a broadcast channel](https://docs.rs/tokio/latest/tokio/sync/" +"broadcast/fn.channel.html) on the server, and [`tokio_websockets`](https://docs." +"rs/tokio-websockets/) for the communication between the client and the server." msgstr "" "Pentru aceasta, folosim [un canal de difuzare](https://docs.rs/tokio/latest/" -"tokio/sync/broadcast/fn.channel.html) pe server și [`tokio_websockets`]" -"(https://docs.rs/tokio-websockets/0.4.0/tokio_websockets/) pentru " -"comunicarea dintre client și server." +"tokio/sync/broadcast/fn.channel.html) pe server și [`tokio_websockets`](https://" +"docs.rs/tokio-websockets/0.4.0/tokio_websockets/) pentru comunicarea dintre " +"client și server." #: src/concurrency/async-exercises/chat-app.md #, fuzzy @@ -26230,9 +24774,9 @@ msgid "" "[dependencies]\n" "futures-util = { version = \"0.3.30\", features = [\"sink\"] }\n" "http = \"1.1.0\"\n" -"tokio = { version = \"1.37.0\", features = [\"full\"] }\n" -"tokio-websockets = { version = \"0.8.2\", features = [\"client\", " -"\"fastrand\", \"server\", \"sha1_smol\"] }\n" +"tokio = { version = \"1.40.0\", features = [\"full\"] }\n" +"tokio-websockets = { version = \"0.9.0\", features = [\"client\", \"fastrand\", " +"\"server\", \"sha1_smol\"] }\n" "```" msgstr "" "```toml\n" @@ -26245,8 +24789,8 @@ msgstr "" "futures-util = { version = \"0.3.28\", features = [\"sink\"]] }\n" "http = \"0.2.9\"\n" "tokio = { version = \"1.28.1\", features = [\"full\"]] }\n" -"tokio-websockets = { version = \"0.4.0\", features = [\"client\", " -"\"fastrand\", \"server\", \"sha1_smol\"] } }\n" +"tokio-websockets = { version = \"0.4.0\", features = [\"client\", \"fastrand\", " +"\"server\", \"sha1_smol\"] } }\n" "```" #: src/concurrency/async-exercises/chat-app.md @@ -26257,8 +24801,8 @@ msgstr "API-urile necesare" #, fuzzy msgid "" "You are going to need the following functions from `tokio` and " -"[`tokio_websockets`](https://docs.rs/tokio-websockets/). Spend a few minutes " -"to familiarize yourself with the API." +"[`tokio_websockets`](https://docs.rs/tokio-websockets/). Spend a few minutes to " +"familiarize yourself with the API." msgstr "" "Veți avea nevoie de următoarele funcții din `tokio` și [`tokio_websockets`]" "(https://docs.rs/tokio-websockets/0.4.0/tokio_websockets/). Petreceți câteva " @@ -26278,13 +24822,13 @@ msgstr "" #: src/concurrency/async-exercises/chat-app.md #, fuzzy msgid "" -"[SinkExt::send()](https://docs.rs/futures-util/0.3.28/futures_util/sink/" -"trait.SinkExt.html#method.send) implemented by `WebSocketStream`: for " -"asynchronously sending messages on a Websocket Stream." +"[SinkExt::send()](https://docs.rs/futures-util/0.3.28/futures_util/sink/trait." +"SinkExt.html#method.send) implemented by `WebSocketStream`: for asynchronously " +"sending messages on a Websocket Stream." msgstr "" -"[SinkExt::send()](https://docs.rs/futures-util/0.3.28/futures_util/sink/" -"trait.SinkExt.html#method.send) implementat de `WebsocketStream`: pentru " -"trimiterea asincronă de mesaje pe un flux Websocket." +"[SinkExt::send()](https://docs.rs/futures-util/0.3.28/futures_util/sink/trait." +"SinkExt.html#method.send) implementat de `WebsocketStream`: pentru trimiterea " +"asincronă de mesaje pe un flux Websocket." #: src/concurrency/async-exercises/chat-app.md #, fuzzy @@ -26294,18 +24838,17 @@ msgid "" "standard input." msgstr "" "[Lines::next_line()](https://docs.rs/tokio/latest/tokio/io/struct.Lines." -"html#method.next_line): pentru citirea asincronă a mesajelor utilizatorului " -"de la intrarea standard." +"html#method.next_line): pentru citirea asincronă a mesajelor utilizatorului de " +"la intrarea standard." #: src/concurrency/async-exercises/chat-app.md #, fuzzy msgid "" -"[Sender::subscribe()](https://docs.rs/tokio/latest/tokio/sync/broadcast/" -"struct.Sender.html#method.subscribe): for subscribing to a broadcast channel." +"[Sender::subscribe()](https://docs.rs/tokio/latest/tokio/sync/broadcast/struct." +"Sender.html#method.subscribe): for subscribing to a broadcast channel." msgstr "" -"[Sender::subscribe()](https://docs.rs/tokio/latest/tokio/sync/broadcast/" -"struct.Sender.html#method.subscribe): pentru abonarea la un canal de " -"difuzare." +"[Sender::subscribe()](https://docs.rs/tokio/latest/tokio/sync/broadcast/struct." +"Sender.html#method.subscribe): pentru abonarea la un canal de difuzare." #: src/concurrency/async-exercises/chat-app.md msgid "Two binaries" @@ -26316,25 +24859,25 @@ msgid "" "Normally in a Cargo project, you can have only one binary, and one `src/main." "rs` file. In this project, we need two binaries. One for the client, and one " "for the server. You could potentially make them two separate Cargo projects, " -"but we are going to put them in a single Cargo project with two binaries. " -"For this to work, the client and the server code should go under `src/bin` " -"(see the [documentation](https://doc.rust-lang.org/cargo/reference/cargo-" -"targets.html#binaries))." -msgstr "" -"În mod normal, într-un proiect Cargo, puteți avea un singur fișier binar și " -"un singur fișier `src/main.rs`. În acest proiect, avem nevoie de două " -"fișiere binare. Unul pentru client și unul pentru server. Ați putea eventual " -"să le faceți două proiecte Cargo separate, dar noi le vom pune într-un " -"singur proiect Cargo cu două binare. Pentru ca acest lucru să funcționeze, " -"codul clientului și cel al serverului trebuie să se regăsească în `src/bin` " -"(a se vedea [documentation](https://doc.rust-lang.org/cargo/reference/cargo-" -"targets.html#binaries))." +"but we are going to put them in a single Cargo project with two binaries. For " +"this to work, the client and the server code should go under `src/bin` (see the " +"[documentation](https://doc.rust-lang.org/cargo/reference/cargo-targets." +"html#binaries))." +msgstr "" +"În mod normal, într-un proiect Cargo, puteți avea un singur fișier binar și un " +"singur fișier `src/main.rs`. În acest proiect, avem nevoie de două fișiere " +"binare. Unul pentru client și unul pentru server. Ați putea eventual să le " +"faceți două proiecte Cargo separate, dar noi le vom pune într-un singur proiect " +"Cargo cu două binare. Pentru ca acest lucru să funcționeze, codul clientului și " +"cel al serverului trebuie să se regăsească în `src/bin` (a se vedea " +"[documentation](https://doc.rust-lang.org/cargo/reference/cargo-targets." +"html#binaries))." #: src/concurrency/async-exercises/chat-app.md msgid "" -"Copy the following server and client code into `src/bin/server.rs` and `src/" -"bin/client.rs`, respectively. Your task is to complete these files as " -"described below." +"Copy the following server and client code into `src/bin/server.rs` and `src/bin/" +"client.rs`, respectively. Your task is to complete these files as described " +"below." msgstr "" "Copiați următorul cod server și client în `src/bin/server.rs` și, respectiv, " "`src/bin/client.rs`. Sarcina dumneavoastră este de a completa aceste fișiere " @@ -26347,8 +24890,7 @@ msgstr "_src/bin/server.rs_:" #: src/concurrency/async-exercises/chat-app.md msgid "// TODO: For a hint, see the description of the task below.\n" -msgstr "" -"// TODO: Pentru un indiciu, consultați descrierea sarcinii de mai jos.\n" +msgstr "// TODO: Pentru un indiciu, consultați descrierea sarcinii de mai jos.\n" #: src/concurrency/async-exercises/chat-app.md #: src/concurrency/async-exercises/solutions.md @@ -26402,9 +24944,9 @@ msgid "" "continuous loop. One task receives messages from the client and broadcasts " "them. The other sends messages received by the server to the client." msgstr "" -"Indicație: Folosiți `tokio::select!` pentru a efectua concomitent două " -"sarcini într-o buclă continuă. O sarcină primește mesaje de la client și le " -"difuzează. Cealaltă trimite mesajele primite de server către client." +"Indicație: Folosiți `tokio::select!` pentru a efectua concomitent două sarcini " +"într-o buclă continuă. O sarcină primește mesaje de la client și le difuzează. " +"Cealaltă trimite mesajele primite de server către client." #: src/concurrency/async-exercises/chat-app.md msgid "Complete the main function in `src/bin/client.rs`." @@ -26413,41 +24955,38 @@ msgstr "Completați funcția principală din `src/bin/client.rs`." #: src/concurrency/async-exercises/chat-app.md msgid "" "Hint: As before, use `tokio::select!` in a continuous loop for concurrently " -"performing two tasks: (1) reading user messages from standard input and " -"sending them to the server, and (2) receiving messages from the server, and " -"displaying them for the user." +"performing two tasks: (1) reading user messages from standard input and sending " +"them to the server, and (2) receiving messages from the server, and displaying " +"them for the user." msgstr "" "Sugestie: Ca și înainte, utilizați `tokio::select!` într-o buclă continuă " -"pentru a efectua concomitent două sarcini: (1) citirea mesajelor " -"utilizatorului de la intrarea standard și trimiterea lor la server și (2) " -"primirea mesajelor de la server și afișarea lor pentru utilizator." +"pentru a efectua concomitent două sarcini: (1) citirea mesajelor utilizatorului " +"de la intrarea standard și trimiterea lor la server și (2) primirea mesajelor " +"de la server și afișarea lor pentru utilizator." #: src/concurrency/async-exercises/chat-app.md msgid "" "Optional: Once you are done, change the code to broadcast messages to all " "clients, but the sender of the message." msgstr "" -"Opțional: După ce ați terminat, modificați codul pentru a difuza mesajele " -"către toți clienții, cu excepția expeditorului mesajului." +"Opțional: După ce ați terminat, modificați codul pentru a difuza mesajele către " +"toți clienții, cu excepția expeditorului mesajului." #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "" "// If we didn't get the left fork, drop the right fork if we\n" " // have it and let other tasks make progress.\n" msgstr "" -"// Dacă nu am primit furculița din stânga, renunțăm la furculița din " -"dreapta, dacă avem\n" +"// Dacă nu am primit furculița din stânga, renunțăm la furculița din dreapta,\n" " // o avem și lăsăm celelalte sarcini să progreseze.\n" #: src/concurrency/async-exercises/solutions.md -#, fuzzy msgid "" "// If we didn't get the right fork, drop the left fork and let\n" " // other tasks make progress.\n" msgstr "" -"// Dacă nu am primit furculița din dreapta, renunțăm la furculița din stânga " -"și lăsăm\n" +"// Dacă nu am primit furculița din dreapta, renunțăm la furculița din stânga și " +"lăsăm\n" " // alte sarcini să progreseze.\n" #: src/concurrency/async-exercises/solutions.md @@ -26458,12 +24997,12 @@ msgstr "// Încuietorile sunt aruncate aici\n" #: src/concurrency/async-exercises/solutions.md msgid "// tx is dropped here, so we don't need to explicitly drop it later\n" msgstr "" -"// tx este abandonat aici, așa că nu este nevoie să îl abandonăm explicit " -"mai târziu\n" +"// tx este abandonat aici, așa că nu este nevoie să îl abandonăm explicit mai " +"târziu\n" #: src/concurrency/async-exercises/solutions.md msgid "\"Here is a thought: {thought}\"" -msgstr "\"Iată un idee: {thought}\"" +msgstr "\"Iată o idee: {thought}\"" #: src/concurrency/async-exercises/solutions.md msgid "\"Welcome to chat! Type a message\"" @@ -26493,28 +25032,28 @@ msgstr "\"De la server: {}\"" #: src/thanks.md msgid "" -"_Thank you for taking Comprehensive Rust 🦀!_ We hope you enjoyed it and " -"that it was useful." +"_Thank you for taking Comprehensive Rust 🦀!_ We hope you enjoyed it and that " +"it was useful." msgstr "" -"vă mulțumim că ați parcurs Comprehensive Rust 🦀!_ Sperăm că v-a plăcut și " -"că a fost util." +"Vă mulțumim că ați parcurs Comprehensive Rust 🦀!_ Sperăm că v-a plăcut și că a " +"fost util." #: src/thanks.md msgid "" -"We've had a lot of fun putting the course together. The course is not " -"perfect, so if you spotted any mistakes or have ideas for improvements, " -"please get in [contact with us on GitHub](https://github.com/google/" -"comprehensive-rust/discussions). We would love to hear from you." +"We've had a lot of fun putting the course together. The course is not perfect, " +"so if you spotted any mistakes or have ideas for improvements, please get in " +"[contact with us on GitHub](https://github.com/google/comprehensive-rust/" +"discussions). We would love to hear from you." msgstr "" "Cursul nu este perfect, așa că, dacă ați observat greșeli sau aveți idei de " -"îmbunătățire, vă rugăm să ne [contactați pe GitHub](https://github.com/" -"google/comprehensive-rust/discussions)." +"îmbunătățire, vă rugăm să ne [contactați pe GitHub](https://github.com/google/" +"comprehensive-rust/discussions)." #: src/glossary.md msgid "" -"The following is a glossary which aims to give a short definition of many " -"Rust terms. For translations, this also serves to connect the term back to " -"the English original." +"The following is a glossary which aims to give a short definition of many Rust " +"terms. For translations, this also serves to connect the term back to the " +"English original." msgstr "" "Următorul glosar își propune să ofere o scurtă definiție a numeroși termeni " "Rust. În cazul traducerilor, acesta servește, de asemenea, pentru a face " @@ -26523,10 +25062,10 @@ msgstr "" #: src/glossary.md msgid "" "allocate: \n" -"Dynamic memory allocation on [the heap](memory-management/stack-vs-heap.md)." +"Dynamic memory allocation on [the heap](memory-management/review.md)." msgstr "" "alocare: \n" -"Alocarea dinamică a memoriei pe [heap](memory-management/stack-vs-heap.md)." +"Alocarea dinamică a memoriei pe [heap](memory-management/review.md)." #: src/glossary.md msgid "" @@ -26536,6 +25075,16 @@ msgstr "" "argument:\n" "Informații care sunt transmise într-o funcție sau metodă." +#: src/glossary.md +msgid "" +"associated type: \n" +"A type associated with a specific trait. Useful for defining the relationship " +"between types." +msgstr "" +"tip asociat: \n" +"Un tip asociat cu o trăsătură specifică. Util pentru definirea relației dintre " +"tipuri." + #: src/glossary.md msgid "" "Bare-metal Rust: \n" @@ -26543,24 +25092,25 @@ msgid "" "system. See [Bare-metal Rust](bare-metal.md)." msgstr "" "Bare-metal Rust:\n" -"Dezvoltare Rust de nivel scăzut, adesea implementată pe un sistem fără " -"sistem de operare. A se vedea [Bare-metal Rust](bare-metal.md)." +"Dezvoltare Rust de nivel scăzut, adesea implementată pe un sistem fără sistem " +"de operare. A se vedea [Bare-metal Rust](bare-metal.md)." #: src/glossary.md msgid "" "block: \n" -"See [Blocks](control-flow/blocks.md) and _scope_." +"See [Blocks](control-flow-basics/blocks-and-scopes.md) and _scope_." msgstr "" "bloc:\n" -"A se vedea [Blocuri](control-flow/blocks.md) și _scope_." +"A se vedea [Blocuri](control-flow-basics/blocks-and-scopes.md) și _domeniu de " +"aplicare_." #: src/glossary.md msgid "" "borrow: \n" -"See [Borrowing](ownership/borrowing.md)." +"See [Borrowing](borrowing/shared.md)." msgstr "" "împrumut (borrow):\n" -"A se vedea [Împrumut](ownership/borrowing.md)." +"A se vedea [Împrumut](borrowing/shared.md)." #: src/glossary.md msgid "" @@ -26582,8 +25132,7 @@ msgstr "" #: src/glossary.md msgid "" "build: \n" -"The process of converting source code into executable code or a usable " -"program." +"The process of converting source code into executable code or a usable program." msgstr "" "construire: \n" "Procesul de conversie a codului sursă în cod executabil sau într-un program " @@ -26612,7 +25161,7 @@ msgid "" "The courses here are jointly called Comprehensive Rust 🦀." msgstr "" "Comprehensive Rust 🦀:\n" -"Cursurile de aici se numesc în comun Fundamentele Rust 🦀." +"Cursurile de aici se numesc Fundamentele Rust 🦀." #: src/glossary.md msgid "" @@ -26625,10 +25174,10 @@ msgstr "" #: src/glossary.md msgid "" "Concurrency in Rust: \n" -"See [Concurrency in Rust](concurrency.md)." +"See [Concurrency in Rust](concurrency/welcome.md)." msgstr "" "Concurența în Rust:\n" -"A se vedea [Concurența în Rust](concurrency.md)." +"A se vedea [Concurența în Rust](concurrency/welcome.md)." #: src/glossary.md msgid "" @@ -26641,12 +25190,12 @@ msgstr "" #: src/glossary.md msgid "" "control flow: \n" -"The order in which the individual statements or instructions are executed in " -"a program." +"The order in which the individual statements or instructions are executed in a " +"program." msgstr "" "fluxul de control: \n" -"Ordinea în care sunt executate instrucțiunile sau declarațiile individuale " -"într-un program." +"Ordinea în care sunt executate instrucțiunile sau declarațiile individuale într-" +"un program." #: src/glossary.md msgid "" @@ -26663,8 +25212,8 @@ msgid "" "associated tuple or struct." msgstr "" "enumerare (enumeration):\n" -"Un tip de date care conține una dintre mai multe constante numite, eventual " -"cu un tupluplu sau o structură asociată." +"Un tip de date care conține una dintre mai multe constante numite, eventual cu " +"un tupluplu sau o structură asociată." #: src/glossary.md msgid "" @@ -26682,8 +25231,8 @@ msgid "" "execution." msgstr "" "gestionarea erorilor:\n" -"Procesul de gestionare și de răspuns la erorile care apar în timpul " -"execuției programului." +"Procesul de gestionare și de răspuns la erorile care apar în timpul execuției " +"programului." #: src/glossary.md msgid "" @@ -26705,18 +25254,18 @@ msgstr "" #: src/glossary.md msgid "" "garbage collector: \n" -"A mechanism that automatically frees up memory occupied by objects that are " -"no longer in use." +"A mechanism that automatically frees up memory occupied by objects that are no " +"longer in use." msgstr "" "colector de gunoi (garbage collector):\n" -"Un mecanism care eliberează automat memoria ocupată de obiecte care nu mai " -"sunt utilizate." +"Un mecanism care eliberează automat memoria ocupată de obiecte care nu mai sunt " +"utilizate." #: src/glossary.md msgid "" "generics: \n" -"A feature that allows writing code with placeholders for types, enabling " -"code reuse with different data types." +"A feature that allows writing code with placeholders for types, enabling code " +"reuse with different data types." msgstr "" "generice (generics): \n" "O caracteristică care permite scrierea de cod cu caractere de substituție " @@ -26761,15 +25310,15 @@ msgstr "" #: src/glossary.md msgid "" "macro: \n" -"Rust macros can be recognized by a `!` in the name. Macros are used when " -"normal functions are not enough. A typical example is `format!`, which takes " -"a variable number of arguments, which isn't supported by Rust functions." +"Rust macros can be recognized by a `!` in the name. Macros are used when normal " +"functions are not enough. A typical example is `format!`, which takes a " +"variable number of arguments, which isn't supported by Rust functions." msgstr "" "macro: \n" "Macro-urile Rust pot fi recunoscute prin introducerea unui `!` în nume. " -"Macrogramele sunt utilizate atunci când funcțiile normale nu sunt " -"suficiente. Un exemplu tipic este `format!`, care acceptă un număr variabil " -"de argumente, ceea ce nu este acceptat de funcțiile Rust." +"Macrogramele sunt utilizate atunci când funcțiile normale nu sunt suficiente. " +"Un exemplu tipic este `format!`, care acceptă un număr variabil de argumente, " +"ceea ce nu este acceptat de funcțiile Rust." #: src/glossary.md msgid "" @@ -26782,22 +25331,22 @@ msgstr "" #: src/glossary.md msgid "" "match: \n" -"A control flow construct in Rust that allows for pattern matching on the " -"value of an expression." +"A control flow construct in Rust that allows for pattern matching on the value " +"of an expression." msgstr "" "potrivire (match):\n" "O construcție a fluxului de control din Rust care permite potrivirea de " -"tipare pe valoarea unei expresii." +"șabloane pe valoarea unei expresii." #: src/glossary.md msgid "" "memory leak: \n" -"A situation where a program fails to release memory that is no longer " -"needed, leading to a gradual increase in memory usage." +"A situation where a program fails to release memory that is no longer needed, " +"leading to a gradual increase in memory usage." msgstr "" "scurgere de memorie (memory leak):\n" -"O situație în care un program nu reușește să elibereze memoria care nu mai " -"este necesară, ceea ce duce la o creștere treptată a utilizării memoriei." +"O situație în care un program nu reușește să elibereze memoria care nu mai este " +"necesară, ceea ce duce la o creștere treptată a utilizării memoriei." #: src/glossary.md msgid "" @@ -26810,8 +25359,8 @@ msgstr "" #: src/glossary.md msgid "" "module: \n" -"A namespace that contains definitions, such as functions, types, or traits, " -"to organize code in Rust." +"A namespace that contains definitions, such as functions, types, or traits, to " +"organize code in Rust." msgstr "" "modul: \n" "Un spațiu de nume care conține definiții, cum ar fi funcții, tipuri sau " @@ -26832,8 +25381,8 @@ msgid "" "declared." msgstr "" "mutabil:\n" -"O proprietate din Rust care permite variabilelor să fie modificate după ce " -"au fost declarate." +"O proprietate din Rust care permite variabilelor să fie modificate după ce au " +"fost declarate." #: src/glossary.md msgid "" @@ -26842,14 +25391,14 @@ msgid "" "managing the memory associated with a value." msgstr "" "posesia (ownership):\n" -"Conceptul din Rust care definește ce parte a codului este responsabilă " -"pentru gestionarea memoriei asociate cu o valoare." +"Conceptul din Rust care definește ce parte a codului este responsabilă pentru " +"gestionarea memoriei asociate cu o valoare." #: src/glossary.md msgid "" "panic: \n" -"An unrecoverable error condition in Rust that results in the termination of " -"the program." +"An unrecoverable error condition in Rust that results in the termination of the " +"program." msgstr "" "panică:\n" "O stare de eroare irecuperabilă în Rust care duce la terminarea programului." @@ -26866,8 +25415,8 @@ msgstr "" #: src/glossary.md msgid "" "pattern: \n" -"A combination of values, literals, or structures that can be matched against " -"an expression in Rust." +"A combination of values, literals, or structures that can be matched against an " +"expression in Rust." msgstr "" "șablon (pattern):\n" "O combinație de valori, literali sau structuri care pot fi comparate cu o " @@ -26885,12 +25434,12 @@ msgstr "" #: src/glossary.md msgid "" "program: \n" -"A set of instructions that a computer can execute to perform a specific task " -"or solve a particular problem." +"A set of instructions that a computer can execute to perform a specific task or " +"solve a particular problem." msgstr "" "program: \n" -"Un set de instrucțiuni pe care un computer le poate executa pentru a " -"îndeplini o anumită sarcină sau pentru a rezolva o anumită problemă." +"Un set de instrucțiuni pe care un computer le poate executa pentru a îndeplini " +"o anumită sarcină sau pentru a rezolva o anumită problemă." #: src/glossary.md msgid "" @@ -26898,14 +25447,14 @@ msgid "" "A formal system used to communicate instructions to a computer, such as Rust." msgstr "" "limbaj de programare: \n" -"Un sistem formal utilizat pentru a comunica instrucțiuni unui calculator, " -"cum ar fi Rust." +"Un sistem formal utilizat pentru a comunica instrucțiuni unui calculator, cum " +"ar fi Rust." #: src/glossary.md msgid "" "receiver: \n" -"The first parameter in a Rust method that represents the instance on which " -"the method is called." +"The first parameter in a Rust method that represents the instance on which the " +"method is called." msgstr "" "receptor:\n" "Primul parametru dintr-o metodă Rust care reprezintă instanța asupra căreia " @@ -26914,12 +25463,12 @@ msgstr "" #: src/glossary.md msgid "" "reference counting: \n" -"A memory management technique in which the number of references to an object " -"is tracked, and the object is deallocated when the count reaches zero." +"A memory management technique in which the number of references to an object is " +"tracked, and the object is deallocated when the count reaches zero." msgstr "" "numărarea referințelor:\n" -"O tehnică de gestionare a memoriei în care se urmărește numărul de referințe " -"la un obiect, iar obiectul este dezalocat atunci când numărul ajunge la zero." +"O tehnică de gestionare a memoriei în care se urmărește numărul de referințe la " +"un obiect, iar obiectul este dealocat atunci când numărul ajunge la zero." #: src/glossary.md msgid "" @@ -26941,13 +25490,12 @@ msgstr "" "performanță și concurență." #: src/glossary.md -#, fuzzy msgid "" "Rust Fundamentals: \n" "Days 1 to 4 of this course." msgstr "" "Noțiuni fundamentale ale Rust:\n" -"Zilele 1 - 3 ale acestui curs." +"Zilele 1 - 4 ale acestui curs." #: src/glossary.md msgid "" @@ -26968,12 +25516,12 @@ msgstr "" #: src/glossary.md msgid "" "safe: \n" -"Refers to code that adheres to Rust's ownership and borrowing rules, " -"preventing memory-related errors." +"Refers to code that adheres to Rust's ownership and borrowing rules, preventing " +"memory-related errors." msgstr "" "sigur (safe): \n" -"Se referă la codul care respectă regulile de proprietate și împrumut ale " -"Rust, prevenind erorile legate de memorie." +"Se referă la codul care respectă regulile de proprietate și împrumut ale Rust, " +"prevenind erorile legate de memorie." #: src/glossary.md msgid "" @@ -26981,8 +25529,7 @@ msgid "" "The region of a program where a variable is valid and can be used." msgstr "" "domeniul de aplicare: \n" -"Regiunea unui program în care o variabilă este valabilă și poate fi " -"utilizată." +"Regiunea unui program în care o variabilă este valabilă și poate fi utilizată." #: src/glossary.md msgid "" @@ -26993,47 +25540,42 @@ msgstr "" "O colecție de module care oferă funcționalități esențiale în Rust." #: src/glossary.md -#, fuzzy msgid "" "static: \n" "A keyword in Rust used to define static variables or items with a `'static` " "lifetime." msgstr "" "static:\n" -"Un cuvânt cheie din Rust folosit pentru a defini variabile statice sau " -"elemente cu o durată de viață `'static`'." +"Un cuvânt cheie din Rust folosit pentru a defini variabile statice sau elemente " +"cu o durată de viață `'statică`'." #: src/glossary.md -#, fuzzy msgid "" "string: \n" -"A data type storing textual data. See [`String` vs `str`](basic-syntax/" -"string-slices.html) for more." +"A data type storing textual data. See [Strings](references/strings.html) for " +"more." msgstr "" "șir:\n" "Un tip de date care stochează date textuale. Consultați [`String` vs `str`]" -"(basic-syntax/string-slices.html) pentru mai multe informații." +"(references/strings.html) pentru mai multe informații." #: src/glossary.md -#, fuzzy msgid "" "struct: \n" -"A composite data type in Rust that groups together variables of different " -"types under a single name." +"A composite data type in Rust that groups together variables of different types " +"under a single name." msgstr "" "struct: \n" -"Un tip de date compozit în Rust care grupează variabile de diferite tipuri " -"sub un singur nume." +"Un tip de date compozit în Rust care grupează variabile de diferite tipuri sub " +"un singur nume." #: src/glossary.md msgid "" "test: \n" -"A Rust module containing functions that test the correctness of other " -"functions." +"A Rust module containing functions that test the correctness of other functions." msgstr "" "test:\n" -"Un modul Rust care conține funcții care testează corectitudinea altor " -"funcții." +"Un modul Rust care conține funcții care testează corectitudinea altor funcții." #: src/glossary.md msgid "" @@ -27041,8 +25583,7 @@ msgid "" "A separate sequence of execution in a program, allowing concurrent execution." msgstr "" "fir de execuție:\n" -"O secvență separată de execuție într-un program, permițând executarea " -"simultană." +"O secvență separată de execuție într-un program, permițând executarea simultană." #: src/glossary.md msgid "" @@ -27051,19 +25592,18 @@ msgid "" "environment." msgstr "" "siguranța firelor de execuție:\n" -"Proprietatea unui program care asigură un comportament corect într-un mediu " -"cu mai multe fire de execuție." +"Proprietatea unui program care asigură un comportament corect într-un mediu cu " +"mai multe fire de execuție." #: src/glossary.md -#, fuzzy msgid "" "trait: \n" -"A collection of methods defined for an unknown type, providing a way to " -"achieve polymorphism in Rust." +"A collection of methods defined for an unknown type, providing a way to achieve " +"polymorphism in Rust." msgstr "" "trăsătură:\n" -"O colecție de metode definite pentru un tip necunoscut, oferind o modalitate " -"de a realiza polimorfismul în Rust." +"O colecție de metode definite pentru un tip necunoscut, oferind o modalitate de " +"a realiza polimorfismul în Rust." #: src/glossary.md msgid "" @@ -27078,8 +25618,8 @@ msgstr "" #: src/glossary.md msgid "" "tuple: \n" -"A composite data type that contains variables of different types. Tuple " -"fields have no names, and are accessed by their ordinal numbers." +"A composite data type that contains variables of different types. Tuple fields " +"have no names, and are accessed by their ordinal numbers." msgstr "" "tuplu: \n" "Un tip de date compozit care conține variabile de diferite tipuri. Câmpurile " @@ -27088,8 +25628,8 @@ msgstr "" #: src/glossary.md msgid "" "type: \n" -"A classification that specifies which operations can be performed on values " -"of a particular kind in Rust." +"A classification that specifies which operations can be performed on values of " +"a particular kind in Rust." msgstr "" "tip: \n" "O clasificare care specifică ce operații pot fi efectuate asupra valorilor " @@ -27098,22 +25638,20 @@ msgstr "" #: src/glossary.md msgid "" "type inference: \n" -"The ability of the Rust compiler to deduce the type of a variable or " -"expression." +"The ability of the Rust compiler to deduce the type of a variable or expression." msgstr "" "inferența de tip: \n" -"Capacitatea compilatorului Rust de a deduce tipul unei variabile sau " -"expresii." +"Capacitatea compilatorului Rust de a deduce tipul unei variabile sau expresii." #: src/glossary.md msgid "" "undefined behavior: \n" -"Actions or conditions in Rust that have no specified result, often leading " -"to unpredictable program behavior." +"Actions or conditions in Rust that have no specified result, often leading to " +"unpredictable program behavior." msgstr "" "comportament nedefinit:\n" -"Acțiuni sau condiții din Rust care nu au un rezultat specificat, ceea ce " -"duce adesea la un comportament imprevizibil al programului." +"Acțiuni sau condiții din Rust care nu au un rezultat specificat, ceea ce duce " +"adesea la un comportament imprevizibil al programului." #: src/glossary.md msgid "" @@ -27121,8 +25659,8 @@ msgid "" "A data type that can hold values of different types but only one at a time." msgstr "" "uniune (union):\n" -"Un tip de date care poate conține valori de tipuri diferite, dar numai una " -"la un moment dat." +"Un tip de date care poate conține valori de tipuri diferite, dar numai una la " +"un moment dat." #: src/glossary.md msgid "" @@ -27131,8 +25669,8 @@ msgid "" "integration tests. See [Unit Tests](testing/unit-tests.html)." msgstr "" "test unitar:\n" -"Rust vine cu un suport încorporat pentru a rula teste unitare mici și teste " -"de integrare mai mari. Consultați [Teste unitare](testing/unit-tests.html)." +"Rust vine cu un suport încorporat pentru a rula teste unitare mici și teste de " +"integrare mai mari. Consultați [Teste unitare](testing/unit-tests.html)." #: src/glossary.md msgid "" @@ -27146,11 +25684,11 @@ msgstr "" msgid "" "unsafe: \n" "The subset of Rust which allows you to trigger _undefined behavior_. See " -"[Unsafe Rust](unsafe.html)." +"[Unsafe Rust](unsafe-rust/unsafe.md)." msgstr "" "nesigur: \n" -"Un subansamblul Rust care vă permite să declanșați _comportamentul " -"nedefinit_. A se vedea [Rust nesigur](unsafe.html)." +"Un subansamblul Rust care vă permite să declanșați _comportamentul nedefinit_. " +"A se vedea [Rust nesigur](unsafe-rust/unsafe.md)." #: src/glossary.md msgid "" @@ -27170,8 +25708,8 @@ msgid "" "The Rust community has created a wealth of high-quality and free resources " "online." msgstr "" -"Comunitatea Rust a creat o multitudine de resurse online gratuite și de " -"înaltă calitate." +"Comunitatea Rust a creat o multitudine de resurse online gratuite și de înaltă " +"calitate." #: src/other-resources.md msgid "Official Documentation" @@ -27180,14 +25718,13 @@ msgstr "Documentație oficială" #: src/other-resources.md msgid "The Rust project hosts many resources. These cover Rust in general:" msgstr "" -"Proiectul Rust găzduiește multe resurse. Acestea se referă la Rust în " -"general:" +"Proiectul Rust găzduiește multe resurse. Acestea se referă la Rust în general:" #: src/other-resources.md msgid "" -"[The Rust Programming Language](https://doc.rust-lang.org/book/): the " -"canonical free book about Rust. Covers the language in detail and includes a " -"few projects for people to build." +"[The Rust Programming Language](https://doc.rust-lang.org/book/): the canonical " +"free book about Rust. Covers the language in detail and includes a few projects " +"for people to build." msgstr "" "[The Rust Programming Language](https://doc.rust-lang.org/book/): cartea " "canonică gratuită despre Rust. Acoperă limbajul în detaliu și include câteva " @@ -27195,31 +25732,31 @@ msgstr "" #: src/other-resources.md msgid "" -"[Rust By Example](https://doc.rust-lang.org/rust-by-example/): covers the " -"Rust syntax via a series of examples which showcase different constructs. " -"Sometimes includes small exercises where you are asked to expand on the code " -"in the examples." +"[Rust By Example](https://doc.rust-lang.org/rust-by-example/): covers the Rust " +"syntax via a series of examples which showcase different constructs. Sometimes " +"includes small exercises where you are asked to expand on the code in the " +"examples." msgstr "" -"[Rust By Example](https://doc.rust-lang.org/rust-by-example/): acoperă " -"sintaxa Rust prin intermediul unei serii de exemple care prezintă diferite " -"construcții. Uneori include mici exerciții în care vi se cere să dezvoltați " -"codul din exemple." +"[Rust By Example](https://doc.rust-lang.org/rust-by-example/): acoperă sintaxa " +"Rust prin intermediul unei serii de exemple care prezintă diferite construcții. " +"Uneori include mici exerciții în care vi se cere să dezvoltați codul din " +"exemple." #: src/other-resources.md msgid "" -"[Rust Standard Library](https://doc.rust-lang.org/std/): full documentation " -"of the standard library for Rust." +"[Rust Standard Library](https://doc.rust-lang.org/std/): full documentation of " +"the standard library for Rust." msgstr "" -"[Rust Standard Library](https://doc.rust-lang.org/std/): documentația " -"completă a bibliotecii standard pentru Rust." +"[Rust Standard Library](https://doc.rust-lang.org/std/): documentația completă " +"a bibliotecii standard pentru Rust." #: src/other-resources.md msgid "" -"[The Rust Reference](https://doc.rust-lang.org/reference/): an incomplete " -"book which describes the Rust grammar and memory model." +"[The Rust Reference](https://doc.rust-lang.org/reference/): an incomplete book " +"which describes the Rust grammar and memory model." msgstr "" -"[The Rust Reference](https://doc.rust-lang.org/reference/): o carte " -"incompletă care descrie gramatica și modelul de memorie Rust." +"[The Rust Reference](https://doc.rust-lang.org/reference/): o carte incompletă " +"care descrie gramatica și modelul de memorie Rust." #: src/other-resources.md msgid "More specialized guides hosted on the official Rust site:" @@ -27228,12 +25765,10 @@ msgstr "Ghiduri mai specializate găzduite pe site-ul oficial Rust:" #: src/other-resources.md msgid "" "[The Rustonomicon](https://doc.rust-lang.org/nomicon/): covers unsafe Rust, " -"including working with raw pointers and interfacing with other languages " -"(FFI)." +"including working with raw pointers and interfacing with other languages (FFI)." msgstr "" -"[The Rustonomicon](https://doc.rust-lang.org/nomicon/): acoperă Rust " -"nesigur, inclusiv lucrul cu pointeri bruți și interfața cu alte limbaje " -"(FFI)." +"[The Rustonomicon](https://doc.rust-lang.org/nomicon/): acoperă Rust nesigur, " +"inclusiv lucrul cu pointeri bruți și interfața cu alte limbaje (FFI)." #: src/other-resources.md msgid "" @@ -27242,18 +25777,17 @@ msgid "" "Rust Book was written." msgstr "" "[Asynchronous Programming în Rust](https://rust-lang.github.io/async-book/): " -"acoperă noul model de programare asincronă care a fost introdus după ce a " -"fost scrisă cartea Rust." +"acoperă noul model de programare asincronă care a fost introdus după ce a fost " +"scrisă cartea Rust." #: src/other-resources.md msgid "" -"[The Embedded Rust Book](https://doc.rust-lang.org/stable/embedded-book/): " -"an introduction to using Rust on embedded devices without an operating " -"system." +"[The Embedded Rust Book](https://doc.rust-lang.org/stable/embedded-book/): an " +"introduction to using Rust on embedded devices without an operating system." msgstr "" "[The Embedded Rust Book](https://doc.rust-lang.org/stable/embedded-book/): o " -"introducere în utilizarea Rust pe dispozitive încorporate care nu au un " -"sistem de operare." +"introducere în utilizarea Rust pe dispozitive încorporate care nu au un sistem " +"de operare." #: src/other-resources.md msgid "Unofficial Learning Material" @@ -27268,56 +25802,55 @@ msgid "" "[Learn Rust the Dangerous Way](http://cliffle.com/p/dangerust/): covers Rust " "from the perspective of low-level C programmers." msgstr "" -"[Learn Rust the Dangerous Way](http://cliffle.com/p/dangerust/): acoperă " -"Rust din perspectiva programatorilor C de nivel inferior." +"[Learn Rust the Dangerous Way](http://cliffle.com/p/dangerust/): acoperă Rust " +"din perspectiva programatorilor C de nivel inferior." #: src/other-resources.md msgid "" -"[Rust for Embedded C Programmers](https://docs.opentitan.org/doc/ug/" -"rust_for_c/): covers Rust from the perspective of developers who write " +"[Rust for Embedded C Programmers](https://opentitan.org/book/doc/" +"rust_for_c_devs.html): covers Rust from the perspective of developers who write " "firmware in C." msgstr "" "[Rust for Embedded C Programmers](https://docs.opentitan.org/doc/ug/" -"rust_for_c/): acoperă Rust din perspectiva dezvoltatorilor care scriu " -"firmware în C." +"rust_for_c/): acoperă Rust din perspectiva dezvoltatorilor care scriu firmware " +"în C." #: src/other-resources.md msgid "" -"[Rust for professionals](https://overexact.com/rust-for-professionals/): " -"covers the syntax of Rust using side-by-side comparisons with other " -"languages such as C, C++, Java, JavaScript, and Python." +"[Rust for professionals](https://overexact.com/rust-for-professionals/): covers " +"the syntax of Rust using side-by-side comparisons with other languages such as " +"C, C++, Java, JavaScript, and Python." msgstr "" "[Rust pentru profesioniști](https://overexact.com/rust-for-professionals/): " -"acoperă sintaxa Rust folosind comparații cu alte limbaje precum C, C++, " -"Java, JavaScript și Python." +"acoperă sintaxa Rust folosind comparații cu alte limbaje precum C, C++, Java, " +"JavaScript și Python." #: src/other-resources.md msgid "" "[Rust on Exercism](https://exercism.org/tracks/rust): 100+ exercises to help " "you learn Rust." msgstr "" -"[Rust on Exercism](https://exercism.org/tracks/rust): 100+ exerciții pentru " -"a vă ajuta să învățați Rust." +"[Rust on Exercism](https://exercism.org/tracks/rust): 100+ exerciții pentru a " +"vă ajuta să învățați Rust." #: src/other-resources.md msgid "" -"[Ferrous Teaching Material](https://ferrous-systems.github.io/teaching-" -"material/index.html): a series of small presentations covering both basic " -"and advanced part of the Rust language. Other topics such as WebAssembly, " -"and async/await are also covered." +"[Ferrous Teaching Material](https://ferrous-systems.github.io/teaching-material/" +"index.html): a series of small presentations covering both basic and advanced " +"part of the Rust language. Other topics such as WebAssembly, and async/await " +"are also covered." msgstr "" -"[Ferrous Teaching Material](https://ferrous-systems.github.io/teaching-" -"material/index.html): o serie de mici prezentări care acoperă atât partea de " -"bază, cât și cea avansată a limbajului Rust. Sunt abordate și alte subiecte, " -"cum ar fi WebAssembly și async/await." +"[Ferrous Teaching Material](https://ferrous-systems.github.io/teaching-material/" +"index.html): o serie de mici prezentări care acoperă atât partea de bază, cât " +"și cea avansată a limbajului Rust. Sunt abordate și alte subiecte, cum ar fi " +"WebAssembly și async/await." #: src/other-resources.md -#, fuzzy msgid "" -"[Advanced testing for Rust applications](https://github.com/mainmatter/rust-" -"advanced-testing-workshop): a self-paced workshop that goes beyond Rust's " -"built-in testing framework. It covers `googletest`, snapshot testing, " -"mocking as well as how to write your own custom test harness." +"[Advanced testing for Rust applications](https://rust-exercises.com/advanced-" +"testing/): a self-paced workshop that goes beyond Rust's built-in testing " +"framework. It covers `googletest`, snapshot testing, mocking as well as how to " +"write your own custom test harness." msgstr "" "[Testarea avansată a aplicațiilor Rust](https://github.com/mainmatter/rust-" "advanced-testing-workshop): un atelier de lucru care merge mai departe de " @@ -27328,33 +25861,32 @@ msgstr "" #: src/other-resources.md msgid "" "[Beginner's Series to Rust](https://docs.microsoft.com/en-us/shows/beginners-" -"series-to-rust/) and [Take your first steps with Rust](https://docs." -"microsoft.com/en-us/learn/paths/rust-first-steps/): two Rust guides aimed at " -"new developers. The first is a set of 35 videos and the second is a set of " -"11 modules which covers Rust syntax and basic constructs." -msgstr "" -"[Beginner's Series to Rust] (https://docs.microsoft.com/en-us/shows/" -"beginners-series-to-rust/) și [Take your first steps with Rust] (https://" -"docs.microsoft.com/en-us/learn/paths/rust-first-steps/): două ghiduri Rust " -"destinate noilor dezvoltatori. Primul este un set de 35 de videoclipuri, iar " -"al doilea este un set de 11 module care acoperă sintaxa Rust și " -"construcțiile de bază." +"series-to-rust/) and [Take your first steps with Rust](https://docs.microsoft." +"com/en-us/learn/paths/rust-first-steps/): two Rust guides aimed at new " +"developers. The first is a set of 35 videos and the second is a set of 11 " +"modules which covers Rust syntax and basic constructs." +msgstr "" +"[Beginner's Series to Rust] (https://docs.microsoft.com/en-us/shows/beginners-" +"series-to-rust/) și [Take your first steps with Rust] (https://docs.microsoft." +"com/en-us/learn/paths/rust-first-steps/): două ghiduri Rust destinate noilor " +"dezvoltatori. Primul este un set de 35 de videoclipuri, iar al doilea este un " +"set de 11 module care acoperă sintaxa Rust și construcțiile de bază." #: src/other-resources.md msgid "" -"[Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial." -"github.io/too-many-lists/): in-depth exploration of Rust's memory management " -"rules, through implementing a few different types of list structures." +"[Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial.github." +"io/too-many-lists/): in-depth exploration of Rust's memory management rules, " +"through implementing a few different types of list structures." msgstr "" -"[Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial." -"github.io/too-many-lists/): explorarea în profunzime a regulilor de " -"gestionare a memoriei din Rust, prin implementarea câtorva tipuri diferite " -"de structuri de liste." +"[Learn Rust With Entirely Too Many Linked Lists](https://rust-unofficial.github." +"io/too-many-lists/): explorarea în profunzime a regulilor de gestionare a " +"memoriei din Rust, prin implementarea câtorva tipuri diferite de structuri de " +"liste." #: src/other-resources.md msgid "" -"Please see the [Little Book of Rust Books](https://lborb.github.io/book/) " -"for even more Rust books." +"Please see the [Little Book of Rust Books](https://lborb.github.io/book/) for " +"even more Rust books." msgstr "" "Vă rugăm să consultați [Little Book of Rust Books](https://lborb.github.io/" "book/) pentru și mai multe cărți Rust." @@ -27362,12 +25894,12 @@ msgstr "" #: src/credits.md msgid "" "The material here builds on top of the many great sources of Rust " -"documentation. See the page on [other resources](other-resources.md) for a " -"full list of useful resources." +"documentation. See the page on [other resources](other-resources.md) for a full " +"list of useful resources." msgstr "" -"Materialul de aici se bazează pe numeroasele surse excelente din " -"documentația Rust. Consultați pagina privind [alte resurse](other-resources." -"md) pentru o listă completă de resurse utile." +"Materialul de aici se bazează pe numeroasele surse excelente din documentația " +"Rust. Consultați pagina privind [alte resurse](other-resources.md) pentru o " +"listă completă de resurse utile." #: src/credits.md msgid "" @@ -27375,9 +25907,9 @@ msgid "" "2.0 license, please see [`LICENSE`](https://github.com/google/comprehensive-" "rust/blob/main/LICENSE) for details." msgstr "" -"Materialul din `Comprehensive Rust` este licențiat în conformitate cu " -"termenii licenței Apache 2.0, vă rugăm să consultați [`LICENSE`](https://" -"github.com/google/comprehensive-rust/blob/main/LICENSE) pentru detalii." +"Materialul din `Comprehensive Rust` este licențiat în conformitate cu termenii " +"licenței Apache 2.0, vă rugăm să consultați [`LICENSE`](https://github.com/" +"google/comprehensive-rust/blob/main/LICENSE) pentru detalii." #: src/credits.md msgid "Rust by Example" @@ -27385,22 +25917,17 @@ msgstr "Rust în exemple" #: src/credits.md msgid "" -"Some examples and exercises have been copied and adapted from [Rust by " -"Example](https://doc.rust-lang.org/rust-by-example/). Please see the " -"`third_party/rust-by-example/` directory for details, including the license " -"terms." +"Some examples and exercises have been copied and adapted from [Rust by Example]" +"(https://doc.rust-lang.org/rust-by-example/). Please see the `third_party/rust-" +"by-example/` directory for details, including the license terms." msgstr "" "Unele exemple și exerciții au fost copiate și adaptate din [Rust by Example]" -"(https://doc.rust-lang.org/rust-by-example/). Vă rugăm să consultați " -"directorul `third_party/rust-by-example/` pentru detalii, inclusiv termenii " -"licenței." +"(https://doc.rust-lang.org/rust-by-example/). Vă rugăm să consultați directorul " +"`third_party/rust-by-example/` pentru detalii, inclusiv termenii licenței." #: src/credits.md -#, fuzzy msgid "Rust on Exercism" -msgstr "" -"[Rust on Exercism](https://exercism.org/tracks/rust): 100+ exerciții pentru " -"a vă ajuta să învățați Rust." +msgstr "Rust on Exercism" #: src/credits.md msgid "" @@ -27409,8 +25936,8 @@ msgid "" "directory for details, including the license terms." msgstr "" "Unele exerciții au fost copiate și adaptate din [Rust on Exercism](https://" -"exercism.org/tracks/rust). Vă rugăm să consultați directorul `third_party/" -"rust-on-exercism/` pentru detalii, inclusiv termenii licenței." +"exercism.org/tracks/rust). Vă rugăm să consultați directorul `third_party/rust-" +"on-exercism/` pentru detalii, inclusiv termenii licenței." #: src/credits.md msgid "CXX" @@ -27418,8 +25945,8 @@ msgstr "CXX" #: src/credits.md msgid "" -"The [Interoperability with C++](android/interoperability/cpp.md) section " -"uses an image from [CXX](https://cxx.rs/). Please see the `third_party/cxx/` " +"The [Interoperability with C++](android/interoperability/cpp.md) section uses " +"an image from [CXX](https://cxx.rs/). Please see the `third_party/cxx/` " "directory for details, including the license terms." msgstr "" "Secțiunea [Interoperabilitate cu C++](android/interoperabilitate/cpp.md) "