(Still OT) Nationalism, language and monoculture [was Re: Python Worst Practices]
Gregory Ewing
greg.ewing at canterbury.ac.nz
Tue Mar 3 05:35:13 EST 2015
Chris Angelico wrote:
> And I've seen a number of proposals to build Python with its
> *keywords* localized. While there is a reasonable limit to this (for
> instance, I wouldn't expect the disassembly of CPython byte-code to
> have "STORE_FAST" translated into another language), there's nothing
> wrong with programmers being able to write their code in their
> languages.
Just for fun, I used Google Translate to turn a piece of
my Python code into French.
Some of the results were rather amusing. For example, it
turned "mess" (short for "message") into "désordre", and
"but" (short for "button") into "mais". It got "for", "in",
"if", "else" and "return" right, though!
# Original code
def ask(mess, responses = ["OK", "Cancel"], default = 0, cancel = -1,
wrap_width = 60, **kwds):
box = Dialog(**kwds)
d = box.margin
lb = wrapped_label(mess, wrap_width)
lb.topleft = (d, d)
buts = []
for caption in responses:
but = Button(caption, action = lambda x = caption: box.dismiss(x))
buts.append(but)
brow = Row(buts, spacing = d, equalize = 'w')
lb.width = max(lb.width, brow.width)
col = Column([lb, brow], spacing = d, align ='r')
col.topleft = (d, d)
if default is not None:
box.enter_response = responses[default]
else:
box.enter_response = None
if cancel is not None:
box.cancel_response = responses[cancel]
else:
box.cancel_response = None
box.add(col)
box.shrink_wrap()
return box.present()
# Translated code
demander def (désordre, réponses = ["OK", "Annuler"], par défaut = 0, annulent = -1,
wrap_width = 60, kwds **):
boîte de dialogue = (** kwds)
d = box.margin
lb = wrapped_label (désordre, wrap_width)
lb.topleft = (d, d)
BUTS = []
pour la légende dans les réponses:
mais = Bouton (légende, action = lambda x = légende: box.dismiss (x))
buts.append (mais)
Brow = ROW (buts, l'espacement = d, égalisent = 'W')
lb.width = max (lb.width, brow.width)
col = Colonne ([lb, le front], l'espacement = d, align = 'r')
col.topleft = (d, d)
si par défaut ne est pas None:
box.enter_response = réponses [défaut]
d'autre:
box.enter_response = Aucun
si annuler ne est pas None:
box.cancel_response = réponses [Annuler]
d'autre:
box.cancel_response = Aucun
box.add (col)
box.shrink_wrap ()
retourner box.present ()
More information about the Python-list
mailing list