This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Foreign language support in turtle module
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.6
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: Al.Sweigart, gregorlingl, r.david.murray, terry.reedy, willingc
Priority: normal Keywords:

Created on 2015-09-02 23:55 by Al.Sweigart, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (7)
msg249586 - (view) Author: Al Sweigart (Al.Sweigart) * Date: 2015-09-02 23:55
I'd like to propose adding foreign language names for the names in the turtle module. This would effectively take this code:

    import turtle
    t = turtle.Pen()
    t.pencolor('green')
    t.forward(100)

...and have this code in French be completely equivalent:

    import turtle
    t = turtle.Plume()
    t.couleurplume('vert')
    t.avant(100)

(Pardon my google-translate French.)

This would be built into the turtle module (the "turtle" name itself would be unchanged). They would be available no matter what the OS's localization settings were set to.

This, of course, is terrible way for a software module to implement internationalization, which usually does not apply to the source code names itself. But I'd like to explain why the turtle module is different.

The turtle module is not used for professional software development, but instead as a teaching tool for children. While professional developers are expected to obtain proficiency with English, the same does not apply to school kids who are just taking a small computer programming unit. Having the turtle module available in their native language would remove a large barrier and let them focus on the core programming concepts that turtle provides.

The popular Scratch tool has a similar internationalized setup and also has LOGO-style commands, so the translation work is already done.

Technically, it would be possible to mix multiple natural languages in the same program. This would be a bad practice, but I also don't see it as a common one.

The color strings (e.g. 'green') are tk-dependent, but this can be worked around in the turtle module without requiring changes to tk.
msg249587 - (view) Author: Al Sweigart (Al.Sweigart) * Date: 2015-09-02 23:57
I volunteer to produce the patch.

I know Bryson's "Teach Your Kids to Code" book (which features Python's turtle module) hasn't been translated to other languages yet. It would be nice to get this committed sooner rather than later. I'm open to ideas for expanding documentation of turtle to other languages.
msg249660 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2015-09-03 15:34
There is a discussion elsewhere about whether it is time to start formalizing translation efforts for the python docs (Sphinx supports it).  Unfortunately I don't remember where I saw it (probably another issue in the tracker.

I can see your argument about turtle being special in this regard.  There's no guarantee a patch would be accepted, though, so before you do much work on it I'd recommend posting to python-ideas about it.

Regardless of that, it would be a new feature and so can only go into 3.6, unless you can get some consensus for this being another exception to that rule like Idle is :)
msg249688 - (view) Author: Al Sweigart (Al.Sweigart) * Date: 2015-09-03 20:44
Good idea. I'll bring it up on the python-ideas list.
msg249822 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2015-09-04 20:03
> discussion elsewhere
#24978, translate docs to Russian
msg319753 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2018-06-16 15:30
A good next step with this issue would be to look at the languages mentioned in the devguide experts page (https://devguide.python.org/experts/#documentation-translations) with people interested in translations
msg319781 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2018-06-16 19:55
Al did post to python-ideas, with a link to a prototype.  I think a fair summary is that core-developers had at least the same reluctance to be involve with code translations as with doc translations.  We rejected doing the latter as part of cpython by pydev.  I am doing the same with respect to this specific implementation.

Looking at the prototype, I agreed with Al hard-coding translations is a "terrible way for a software module to implement internationalization,".  For one thing, mixing multiple languages does not scale.

On python-ideas, I urged Al to make this a pypi project.  I give below a different path that would also be mostly independent of cpython and this tracker.

The March 2017 pydev decision with respect to document translations, as described in the PEP, was that they should be a separate project with a separate team, team leaders, contributor agreement, infrastructure, and procedures. The pydev/cpython contribution was limited adding the language selection box and whatever html is needed to grab a translation.

Code translations should be handled the same way. One of the common issues, for instance, is trust.  Core developers are in no position to check that translations are not, for instance, 'adults-only'. The translation project leaders have worked out whatever procedure they have for vetting translators and translations.  For one thing, I believe they usually have more than one person per language team.

According to the PEP,  https://mail.python.org/mailman/listinfo/doc-sig
is used for discussion of document translations.  When I feel like revisiting the issue of translating IDLE's menus, I will discuss it with them.

I think anyone interested in turtle command translations should do the same.  When there is something to hook to and therefore a need to modify turtle, a new issue can be opened.
History
Date User Action Args
2022-04-11 14:58:20adminsetgithub: 69178
2021-02-13 14:39:32serhiy.storchakalinkissue43205 superseder
2018-06-16 19:55:42terry.reedysetstatus: open -> closed
resolution: rejected
messages: + msg319781

stage: resolved
2018-06-16 15:30:05willingcsetnosy: + willingc
messages: + msg319753
2015-09-04 20:03:15terry.reedysetnosy: + terry.reedy
messages: + msg249822
2015-09-03 20:44:09Al.Sweigartsetmessages: + msg249688
2015-09-03 15:34:41r.david.murraysetnosy: + r.david.murray, gregorlingl

messages: + msg249660
versions: + Python 3.6, - Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.5
2015-09-02 23:57:55Al.Sweigartsetmessages: + msg249587
2015-09-02 23:55:39Al.Sweigartcreate