[pypy-dev] Internationalization Proposal (was Re: (no subject))

Maciej Fijalkowski fijall at gmail.com
Tue May 5 10:23:39 CEST 2015


Hi Mariano.

Welcome on board!

As expressed before, we would be happy to have internationalization in
PyPy as I would like to have a discussion about which of the tools are
suitable for driving that forward.

That said, this is a list of development of PyPy and it's not a list
to discuss how python-dev handles issues. I'm more than happy to help
with any constructive work w.r.t. internationalization and discussing
what went wrong on the cpython bug tracker is not one of those.

It's also quite hard to read mails that answer all of the before mails
in one go - for example I'm very much interested in seeing PyPy work
go forward and I'm very much not interested in the experience of
trying to get python-dev attention onto any topic so if you can,
please respond one-mail-per-topic in the future, thanks!

Cheers,
fijal


On Tue, May 5, 2015 at 9:57 AM, Mariano Reingart <reingart at gmail.com> wrote:
> Hello, and sorry for being late to the discussion:
>
> Thanks Laura for bringing this up, and thanks everyone else for the
> interest.
>
> As I wasn't subscribed to this list early, I didn't get a copy of the emails
> so I cannot answer each one in-line, but I'll do my best trying to
> reconstruct the thread citing the original messages (and fixing the subject
> line).
>
> Sorry for the very long mail, but I wanted to address all the concerns and
> topics.
>
>
>
> On Mon May 4 05:27:44 CEST 2015,  Steven D'Aprano wrote:
>
>> I've just added this comment to the issue on the bug tracker:
>>
>>
>>
>> http://bugs.python.org/issue16344
>
>
>
> Thanks, I updated the issue pointing a new CPython clone in GitHub were I'll
> try to work reorganizing and drafting the PEP
>
> https://github.com/reingart/cpython
>
> I'll try to clone PyPy too, I think it could be even easier to
> internationalize, as it is pure python and no C API should be changed, but
> please correct me if I'm wrong.
>
>> Anyone can write a PEP and have it sit on their computer's hard drive.
>> Unless he follows the process for submitting it for discussion, it might
>> as well not exist.
>
>
> That's not exactly true, I'm working in the PEP publicly since 2010 (it was
> first uploaded in the local users group):
>
> http://python.org.ar/wiki/TracebackInternationalizationProposal
>
> It not only was discussed in local and international mailing lists, it also
> was sent to python-ideas as PEP 1 indicates:
>
> https://mail.python.org/pipermail/python-ideas/2012-October/017493.html
>
> (seems there aren't responses anyway)
>
> Also, the draft PEP was attached to the issue (and was completely ignored by
> the core dev that closed and rejected the proposal, not even answering other
> core dev that pointed that the PEP was there)
>
> What I didn't do is sending it to PEP editors, my fault (I confess I didn't
> reached that part of PEP1 that time), as I thought it would be rejected
> anyway: reception was mixed (I didn't find other core dev willing to strong
> "champion" it -but re reading the PEP1 maybe I could champion it myself-)
> and why it would have a better luck, if the issue was rejected without any
> further discussion?.
>
>> Looking at the volume of comments on the issue at the tracker link
>> above, I don't think Mariano has been *ignored*. Possibly the
>> conservativism of Python-Dev has struck again. There was a lot of
>> resistance to the idea of allowing non-ASCII identifiers when that was
>> first proposed too.
>
>
> Well, it depends on the perspective (see above), and if you see at the
> related blocking issue, it was really ignored (no new comments after my
> patch trying to fix it):
>
> http://bugs.python.org/issue9769
>
> PEP 1 also states "wherever possible, long open-ended discussions on public
> mailing lists should be avoided", so with the previous facts, I did back off
> for a better opportunity.
>
> The same year in November, I spoke with some core devs that came to PyCon
> Argentina 2012 (that BTW I was the chair and tried to organize a CPython
> core sprint to work on this topics), specifically Brett Cannon, but he
> didn't have experience on internationalization.
>
> This year I thought the GSoC was an alternative, but again, I was wrong (at
> least I didn't received any feedback about why it was not accepted).
>
> I could continue but I'll not bother you.
>
> Note: I am not blaming anyone, just trying to give a summary of my
> experience.
>
>> My own feeling is that CPython should not internationalise error
>> messages *yet*. But I would like to see a third-party implementation,
>> possibly something that can be switched on and off at the interactive
>> interpreter, or in iPython, and see how useful it is. But that's
>> something which can be discussed in the PEP.
>
>
> Why not yet?
>
> Anyway, as far as I remember, a 3rd party implementation is not viable:
> messages are already formatted when they reach exception hook, and the hook
> could not always be honored, beside that internal cpython message formatting
> seems to lack any UTF-8 nor internationalization support (positional
> parameters reorder, pluralization forms, etc.), just to mention technical
> issues I remember.
>
> And yes, the proposal contemplates turning translation on and off, even at
> runtime.
>
> How would the usefulness be evaluated?
> (field research, surveys, how many, where, etc.)
> How was it done in previous PEPs?
> (for example, what was done for other peps, like pep-3131)
>
> I really want to understand the process.
>
>> I think that if Mariano had a proof of concept, and evidence that it
>> would be useful in practice as well as theory, then I think the PSF
>> should be asked to consider funding this as a diversity measure.
>
>
> The proof of concept was already there, you can see the original proposed
> patch:
>
> http://bugs.python.org/file27756/traceback_internationalization_proposal.patch
>
> In fact it is a half-backed prototype (the C part was there, translation was
> implicit, but the python part would need some more work, as translation
> would have to be more explicit, and messages collection tools needs to be
> developed).
> It surely has some other aspect to polish.
>
> The problem seems to be the evidence, that's why I proposed this as a GSoC
> project: to be able to develop a pilot implementation and get more facts
> after testing it and doing some research, as the effort is not trivial.
>
>
>
> On Mon May 4 10:00:49 CEST 2015, Armin Rigo arigo at tunes.org wrote:
>>
>> I'm absolutely +1 on the idea.
>>
>> [snip]
>
>
> Thanks, and I agree with everything you said
>
>> Even "syntax error!" is fine if your programming language is BASIC
>>
>> but the first difference with BASIC is that we can get commonly
>> many more error messages.
>
>
> Well, recently I did a little test with my 8 years old kid, starting with
> the python turtle module.
> He had difficulties even with the pronunciation of some error messages, and
> he has always to ask for the translation & help (until he gave up).
> I have observed the same behavior with even older students.
> Translation is not the only culprit, but I think it is a start (there are
> some educational theories that could be used to explain and overcome this,
> but I don't want to make this any longer).
>
>>
>> I think that allowing them to be translated is a good first step.
>
>
> Exactly, I like the PostgreSQL motto:
>
> PostgreSQL programs (server and client) can issue their messages in your
> favorite language — if the messages have been translated. Creating and
> maintaining translated message sets needs the help of people who speak their
> own language well and want to contribute to the PostgreSQL effort. You do
> not have to be a programmer at all to do this.
> ...
> We won't judge your language skills — this section is about software tools.
>
>
> http://www.postgresql.org/docs/9.4/static/nls-translator.html
>
>
>
> On Mon May 4 22:21:45 CEST 2015, Yury V. Zaytsev yury at shurup.com  wrote:
>>
>> >
>> > so I think that the days when all programmers must learn English are
>> > slowly fading away, just like the days when all mathematicians had to
>> > learn German.
>>
>> I hope not; we can argue whether this language should be English or
>> something else (e.g. Esperanto, or Latin, or ancient Greek for that
>> matter), but IMO for *professional* programmers and mathematicians,
>> there should be a common natural communication language.
>
>
> Please define what a professional programmer is...
> And please define what a "learn English" means...
>
> For non native speakers, it would mean formally a "intermediate to
> proficiency English level" (TOEFL, Cambridge First Certificate FCE, etc.),
> and we have to take that tests periodically (once each couple of years to
> not "lose" the skills), with a minimal preparation of around 8 weeks
> (considering you have a good English background, something that usually
> takes around 4-7 years of extracurricular courses & practice)
>
> As far as I know, at least in Argentina, that "English proficiency" doesn't
> seems to be a formal requisite to be a "professional" programmer (if that
> equates to a major degree in computer sciences or similar, not to mention
> younger students or non-technical users).
> In fact, nor "English" (nor any other foreign language) is specified in the
> ministerial resolution that regulates the careers in computer sciences,
> informatics, system analysis and software engineering (according the core
> basic curriculum recommendations):
>
> http://www.cs.uns.edu.ar/downloads/acreditacion/res786.09.pdf
>
> That is indirectly based on the Computing Curricula of ACM-IEEE, this seems
> a updated version:
>
> https://www.acm.org/education/CS2013-final-report.pdf
>
> Again, note that English seems not to be a core competency/skill (at least
> in a first sight).
> In fact it is only mentioned as an example of a natural language, and it is
> only required for some courses given in English.
>
> Of course, that's doesn't mean that sooner or later students will be exposed
> to some English courses and materials.
> In fact, most undergraduate programs will include "starter" English level
> courses in Argentina, but they could be suspended or taken in parallel to
> Programming I, our equivalent to CS101 (and no, English is usually not
> "correlative" to technical courses, just complementary).
> For example, after a quick search, see this computer information systems
> engineering degree (from one of the most renowned Universities in Latin
> America), where English is optional, and you can even choose other foreign
> languages (including German, French, Italian, Portuguese)
>
> http://www.uba.ar/download/academicos/carreras/ingenieriainformatica.pdf
>
> This is the updated plan that even states "only it will considered one
> foreign language" (and BTW, just 4 credits = 4 hours per week per one
> semester, if you can learn a foreign language in just 64 hours...):
>
> http://www.fi.uba.ar/archivos/Actualizacion%202011%20Plan%20de%20Estudios%20Informatica.pdf
>
> You can imagine that this only get worse in the elementary and secondary
> schools (or even in other university degrees not related to IT), although
> English courses are being included gradually in the last years in all the
> educational levels.
>
> As a personal comment, so far in my academic career, I only faced an
> intermediate English knowledge (and certification) requirement for applying
> to a Ph.D. to study in the EU or US.
> I hold a Bachelor of Computer Analysis, and a Master in Free Software and
> Open Source (online from Spain), and I'm finishing a Bachelors in Education
> without any such certification nor requirement (the last ones didn't even
> have English courses).
> BTW, for example, if I study for a Computer Science Ph.D. in Argentina, the
> thesis should be written in Spanish (only exceptionally it is allowed to be
> written in English):
>
> http://postgrado.info.unlp.edu.ar/La_Institucion/Reglamento.pdf
>
> The funny thing if that for foreign students, Spanish language examination
> could be also a requisite, as if I go to Brazil, I could be required to
> learn Portuguese, etc.
>
> As a side note, another point is that we, as teachers, cannot even teach
> legally English courses if we're not specially certified for that (not only
> passed a Proficiency/Translator exam, also there are special teacher
> formation requirements)
>
> In summary, assuming English is a requisite to be a *professional*
> programmer is wrong and impractical IMHO (of course, YMMV).
>
>> Still, don't get me wrong, I'm +1 on localization. It's going to be
>> quite some effort, but it's well worth it.
>
>
> Great!
> And please don't get me wrong too, I only want to Python be more diverse and
> easy for non English speakers.
>
> And yes, it will be a great effort ;-)
>
> BTW, the effort is already happening in other areas/aspects, for example,
> see the upcoming SciPy Latin America, that aims to mix English, Portuguese
> and Spanish:
>
> http://conf.scipyla.org/event/press
>
> Other conferences offered live translation to Spanish, for keynote English
> talks:
>
> http://ar.pycon.org/pyconar2014/
>
> I think that proves that knowledge can be communicated in several languages,
> and I bet you'll have a bigger audience & more feedback if you speak in
> Portuñol (Portuguese + Spanish), than in English, at least in the Southern
> Cone.
>
>
>
> On Mon, 2015-05-04 at 22:24 +0200, Carl Friedrich Bolz wrote:
>>
>> Yes, well. It's precisely *not* about professional programmers in this
>> issue.
>
> Sorry to insist, but please this are the exact phrases that are a bit
> embarrassing to many of us.
>
> Are those people (mentioned early) that gave Python talks in Spanish or
> Portuguese not professional programmers?
>
> I even already write programs with identifiers and exceptions in Spanish,
> what's wrong with that?
> BTW, we don't have even right English translations for some words in Spanish
> (and this is just a project for electronic invoices)
>
> https://github.com/reingart/pyafipws
>
> Forcing to translate every term and write programs exclusively in English
> not only is harder, many times brings just more confusion, even the official
> government webservices' documentation (AFIP = Argentina's IRS) uses just
> Get/Set and very general terms in English, maybe due a Java getter/setter
> legacy, and almost all the complex data types, methods and messages are
> Spanish (and no, this is for programmers, not for final users):
>
> http://www.afip.gov.ar/fe/documentos/manua_desarrolladorCOMPGv25.pdf
>
>
> And just to clarify, CPython could be still developed in English, no
> translation will ever touch a source code file.
>
>
>
> On Mon, May 4, 2015 at 8:55 PM, Leonardo Santagada <santagada at gmail.com>
> wrote:
>>
>> As we are transitioning to internationalized messages should/could we also
>> get more descritive error messages? It could always be just a phrase and a
>> link, eg:
>> instead of
>> TypeError: x() takes no arguments (1 given)
>> we output:
>> TypeError: x() takes no arguments (1 given) (maybe you forgot the self
>> attribute (https://docs.python.org/2/tutorial/classes.html#random-remarks))
>
>
> Yes, this was also discussed, but I think it is a second step, and
> internationalization can be useful here too due diversity, to clear
> ambiguities or fix to rewrite complex messages, as different languages has
> different writing styles, rules, viewpoints, etc.
>
>
>
> Best regards,
>
>
> Mariano Reingart
> http://www.sistemasagiles.com.ar
> http://reingart.blogspot.com
>
>
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> https://mail.python.org/mailman/listinfo/pypy-dev
>


More information about the pypy-dev mailing list