diff --git a/po/ro.po b/po/ro.po index 44b080e104ba..6dd03c15f745 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-08-06T13:08:22+03:00\n" +"PO-Revision-Date: 2024-08-20 14:01+0300\n" "Last-Translator: Razvan Stefanescu \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -240,9 +240,8 @@ 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 ascensor" #: src/SUMMARY.md msgid "Day 2: Morning" @@ -257,7 +256,6 @@ msgid "Matching Values" msgstr "Potrivirea valorilor" #: src/SUMMARY.md -#, fuzzy msgid "Destructuring Structs" msgstr "Destructurări" @@ -302,7 +300,6 @@ msgid "Deriving" msgstr "Derivarea" #: src/SUMMARY.md -#, fuzzy msgid "Exercise: Generic Logger" msgstr "Exercițiu: Logger generic" @@ -334,6 +331,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 +355,7 @@ msgstr "Documentație" msgid "`Option`" msgstr "'Option'" -#: src/SUMMARY.md +#: src/SUMMARY.md src/error-handling/result.md msgid "`Result`" msgstr "`Result`" @@ -398,7 +399,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 +467,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 +491,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 +524,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 +675,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 +707,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 "Compartimentare" #: src/SUMMARY.md src/android/aidl/types/file-descriptor.md -#, fuzzy msgid "Sending Files" msgstr "Trimiterea fișierelor" @@ -948,7 +939,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 +1068,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 +1110,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 +1125,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 +1141,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`" @@ -1213,7 +1200,6 @@ msgid "Futures" msgstr "Futures" #: src/SUMMARY.md src/concurrency/async/runtimes.md -#, fuzzy msgid "Runtimes" msgstr "Timpi de execuție" @@ -1227,9 +1213,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" @@ -1329,7 +1314,16 @@ msgstr "" "să verificați acolo pentru actualizări." #: src/index.md -#, fuzzy +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 msgid "The course is also available [as a PDF](comprehensive-rust.pdf)." msgstr "" "Cursul este, de asemenea, disponibil [în format PDF](comprehensive-rust.pdf)." @@ -1397,12 +1391,12 @@ 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 " +"[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)." @@ -1515,8 +1509,8 @@ msgid "" 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." +"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 "" @@ -1611,126 +1605,106 @@ 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 vectori](../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 +1719,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)" @@ -1874,8 +1845,8 @@ 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`." @@ -1891,7 +1862,6 @@ msgstr "" "experimenta cu ele:" #: src/running-the-course/course-structure.md -#, fuzzy msgid "{{%course outline Concurrency}}" msgstr "{{%course outline Concurrency}}" @@ -1968,15 +1938,13 @@ msgid "" "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)." +"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)." +"github.com/superwhd), @SketchK și [@nodmp](https://github.com/nodmp)." #: src/running-the-course/translations.md msgid "" @@ -1993,7 +1961,18 @@ msgstr "" "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,8 +1980,9 @@ 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 "" @@ -2012,6 +1992,16 @@ 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." @@ -2031,6 +2021,14 @@ msgstr "" "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]" @@ -2040,7 +2038,6 @@ msgstr "" "[@raselmandol](https://github.com/raselmandol)." #: 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 " @@ -2059,17 +2056,6 @@ msgstr "" #: 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)." -msgstr "" -"[Japoneză](https://google.github.io/comprehensive-rust/ja/) de [@CoinEZ-JPN]" -"(https://github.com/CoinEZ) și [@momotaro1105](https://github.com/" -"momotaro1105)." - -#: 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)." @@ -2077,6 +2063,19 @@ msgstr "" "[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 "" +"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 "" +"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://" @@ -2154,6 +2153,16 @@ msgstr "" "`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" msgstr "Ecosistemul Rust" @@ -2563,28 +2572,24 @@ 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" msgstr "" "Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 2 ore și 55 de minute" +"aproximativ 2 ore și 5 minute" #: src/welcome-day-1.md msgid "Please remind the students that:" @@ -2903,10 +2908,10 @@ 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)" +"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 " +"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)" @@ -2964,37 +2969,30 @@ msgstr "" "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ță de tip](./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" @@ -3267,15 +3265,14 @@ 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ă." #: 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 " @@ -3284,8 +3281,8 @@ msgid "" "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 " +"generează panică (verificată) într-o compilare de depanare și care se " +"înfășoară î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)`." @@ -3342,13 +3339,12 @@ 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." 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." @@ -3376,33 +3372,29 @@ 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)" 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)" +"(5 minute)" #: src/control-flow-basics.md msgid "[Functions](./control-flow-basics/functions.md) (3 minutes)" @@ -3413,11 +3405,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" @@ -3433,12 +3424,10 @@ msgstr "" "limbaje:" #: src/control-flow-basics/if.md -#, fuzzy msgid "\"zero!\"" msgstr "\"zero!\"" #: src/control-flow-basics/if.md -#, fuzzy msgid "\"biggish\"" msgstr "\"măricel\"" @@ -3510,21 +3499,19 @@ 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:" msgstr "" "Buclele [`for`](https://doc.rust-lang.org/std/keyword.for.html) sunt " -"utilizate pentru a itera peste o gamă de valori:" +"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 " @@ -3536,8 +3523,8 @@ msgstr "" #: 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." @@ -3592,7 +3579,6 @@ msgstr "" "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}\"" @@ -3659,9 +3645,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}\"" @@ -3823,7 +3808,6 @@ msgstr "" "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 +3965,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." @@ -4009,61 +3993,52 @@ 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 vectori](./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" +"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 "[Vectori](./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)" +msgstr "" +"[Modele ș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 "" @@ -4132,13 +4107,12 @@ msgstr "" "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." 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)." @@ -4157,7 +4131,7 @@ msgstr "" #: 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 " +"` 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 " @@ -4166,7 +4140,6 @@ msgstr "" "î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 " @@ -4177,21 +4150,18 @@ msgstr "" "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 tipare 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 " @@ -4202,7 +4172,6 @@ msgstr "" "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." @@ -4212,7 +4181,6 @@ msgstr "" "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 " @@ -4223,7 +4191,6 @@ msgstr "" "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." @@ -4248,13 +4215,12 @@ msgstr "" "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 @@ -4288,28 +4254,23 @@ 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 " @@ -4321,7 +4282,6 @@ msgstr "" "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, " @@ -4333,10 +4293,9 @@ msgstr "" #: 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 în suspensie:" #: 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 " @@ -4344,13 +4303,12 @@ msgid "" "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: " +"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 proprietate î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+" @@ -4359,14 +4317,13 @@ msgid "" "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 " +"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." #: src/references/shared.md -#, fuzzy msgid "" "Rust does not automatically create references for you - the `&` is always " "required." @@ -4375,7 +4332,6 @@ msgstr "" "î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 " @@ -4385,7 +4341,6 @@ msgstr "" "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 " @@ -4393,12 +4348,11 @@ msgid "" "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 " -"altceva. Acest lucru este diferit de C++, unde atribuirea unei referințe " +"&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'`." @@ -4407,7 +4361,6 @@ msgstr "" "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 " @@ -4415,8 +4368,8 @@ msgid "" "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 " +"acestea există 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." @@ -4426,7 +4379,6 @@ 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`." @@ -4435,7 +4387,6 @@ msgstr "" "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, " @@ -4450,7 +4401,6 @@ 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 " @@ -4468,10 +4418,9 @@ 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 imagine 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." @@ -4490,8 +4439,9 @@ msgstr "" "și de sfârșit între paranteze." #: src/references/slices.md +#, fuzzy msgid "" -"If the slice starts at index 0, Rust's range syntax allows us to drop the " +"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 "" @@ -4508,15 +4458,12 @@ 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[..]`." 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-un vector 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 " @@ -4527,17 +4474,15 @@ msgstr "" "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 " @@ -4558,37 +4503,34 @@ 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]`." +msgstr "" +"`String` este un buffer propriu de octeți codificați 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}\"" @@ -4597,7 +4539,7 @@ msgstr "\"s3: {s3}\"" 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." +"(`\"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 " @@ -4605,28 +4547,25 @@ msgstr "" "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." 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." 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 " +"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!()`." @@ -4636,7 +4575,6 @@ msgstr "" "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 " @@ -4646,25 +4584,23 @@ 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." +"`chars` iterează peste caractere și este de preferat în locul încercării de " +"a obține limite de caractere corecte." #: 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+" +"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ță: poate conține numai octeți codificați 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]`:" @@ -4680,18 +4616,16 @@ msgstr "" "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." 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" @@ -4701,19 +4635,17 @@ msgid "" 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" +"// ș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" @@ -4756,16 +4688,14 @@ 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)" msgstr "" @@ -4816,71 +4746,65 @@ 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." 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 " +"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 " -"pe care doriți să le stocați în valoarea în sine." +"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." 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:" +"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." 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 înveliș cu un " +"singur câmp (denumite newtypes):" #: src/user-defined-types/tuple-structs.md msgid "\"Ask a rocket scientist at NASA\"" @@ -4894,7 +4818,6 @@ 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:" @@ -4903,13 +4826,11 @@ msgstr "" "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)`." @@ -4919,7 +4840,6 @@ msgstr "" "`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." @@ -4930,18 +4850,18 @@ msgstr "" #: src/user-defined-types/tuple-structs.md #, fuzzy msgid "" -"Rust generally doesn't like inexplicit things, like automatic unwrapping or " +"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." @@ -4966,7 +4886,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 +4894,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,7 +4906,6 @@ 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 " @@ -5000,26 +4916,24 @@ msgstr "" "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:" #: 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)." 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). " +"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 " +"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 " @@ -5027,19 +4941,16 @@ msgstr "" "î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 " @@ -5068,7 +4979,8 @@ msgstr "" #: 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" @@ -5121,7 +5033,6 @@ 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 " @@ -5133,16 +5044,15 @@ 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." +"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ă " +"`static`, pe de altă parte, este mult mai asemănător cu o variabilă globală " "`const` sau mutabilă în C++." #: src/user-defined-types/static.md @@ -5154,7 +5064,6 @@ msgstr "" "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-" @@ -5163,13 +5072,9 @@ 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." +"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::" @@ -5180,7 +5085,6 @@ 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:" @@ -5205,11 +5109,10 @@ msgstr "" "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++." +"`constexpr` din C++" #: src/user-defined-types/const.md msgid "" @@ -5221,7 +5124,6 @@ msgstr "" "utilizarea unei constante statice." #: 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,18 +5132,15 @@ 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 " @@ -5254,7 +5153,6 @@ msgstr "" "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 " @@ -5265,7 +5163,6 @@ msgstr "" "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" msgstr "" @@ -5273,32 +5170,26 @@ msgstr "" "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" @@ -5306,116 +5197,92 @@ 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 "\"Ascensorul 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 ascensorului: {:?}\"" #: 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 ascensorului 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 "\"Ascensorul 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 "/// Ascensorul 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 ascensorului 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 ascensorului 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 ascensorului.\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 tipare: 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." msgstr "" @@ -5423,55 +5290,48 @@ msgstr "" "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" +"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)" +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)" @@ -5479,7 +5339,8 @@ msgstr "" "[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ă" @@ -5505,9 +5366,8 @@ msgid "'q'" msgstr "'q'" #: src/pattern-matching/match.md -#, fuzzy msgid "\"Quitting\"" -msgstr "\"Renunțarea\"" +msgstr "\"Renunțare\"" #: src/pattern-matching/match.md src/generics/exercise.md #: src/generics/solution.md src/std-traits/solution.md @@ -5554,7 +5414,6 @@ 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, " @@ -5575,7 +5434,6 @@ msgstr "" "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." @@ -5584,14 +5442,12 @@ msgstr "" "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ă." #: src/pattern-matching/match.md -#, fuzzy msgid "" "You might point out how some specific characters are being used when in a " "pattern" @@ -5650,24 +5506,20 @@ 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:" #: 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\"" @@ -5694,7 +5546,6 @@ msgstr "" "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, " @@ -5711,17 +5562,14 @@ msgstr "" "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}\"" @@ -5755,27 +5603,23 @@ msgstr "" "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ă `=>`." +"cu un model." #: 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 " -"avantajul pe care îl oferă compilatorul Rust prin confirmarea momentului în " -"care sunt tratate toate cazurile. " +"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." #: 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 " @@ -5786,11 +5630,11 @@ msgid "" 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 " -"`result`. Acest lucru va face din `msg` o referință, astfel încât nu va fi " -"consumată. Acest [\"match ergonomics\"](https://rust-lang.github.io/" +"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." +"folosiți o versiune mai veche de Rust, înlocuiți `msg` cu `ref msg` în model." #: src/pattern-matching/let-control-flow.md msgid "" @@ -5801,19 +5645,16 @@ msgstr "" "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 "" @@ -5826,17 +5667,10 @@ msgstr "" "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 "\"A dormit pentru {:?}\"" #: 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/" @@ -5846,32 +5680,28 @@ 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 " +"`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\"" +msgstr "\"nu am primit nimic\"" #: 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ă\"" +msgstr "\"nu e o cifră hexadecimală\"" #: 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 msgid "\"foo\"" msgstr "\"foo\"" @@ -5886,22 +5716,20 @@ msgstr "" "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." 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) returns `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 "" @@ -5925,30 +5753,26 @@ msgstr "" "potrivirea de tipare." #: 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." 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 ciudată pentru elevi, " +"astfel încât aceștia să poată vedea 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,23 +5783,21 @@ 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." msgstr "" -"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." +"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 `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 " @@ -5988,7 +5810,6 @@ msgstr "" "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." @@ -5996,13 +5817,12 @@ msgid "" "(`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 " @@ -6011,72 +5831,62 @@ msgid "" 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." +"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ă?" +"`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)" 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:" @@ -6085,61 +5895,50 @@ msgstr "" "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ă\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:" 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 posibili 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 +5947,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,26 +5955,23 @@ 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 " +"`self`: preia proprietatea asupra obiectului și îl cedează 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." #: 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." @@ -6185,13 +5980,11 @@ msgstr "" "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." #: 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`." @@ -6200,7 +5993,6 @@ msgstr "" "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 " @@ -6208,16 +6000,14 @@ msgid "" 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." @@ -6226,7 +6016,6 @@ msgstr "" "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." @@ -6235,7 +6024,6 @@ msgstr "" "`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,17 +6032,14 @@ 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." 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 " @@ -6265,7 +6050,6 @@ msgstr "" "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,17 +6057,16 @@ 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 companiel.\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." @@ -6292,7 +6075,6 @@ msgstr "" "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." @@ -6302,32 +6084,28 @@ msgstr "" "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." msgstr "" -"Trăsăturile sunt implementate într-un `impl pentru { .. }`." +"Pentru a implementa `Trăit` pentru `Type`, se folosește un block `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 " @@ -6338,18 +6116,16 @@ msgstr "" "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`." 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 " @@ -6361,28 +6137,25 @@ msgstr "" #: 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." 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." +"trebuie să se aștepte ca aceasta să se comporte ca moștenirea din " +"programarea orientată pe obiecte. Aceasta 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,7 +6169,6 @@ 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." @@ -6406,16 +6178,14 @@ msgstr "" "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 " +"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 +6194,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 " +"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." 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,144 +6252,131 @@ 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?" 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" #: 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" +"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." msgstr "" -"Rust suportă 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." +"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." 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 " @@ -6639,40 +6387,36 @@ 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." +"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." 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ă " +"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?" @@ -6681,7 +6425,6 @@ msgstr "" "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." @@ -6690,17 +6433,14 @@ msgstr "" "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`." @@ -6709,7 +6449,6 @@ msgstr "" "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 " @@ -6720,7 +6459,6 @@ msgstr "" "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." @@ -6730,22 +6468,18 @@ msgstr "" "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 " @@ -6756,18 +6490,16 @@ msgstr "" "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 " +"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 " +"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 " @@ -6778,7 +6510,6 @@ msgstr "" "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 " @@ -6806,46 +6537,20 @@ msgid "You can do this with `T: Trait` or `impl 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." @@ -6872,7 +6577,6 @@ msgstr "" "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)`." @@ -6890,41 +6594,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" +"// Facilități 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." 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,18 +6630,16 @@ 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 " @@ -6958,136 +6653,191 @@ msgstr "" "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<_>>()`." +"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." msgstr "" -"Care este tipul de `debuggable`? Încercați `let debuggable: () = ..` pentru " -"a vedea ce afișează mesajul de eroare." +"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." 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." @@ -7097,7 +6847,6 @@ msgstr "" "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 " @@ -7109,7 +6858,6 @@ msgstr "" "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`." @@ -7118,7 +6866,6 @@ msgstr "" "`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." @@ -7127,7 +6874,6 @@ msgstr "" "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,28 +6882,25 @@ msgstr "" "`Vec`, `Box` și `Arc`." #: src/std-types/std.md -#, fuzzy 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)." @@ -7166,22 +6909,20 @@ msgstr "" "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)." 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" @@ -7193,7 +6934,6 @@ 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]" @@ -7202,13 +6942,12 @@ msgid "" 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." +"[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\":" @@ -7218,7 +6957,6 @@ msgstr "" "\"comentarii interne ale documentului\":" #: src/std-types/docs.md -#, fuzzy msgid "" "//! This module contains functionality relating to divisibility of " "integers.\n" @@ -7227,81 +6965,53 @@ msgstr "" "numerelor întregi.\n" #: src/std-types/docs.md -#, fuzzy msgid "" "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`." 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." @@ -7310,7 +7020,6 @@ msgstr "" "`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." @@ -7319,17 +7028,15 @@ msgstr "" "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`." @@ -7342,40 +7049,32 @@ 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 " @@ -7389,31 +7088,28 @@ msgstr "" "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." 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." msgstr "" "`Result` este tipul standard pentru a implementa gestionarea erorilor, după " -"cum vom vedea în ziua 3." +"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 +7120,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,22 +7132,18 @@ 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 " @@ -7464,7 +7154,6 @@ msgstr "" "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." @@ -7473,7 +7162,6 @@ msgstr "" "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)." @@ -7482,7 +7170,6 @@ msgstr "" "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 " @@ -7495,7 +7182,6 @@ msgstr "" "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`." @@ -7504,7 +7190,6 @@ msgstr "" "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 +7198,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,7 +7206,6 @@ 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." @@ -7531,12 +7214,10 @@ msgstr "" "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 " @@ -7547,12 +7228,10 @@ msgstr "" "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." @@ -7561,16 +7240,14 @@ msgstr "" "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." 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. " @@ -7585,7 +7262,6 @@ msgstr "" "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,37 +7270,30 @@ 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 " @@ -7635,7 +7304,6 @@ msgstr "" "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 " @@ -7647,7 +7315,6 @@ msgstr "" "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 " @@ -7658,27 +7325,24 @@ msgstr "" "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." 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 " -"`Option`. Funcția `pop` va elimina ultimul element." +"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." @@ -7688,64 +7352,52 @@ msgstr "" "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,7 +7405,6 @@ 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 " @@ -7764,23 +7415,19 @@ msgstr "" "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-" @@ -7794,7 +7441,6 @@ msgstr "" "literală:" #: src/std-types/hashmap.md -#, fuzzy msgid "" "Alternatively HashMap can be built from any `Iterator` which yields key-" "value tuples." @@ -7803,18 +7449,17 @@ msgstr "" "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." 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?" @@ -7823,7 +7468,6 @@ msgstr "" "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 " @@ -7836,7 +7480,6 @@ msgstr "" "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/" @@ -7850,7 +7493,6 @@ msgstr "" "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 " @@ -7862,7 +7504,6 @@ msgstr "" "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 " @@ -7874,7 +7515,6 @@ msgstr "" "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 "" @@ -7882,89 +7522,73 @@ msgstr "" "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." @@ -7973,12 +7597,10 @@ msgstr "" "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." @@ -7988,12 +7610,10 @@ msgstr "" "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." @@ -8003,7 +7623,6 @@ msgstr "" "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 " @@ -8014,12 +7633,10 @@ msgstr "" "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 +7645,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,7 +7657,6 @@ 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." @@ -8051,7 +7665,6 @@ msgstr "" "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):" @@ -8060,23 +7673,19 @@ msgstr "" "î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 " @@ -8088,7 +7697,6 @@ msgstr "" "apel." #: src/std-traits/operators.md -#, fuzzy msgid "" "Why is `Output` an associated type? Could it be made a type parameter of the " "method?" @@ -8097,7 +7705,6 @@ msgstr "" "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 " @@ -8108,7 +7715,6 @@ msgstr "" "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`." @@ -8117,7 +7723,6 @@ msgstr "" "Add<(i32, i32)> pentru Point` ar adăuga un tuple la un `Point`." #: 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 " @@ -8128,12 +7733,10 @@ msgstr "" "html) pentru a facilita conversiile de tip:" #: 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/" @@ -8144,7 +7747,6 @@ msgstr "" "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." @@ -8153,7 +7755,6 @@ msgstr "" "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`. " @@ -8166,7 +7767,6 @@ msgstr "" "ș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." @@ -8176,27 +7776,18 @@ msgstr "" "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 " @@ -8204,11 +7795,10 @@ msgid "" 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 - " +"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 " @@ -8217,36 +7807,34 @@ msgid "" "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." 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, " -"`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." +"Î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 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 " @@ -8257,14 +7845,12 @@ msgstr "" "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 " @@ -8275,45 +7861,38 @@ msgstr "" "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:" +"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,40 +7901,33 @@ 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 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." @@ -8364,48 +7936,42 @@ msgstr "" "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)." msgstr "" "Tipurile standard Rust implementează adesea `Default` cu valori rezonabile " -"(de exemplu, `0`, `\"\"`, etc.)." +"(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)." msgstr "" -"sintaxa `..` se numește [struct update syntax](https://doc.rust-lang.org/" +"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)" +"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." @@ -8419,27 +7985,22 @@ msgstr "" "FnOnce.html):" #: src/std-traits/closures.md -#, fuzzy msgid "\"Calling function on {input}\"" -msgstr "Apelarea funcțiilor nesigure" +msgstr "\"Apelarea funcției pentru {input}\"" #: src/std-traits/closures.md -#, fuzzy msgid "\"add_3: {}\"" msgstr "\"add_3: {}\"" #: src/std-traits/closures.md -#, fuzzy msgid "\"accumulate: {}\"" msgstr "\"acumulează: {}\"" #: src/std-traits/closures.md -#, fuzzy 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 " @@ -8450,7 +8011,6 @@ msgstr "" "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." @@ -8459,7 +8019,6 @@ msgstr "" "poate apela de mai multe ori, dar nu concomitent." #: 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." @@ -8468,7 +8027,6 @@ msgstr "" "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 " @@ -8479,7 +8037,6 @@ msgstr "" "ș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 " @@ -8491,7 +8048,6 @@ msgstr "" "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`." @@ -8500,7 +8056,6 @@ msgstr "" "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." @@ -8510,7 +8065,6 @@ msgstr "" "î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." @@ -8519,22 +8073,18 @@ msgstr "" "cheie `move` le face să captureze 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 " @@ -8547,22 +8097,18 @@ msgstr "" "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?" @@ -8571,22 +8117,18 @@ msgstr "" "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." @@ -8595,27 +8137,22 @@ msgstr "" "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" @@ -8624,13 +8161,11 @@ msgstr "" "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)" @@ -8639,39 +8174,32 @@ msgstr "" "(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)" #: src/memory-management/review.md -#, fuzzy msgid "Programs allocate memory in two ways:" msgstr "Programele alocă memoria în două moduri:" @@ -8693,7 +8221,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,9 +8236,8 @@ 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 "" @@ -8754,12 +8281,10 @@ 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 " @@ -8767,12 +8292,11 @@ msgid "" " // 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 +8309,17 @@ 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." msgstr "" -"Programatorul trebuie să determine dacă un pointer mai indică o memorie " -"validă." +"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,16 +8332,14 @@ 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." msgstr "" @@ -8845,28 +8364,25 @@ 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." 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 studenț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." 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 " @@ -8875,26 +8391,25 @@ msgid "" 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." 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 -- " @@ -8904,15 +8419,14 @@ msgid "" "(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:" @@ -8921,23 +8435,22 @@ msgstr "" "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." +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 " @@ -8953,12 +8466,10 @@ msgid "An assignment will transfer _ownership_ between variables:" msgstr "O atribuire va transfera _posesia_ între variabile:" #: src/memory-management/move.md -#, fuzzy msgid "\"Hello!\"" -msgstr "\"hello\"" +msgstr "\"Bună!\"" #: src/memory-management/move.md -#, fuzzy msgid "// println!(\"s1: {s1}\");\n" msgstr "// println!(\"s1: {s1}\");\n" @@ -8987,7 +8498,6 @@ msgid "After move to `s2`:" msgstr "După mutarea în `s2`:" #: src/memory-management/move.md -#, fuzzy msgid "" "```bob\n" " Stack Heap\n" @@ -9011,25 +8521,25 @@ 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" -": s2 : |\n" -": +—————+———+ : |\n" -": | ptr | o—+—+—'\n" -": | len | 4 | :\n" -": | capacity | 4 | :\n" -": +—————+———+ :\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 | 6 | :\n" +": | capacity | 6 | :\n" +": +-----------+-------+ :\n" +": :\n" +"`- - - - - - - - - - - - - -'\n" +"```" #: src/memory-management/move.md msgid "" @@ -9040,18 +8550,15 @@ 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" @@ -9086,7 +8593,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`:" @@ -9107,7 +8613,6 @@ 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." @@ -9116,7 +8621,6 @@ msgstr "" "(`&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()`)." @@ -9125,7 +8629,6 @@ msgstr "" "(`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 +8646,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" @@ -9166,14 +8667,12 @@ msgstr "" "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 "" @@ -9214,7 +8713,6 @@ 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." @@ -9223,35 +8721,32 @@ msgstr "" "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." 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." msgstr "" -"`clone` efectuează în general o copie profundă a valorii, ceea ce înseamnă " +"`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." @@ -9260,7 +8755,6 @@ msgstr "" "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:" msgstr "" @@ -9268,33 +8762,27 @@ msgstr "" "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:" #: 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,7 +8791,6 @@ 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++)." msgstr "" @@ -9311,7 +8798,6 @@ msgstr "" "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,18 +8806,15 @@ 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`." #: 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." @@ -9340,7 +8823,6 @@ msgstr "" "`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 +8831,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 +8861,49 @@ 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." #: 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,7 +8912,6 @@ 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 "" @@ -9439,7 +8919,6 @@ msgstr "" "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 " @@ -9453,7 +8932,6 @@ msgstr "" "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." @@ -9462,27 +8940,23 @@ msgstr "" "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 " -"sfârșitul blocului, rezultând un alt apel la `Drop::drop` și o depășire a " +"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 " @@ -9493,17 +8967,14 @@ msgstr "" "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 +8984,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,12 +9101,10 @@ 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/" @@ -9674,7 +9115,6 @@ msgstr "" "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`:" msgstr "" @@ -9682,26 +9122,18 @@ msgstr "" "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" @@ -9723,58 +9155,53 @@ msgid "" "```" 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." 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." 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 " @@ -9785,7 +9212,6 @@ msgstr "" "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." @@ -9794,7 +9220,6 @@ msgstr "" "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, " @@ -9810,56 +9235,48 @@ 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." 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/" "#representation)):" msgstr "" -"De exemplu, `Opțiune<Box>` are aceeași dimensiune ca și `Box`, " +"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 " @@ -9870,28 +9287,24 @@ msgstr "" "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." +"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." +"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." @@ -9901,32 +9314,28 @@ msgstr "" "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." 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." msgstr "" -"`Rc::clone` este ieftin: 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." +"`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." @@ -9935,46 +9344,34 @@ msgstr "" "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`)." msgstr "" -"`Rc::downgrade` vă oferă un obiect cu un număr slab de referințe pentru a " -"crea cicluri care vor fi abandonate în mod corespunzător (probabil în " -"combinație cu `RefCell`, pe slide-ul următor)." +"`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`)." #: 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!\"" - -#: src/smart-pointers/trait-objects.md -#, fuzzy -msgid "\"Hello, who are you? {}\"" -msgstr "\"Bună ziua, cine ești? {}\"" +"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 "Memory layout after allocating `pets`:" msgstr "Dispunerea memoriei după alocarea `pets`:" #: src/smart-pointers/trait-objects.md -#, fuzzy msgid "" "```bob\n" " Stack Heap\n" @@ -10034,43 +9431,63 @@ msgid "" "```" msgstr "" "```bob\n" -" Stiva 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" +" Stack Heap\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." @@ -10080,7 +9497,6 @@ msgstr "" "Pet>` î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,16 +9505,15 @@ 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_:" msgstr "" "În acest exemplu, `pets` este alocat pe stivă, iar datele vectorului se află " -"pe heap. Cele două elemente ale vectorului sunt _fat pointeri_:" +"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." @@ -10106,12 +9521,11 @@ msgid "" "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 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." @@ -10120,12 +9534,10 @@ msgstr "" "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 " @@ -10134,17 +9546,15 @@ msgid "" 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 " +"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." @@ -10153,17 +9563,14 @@ msgstr "" "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" @@ -10176,69 +9583,57 @@ msgstr "" "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" msgstr "" "Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze " -"aproximativ 3 ore și 5 minute" +"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 " -"minute)" +"[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:" @@ -10247,17 +9642,14 @@ msgstr "" "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,48 +9659,48 @@ 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:" 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:" @@ -10317,26 +9709,22 @@ msgstr "" "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,16 +9733,14 @@ 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." msgstr "" "Mutați instrucțiunea `println!` pentru `b` înainte de domeniul de aplicare " -"care introduce `c` pentru a face codul să fie compilat." +"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 " @@ -10366,7 +9752,6 @@ 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 " @@ -10374,13 +9759,13 @@ msgid "" "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." +"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 " @@ -10394,7 +9779,6 @@ msgstr "" "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 " @@ -10405,17 +9789,14 @@ msgstr "" "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 " @@ -10426,7 +9807,6 @@ msgstr "" "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 " @@ -10438,29 +9818,25 @@ msgstr "" "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." 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." #: src/borrowing/interior-mutability.md -#, fuzzy msgid "`RefCell`" -msgstr "Celula/RefCell" +msgstr "`RefCell`" #: src/borrowing/interior-mutability.md -#, fuzzy 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 -#, fuzzy msgid "" "// This triggers an error at runtime.\n" " // let other = cell.borrow();\n" @@ -10471,17 +9847,14 @@ msgstr "" " // println!(\"{}\", *other);\n" #: src/borrowing/interior-mutability.md -#, fuzzy msgid "\"{cell:?}\"" -msgstr "Celula/RefCell" +msgstr "\"{cell:?}\"" #: src/borrowing/interior-mutability.md -#, fuzzy msgid "`Cell`" -msgstr "`Celula`" +msgstr "`Cell`" #: 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 " @@ -10493,7 +9866,6 @@ msgstr "" "împrumut nu pot fi încălcate." #: 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 " @@ -10505,7 +9877,6 @@ msgstr "" "`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 " @@ -10518,7 +9889,6 @@ msgstr "" "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 " @@ -10530,7 +9900,6 @@ msgstr "" "`\"{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 " @@ -10540,8 +9909,17 @@ msgstr "" "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." @@ -10551,7 +9929,6 @@ msgstr "" "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,19 +9936,17 @@ 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ă:" +"metoda lipsă:" #: src/borrowing/exercise.md -#, fuzzy msgid "" "\"Update a user's statistics based on measurements from a visit to the " "doctor\"" @@ -10582,54 +9957,45 @@ msgstr "" #: src/borrowing/exercise.md src/borrowing/solution.md #: src/android/build-rules/library.md #: src/android/aidl/example-service/client.md -#, fuzzy 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)" 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 " @@ -10643,17 +10009,16 @@ msgstr "" "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 +10027,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,11 +10043,10 @@ 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 @@ -10702,7 +10063,6 @@ 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." msgstr "" @@ -10714,7 +10074,6 @@ 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 " @@ -10727,22 +10086,19 @@ msgstr "" "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." #: src/lifetimes/lifetime-elision.md -#, fuzzy msgid "" "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." @@ -10757,7 +10113,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,26 +10121,22 @@ 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:" #: 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." 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 " @@ -10806,7 +10157,6 @@ 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:" msgstr "" @@ -10814,32 +10164,26 @@ msgstr "" "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 " @@ -10850,7 +10194,6 @@ msgstr "" "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." @@ -10859,7 +10202,6 @@ msgstr "" "(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 " @@ -10870,14 +10212,12 @@ msgstr "" "î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." #: 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 " @@ -10891,20 +10231,19 @@ msgstr "" "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." 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` " @@ -10917,12 +10256,10 @@ msgstr "" "î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 " @@ -10936,7 +10273,6 @@ msgstr "" "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 " @@ -10950,7 +10286,6 @@ msgstr "" "î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,48 +10293,16 @@ 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 " @@ -11007,48 +10310,70 @@ msgid "" " /// 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" 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 "/// 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 "\"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 "\"Expected `i32` to be an `I32` field\"" +msgstr "\"Se aștepta ca `i32` să fie un câmp `I32`\"" + +#: 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,17 +10382,18 @@ 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" @@ -11077,16 +10403,14 @@ msgid "" "\"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,127 +10420,124 @@ 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 "\"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 msgid "// Unwrap error because `value` is definitely 4 bytes long.\n" -msgstr "// Eroare de dezarhivare deoarece `value` are o lungime de 4 bytes.\n" +msgstr "// Eroare de despachetare deoarece `value` are o lungime de 4 bytes.\n" #: src/lifetimes/solution.md #, fuzzy msgid "// skip everything else\n" msgstr "// săriți peste orice altceva\n" -#: src/lifetimes/solution.md -#, fuzzy -msgid "b\"hello\"" -msgstr "b \"hello\"" - #: src/welcome-day-4.md -#, fuzzy 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" +"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)" 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` " @@ -11225,17 +10546,15 @@ msgid "" 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 " +"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 " @@ -11250,7 +10569,6 @@ msgstr "" "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` " @@ -11259,13 +10577,11 @@ msgid "" 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/" @@ -11273,58 +10589,51 @@ msgid "" "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:" +"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,7 +10642,6 @@ 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 " @@ -11351,7 +10659,6 @@ 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/" @@ -11362,22 +10669,18 @@ msgstr "" "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` " @@ -11388,7 +10691,6 @@ msgstr "" "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,39 +10699,37 @@ 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." 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:" +"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" @@ -11445,27 +10745,22 @@ msgstr "" "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)" msgstr "" @@ -11473,31 +10768,26 @@ msgstr "" "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." #: 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." @@ -11506,7 +10796,6 @@ msgstr "" "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." @@ -11515,14 +10804,12 @@ msgstr "" "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:" msgstr "" @@ -11530,70 +10817,60 @@ msgstr "" "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`." 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." 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." @@ -11603,7 +10880,6 @@ msgstr "" "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." @@ -11613,28 +10889,24 @@ msgstr "" "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:" #: src/modules/filesystem.md -#, fuzzy msgid "" "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." @@ -11643,24 +10915,20 @@ msgstr "" "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`." @@ -11669,32 +10937,26 @@ msgstr "" "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." @@ -11703,7 +10965,6 @@ msgstr "" "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)." @@ -11712,17 +10973,14 @@ msgstr "" "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)." @@ -11731,12 +10989,10 @@ msgstr "" "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:" @@ -11747,63 +11003,53 @@ msgstr "" #: 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" 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" +"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 " @@ -11819,7 +11065,6 @@ msgstr "" "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 " @@ -11830,7 +11075,6 @@ msgstr "" "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 " @@ -11841,7 +11085,6 @@ msgstr "" "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." @@ -11851,12 +11094,10 @@ msgstr "" "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:" @@ -11865,7 +11106,6 @@ msgstr "" "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." @@ -11878,37 +11118,30 @@ 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" @@ -11919,63 +11152,51 @@ msgstr "" " // ?-operator aici în loc de .unwrap().\n" #: src/modules/exercise.md src/modules/solution.md -#, fuzzy msgid "\"+-{:-. Then use\n" @@ -12067,79 +11274,66 @@ 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." msgstr "" "Testele sunt marcate cu `#[test]`. Testele unitare sunt deseori plasate într-" -"un modul `tests` imbricate, folosind `#[cfg(test)]` pentru a le compila " +"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." @@ -12149,38 +11343,33 @@ 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 +11379,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,25 +11386,18 @@ 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." #: 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." @@ -12225,7 +11406,6 @@ msgstr "" "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,47 +11414,41 @@ 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." 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." 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." 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." @@ -12298,12 +11472,10 @@ msgstr "" "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`." @@ -12330,10 +11502,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 " +"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,196 +11512,172 @@ 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." 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 "" +"Incluzând 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:" #: 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ă" #: 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." @@ -12539,7 +11686,6 @@ msgstr "" "întors." #: src/error-handling/panics.md -#, fuzzy msgid "" "Use non-panicking APIs (such as `Vec::get`) if crashing is not acceptable." msgstr "" @@ -12547,31 +11693,26 @@ msgstr "" "acceptabilă blocarea." #: src/error-handling/panics.md -#, fuzzy msgid "" "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`!" @@ -12580,7 +11721,6 @@ msgstr "" "`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,14 +11729,118 @@ 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`." +#: 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. " @@ -12609,44 +11853,36 @@ msgstr "" "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:" #: 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." @@ -12655,7 +11891,6 @@ msgstr "" "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`. " @@ -12668,7 +11903,6 @@ msgstr "" "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,12 +11911,10 @@ 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 " @@ -12692,22 +11924,18 @@ msgstr "" "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. " @@ -12723,7 +11951,6 @@ msgstr "" "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,7 +11959,6 @@ 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 " @@ -12743,7 +11969,6 @@ msgstr "" "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` " @@ -12758,7 +11983,6 @@ 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::" @@ -12770,22 +11994,18 @@ msgstr "" "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}\"" @@ -12829,12 +12049,11 @@ msgstr "" "î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ă " +"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 @@ -12856,17 +12075,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 +12092,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:?}\"" @@ -12965,12 +12179,10 @@ msgstr "" "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 " @@ -12978,10 +12190,9 @@ msgid "" "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 @@ -13038,22 +12249,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:?}\"" @@ -13065,32 +12272,26 @@ msgstr "" "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\"" @@ -13236,7 +12437,6 @@ msgstr "" "Crearea de pointeri este sigură, dar dereferențierea lor necesită `unsafe`:" #: src/unsafe-rust/dereferencing.md -#, fuzzy msgid "\"careful!\"" msgstr "\"Atenție!\"" @@ -13273,17 +12473,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: {}\"" @@ -13385,9 +12582,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,9 +12606,8 @@ 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 @@ -13447,12 +12642,10 @@ msgstr "" "activ:" #: src/unsafe-rust/unions.md -#, fuzzy msgid "\"int: {}\"" msgstr "\"int: {}\"" #: src/unsafe-rust/unions.md -#, fuzzy msgid "\"bool: {}\"" msgstr "\"bool: {}\"" @@ -13505,12 +12698,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 +12715,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 +12732,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: {}\"" @@ -13724,22 +12912,18 @@ msgstr "" "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)" @@ -13764,7 +12948,6 @@ 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)" @@ -13785,7 +12968,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,7 +12986,6 @@ 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)" @@ -13899,7 +13080,6 @@ msgstr "" "funcțiile și metodele care lipsesc:" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md -#, fuzzy msgid "\"macos\"" msgstr "\"macos\"" @@ -13927,7 +13107,6 @@ 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\"" @@ -13953,7 +13132,6 @@ msgstr "" "PowerPC.\n" #: src/unsafe-rust/exercise.md src/unsafe-rust/solution.md -#, fuzzy msgid "\"readdir$INODE64\"" msgstr "\"readdir$INODE64\"" @@ -13979,20 +13157,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 +13174,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 +13206,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\"" @@ -14402,13 +13564,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 +13588,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 +13644,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 +13661,12 @@ 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 msgid "\"src/lib.rs\"" msgstr "src/main.rs_:" @@ -14532,7 +13686,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!\"" @@ -14626,15 +13779,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 @@ -14732,9 +13882,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,28 +13894,24 @@ 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\"" @@ -14806,7 +13951,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 +13959,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_:" @@ -14946,7 +14088,6 @@ 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 msgid "\"Failed to connect to BirthdayService\"" msgstr "\"Nu a reușit să se conecteze la BirthdayService\"" @@ -14956,40 +14097,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_:" @@ -15129,7 +14244,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\"" @@ -15241,16 +14355,14 @@ 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." +"Rust urmărește durata de viață a tuturor referințelor pentru a se asigura că " +"acestea sunt valide." #: src/android/aidl/types/primitives.md #, fuzzy @@ -15260,7 +14372,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 @@ -15295,7 +14407,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 @@ -15320,15 +14435,17 @@ msgstr "Înapoi" #: src/android/interoperability/cpp/type-mapping.md #, fuzzy msgid "`Vec`" -msgstr "`Vec`" +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." #: 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." +"`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 " @@ -15454,17 +14571,14 @@ msgstr "" "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}\"" @@ -15493,9 +14607,8 @@ msgstr "" " // 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 @@ -15538,29 +14651,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 +14690,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\"" @@ -15646,12 +14752,10 @@ msgstr "" "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\"" @@ -15691,10 +14795,10 @@ msgstr "" 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." +"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 " @@ -15864,17 +14968,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 +14995,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!\"" @@ -15998,15 +15093,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)." @@ -16060,20 +15154,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 +15181,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 +15208,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 +15230,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_:" @@ -16209,31 +15290,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 +15332,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 +15350,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 +15372,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 +15381,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\"" @@ -16386,7 +15444,6 @@ msgstr "" "bridge]`." #: src/android/interoperability/cpp/bridge.md -#, fuzzy msgid "\"org::blobstore\"" msgstr "\"org::blobstore\"" @@ -16408,11 +15465,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 +15478,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\"" @@ -16529,12 +15581,10 @@ 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\"" @@ -16604,12 +15654,10 @@ msgstr "" "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!\"" @@ -16643,14 +15691,12 @@ msgstr "" "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 @@ -16805,29 +15851,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\"" @@ -16886,23 +15927,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 +15949,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\"" @@ -16950,12 +15985,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 +16005,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 +16029,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 +16042,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 +16064,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 @@ -17127,13 +16152,12 @@ msgstr "" "lunii noiembrie 2023):" #: src/chromium/setup.md -#, fuzzy msgid "" "(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 @@ -17688,7 +16712,6 @@ msgstr "" "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.)" @@ -17898,7 +16921,7 @@ msgstr "" #: src/chromium/build-rules/vscode.md #, fuzzy msgid "" -"Demo **type annotations** (there are quote a few nice examples in the " +"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 " @@ -18304,7 +17327,6 @@ msgstr "" "`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\"" @@ -18512,7 +17534,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,8 +17546,8 @@ 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 @@ -18747,7 +17768,6 @@ msgstr "" "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\"" @@ -18782,7 +17802,7 @@ msgstr "" #, 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 " +"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 " @@ -18805,7 +17825,6 @@ msgstr "" "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\"" @@ -18906,7 +17925,6 @@ 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\"" @@ -19266,13 +18284,12 @@ msgstr "" "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." 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 @@ -19379,7 +18396,10 @@ 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 @@ -19433,9 +18453,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 @@ -19972,7 +18991,6 @@ msgstr "" "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 " @@ -20111,13 +19129,12 @@ msgstr "" "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!)" 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" @@ -20272,7 +19289,7 @@ 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 " +"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 "" @@ -20301,12 +19318,14 @@ msgstr "" #: 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 +19395,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 @@ -20498,9 +19517,8 @@ 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 @@ -20656,14 +19674,13 @@ 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 @@ -20815,7 +19832,7 @@ msgstr "" #, fuzzy msgid "" "Changing the configuration of a pin consumes the old pin instance, so you " -"can't keep use the old instance afterwards." +"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." @@ -20856,7 +19873,7 @@ 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 " +"Crate-ul [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o " "serie de caracteristici care acoperă perifericele comune ale " "microcontrolerului." @@ -20925,23 +19942,21 @@ msgstr "" "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 " +"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." msgstr "" -"Crăiasa [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o " +"Crate-ul [`embedded-hal`](https://crates.io/crates/embedded-hal) oferă o " "serie de caracteristici care acoperă perifericele comune ale " "microcontrolerului." @@ -20983,7 +19998,6 @@ msgstr "" "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 " @@ -20992,8 +20006,8 @@ msgid "" 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." +"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 @@ -21084,7 +20098,6 @@ 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\"" @@ -21135,7 +20148,6 @@ msgstr "" "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)" @@ -21254,9 +20266,9 @@ msgstr "" #: 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`]" @@ -21308,10 +20320,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 @@ -21336,9 +20346,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 +20365,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 +20374,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,9 +20383,8 @@ 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 @@ -21727,58 +20733,48 @@ msgstr "" " // 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 @@ -22237,7 +21233,7 @@ msgid "" "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 @@ -22313,7 +21309,6 @@ msgstr "" "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, " @@ -22415,7 +21410,6 @@ msgstr "" " // ș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 +21430,6 @@ msgid "b'q'" msgstr "b'q'" #: src/bare-metal/aps/better-uart/using.md -#, fuzzy msgid "\"Bye!\"" msgstr "\"La revedere!\"" @@ -22470,7 +21463,6 @@ msgstr "" "trăsăturii `Log`." #: src/bare-metal/aps/logging.md -#, fuzzy msgid "\"[{}] {}\"" msgstr "\"[{}] {}\"" @@ -22495,7 +21487,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}\"" @@ -22579,7 +21570,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\"" @@ -22621,7 +21611,6 @@ msgstr "" "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)" @@ -22694,7 +21683,7 @@ msgid "" "traits and macros for safely converting between byte sequences and other " "types." msgstr "" -"Crăiasa [`zerocopy`](https://docs.rs/zerocopy/) (din Fuchsia) oferă " +"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." @@ -22750,13 +21739,12 @@ msgstr "" "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." msgstr "" -"Crăiasa [`aarch64-paging`](https://crates.io/crates/aarch64-paging) vă " +"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." @@ -22806,7 +21794,6 @@ msgstr "" "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 " @@ -22818,8 +21805,8 @@ msgid "" "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-" @@ -22891,7 +21878,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,7 +21905,7 @@ 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, " +"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`." @@ -22952,9 +21939,9 @@ 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 " -"build rules, along with an entry point, UART console logging and more." +"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/" @@ -23040,7 +22027,7 @@ msgid "" "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." @@ -23129,9 +22116,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 +22140,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})\"" @@ -23180,7 +22165,6 @@ msgstr "" " // ș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 +22174,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\"" @@ -23397,9 +22378,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 @@ -23477,12 +22457,10 @@ 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}\"" @@ -23551,13 +22529,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." 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 @@ -23588,13 +22565,12 @@ 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`" 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 @@ -23732,9 +22708,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" @@ -23751,7 +22726,6 @@ msgstr "" "punctele finale." #: src/concurrency/channels/senders-receivers.md -#, fuzzy msgid "\"Received: {:?}\"" msgstr "\"Recepționat: {:?}\"" @@ -23782,22 +22756,18 @@ 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}\"" @@ -23868,22 +22838,20 @@ msgstr "" "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." 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." +"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." 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." +"este `Sync` dacă este sigur să muți un `&T` între fire de execuție." #: src/concurrency/send-sync/marker-traits.md #, fuzzy @@ -24128,9 +23096,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,7 +23110,6 @@ 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`:" @@ -24152,12 +23118,10 @@ msgstr "" "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:?}\"" @@ -24209,16 +23173,15 @@ 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 @@ -24371,11 +23334,6 @@ msgstr "" 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:" @@ -24433,7 +23391,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 +23404,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 +23411,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 +23425,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 +23432,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 +23439,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 @@ -24638,49 +23589,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 @@ -24710,7 +23653,6 @@ msgstr "" "site." #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"{} is trying to eat\"" msgstr "\"{} încearcă să mănânce\"" @@ -24727,7 +23669,6 @@ msgstr "" " //fără a dezinitializa niciuna dintre ele.\n" #: src/concurrency/sync-exercises/solutions.md -#, fuzzy msgid "\"{thought}\"" msgstr "\"{thought}\"" @@ -24763,12 +23704,10 @@ 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 " @@ -24777,13 +23716,13 @@ msgid "" "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 " +"\"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. 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." +"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 @@ -24828,9 +23767,8 @@ msgstr "" "î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 +23788,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)" @@ -24879,9 +23816,8 @@ msgstr "" "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 @@ -24949,7 +23885,6 @@ msgstr "" "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 " @@ -24958,7 +23893,7 @@ msgid "" 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` " +"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 @@ -25119,12 +24054,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}\"" @@ -25193,19 +24126,16 @@ msgstr "" "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,12 +24143,10 @@ 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\"" @@ -25271,7 +24199,6 @@ msgstr "" "folosind `?`." #: src/concurrency/async-control-flow.md -#, fuzzy msgid "" "[Async Channels](./concurrency/async-control-flow/channels.md) (10 minutes)" msgstr "" @@ -25295,27 +24222,22 @@ 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.\"" @@ -25329,7 +24251,7 @@ msgstr "" #, 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)." @@ -25375,27 +24297,22 @@ 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 " @@ -25403,7 +24320,7 @@ msgid "" 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 " +"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 @@ -25458,27 +24375,22 @@ msgstr "" "rezultatul `future`." #: 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:?}\"" @@ -25559,16 +24471,16 @@ 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)" +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)" +msgstr "[Anulare](./concurrency/async-pitfalls/cancellation.md) (20 minute)" #: src/concurrency/async-pitfalls/blocking-executor.md #, fuzzy @@ -25595,7 +24507,6 @@ 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\"" @@ -25720,7 +24631,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 +24652,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}\"" @@ -25802,7 +24710,7 @@ msgstr "" 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." +"`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 " @@ -25917,12 +24825,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\"" @@ -25975,19 +24881,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!\"" @@ -26039,7 +24940,6 @@ 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 " @@ -26050,7 +24950,6 @@ msgstr "" "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 " @@ -26061,7 +24960,6 @@ msgstr "" "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_ " @@ -26081,7 +24979,6 @@ msgstr "" "(20 minute)" #: src/concurrency/async-exercises.md -#, fuzzy msgid "" "[Broadcast Chat Application](./concurrency/async-exercises/chat-app.md) (30 " "minutes)" @@ -26103,8 +25000,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." @@ -26230,8 +25127,8 @@ 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\", " +"tokio = { version = \"1.39.2\", features = [\"full\"] }\n" +"tokio-websockets = { version = \"0.9.0\", features = [\"client\", " "\"fastrand\", \"server\", \"sha1_smol\"] }\n" "```" msgstr "" @@ -26431,17 +25328,15 @@ msgstr "" "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" +"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" @@ -26463,7 +25358,7 @@ msgstr "" #: 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\"" @@ -26496,7 +25391,7 @@ msgid "" "_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 " +"Vă mulțumim că ați parcurs Comprehensive Rust 🦀!_ Sperăm că v-a plăcut și " "că a fost util." #: src/thanks.md @@ -26521,9 +25416,10 @@ msgstr "" "legătura între termenul respectiv și originalul în limba engleză." #: src/glossary.md +#, fuzzy 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)." @@ -26547,17 +25443,19 @@ msgstr "" "sistem de operare. A se vedea [Bare-metal Rust](bare-metal.md)." #: src/glossary.md +#, fuzzy 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_." #: src/glossary.md +#, fuzzy msgid "" "borrow: \n" -"See [Borrowing](ownership/borrowing.md)." +"See [Borrowing](borrowing/shared.md)." msgstr "" "împrumut (borrow):\n" "A se vedea [Împrumut](ownership/borrowing.md)." @@ -26612,7 +25510,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 "" @@ -26623,9 +25521,10 @@ msgstr "" "Executarea mai multor sarcini sau procese în același timp." #: src/glossary.md +#, fuzzy 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)." @@ -26941,13 +25840,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 "" @@ -26993,7 +25891,6 @@ 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` " @@ -27001,21 +25898,20 @@ msgid "" msgstr "" "static:\n" "Un cuvânt cheie din Rust folosit pentru a defini variabile statice sau " -"elemente cu o durată de viață `'static`'." +"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." #: src/glossary.md -#, fuzzy msgid "" "struct: \n" "A composite data type in Rust that groups together variables of different " @@ -27055,7 +25951,6 @@ msgstr "" "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 " @@ -27143,10 +26038,11 @@ msgstr "" "Tip care nu conține date, scris ca un tuplu fără membri." #: src/glossary.md +#, fuzzy 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 " @@ -27272,10 +26168,11 @@ msgstr "" "Rust din perspectiva programatorilor C de nivel inferior." #: src/other-resources.md +#, fuzzy msgid "" -"[Rust for Embedded C Programmers](https://docs.opentitan.org/doc/ug/" -"rust_for_c/): covers Rust from the perspective of developers who write " -"firmware in C." +"[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 " @@ -27314,10 +26211,10 @@ msgstr "" #: 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 "