Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ro-RO: Update romanian translation #2256

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

RazvanSt
Copy link
Contributor

More strings translated and checked for Romanian translation

@AlexandraImbrisca
Copy link
Collaborator

Hi! I just finished the review (sorry for waiting so long, it took quite a bit to go through all the changes). I'm not super familiar with the .po files, so please take everything that I mention with a grain of salt and feel free to ignore it if it doesn't make sense :D

I couldn't find a way to leave comments easily (since the diff is so large), so I'll mention the line (from the newest version) for each note:

  • Line 302 (and other occurrences later): when I read "Jurnalier," I don't connect it with "Logger." It might be my limited experience reading Romanian technical content, but I thought it was worth mentioning that I find it slightly confusing
  • Line 721: "array types" is translated to "tipuri de tip vector". Could it be simplified to "tipuri de vectori" instead?
  • Line 1507: "gap" is translated to "interval". "Interval" is a bit generic, maybe "interval de pauza" instead?
  • Line 3298: "n>1" is translated to "n>2". Shouldn't the condition remain the same?
  • Line 4439: "Hello" is not translated. I'm not sure if it's a problem, but I saw it translated in almost all the other places
  • Line 4553: the translation "tuturorcoordonatelor" doesn't contain a space between the 2 words
  • Line 4671: "Tuple" is translated to "cuplu" even though it's referenced as "tuplu" in most of the other places
  • Line 5070, 5074, 5078, 5120, 5124, 5128: from the context, the sentences seem to be referring to an elevator (correctly referenced in the translations), but the msgids reference a car instead
  • Line 5991: "greet is provided" is translated to "green este furnizat". Greet seem to be translated incorrectly
  • Line 6567: "virtual method table" is translated to "tablele de metode virtuale". Tablele is incorrect (maybe "tabel" instead?)
  • Line 7639: the translation contains double "cu" ("casting cu cu") which sounds incorrect
  • Line 10806: "crates" is translated to "crates-uri" instead of "crate-uri"
  • Line 11356, 22737, 25429, 25564: commented msgids. Should they be removed?
  • Line 14125, 14159, 14187, 17229: the translation of the msgids don't match with the msgstrs. Should the msgids contain the additional details included in the msgstrs?
  • Line 21284, 21342: "crate" is translated to "crăiasa". Should it remain "crate" as in the other places?

@razvanm
Copy link
Collaborator

razvanm commented Aug 19, 2024

I also apologize for the super slow response. This is my first attempt to review something like this and I'm still struggling to find a convenient way to review this. This is a partial review, up to line 721 (ID 174).

What I tried was to split each message in separate files and then diff them assuming that the IDs are the same between the base of the PR and the PR. That doesn't seem to be the case though because from ID 78 things are diverging (the base has msgid "Exercise: Generic `min`" for that ID while the PR has msgid "`dyn Trait`"). What I did for now is use git diff -u HEAD^..HEAD po/ro.po and look at the chunks. That's what I'm using below.


@@ -302,9 +299,8 @@ msgid "Deriving"
 msgstr "Derivarea"
 
 #: src/SUMMARY.md
-#, fuzzy
 msgid "Exercise: Generic Logger"
-msgstr "Exercițiu: Logger generic"
+msgstr "Exercițiu: Jurnalier generic"
 
 #: src/SUMMARY.md
 msgid "Day 2: Afternoon"

As @AlexandraImbrisca also mentioned, I find the term "Jurnarlier" a bit confusing in this technical setting.


@@ -334,6 +330,10 @@ msgstr "Limite de trăsături"
 msgid "`impl Trait`"
 msgstr "`impl Trait`"
 
+#: src/SUMMARY.md src/generics/dyn-trait.md
+msgid "`dyn Trait`"
+msgstr "`din Trait`"
+
 #: src/SUMMARY.md src/generics/exercise.md
 msgid "Exercise: Generic `min`"
 msgstr "Exercițiu: 'min' generic"

I believe dyn is a keyword in Rust so we should not translate it.


@@ -466,8 +465,8 @@ msgid "`Rc`"
 msgstr "`Rc`"
 
 #: src/SUMMARY.md src/smart-pointers/trait-objects.md
-msgid "Trait Objects"
-msgstr "Obiecte cu trăsături"
+msgid "Owned Trait Objects"
+msgstr "Obiecte cu trăsături proprii"
 
 #: src/SUMMARY.md src/smart-pointers/exercise.md
 msgid "Exercise: Binary Tree"

It seems that the term "owned" is translated as "deținut" or "propriu" in various places. Is there a rule we are following?


@@@ -705,30 -709,37 +705,30 @@@ msgid "Changing API
  msgstr "Schimbarea API-ului"
  
  #: src/SUMMARY.md
 -#, fuzzy
  msgid "Updating Implementations"
 -msgstr "Implementare"
 +msgstr "Actualizare implementare"

I think "Actualizare implementărilor" might be better because both the client and server code needs to be updated (ref) .


 #: src/SUMMARY.md src/android/aidl/types/arrays.md
-#, fuzzy
 msgid "Array Types"
-msgstr "Array-uri"
+msgstr "Tipuri de tip vector"

It seems that we use the terms "vector" in a bunch or places already but I'm not sure that's quite the right one because Rust seem to also have a std::vec::Vec which the docs claims it's a short name for vector. The mathematical explanation in the English dictionary seems to be "an arrangement of quantities or symbols in rows and columns; a matrix" so maybe the term "matrice/matrici" might be more suitable.


I'll try to find time to make progress in a more timely fashion. 😊

@RazvanSt
Copy link
Contributor Author

RazvanSt commented Aug 20, 2024 via email

@RazvanSt
Copy link
Contributor Author

RazvanSt commented Aug 20, 2024 via email

@RazvanSt RazvanSt marked this pull request as draft August 20, 2024 11:16
@RazvanSt RazvanSt marked this pull request as ready for review August 20, 2024 12:55
@mgeisler
Copy link
Collaborator

Translation was initially performed with DeepL and messages are marked as needs work.

Do you have a script for this? If not, https://crates.io/crates/cloud-translate might be useful for you. This is a tiny crate I wrote which takes a PO file and sends the content through Google Translate (we could add other backends). The result is then written back to a well-formed PO file, with all new entries marked as fuzzy.

If you have an automated approach for this, then we could mention it in our documentation! It would be cool to give people an easy way to bootstrap a new translation.

@mgeisler
Copy link
Collaborator

This is my first attempt to review something like this and I'm still struggling to find a convenient way to review this.

Yes, the huge PO files break the normal GitHub workflow. I would like to see us use a translation platform instead, but that requires work in finding one which we can integrate into our workflow (#1305).

What I do myself is to use command line tools. Specifically, I like

gh pr diff 2256 | bat -l patch

which very quickly shows me the diff, regardless of the size.

@RazvanSt
Copy link
Contributor Author

RazvanSt commented Aug 21, 2024 via email

@mgeisler
Copy link
Collaborator

Another random tip, since I ran into this recently: see #1948 (comment) for a multi-step procedure to hand-merging out-of-date .po files. This will probably happen to you sooner or later.

@mgeisler
Copy link
Collaborator

Hi @razvanm, does this look okay to merge now?

@razvanm
Copy link
Collaborator

razvanm commented Aug 31, 2024

Hi @razvanm, does this look okay to merge now?

It's a long weekend in the US due to Labor Day and I hope I'll finish maybe a complete pass over it. Sorry for the delay! 😊

@razvanm
Copy link
Collaborator

razvanm commented Sep 2, 2024

I figured out a way to diff that using msgexec to iterate over all the messages. Yay! 🎉

This is a review for c0447d3 and it only covers the IDs from 175 to 770. I believe there are 450 more diffs I haven't looked at yet. Once again, I apologize for the slow speed.

Note, unlike before, the diffs from below only show the diff between the translations. I hope indicating the ID would help to locate the right entry.


ID: 176

msgid:

Parcelables

diff:

--- /tmp/po/a4230079103147a18f795fda906a82f3fc22f353c5f5e669804bfe958661473b/old        2024-09-01 16:42:37.916345758 -0700
+++ /tmp/po/a4230079103147a18f795fda906a82f3fc22f353c5f5e669804bfe958661473b/new        2024-09-01 16:42:03.483785126 -0700
@@ -1 +1 @@
-Variabile
\ No newline at end of file
+Compartimentare
\ No newline at end of file

I'm not sure this should be translated because the term Parcel seems to be a particular type of Java object in Android (reference). Maybe "Obiecte Parcel"?


ID: 351

msgid:

[Tuples and Arrays](../tuples-and-arrays.md) (35 minutes)

diff:

--- /tmp/po/8ab9972b98a807a9ddc7cf865cf4a8d3f4d87b25f1a543df12068e2749696d98/old        2024-09-01 16:42:39.072364582 -0700
+++ /tmp/po/8ab9972b98a807a9ddc7cf865cf4a8d3f4d87b25f1a543df12068e2749696d98/new        2024-09-01 16:42:05.087811241 -0700
@@ -1 +1 @@
-[Tupluri și array-uri](../tupluri-și-array-uri.md) (1 oră)
\ No newline at end of file
+[Tupluri și vectori](../tuples-and-arrays.md) (35 de minute)
\ No newline at end of file

I think "vectori" should be "matrici" as discussed earlier.


ID: 487

msgid:

Including 10 minute breaks, this session should take about 2 hours and 5 minutes

diff:

--- /tmp/po/b266e979cc58da136708e141eeb2eca9b861d3cc703f26aa290017fecf8246bc/old        2024-09-01 16:42:39.948378847 -0700
+++ /tmp/po/b266e979cc58da136708e141eeb2eca9b861d3cc703f26aa290017fecf8246bc/new        2024-09-01 16:42:06.331831496 -0700
@@ -1 +1 @@
-Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze aproximativ 2 ore și 55 de minute
\ No newline at end of file
+Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze aproximativ 2 ore și 5 minute
\ No newline at end of file

I think "Incluzând" sounds odd. How about "Împreună cu"?


ID: 553

msgid:

[Type Inference](./types-and-values/inference.md) (3 minutes)

diff:

--- /tmp/po/9bb6724f49880866deed9ff8813a547ac895f166392ccf9eed6e5d4ca21aa0be/old        2024-09-01 16:42:40.384385947 -0700
+++ /tmp/po/9bb6724f49880866deed9ff8813a547ac895f166392ccf9eed6e5d4ca21aa0be/new        2024-09-01 16:42:06.935841330 -0700
@@ -1 +1 @@
-[Inferență de tip](./types-and-values/inference.md) (5 minute)
\ No newline at end of file
+[Inferență de tip](./types-and-values/inference.md) (3 minute)
\ No newline at end of file

I think "Inferența tipului" or "Inferența tipurilor" would sound a bit more natural.


ID: 604

msgid:

Change the `i32`'s to `i16` to see an integer overflow, which panics (checked) in a debug build and wraps in a release build. There are other options, such as overflowing, saturating, and carrying. These are accessed with method syntax, e.g., `(a book.toml Cargo.lock Cargo.toml CONTRIBUTING.md diff.sh dprint.json LICENSE mdbook-course mdbook-exerciser po README.md rustfmt.toml split-po-ro.sh split-po.sh split-po.sh~ src STYLE.md theme third_party to-review TRANSLATIONS.md b).saturating_add(b book.toml Cargo.lock Cargo.toml CONTRIBUTING.md diff.sh dprint.json LICENSE mdbook-course mdbook-exerciser po README.md rustfmt.toml split-po-ro.sh split-po.sh split-po.sh~ src STYLE.md theme third_party to-review TRANSLATIONS.md c).saturating_add(c book.toml Cargo.lock Cargo.toml CONTRIBUTING.md diff.sh dprint.json LICENSE mdbook-course mdbook-exerciser po README.md rustfmt.toml split-po-ro.sh split-po.sh split-po.sh~ src STYLE.md theme third_party to-review TRANSLATIONS.md a)`.

diff:

--- /tmp/po/9a48256fa69a55637a687ee83480f9857c7a5b2370c7007ce0686177918f6fa3/old	2024-09-01 16:42:40.720391418 -0700
+++ /tmp/po/9a48256fa69a55637a687ee83480f9857c7a5b2370c7007ce0686177918f6fa3/new	2024-09-01 16:42:07.415849145 -0700
@@ -1 +1 @@
-Schimbați `i32` în `i16` pentru a vedea o depășire de număr întreg, care intră în panică (verificată) într-o compilare de depanare și care se înfășoară într-o compilare de release. Există și alte opțiuni, cum ar fi depășirea, saturarea și reținerea depășirii. Acestea sunt accesate cu sintaxa metodei, de exemplu, `(a * b).saturating_add(b * c).saturating_add(c * a)`.
\ No newline at end of file
+Schimbați `i32` în `i16` pentru a vedea o depășire de număr întreg, care 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)`.
\ No newline at end of file

I'm not sure "înfășoară" is the right term for "wraps". I haven't researched this much but one translation that seems more suitable is "a o lua de la capăt" that is used here.

--

ID: 617

msgid:

[if Expressions](./control-flow-basics/if.md) (4 minutes)

diff:

--- /tmp/po/e5f29c3ae2dc32ff2a13824c471b21a671b6659689f6181db1915fc106ade3de/old	2024-09-01 16:42:40.808392850 -0700
+++ /tmp/po/e5f29c3ae2dc32ff2a13824c471b21a671b6659689f6181db1915fc106ade3de/new	2024-09-01 16:42:07.539851163 -0700
@@ -1 +1 @@
-[Macrouri](./control-flow-basics/macros.md) (2 minute)
\ No newline at end of file
+[Expresii if](./control-flow-basics/if.md) (4 minute)
\ No newline at end of file

I think it would be good to use backticks around "if" like we do in ID 619.


ID: 620

msgid:

[Blocks and Scopes](./control-flow-basics/blocks-and-scopes.md) (5 minutes)

diff:

--- /tmp/po/7bcfbc6758ec763be164b6c2f40ecd336e5b23088fd2e64382676e9e9d3b1d0a/old	2024-09-01 16:42:40.828393177 -0700
+++ /tmp/po/7bcfbc6758ec763be164b6c2f40ecd336e5b23088fd2e64382676e9e9d3b1d0a/new	2024-09-01 16:42:07.567851619 -0700
@@ -1 +1 @@
-[Blocuri și domenii de aplicare](./control-flow-basics/blocks-and-scopes.md) (10 minute)
\ No newline at end of file
+[Blocuri și domenii de aplicare](./control-flow-basics/blocks-and-scopes.md) (5 minute)
\ No newline at end of file

We don't seem to be very consistent in the way the term "scope" is translated. ID 30 for example uses the term "scopuri". I think "domeniu de aplicare" is long but a reasonable choice.


ID: 724

msgid:

[Tuples and Arrays](./tuples-and-arrays.md) (35 minutes)

diff:

--- /tmp/po/2236a3986009c07e95d7d5a5ff41367ebafd2baeee2e7fb2d694f148bc183159/old	2024-09-01 16:42:41.512404316 -0700
+++ /tmp/po/2236a3986009c07e95d7d5a5ff41367ebafd2baeee2e7fb2d694f148bc183159/new	2024-09-01 16:42:08.515867054 -0700
@@ -1 +1 @@
-[Tupluri și vectori](./tuples-and-arrays.md) (1 oră)
\ No newline at end of file
+[Tupluri și vectori](./tuples-and-arrays.md) (35 de minute)
\ No newline at end of file

I think "vectori" should be "matrici" as discussed earlier.


ID: 727

msgid:

Including 10 minute breaks, this session should take about 2 hours and 35 minutes--- 

diff:

/tmp/po/1854e55e8f296e30335500441a280a43140bd4a5a4c372fd6815d60c3f414aa1/old	2024-09-01 16:42:41.532404640 -0700
+++ /tmp/po/1854e55e8f296e30335500441a280a43140bd4a5a4c372fd6815d60c3f414aa1/new	2024-09-01 16:42:08.543867510 -0700
@@ -1 +1 @@
-Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze aproximativ 2 ore și 55 de minute
\ No newline at end of file
+Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze aproximativ 2 ore și 35 de minute
\ No newline at end of file

Like for ID 487, I think "Împreună cu" would sound a bit better than "Incluzând".


ID: 728

msgid:

[Arrays](./tuples-and-arrays/arrays.md) (5 minutes)

diff:

--- /tmp/po/deeda48330c9efb9e5e20cdf8134bf40af77ad321c30da1290f5ae6811e6886b/old	2024-09-01 16:42:41.540404771 -0700
+++ /tmp/po/deeda48330c9efb9e5e20cdf8134bf40af77ad321c30da1290f5ae6811e6886b/new	2024-09-01 16:42:08.551867640 -0700
@@ -1 +1 @@
-[Tupluri și vectori](./tuples-and-arrays/tuples-and-arrays.md)  (10 minute)
\ No newline at end of file
+[Vectori](./tuples-and-arrays/arrays.md) (5 minute)
\ No newline at end of file

Same as for ID 724, I think this should be "Matrici".


ID: 731

msgid:

[Patterns and Destructuring](./tuples-and-arrays/destructuring.md) (5 minutes)

diff:

--- /tmp/po/bc4e6597d7d6fa8f2134be90794e035f6257b10e3c475f115bb66fc974325005/old	2024-09-01 16:42:41.560405095 -0700
+++ /tmp/po/bc4e6597d7d6fa8f2134be90794e035f6257b10e3c475f115bb66fc974325005/new	2024-09-01 16:42:08.579868096 -0700
@@ -1 +1 @@
-[Destructurare](./tuples-and-arrays/destructuring.md) (5 minute)
\ No newline at end of file
+[Modele și Destructurare](./tuples-and-arrays/destructuring.md) (5 minute)
\ No newline at end of file

We use the term "șabloane" (and not "modele") for "patterns" in other places (ID 57 for example).


ID: 748

msgid:

However, Rust also supports using pattern matching to destructure a larger value into its constituent parts:

diff:

--- /tmp/po/1f549f7098c00014180b16f0d7ff68ec9a5f0ccdc56931427b0eece428771848/old	2024-09-01 16:42:41.672406921 -0700
+++ /tmp/po/1f549f7098c00014180b16f0d7ff68ec9a5f0ccdc56931427b0eece428771848/new	2024-09-01 16:42:08.735870636 -0700
@@ -1 +1 @@
-Cu toate acestea, Rust suportă, de asemenea, utilizarea potrivirii de tipare pentru a destructura o valoare mai mare în părțile sale constitutive:
\ No newline at end of file
+Rust suportă, de asemenea, utilizarea potrivirii de tipare pentru a destructura o valoare mai mare în părțile sale constitutive:
\ No newline at end of file

We use the term "șabloane" (and not "tipare") for "patterns" in other places (ID 57 for example).


ID: 770

msgid:

Rust will statically forbid dangling references:

diff:

--- /tmp/po/b4d18efc28a2647943039fa4b56d56690aad237dc1a563f7a0616042ba23f2d9/old	2024-09-01 16:42:41.816409264 -0700
+++ /tmp/po/b4d18efc28a2647943039fa4b56d56690aad237dc1a563f7a0616042ba23f2d9/new	2024-09-01 16:42:08.939873958 -0700
@@ -1 +1 @@
-Rust va interzice în mod static referințele invalide:
\ No newline at end of file
+Rust va interzice în mod static referințele în suspensie:
\ No newline at end of file

I'm not sure the "în suspensie" translation for "dangling references" is quite right because that particular form is typically used in chemistry (dexonline). The term "referințe suspendate" seems to be mentioned in one slide deck I found on the web (slideshare). A term that doesn't seem to exist that I would have proposed is "referințe orfane".

@RazvanSt RazvanSt force-pushed the main branch 2 times, most recently from 0f9a45b to 3afa569 Compare September 5, 2024 10:51
@RazvanSt
Copy link
Contributor Author

RazvanSt commented Sep 5, 2024

Thank you @razvanm for taking the time to look over the commit. I've included your observations. Hopefully I didn't missed anything.

Some guidance on translating terms:

  • 'arrays' -> 'matrici'
  • 'dangling references' -> 'referințe orfane'
  • 'warp around' -> 'a o lua de la capăt'

@razvanm
Copy link
Collaborator

razvanm commented Sep 16, 2024

This is a review for 3754e09 and it only covers the IDs from 770 to 1054. I think there are 363 more diffs to go.

Once again, I apologize for the slow speed. 😔


ID: 771

msgid:

A reference is said to "borrow" the value it refers to, and this is a good model for students not familiar with pointers: code can use the reference to access the value, but is still "owned" by the original variable. The course will get into more detail on ownership in day 3.

diff:

--- /tmp/po/cc0a0ae4f12a82dc891c2481a8ba032b058f94831be51c6afd0fb1e4a5c1937a/old	2024-09-15 13:34:13.665744039 -0700
+++ /tmp/po/cc0a0ae4f12a82dc891c2481a8ba032b058f94831be51c6afd0fb1e4a5c1937a/new	2024-09-15 13:33:40.645201852 -0700
@@ -1 +1 @@
-Se spune că o referință "împrumută" valoarea la care se referă, iar acesta este un model bun pentru elevii care nu sunt familiarizați cu indicatoarele: codul poate folosi referința pentru a accesa valoarea, dar este în continuare "deținută" de variabila originală. Cursul va intra în mai multe detalii despre proprietate în ziua 3.
\ No newline at end of file
+Se spune că o referință "împrumută" valoarea la care se referă, iar acesta 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.
\ No newline at end of file

In other parts se seem to use the word "posesie" for "ownership". In here the work "proprietate" is used.


ID: 783

msgid:

A slice gives you a view into a larger collection:

diff:

--- /tmp/po/7a138a54c9f2505cc82fa1c7aba97b799fecbf303b001dd8f611316d94198095/old	2024-09-15 13:34:13.745745353 -0700
+++ /tmp/po/7a138a54c9f2505cc82fa1c7aba97b799fecbf303b001dd8f611316d94198095/new	2024-09-15 13:33:40.757203690 -0700
@@ -1 +1 @@
-O felie (elice) vă oferă o imagine a unei colecții mai mari:
\ No newline at end of file
+O felie (slice) vă oferă o imagine a unei colecții mai mari:
\ No newline at end of file

The "o imagine a unei colecții mai mari" doesn't seem to capture the well the meaning of "view into a larger collection". Maybe we can say "o porțiune dintr-o colecție mai mare"?


ID: 789

msgid:

To easily create a slice of the full array, we can therefore use `&a[..]`.

diff:

--- /tmp/po/cc4e3c1a87a0f8eed6bb780553f61050fb9518740c20ef689a3b25b48dec1cbf/old	2024-09-15 13:34:13.785746012 -0700
+++ /tmp/po/cc4e3c1a87a0f8eed6bb780553f61050fb9518740c20ef689a3b25b48dec1cbf/new	2024-09-15 13:33:40.813204609 -0700
@@ -1 +1 @@
-Pentru a crea cu ușurință o porțiune din întrega matrice, putem folosi `&a[...]`.
\ No newline at end of file
+Pentru a crea cu ușurință o porțiune dintr-un vector putem folosi `&a[...]`.
\ No newline at end of file

As discussed earlier, the preferred term for "array" is "matrice/matrici".


ID: 795

msgid:

`String` is an owned buffer of UTF-8 encoded bytes, similar to `Vec<T>`.

diff:

--- /tmp/po/7288fbd9baa6b9fe37c653a3e14bd5867a3c3b299e0ca0fd676f0666303ab4a6/old	2024-09-15 13:34:13.829746732 -0700
+++ /tmp/po/7288fbd9baa6b9fe37c653a3e14bd5867a3c3b299e0ca0fd676f0666303ab4a6/new	2024-09-15 13:33:40.865205464 -0700
@@ -1 +1 @@
-`&str` este o felie de octeți codificați UTF-8, similar cu `&[u8]`.
\ No newline at end of file
+`String` este un buffer propriu de octeți codificați UTF-8, similar cu `Vec<T>`.
\ No newline at end of file

The "octeți codificați UTF-8" sounds incorrect because the buffer is what is encoded in the UTF-8 format (and not the bytes). Maybe we can say "un buffer propriu de octeți, în format UTF-8"?


ID: 802

msgid:

Rust's `String` type is a wrapper around a vector of bytes. As with a `Vec<T>`, it is owned.

diff:

--- /tmp/po/3b2698cd7a37faeda761a9eef6268c29a0baa5f59c282645ea0f2da30c7dd78b/old	2024-09-15 13:34:13.873747455 -0700
+++ /tmp/po/3b2698cd7a37faeda761a9eef6268c29a0baa5f59c282645ea0f2da30c7dd78b/new	2024-09-15 13:33:40.929206514 -0700
@@ -1 +1 @@
-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<T>`, acesta este propriu.
\ No newline at end of file
+Tipul `String` (șir de caractere) din Rust este o împachetare a unui vector de octeți. La fel ca și în cazul unui `Vec<T>`, acesta este propriu.
\ No newline at end of file

I see the term "wrapper" translated as "înveliș" in a bunch of places that this PR is not touching. I find the term "înveliș" unsual and I think somethink like "adaptor" or "container" would sound better.


ID: 805

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 boundaries, the expression will panic. The `chars` iterator iterates over characters and is preferred over trying to get character boundaries right.

diff:

--- /tmp/po/3ae3687f0a0574bc35943d2c73f616d603177d6ed788c1ac4504ac6851de5651/old	2024-09-15 13:34:13.893747786 -0700
+++ /tmp/po/3ae3687f0a0574bc35943d2c73f616d603177d6ed788c1ac4504ac6851de5651/new	2024-09-15 13:33:40.957206974 -0700
@@ -1 +1 @@
-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.
\ No newline at end of file
+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` iterează peste caractere și este de preferat în locul încercării de a obține limite de caractere corecte.
\ No newline at end of file

I think "prin selectarea intervalului" would sound better as "prin selectarea unui interval". I also think the "aliniat la limitele caracterelor" would sound better as "aliniat cu frontierele caracterelor". For "în locul încercării de a obține limite de caractere corecte" I would suggest "în locul încercării de a obține corect frontierele caracterelor".


ID: 806

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).

diff:

--- /tmp/po/24c96a100076d8d29cb61c30cb599fb77172b3d39d63e008d8108ba5bf2ed609/old	2024-09-15 13:34:13.901747914 -0700
+++ /tmp/po/24c96a100076d8d29cb61c30cb599fb77172b3d39d63e008d8108ba5bf2ed609/new	2024-09-15 13:33:40.969207169 -0700
@@ -1 +1 @@
-Pentru programatorii din C++: gândiți-vă la `&str` ca la `const char*` din C++, dar cel care indică întotdeauna un șir de caractere valid în memorie. Rust `String` este un echivalent aproximativ al lui `std::string` din C++ (principala diferență: poate conține numai octeți codificați UTF-8 și nu va folosi niciodată o optimizare pentru șiruri mici).
\ No newline at end of file
+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).
\ No newline at end of file

Similar with ID 795, for "poate conține numai octeți codificați UTF-8" I would suggest "folosește întotdeauna formatul UTF-8".


ID: 841

msgid:

This is often used for single-field wrappers (called newtypes):

diff:

--- /tmp/po/5e7e2f4e02915bfbf0ee1529411fa8b13122c222cea2e1304914976097fa79fe/old	2024-09-15 13:34:14.137751793 -0700
+++ /tmp/po/5e7e2f4e02915bfbf0ee1529411fa8b13122c222cea2e1304914976097fa79fe/new	2024-09-15 13:33:41.293212491 -0700
@@ -1 +1 @@
-Acest lucru este adesea utilizat pentru învelișurile cu un singur câmp (denumite newtypes):
\ No newline at end of file
+Acest lucru este adesea utilizat pentru structurile de tip înveliș cu un singur câmp (denumite newtypes):
\ No newline at end of file

This is one of the places that uses the term "inveliș" I mentioned above for ID 802.


ID: 876

msgid:

`static` is similar to mutable global variables in C++.

diff:

--- /tmp/po/27622249039aba51ffd67cc48bc912f93ca60a2c5e8a5177b2dd25e984da272e/old	2024-09-15 13:34:14.369755600 -0700
+++ /tmp/po/27622249039aba51ffd67cc48bc912f93ca60a2c5e8a5177b2dd25e984da272e/new	2024-09-15 13:33:41.613217743 -0700
@@ -1 +1 @@
-`static`, pe de altă parte, este mult mai asemănătoar cu o variabilă globală `const` sau mutabilă în C++.
\ No newline at end of file
+`static`, pe de altă parte, este mult mai asemănător cu o variabilă globală `const` sau mutabilă în C++.
\ No newline at end of file

I think something simpler like "static este similar cu variablă globală mutabilă în C++" would work in here.


ID: 878

msgid:

Because `static` variables are accessible from any thread, they must be `Sync`. Interior mutability is possible through a [`Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex.html), atomic or similar.

diff:

--- /tmp/po/ccabb1d3491d7f7ffcbd69f47bbf39228cb92f187209c03df2d772edb4b5ee4e/old	2024-09-15 13:34:14.381755799 -0700
+++ /tmp/po/ccabb1d3491d7f7ffcbd69f47bbf39228cb92f187209c03df2d772edb4b5ee4e/new	2024-09-15 13:33:41.633218071 -0700
@@ -1 +1 @@
-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.
\ No newline at end of file
+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.
\ No newline at end of file

The third sentence doesn't seem to be present in the English text.


ID: 900

msgid:

"The car has arrived on the ground floor: {:?}"

diff:

--- /tmp/po/d015449cd442a6c8cff9d6cc61a8633e1048ada29e2d86cbe2f6070a8739c33f/old	2024-09-15 13:34:14.533758292 -0700
+++ /tmp/po/d015449cd442a6c8cff9d6cc61a8633e1048ada29e2d86cbe2f6070a8739c33f/new	2024-09-15 13:33:41.837221423 -0700
@@ -1 +1 @@
-"Mașina a ajuns la parter: {:?}"
\ No newline at end of file
+"Ascensorul a ajuns la parter: {:?}"
\ No newline at end of file

Note that in the other places we use the term "lift" and not "ascensor".


ID: 901

msgid:

"The car door opened: {:?}"

diff:

--- /tmp/po/62fdda26abedb5664db85e0efc38a5c47791ee6252280a3fb07e55ef0d05bdc7/old	2024-09-15 13:34:14.537758360 -0700
+++ /tmp/po/62fdda26abedb5664db85e0efc38a5c47791ee6252280a3fb07e55ef0d05bdc7/new	2024-09-15 13:33:41.845221555 -0700
@@ -1 +1 @@
-"S-a deschis portiera mașinii: {:?}"
\ No newline at end of file
+"S-a deschis ușa ascensorului: {:?}"
\ No newline at end of file

Same note about the term "lift" vs "ascensor".


ID: 903

msgid:

"The car door closed: {:?}"

diff:

--- /tmp/po/5d075ee0895766f5178b7b07b985ff0c827576658b5472e68f4aaf07777e9c75/old	2024-09-15 13:34:14.553758623 -0700
+++ /tmp/po/5d075ee0895766f5178b7b07b985ff0c827576658b5472e68f4aaf07777e9c75/new	2024-09-15 13:33:41.865221883 -0700
@@ -1 +1 @@
-"Ușa mașinii s-a închis: {:?}"
\ No newline at end of file
+"Ușa ascensorului s-a închis: {:?}"
\ No newline at end of file

Same note about the term "lift" vs "ascensor".


ID: 904

msgid:

"The car has arrived on the 3rd floor: {:?}"

diff:

--- /tmp/po/d29d1a72e5aba2b7063afb00d1fa2e94872f464ec5c8b6207e376ecc97c9d749/old	2024-09-15 13:34:14.557758688 -0700
+++ /tmp/po/d29d1a72e5aba2b7063afb00d1fa2e94872f464ec5c8b6207e376ecc97c9d749/new	2024-09-15 13:33:41.873222015 -0700
@@ -1 +1 @@
-"Mașina a ajuns la etajul 3: {:?}"
\ No newline at end of file
+"Ascensorul a ajuns la etajul 3: {:?}"
\ No newline at end of file

Same note about the term "lift" vs "ascensor".


ID: 906

msgid:

/// The car has arrived at the given floor.

diff:

--- /tmp/po/52e11734d01d8e7ac548a1ff6ae978d6bb48c3baf41db8b5a2621895d27e085a/old	2024-09-15 13:34:14.573758951 -0700
+++ /tmp/po/52e11734d01d8e7ac548a1ff6ae978d6bb48c3baf41db8b5a2621895d27e085a/new	2024-09-15 13:33:41.893222343 -0700
@@ -1 +1 @@
-/// Mașina a ajuns la etajul dat.
+/// Ascensorul a ajuns la etajul dat.

Same note about the term "lift" vs "ascensor".


ID: 907

msgid:

/// The car's doors have opened.

diff:

--- /tmp/po/3be2f72d1e9a83644ec31a438ebefad1f6f0f468a89b41f00c4f6be5a3903157/old	2024-09-15 13:34:14.581759083 -0700
+++ /tmp/po/3be2f72d1e9a83644ec31a438ebefad1f6f0f468a89b41f00c4f6be5a3903157/new	2024-09-15 13:33:41.901222474 -0700
@@ -1 +1 @@
-/// Portierele mașinii s-au deschis.
+/// Ușile ascensorului s-au deschis.

Same note about the term "lift" vs "ascensor".


ID: 908

msgid:

/// The car's doors have closed.

diff:

--- /tmp/po/8cdd8a48b2df55775b907e49810e7ab24c9cf9427d9555649d0d5ea8edd6e93c/old	2024-09-15 13:34:14.585759147 -0700
+++ /tmp/po/8cdd8a48b2df55775b907e49810e7ab24c9cf9427d9555649d0d5ea8edd6e93c/new	2024-09-15 13:33:41.909222606 -0700
@@ -1 +1 @@
-/// Portierele mașinii s-au închis.
+/// Ușile ascensorului s-au închis.

Same note about the term "lift" vs "ascensor".


ID: 912

msgid:

/// A floor button within the car.

diff:

--- /tmp/po/d527b390ceb8a86c5676fd93882fb5cb02ca4ba6076287449ac5b5ef538de73a/old	2024-09-15 13:34:14.613759606 -0700
+++ /tmp/po/d527b390ceb8a86c5676fd93882fb5cb02ca4ba6076287449ac5b5ef538de73a/new	2024-09-15 13:33:41.949223260 -0700
@@ -1 +1 @@
-/// Un buton de podea în interiorul mașinii.
+/// Un buton de etaj din interiorul ascensorului.

Same note about the term "lift" vs "ascensor".


ID: 915

msgid:

Pattern matching: extracting data from structures.

diff:

--- /tmp/po/1123501dec655a38ae9246638139fdfddcb66e432bba707133d9a028ce8b5727/old	2024-09-15 13:34:14.633759934 -0700
+++ /tmp/po/1123501dec655a38ae9246638139fdfddcb66e432bba707133d9a028ce8b5727/new	2024-09-15 13:33:41.973223657 -0700
@@ -1 +1 @@
-Găsirea de tipare: destructurarea enumerațiilor, structurilor și a tablourilor.
\ No newline at end of file
+Găsirea de tipare: extragerea datelor din structuri.
\ No newline at end of file

I mentioned earlier that we use the term "șabloane" (and not "tipare") for "patterns" in other places (ID 57 for example).


ID: 923

msgid:

Including 10 minute breaks, this session should take about 2 hours and 10 minutes

diff:

--- /tmp/po/c4ccbd9dac51a86b82ee1b2d6520bdc2bec27b077a23649e1b807dd3b09a3176/old	2024-09-15 13:34:14.685760789 -0700
+++ /tmp/po/c4ccbd9dac51a86b82ee1b2d6520bdc2bec27b077a23649e1b807dd3b09a3176/new	2024-09-15 13:33:42.049224902 -0700
@@ -1 +1 @@
-Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze aproximativ 2 ore și 15 minute
\ No newline at end of file
+Incluzând pauzele de 10 minute, această sesiune ar trebui să dureze aproximativ 2 ore și 10 minute
\ No newline at end of file

Similar with ID 487 and ID 727, I think "Împreună cu" would sound a bit better than "Incluzând".


ID: 934

msgid:

"Quitting"

diff:

--- /tmp/po/38996f91afcaa189a975aee7f82d7e23950820343103253edb80d0985dfde6b9/old	2024-09-15 13:34:14.761762039 -0700
+++ /tmp/po/38996f91afcaa189a975aee7f82d7e23950820343103253edb80d0985dfde6b9/new	2024-09-15 13:33:42.149226544 -0700
@@ -1 +1 @@
-"Renunțarea"
\ No newline at end of file
+"Renunțare"
\ No newline at end of file

Based on https://github.com/google/comprehensive-rust/blob/main/src/pattern-matching/match.md this string shows up as the explanation for matching "q". Did we also update the code to match the new string?


ID: 973

msgid:

The values in the enum variants can only be accessed after being pattern matched.

diff:

--- /tmp/po/00c99508dcb7d0548b98b07635ab18692de6edb5c8fe8a1471c3b3d70f22671f/old	2024-09-15 13:34:15.017766242 -0700
+++ /tmp/po/00c99508dcb7d0548b98b07635ab18692de6edb5c8fe8a1471c3b3d70f22671f/new	2024-09-15 13:33:42.509232457 -0700
@@ -1 +1 @@
-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ă `=>`.
\ No newline at end of file
+Valorile din variantele enum pot fi accesate numai după ce au fost comparate cu un model.
\ No newline at end of file

We use the term "șablon" in other places where we talk about pattern matching.


ID: 981

msgid:

"slept for {:?}"

diff:

--- /tmp/po/420265df9209f4b00ce7079e7b5e83a9cb1cb3051483d3b20b3f20c4b8137c05/old	2024-09-15 13:34:15.073767160 -0700
+++ /tmp/po/420265df9209f4b00ce7079e7b5e83a9cb1cb3051483d3b20b3f20c4b8137c05/new	2024-09-15 13:33:42.585233703 -0700
@@ -1 +1 @@
-"dormit pentru {:?}"
\ No newline at end of file
+"A dormit pentru {:?}"
\ No newline at end of file

This is used for a println! on https://github.com/google/comprehensive-rust/blob/main/src/pattern-matching/let-control-flow.md/. Should we keep the lowercase as in the English version?


ID: 989

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.

diff:

--- /tmp/po/2a809f5dbc44a4ff10e3b1eabcf8f184c5193abd9091b7a93b65f014e48d4f06/old	2024-09-15 13:34:15.133768147 -0700
+++ /tmp/po/2a809f5dbc44a4ff10e3b1eabcf8f184c5193abd9091b7a93b65f014e48d4f06/new	2024-09-15 13:33:42.657234887 -0700
@@ -1 +1 @@
-Aici, iteratorul returnat de `v.into_iter()` va returna un `Option<i32>` 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.
\ No newline at end of file
+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.
\ No newline at end of file

Shouldn't "returns" be "returnează"?


ID: 995

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.

diff:

--- /tmp/po/8d26e41a997c22d2db74e8df56ccb336b0e9f5d3e000709564fca34b850a3aa6/old	2024-09-15 13:34:15.177768870 -0700
+++ /tmp/po/8d26e41a997c22d2db74e8df56ccb336b0e9f5d3e000709564fca34b850a3aa6/new	2024-09-15 13:33:42.713235805 -0700
@@ -1 +1 @@
-`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.
\ No newline at end of file
+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.
\ No newline at end of file

Should we use "cursanți" instead of "elevi" like we do in a few other places in this PR?

Also, I think the last sentence would sound a bit better as "Rescrieți versiunea complicată pentru a ajuta cursanții să vadă transformarea."


ID: 999

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.

diff:

--- /tmp/po/614e1ba2e708f7739cca7ff35ae23eb3aac1dbdea27dac2744ae8681a88eaaf3/old	2024-09-15 13:34:15.205769329 -0700
+++ /tmp/po/614e1ba2e708f7739cca7ff35ae23eb3aac1dbdea27dac2744ae8681a88eaaf3/new	2024-09-15 13:33:42.749236396 -0700
@@ -1 +1 @@
-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.
\ No newline at end of file
+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.
\ No newline at end of file

Note that the translation for "syntactic sugar" also needs be fixed in ID 3500.


ID: 1021

msgid:

// Exclusive ownership of self

diff:

--- /tmp/po/9f460c19eddc52934037daa5ce090a37ec6600bbb02a4c4082a3d90cd3b50d18/old	2024-09-15 13:34:15.357771826 -0700
+++ /tmp/po/9f460c19eddc52934037daa5ce090a37ec6600bbb02a4c4082a3d90cd3b50d18/new	2024-09-15 13:33:42.953239748 -0700
@@ -1 +1 @@
-// Proprietatea exclusivă a sinelui
+// Proprietatea exclusivă

As far as I can tell self is a reserved keyword in Rust so maybe we can say "Proprietatea exclusivă pentru self"?


ID: 1025

msgid:

The `self` arguments specify the "receiver" - the object the method acts on. There are several common receivers for a method:

diff:

--- /tmp/po/eea7d8619ae1a37ab5f3f6450ef1bfb5799a91d8e3c30e2c2f280ab0b2741002/old	2024-09-15 13:34:15.385772285 -0700
+++ /tmp/po/eea7d8619ae1a37ab5f3f6450ef1bfb5799a91d8e3c30e2c2f280ab0b2741002/new	2024-09-15 13:33:42.989240339 -0700
@@ -1 +1 @@
-Simbolul `&self` de mai sus indică faptul că metoda împrumută obiectul în mod imuabil. Există și alți receptori posibili pentru o metodă:
\ No newline at end of file
+Argumentul `self` indică "receptorul" - obiectul asupra căruia metoda acționează. Există mai mulți receptori posibili pentru o metodă:
\ No newline at end of file

I'm not sure the "receptori posibili" translation for "common receivers" is correct. Maybe we can say "receptori populari" sau "receptori frecvenți"?


ID: 1028

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.

diff:

--- /tmp/po/14b91929d4927ff43f3285ba4def8de54745a0daf6f10784b2f311a669b4cc1b/old	2024-09-15 13:34:15.405772613 -0700
+++ /tmp/po/14b91929d4927ff43f3285ba4def8de54745a0daf6f10784b2f311a669b4cc1b/new	2024-09-15 13:33:43.017240799 -0700
@@ -1 +1 @@
-`self`: preia proprietatea asupra obiectului și îl îndepărtează de la apelant. Metoda devine proprietarul obiectului. Obiectul va fi abandonat (dezalocat) la întoarcerea metodei, cu excepția cazului în care proprietatea sa este transmisă în mod explicit. Proprietatea completă nu înseamnă automat mutabilitate.
\ No newline at end of file
+`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.
\ No newline at end of file

Nit: the term "dealocat" sounds a bit better than "dezalocat". The term doesn't seem to apear in any Romanian dictionary yet (at least not the ones I was able to search) and a blog post from 2012 (post) reaches the same conclusion as me.

For the last sentence I would suggest "Proprietatea completă a unui obiect nu înseamnă că obiectul este mutabil".


ID: 1041

msgid:

/// Return a sentence from this pet.

diff:

--- /tmp/po/d3109c2b82dbfb6c32804ff9686adbb2ec16872868f8b0e033a1b2e3386cbbd7/old	2024-09-15 13:34:15.493774059 -0700
+++ /tmp/po/d3109c2b82dbfb6c32804ff9686adbb2ec16872868f8b0e033a1b2e3386cbbd7/new	2024-09-15 13:33:43.137242769 -0700
@@ -1 +1 @@
-// Reexportați tipurile din acest modul.
+// Întoarce un mesaj de la acest animal de companiel.

Typo: "companiel" should be "companie".


ID: 1048

msgid:

To implement `Trait` for `Type`, you use an `impl Trait for Type { .. }` block.

diff:

--- /tmp/po/c7fd6f8dc8ccd43fd84b2d86e85d52b2cb4de163d69abd9e0bbfe8dae7e6ad2e/old	2024-09-15 13:34:15.541774846 -0700
+++ /tmp/po/c7fd6f8dc8ccd43fd84b2d86e85d52b2cb4de163d69abd9e0bbfe8dae7e6ad2e/new	2024-09-15 13:33:43.201243819 -0700
@@ -1 +1 @@
-Trăsăturile sunt implementate într-un `impl <trait> pentru <type> { .. }`.
\ No newline at end of file
+Pentru a implementa `Trăit` pentru `Type`, se folosește un block `impl Trait for Type { .. }`.
\ No newline at end of file

Should "block" be translated to "bloc"?


ID: 1054

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.

diff:

--- /tmp/po/89a33415812c28fef05acb5685d84a2ac0d7e874a21e5848567fa1192a4efca0/old	2024-09-15 13:34:15.581775501 -0700
+++ /tmp/po/89a33415812c28fef05acb5685d84a2ac0d7e874a21e5848567fa1192a4efca0/new	2024-09-15 13:33:43.257244737 -0700
@@ -1 +1 @@
-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.
\ No newline at end of file
+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 din programarea orientată pe obiecte. Aceasta specifică doar o cerință suplimentară pentru implementările unei trăsături.
\ No newline at end of file

We use the term "cursanți" instead of "studenți".

The last sentence might sound a bit better if we clearly state the subject: "Moștenirea de trăsături specifică [...]".


@RazvanSt
Copy link
Contributor Author

Thank you @razvanm for the comments. I've updated the translation. I revised some terms on the whole translation and made replacements for "șabloane" and "cursanți".

I'll wait for the rest of the review.

Signed-off-by: Razvan Stefanescu <rstefanescu@google.com>
@mgeisler
Copy link
Collaborator

mgeisler commented Dec 6, 2024

@AlexandraImbrisca and @razvanm, do you think we could merge this? It's been out for review for quite a while and I see lots of small updates since then.

Basically, if this is a step forward, then let's merge it. It's easier to do small incremental updates afterwards than to juggle a huge PR like this over many months.

@razvanm
Copy link
Collaborator

razvanm commented Dec 6, 2024

As I indicated in my previous comment, I only reviewed the changes up to ID 1054 and I think there were 363 more diffs to go. My preference would be to split this in two: keep in this PR the part reviewed and create another PR for the rest of the changes. If we get everything in as is it will make it harder at least for me to look at the changes made here. From what I can tell so far, it will be valuable to look carefully at the rest of the changes. 😊

Thoughts?

@mgeisler
Copy link
Collaborator

My preference would be to split this in two: keep in this PR the part reviewed and create another PR for the rest of the changes.

I think that is a good idea!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants