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

Add Official Translation - Spanish (Python) #186

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

madiedgar
Copy link
Member

@madiedgar madiedgar commented Dec 31, 2020

Adding official translation for Python in Spanish

Note: this is the first time we are adding an official language (which is super exciting). 🎉 So this process is open for feedback.

🔑 Keys to Python Keywords

We will start with just the Python keywords and look into the built-in functions after. Some things to keep in mind when selecting the official translation.

  1. It's not too late to introduce a new translation that might better fit
  2. The translation is to the functionality of the keyword and not necessarily to the English word itself. If there's a better way to describe what that keyword does in Python, but isn't a direct translation from the English word, this is the opportunity to embrace the beauty of your language!
  3. Please look over the translation comments in the locale file from the reviewers, as there are many insightful comments that you have all shared.

📖 Python Keyword Guidelines

Once a keyword translation is agreed upon, the format of that translation is then up for a decision. Here are the following formats that a keyword could be in:

  1. Keywords have to be one word without spaces in between:
  • The full keyword translation could be used, like global or import
  • A shortened version of the keyword can be used like async for asynchronous
  • A combination of words could be put together like classmethod or isinstance
  • A creative combination of translated words like elif for else if
  1. Keywords have to be all lowercase.

👀 Keyword Review

This will be a team effort! You should all have been asked to be part of the Spanish Translator Team from the Legesher organization. This allows all of the previous reviewers to be requested for a review and for future input in translations. Please use this PR to point out and discuss.

Keyword translations that have received all ✅ reviews.

False: "Falso" 
None: "Ninguno"
True: "Verdadero" 
and: "Y" 
as: "como"
async: "asíncrono"
await: "esperar" 
class: "clase" 
continue: "continuar"
else: "si no" 
except: "excepto"
finally: "finalmente"
for: "para" 
from: "desde" 
global:  "global"
import: "importar"
in: "en" 
is: "es" 
nonlocal: "no local"
not: "no" 
or: "o" 
pass: "pasar"
while: "mientras"
with: "con" 

Keywords that have received mostly ✅ but need confirmation.

 assert: "afirmar" | "asegurar"
 break: "interrumpir" | "romper"
 if: "si" 

Keywords that need to be discussed

  def: "define" | "def"
  del: "eliminar" | "borrar"
  elif: "si no, si" | "no si"
  lambda: "función anónima" 
  raise: "genera excepción" | "generar" | "lanza" | "levanta"
  return: "regresa" | "retorna"
  try: "intenta" | "tratar"
  yield: "entregar" | "retornar" | "entregar" 

@madiedgar
Copy link
Member Author

We will later look into built in functions and add official translation for those. Any input on how to make this process better would be greatly appreciated.

# << Built-In Functions >>

  abs: "valor absoluto" # ✅✅✅✅✅✅
  all: "todos" # I think we can omite "iterable" ✅ I agree with "todos" ✅✅✅✅
  any: "alguno" # same here ✅ I agree with "alguno" ✅✅✅✅
  ascii: "ascii" # ✅✅ does not have direct translation ✅✅✅✅✅
  bin: "binario" # ✅✅✅✅✅✅
  bool: "booleano" # ✅✅✅✅✅✅✅
  breakpoint: "punto de interrupción" # ✅ Punto de interrupción sounds more natural for me ✅ I agree with the comment ✅✅✅✅
  bytearray: "arreglo de byte" # ✅✅✅✅✅🤔The word "byte" should be in plural as "bytes"🤔 I agree with the first comment
  bytes: "bytes" # ✅✅✅✅✅✅
  callable: "llamable" # ✅❓✅✅✅❓It's more appropiate the word "invocable", and the Python documentation accepts it instead of the one here.❓
  chr: "caracter" # ✅✅✅✅✅✅✅
  classmethod: "método de la clase" # ✅✅✅✅✅✅✅
  compile: "compilar" # ✅✅✅✅✅✅✅
  complex: "complejo" # ✅✅✅✅✅✅✅
  delattr: "eliminar atributo" # ✅✅ from delete attribute ✅✅✅✅✅
  dict: "diccionario" # ✅✅✅✅✅✅✅
  dir: "atributos" # ✅✅✅✅✅✅
  divmod: "cociente y resto" # ✅✅✅✅✅✅
  enumerate: "enumerar" # ✅✅✅✅✅✅
  eval: "evaluar" # ✅✅✅✅✅✅
  exec: "ejecutar" # ✅✅✅✅✅✅✅
  filter: "filtrar" # ✅✅✅✅✅✅✅
  float: "flotante"  # ✅✅✅✅✅✅✅
  format: "formato" # ✅✅✅✅✅✅✅
  frozenset: "congelar" # ✅✅✅✅✅✅It's needed to mention that the literal translation is "conjunto congelado"✅
  getattr: "obtener atributo" # ✅✅✅✅✅✅✅
  globals: "globales" # ✅✅✅✅✅✅✅
  hasattr: "tiene atributo" # ✅✅✅✅✅✅✅
  hash: "hash" # ✅✅ its direct translation wont make sense in this context ✅✅ I agree, keeping hash is fine✅✅✅
  help: "ayuda" # ✅✅✅✅✅✅✅
  hex: "hexadecimal" # ✅✅✅✅✅✅✅
  id: "identificador" # ✅✅✅✅ or just id is fine as well✅ id sounds okay✅ Like the comments before, "id" is also ok, but also "identidad"✅
  input: "entrada" # ✅✅✅✅✅✅✅
  int: "entero" # ✅✅✅✅✅✅✅
  isinstance: "es instancia" # ✅✅✅✅✅✅✅
  issubclass: "es subclase" # ✅✅✅✅✅✅✅
  iter: "iterador" # ✅✅✅✅✅✅✅
  len: "longitud" # ✅✅✅✅✅✅✅
  list: "lista" # ✅✅✅✅✅✅✅
  locals: "locales" # ✅✅✅✅✅✅✅
  map: "mapa" # ✅✅✅✅✅✅✅
  max: "máximo" # ✅✅✅✅✅✅
  memoryview: "vista de memoria" # ✅✅✅✅✅✅✅
  min: "mínimo" # ✅✅✅✅✅✅
  next: "siguiente" # ✅✅✅✅✅✅✅
  object: "objeto" # ✅✅✅✅✅✅✅
  oct: "octal" # ✅✅✅✅✅✅✅
  open: "abrir" # ✅✅✅✅✅✅
  ord: "representación unicode" # I don't know how I would traslate this ❓What about "código unicode"? ✅ I agree with "representación unicode" ❓ not entirely sure on this one, código unicode sounds okay✅❓The literal way to translate this one is impossible, but the action is accuarate with the word written there.❓I don't know how I would traslate thi
  pow: "potencia" # ✅✅✅✅✅✅✅
  print: "imprimir" # ✅✅✅✅✅✅✅
  property: "propiedad" # ✅✅✅✅✅✅✅
  range: "rango" # ✅✅✅✅✅✅✅
  repr: "representación" # ✅✅✅✅✅✅
  reversed: "invertido" # ✅✅✅✅✅✅✅
  round: "redondear" # ✅✅✅✅✅✅✅
  set: "asignar" # ✅✅ it is not the direct translation but in this context it makes sense ✅✅✅✅✅
  setattr: "asignar atributo" # ✅✅✅✅✅✅✅
  slice: "cortar" # ✅✅✅✅✅✅
  sorted: "ordenado" ✅✅✅✅✅
  staticmethod: "método estático" # ✅✅✅✅✅✅✅
  str: "cadena de texto" # ✅✅✅✅✅✅Also it's possible to say "cadena de caracteres"✅
  sum: "suma" # ✅✅✅✅✅✅✅
  super: "superior" # ✅❓ What about using padre? ❓I think this should be just "super" as it is the way an object allows the developer to refer to its parent class ✅ keeping super would make sense, I agree with that✅ "super" sound fine✅ But also "padre" or "super" can be considered as valid✅"super" sound fine
  tuple: "tupla" # ✅✅✅✅✅✅✅
  type: "tipo" # ✅✅✅✅✅✅✅
  vars: "variables" # ✅✅✅✅✅✅✅
  zip: "zip" # ✅✅ can't be direct translated ✅✅✅✅✅
  __import__: "importar" # ✅✅✅✅✅✅✅

Copy link

@jaimegarjr jaimegarjr left a comment

Choose a reason for hiding this comment

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

Hey! So this is what I ended up thinking about the given words in the description of the PR. I wasn't sure how to go about reviewing this other than just going line by line talking about the words in more detail. Let me know if this was okay! I'll be leaving this review as a comment as I know this is mainly up for discussion before completely approving these changes. I'm up for discussion on some of these terms, and eventually about the built-in functions. Thanks!

locale/es.yml Outdated
True: "Verdadero" # ✅✅✅✅✅✅✅
and: "Y" # ✅✅✅✅✅✅✅
as: "como" # ✅✅✅✅✅✅
assert: "afirmar" # ✅❓ What about "asegurar"? ✅ I agree with "afirmar" ✅ ✅ I also agree with "afirmar"✅✅ I agree with "afirmar"

Choose a reason for hiding this comment

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

I believe that keeping afirmar would be the best decision as it seems to translate pretty well from assert. I also notice that a lot of other reviewers thought the same, and so maybe afirmar should stay.

locale/es.yml Outdated
assert: "afirmar" # ✅❓ What about "asegurar"? ✅ I agree with "afirmar" ✅ ✅ I also agree with "afirmar"✅✅ I agree with "afirmar"
async: "asíncrono" # ✅✅✅✅✅✅✅
await: "esperar" # ✅✅✅✅✅✅✅
break: "interrumpir" # ✅✅✅✅✅Also "romper"✅ Yes, it also could be "romper"

Choose a reason for hiding this comment

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

I still think interrumpir should translate for break - romper's direct translation does mean break, but I've mainly used the word to mean rip or ripping something off in English, so this sounds wrong to me.

locale/es.yml Outdated
for: "para" # ✅✅✅✅✅✅
from: "desde" # ✅✅✅✅✅✅✅
global: "global" # ✅✅✅✅✅✅✅
if: "si" # ✅✅ same in the else keyword, in this context means "si" ✅✅✅✅✅

Choose a reason for hiding this comment

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

The word si seems to be agreed on, this is okay.

locale/es.yml Outdated
break: "interrumpir" # ✅✅✅✅✅Also "romper"✅ Yes, it also could be "romper"
class: "clase" # ✅✅✅✅✅✅✅
continue: "continuar" # ✅✅✅✅✅✅✅
def: "define" # ✅ def it's a short for define, in the traslated version isn't shorted ❓What about using "define" as imperative, because you're defining something? ✅ I agree with "define" ✅✅ I also agree with "define"✅✅

Choose a reason for hiding this comment

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

Although the direct translation is definir, both words make the keyword longer, and should probably stay as def in my opinion. Let me know if this still is up for debate!

locale/es.yml Outdated
class: "clase" # ✅✅✅✅✅✅✅
continue: "continuar" # ✅✅✅✅✅✅✅
def: "define" # ✅ def it's a short for define, in the traslated version isn't shorted ❓What about using "define" as imperative, because you're defining something? ✅ I agree with "define" ✅✅ I also agree with "define"✅✅
del: "eliminar" # ✅✅ same as def ✅ I agree with "eliminar" ✅ could be left as del, but eliminar is good as well✅✅✅Also "borrar"

Choose a reason for hiding this comment

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

I originally believed leaving del as it is would be okay, but probably making the keyword eliminar is the best. Borrar sounds more like erasing to me than it does deleting.

locale/es.yml Outdated
import: "importar" # ✅✅✅✅✅✅✅
in: "en" # ✅✅✅✅✅✅✅✅
is: "es" # ✅✅✅✅✅✅✅
lambda: "función anónima" # there isn't translation for this word to spanish, 🤔 What about using the same word? 🤔 I agree with the second comment, in this case is better to keep the same word "lambda" 🤔 I agree with keeping the word lamba, 'función anónima' may be a bit too much 🤔 I also agree with the second comment 🤔 The word should stay as lambda, since it's a greek word, and in Spanish is the same.🤔 I agree with the second comment

Choose a reason for hiding this comment

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

As mentioned, the word lambda is a Greek letter, and doesn't seem to have a clear cut translation for Spanish. I'd keep this keyword as such.

locale/es.yml Outdated
not: "no" # ✅✅✅✅✅✅✅
or: "o" # ✅✅✅✅✅✅✅
pass: "pasar" # ✅✅✅✅✅✅✅
raise: "genera excepción" ✅❓ # maybe just "generar" will be ok ✅ # I agree with keeping generar✅❓ In the Python documentation in Spanish is used "lanza" or "levanta"✅

Choose a reason for hiding this comment

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

Generar (generate) is okay, but a translation that makes more sense to me now that I think about it is levanta (like raising up).

locale/es.yml Outdated
or: "o" # ✅✅✅✅✅✅✅
pass: "pasar" # ✅✅✅✅✅✅✅
raise: "genera excepción" ✅❓ # maybe just "generar" will be ok ✅ # I agree with keeping generar✅❓ In the Python documentation in Spanish is used "lanza" or "levanta"✅
return: "regresa" # ✅✅ Regresa sounds more natural for me than retorna ❓I think that in this case "retorna" it is the better way to translate it, as we are talking that a function will run to then return a value, in spanish will be "la función se ejecuta y retorna un valor" ✅ I think regresa would be just fine ❓ The word "retorna" is accepted in the Spanish Python documentation✅

Choose a reason for hiding this comment

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

Personally, I've never used retorna, so this word seems unlikely for me to use. Regresa translates a lot better in my opinion, and should be the used keyword.

locale/es.yml Outdated
pass: "pasar" # ✅✅✅✅✅✅✅
raise: "genera excepción" ✅❓ # maybe just "generar" will be ok ✅ # I agree with keeping generar✅❓ In the Python documentation in Spanish is used "lanza" or "levanta"✅
return: "regresa" # ✅✅ Regresa sounds more natural for me than retorna ❓I think that in this case "retorna" it is the better way to translate it, as we are talking that a function will run to then return a value, in spanish will be "la función se ejecuta y retorna un valor" ✅ I think regresa would be just fine ❓ The word "retorna" is accepted in the Spanish Python documentation✅
try: "intenta" # ✅✅ I also think of using this as imperative ✅ I agree with "intenta" ❓ maybe "tratar" would be better? intenta sounds okay too ✅ "intenta"✅✅

Choose a reason for hiding this comment

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

Both intenta and tratar translate okay for the word try, but personally I like tratar better. It seems to translate better than intenta, maybe new users would look to use tratar instead. This could be changed later on down the line based on user's wants if necessary.

locale/es.yml Outdated
try: "intenta" # ✅✅ I also think of using this as imperative ✅ I agree with "intenta" ❓ maybe "tratar" would be better? intenta sounds okay too ✅ "intenta"✅✅
while: "mientras" # ✅✅✅✅✅✅✅
with: "con" # ✅✅✅✅✅✅✅
yield: "entregar" # ✅ yield return a generator, insted of use "retornar", "entregar" can be more properly ✅ I agree with the comment, "entregar" it is better ✅✅✅✅

Choose a reason for hiding this comment

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

This one is another iffy one, but I still like entregar. Again, it makes a little more sense to me than retornar, which I've personally never used before.

Copy link

@begeistert begeistert left a comment

Choose a reason for hiding this comment

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

Most of the translation is excellent, it only needs a few changes

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
bytearray: "arreglo de byte"

Choose a reason for hiding this comment

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

The right translation should be arreglo de bytes

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
bin: "binarios"

Choose a reason for hiding this comment

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

The singular binario seems to be the most appropriate decision

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
raise: "subir"

Choose a reason for hiding this comment

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

I think lanzar makes more sense in this case

# ✅ @aliciacisnerosm
# 🤔 @iam-agf The word "byte" should be in plural as "bytes"
# 🤔 @begeistert I agree with the comment above
bytes: "byte"

Choose a reason for hiding this comment

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

The word bytes fits better

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
callable: "llamable"

Choose a reason for hiding this comment

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

Based on the documentation invocable fits better in this case

# ✅ @aliciacisnerosm "cociente y resto"
# ✅ @iam-agf "cociente y resto"
# ✅ @begeistert "cociente y resto"
enumerate: "enumerado"

Choose a reason for hiding this comment

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

I agree that enumerar es mejor

# ✅ @aliciacisnerosm "enumerar"
# ✅ @iam-agf "enumerar"
# ✅ @begeistert "enumerar"
eval: "eval"

Choose a reason for hiding this comment

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

evaluar is a better option here

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
repr: "repr"

Choose a reason for hiding this comment

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

representación fits better here

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
super: "superior"

Choose a reason for hiding this comment

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

super is a valid word in Spanish

# ✅ @aliciacisnerosm
# ✅ @iam-agf
# ✅ @begeistert
__import__: "importar"

Choose a reason for hiding this comment

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

__importar__ is better to avoid confusion between importar

zoomstereo and others added 9 commits September 18, 2023 00:39
🎉 Thank you @zoomstereo for your contribution!
🎉 Thank you @asperduti for your contribution!
🎉 thank you @kararade for your contribution!
🎉 Thanks @JJgar2725 for your contribution!
* Translation Spanish for #37

* Emojis changed for documentation match
* Thank you @iam-agf for your contribution 🎉
Thank you @begeistert for your contribution! 🎉
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.

8 participants