Skip to content

es: fix some problems with the Spanish translation #1333

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

Merged
merged 2 commits into from
Oct 31, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 33 additions & 33 deletions po/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.3.2\n"
"X-Generator: Poedit 3.4\n"

#: src/SUMMARY.md:4 src/index.md:1
msgid "Welcome to Comprehensive Rust 🦀"
Expand Down Expand Up @@ -289,7 +289,7 @@ msgstr "Manejo de la Memoria en Rust"

#: src/SUMMARY.md:88 src/ownership.md:1
msgid "Ownership"
msgstr "Propiedad (_Ownership_)"
msgstr "Ownership"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We had a very in depth discussion at #1184 , and not sure that we had full consensus, but I think we pretty much came up with translated_msg (_english_msg_)

If this is a formatting concern due to the underscore, should we just use translated_msg (english_msg) instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't oppose the idea of translating certain terms, as it's a topic of discussion in some Discord and Telegram channels. Many individuals support the notion of retaining the original English term, but it doesn't hurt to include a translated alias.

I concur with this perspective because it provides an additional means for users to grasp the terminology. For those who are not well-versed in English, comprehending the terms can be challenging.

In this case:

¿Qué es el Ownership?

We employ the term "Ownership" but provide a note stating that "Propiedad" is an acceptable alternative for conveying the same concept.

I intend to revert this change in order to maintain both options.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the menus I would be fine by removing the Spanish translation, as it might look cluttered.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The underscores are a problem here, as mentioned in #1328. So they should go for sure.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, you can keep the formatting! I'm working on making it look correct in google/mdbook-i18n-helpers#100. It should be merged in a few days and then formatting becomes file in the summary file.


#: src/SUMMARY.md:89 src/ownership/move-semantics.md:1
msgid "Move Semantics"
Expand Down Expand Up @@ -333,7 +333,7 @@ msgstr "Tiempos de vida en estructuras de datos"

#: src/SUMMARY.md:99 src/structs.md:1
msgid "Structs"
msgstr "Estructuras (_Structs_)"
msgstr "Structs"

#: src/SUMMARY.md:100 src/structs/tuple-structs.md:1
msgid "Tuple Structs"
Expand Down Expand Up @@ -467,7 +467,7 @@ msgstr "Métodos por Default"

#: src/SUMMARY.md:143 src/traits/trait-bounds.md:1
msgid "Trait Bounds"
msgstr "Límites Trait (Bounds)"
msgstr "Trait Bounds"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Límites de Traits (Trait Bounds)


#: src/SUMMARY.md:144
msgid "impl Trait"
Expand Down Expand Up @@ -872,11 +872,11 @@ msgstr "Send y Sync"

#: src/SUMMARY.md:274
msgid "Send"
msgstr "Enviar"
msgstr "Send"

#: src/SUMMARY.md:274
msgid "Sync"
msgstr "Sincronizar"
msgstr "Sync"

#: src/SUMMARY.md:277 src/concurrency/send-sync/examples.md:1
msgid "Examples"
Expand All @@ -888,7 +888,7 @@ msgstr "Estado compartido"

#: src/SUMMARY.md:279
msgid "Arc"
msgstr "Arco"
msgstr "Arc"

#: src/SUMMARY.md:280
msgid "Mutex"
Expand Down Expand Up @@ -939,7 +939,7 @@ msgstr "Canales asíncronos"

#: src/SUMMARY.md:296 src/async/control-flow/join.md:1
msgid "Join"
msgstr "Unirme"
msgstr "Unir"

#: src/SUMMARY.md:297 src/async/control-flow/select.md:1
msgid "Select"
Expand Down Expand Up @@ -2111,7 +2111,6 @@ msgid "Welcome to Day 1"
msgstr "Te damos la bienvenida al Día 1"

#: src/welcome-day-1.md:3
#, fuzzy
msgid ""
"This is the first day of Rust Fundamentals. We will cover a lot of ground "
"today:"
Expand All @@ -2137,6 +2136,7 @@ msgstr ""
#: src/welcome-day-1.md:12
msgid "Pattern matching: destructuring enums, structs, and arrays."
msgstr ""
"Emparejamiento de Patrones: desestructuración de enums, structs y arrays."

#: src/welcome-day-1.md:16
msgid "Please remind the students that:"
Expand Down Expand Up @@ -3275,7 +3275,7 @@ msgid ""
"starting index, meaning that `&a[0..a.len()]` and `&a[..a.len()]` are "
"identical."
msgstr ""
"Si el slice comienza en el índice 0, la sintaxis de intervalo de Rust nos "
"Si el slice comienza en el índice 0, la sintaxis de rango de Rust nos "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't agree with this suggestion. "rango" can mean rank, which is very misleading here. "intervalo" is unambiguous

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yesterday, @ph4un00b and I discussed this. "Intervalo" isn't a poor translation, it's akin to "time interval" and offers a more precise definition, especially for those with a mathematical background. However, for the majority of people, using terms like "rangos" when referring to range types is more commonplace.

image

Some examples of that:
Python
Ruby
Swift

Even when we're discussing Rust, we use the term "rango"
FreecodeCamp Tutorial

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it either way. Intervalo and rango works in this context for me.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Phosphorus-M, can you take out the translation here for now? Then try to reach a consensus with @JaviSorribes and the other reviewers and members of the Spanish Rust community.

Basically, I would love to merge this since it removes the weird-looking _foo_ words from the TOC. So if you could take out the translation here, then we can make forward progress. The translation can still go in, it should just be discussed in a smaller and more targeted PR.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi all, please come to a conclusion here so we can merge this — I know it's hard to edit a large body of text like this, so I suggest taking out the change for now.

"permite eliminar el índice inicial, lo que significa que `&a[0..a.len()]` y "
"`&a[..a.len()]` son idénticos."

Expand Down Expand Up @@ -3411,7 +3411,7 @@ msgid ""
"selection."
msgstr ""
"Puedes tomar prestados slices `&str` desde `String` mediante `&` y, si "
"quieres, puedes seleccionar intervalos."
"quieres, puedes seleccionar rangos."

#: src/basic-syntax/string-slices.md:40
msgid ""
Expand Down Expand Up @@ -3504,7 +3504,7 @@ msgid ""
"The range expression in the `for` loop in `print_fizzbuzz_to()` contains "
"`=n`, which causes it to include the upper bound."
msgstr ""
"La expresión de intervalo del bucle `for` en `print_fizzbuzz_to()` contiene "
"La expresión de rango del bucle `for` en `print_fizzbuzz_to()` contiene "
"`=n`, lo que hace que incluya el límite superior."

#: src/basic-syntax/rustdoc.md:3
Expand Down Expand Up @@ -3904,7 +3904,7 @@ msgid ""
"Rust lets you iterate over things like arrays and ranges using the `for` "
"keyword:"
msgstr ""
"Rust te permite iterar sobre elementos como arrays e intervalos usando la "
"Rust te permite iterar sobre elementos como arrays y rangos usando la "
"palabra clave `for`:"

#: src/exercises/day-1/for-loops.md:21
Expand Down Expand Up @@ -4001,8 +4001,8 @@ msgid ""
msgstr ""
"¿Se podrían usar slices `&[i32]` en lugar de matrices de 3 × 3 predefinidas "
"en el código para tus argumentos y tipos de resultados devueltos? Por "
"ejemplo, \\``&\\[&\\[i32\\]\\]\\` para un slice de slices de dos "
"dimensiones. ¿Por qué? ¿Por qué no?"
"ejemplo, `&[&[i32]]` para un slice de slices de dos dimensiones. ¿Por qué? "
"¿Por qué no?"

#: src/exercises/day-1/for-loops.md:87
msgid ""
Expand Down Expand Up @@ -4214,10 +4214,10 @@ msgid ""
"related to the [`while let` loop](while-let-expressions.md). It will "
"automatically call `into_iter()` on the expression and then iterate over it:"
msgstr ""
"El [bucle `for`][`for` loop](https://doc.rust-lang.org/std/keyword.for.html) "
"está estrechamente relacionado con el [bucle `while let`](while-let-"
"expressions.md). Llamará automáticamente a `into_iter()` en la expresión y "
"después iterará sobre ella:"
"El [bucle `for`](https://doc.rust-lang.org/std/keyword.for.html) está "
"estrechamente relacionado con el [bucle `while let`](while-let-expressions."
"md). Llamará automáticamente a `into_iter()` en la expresión y después "
"iterará sobre ella:"

#: src/control-flow/for-expressions.md:7
msgid ""
Expand Down Expand Up @@ -5542,7 +5542,7 @@ msgstr "`..` se puede ampliar tanto como sea necesario."

#: src/pattern-matching.md:29
msgid "`1..=5` represents an inclusive range"
msgstr "`1..=5` representa un intervalo inclusivo."
msgstr "`1..=5` representa un rango inclusivo."

#: src/pattern-matching.md:30
msgid "`_` is a wild card"
Expand Down Expand Up @@ -5865,13 +5865,13 @@ msgstr ""
"duplica el `6` y el `8`."

#: src/exercises/day-1/luhn.md:12
#, fuzzy
msgid ""
"After doubling a digit, sum the digits if the result is greater than 9. So "
"doubling `7` becomes `14` which becomes `1 + 4 = 5`."
msgstr ""
"Después de duplicar un dígito, se suman los dígitos que contiene. Por tanto, "
"si duplicas `7`, pasará a ser `14`, lo cual pasará a ser `5`."
"Después de duplicar un dígito, se suman los dígitos si el resultado es mayor "
"a 9. Por tanto, si duplicas `7`, pasará a ser `14`, lo cual pasará a ser `1 "
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"a 9. Por tanto, si duplicas `7`, pasará a ser `14`, lo cual pasará a ser `1 "
"que 9. Por tanto, si duplicas `7`, pasará a ser `14`, lo cual pasará a ser `1 "

"+4 = 5`."

#: src/exercises/day-1/luhn.md:15
msgid "Sum all the undoubled and doubled digits."
Expand Down Expand Up @@ -9499,7 +9499,7 @@ msgid ""
"`Item` type, which means that it returns `Option<Item>`"
msgstr ""
"Ten en cuenta que `IntoIter` y `Item` están vinculados: el iterador debe "
"tener el mismo tipo de `Item`, lo que significa que devuelve `Option<Item>`."
"tener el mismo tipo de `Item`, lo que significa que devuelve `Option<Item>`."

#: src/exercises/day-2/iterators-and-ownership.md:71
msgid "Like before, what is the type returned by the iterator?"
Expand Down Expand Up @@ -10495,9 +10495,9 @@ msgid ""
msgstr ""
"`IntoIterator` es el trait que hace que los bucles funcionen. Se implementa "
"a través de tipos de colecciones, como `Vec<T>`, y de referencias a ellas, "
"como `&Vec<T>` y `&[T]`. Los intervalos también lo implementan. Esta es la "
"razón por la que se puede iterar sobre un vector con `for i in some_vec "
"{ .. }`, pero `some_vec.next()` no existe."
"como `&Vec<T>` y `&[T]`. Los rangos también lo implementan. Esta es la razón "
"por la que se puede iterar sobre un vector con `for i in some_vec { .. }`, "
"pero `some_vec.next()` no existe."

#: src/traits/from-iterator.md:3
msgid ""
Expand Down Expand Up @@ -15247,10 +15247,10 @@ msgid ""
"awesome-embedded-rust#driver-crates) in terms of these traits, e.g. an "
"accelerometer driver might need an I2C or SPI bus implementation."
msgstr ""
"Es entonces cuando otros crates implementan \\[controladores\\][drivers]"
"(https://github.com/rust-embedded/awesome-embedded-rust#driver-crates) en "
"función de estos traits. Por ejemplo, un controlador de acelerómetro podría "
"necesitar una implementación de bus I2C o SPI."
"Es entonces cuando otros crates implementan [controladores](https://github."
"com/rust-embedded/awesome-embedded-rust#driver-crates) en función de estos "
"traits. Por ejemplo, un controlador de acelerómetro podría necesitar una "
"implementación de bus I2C o SPI."

#: src/bare-metal/microcontrollers/embedded-hal.md:19
msgid ""
Expand Down Expand Up @@ -21708,8 +21708,8 @@ msgid ""
"[Rust Standard Library](https://doc.rust-lang.org/std/): full documentation "
"of the standard library for Rust."
msgstr ""
"\\[La biblioteca estándar de Rust\\][Rust Standard Library](https://doc.rust-"
"lang.org/std/): documentación completa de la biblioteca estándar de Rust."
"[La biblioteca estándar de Rust](https://doc.rust-lang.org/std/): "
"documentación completa de la biblioteca estándar de Rust."

#: src/other-resources.md:19
msgid ""
Expand Down