On 8/17/06, Dan Crosta <[EMAIL PROTECTED]> wrote: > On Aug 17, 2006, at 4:49 PM, Andre Roberge wrote: > > 4. [and this is what I'm mostly asking about] Graphics commands, for > > example circle() or set_line_color() or set_line_colour() [we support > > both syntax ;-)]. The strings are ready to be translated [i.e. > > replace circle() by cercle(), or set_line_color() by > > couleur_de_ligne()] but, since the documentation (and tutorials) are > > likely to be only in English, I'm wondering about the wisdom of > > translating them. > > Out of curiosity, how are you going to handle translating the api? Is > there some functionality for this in python itself? Are you actually > emulating method accesses with __getattr__()? Are you using some > other tool to translate the method names (and presumably if you were, > for readability you could translate variable names, comments, etc, as > well) into actual internationalized source files?
I'll address the last question first. I am not aware of *any* program that has its source files translated. Nor do I see any reason to ever want to do so. The source code (including comments) for Crunchy is written in English and will remain as such. This is the same for the source code of the Python standard library. A good reference (with links) for understanding translations for computer programs is: http://wiki.wxpython.org/index.cgi/Internationalization In what follows, I'll provide a "simplified" description.... First, some background. Crunchy is designed to deliver interactive Python tutorials. In order to make tutorials more interesting, some basic graphics capabilities (shape drawing, function plotting, etc.) have been built-in. A simple graphics program might include things like: === circle( (100, 100), 30) set_fill_color("red") filled_circle( (200, 200), 50) === etc... This program, when executed, produces a series of javascript commands that are used to draw the corresponding shapes within an html <canvas>. The way this is done is that the user code are "exec"uted in a Python dict that contains mappings from {"circle" : actual_command_that_draws_circles, # other dict definitions here } The actual code (inside Crunchy) used to process the code entered by the user looks something like: exec user_code in graphics_dict and the resulting output is the javascript code required to produce a graphics in the browser. To allow a possible translation of the commands, the string "circle" is actually written in the code as _("circle") following the standard "gettext" notation to denote strings that can be translated. At present the function _("args") simply returns "args". When translation is introduced, _() is redefined and returns the translated value provided by the "catalog". Thus, I can have in the catalog the correspondance "cercle" <--> "circle" which will mean that the Python code _("circle"): actual_command_that_draws_circles will actually be taken to mean "cercle": actual_command_that_draws_circles Note that we've only provided translations for Crunchy-specific commands, like the graphics api. In theory, it would be possible to do the same for Python functions/methods i.e. we could have a translation of getcwd to trouver_le_repertoire_courant but that would be rather silly and not very helpful for someone who wants to learn Python. This is a rather brief description and I will gladly attempt to clarify any specific point. André > > - d > _______________________________________________ > Edu-sig mailing list > [email protected] > http://mail.python.org/mailman/listinfo/edu-sig > _______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
