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.

Author reingart
Recipients ezio.melotti, georg.brandl, reingart
Date 2012-10-28.21:46:55
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
"serious" developers? sorry but I think that is a unfortunate phrase that goes against the Python Diversity Statement
What about young pupil? 
What about non-programmers (i.e. accountants)? 
In some places (like my country, public schools), English is not teach formally until the University.

And I don't think non-English speakers are just a subset of users.
Come on, English is not even the top native tongue (that is Chinese Mandarin). English can be one of the most spoken languages, but even that metric only reach 1/7th of the total world population. Other languages like Spanish or Portuguese are also rising.

BTW, as the draft says, Python is the offender here, as other error messages are already translated (including the OS ones, even inside Python!):

Python 3.2.2 (default, Sep  4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)] on win 32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.listdir("J:\\")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
WindowsError: [Error 3] El sistema no puede encontrar la ruta especificada: 'J:\\*.*'

PostgreSQL already translates error messages too:

C:\Program Files\PostgreSQL\9.0\bin>psql
psql (9.0.3)
Digite «help» para obtener ayuda.

Mariano=> SELECT * FROM nowhere;
ERROR:  no existe la relación «nowhere»
LÍNEA 1: SELECT * FROM nowhere;

And Bash too:

reingart@desktop:~/cpython$ ls /nowhere
ls: no se puede acceder a /nowhere: No existe el archivo o el directorio

Of course, there is no need to translate keywords or libraries (as SQL sentences and bash command are not translated, just messages are), I don't see why this could cause confusion, instead that, I think python would become more consistent with other tools and thus more easy to use.

The mechanism to restore the language is the common one (used by almost every other application that support i18n):
>>> locale.setlocale(locale.LC_MESSAGES, "C")
It should be not difficult for "serious" programmers to handle that :-)
If that is a concern, it could be implemented a command line parameter, a environment variable or a shortcut in locale module.

Anyway, people will not necessarily be faced by default with the localized version, an if for example, a teacher has to jump to an student machine, surely it could use it as messages will be probably in the spoken language of the country (BTW, probably most of the operating system components will be localized, not only Python)
For advanced users or logging, it could be disabled at all!

Finally, you're correct about that translation is not easy job, and this proposal (traceback internationalization) is just the tip of the iceberg (even more work will be needed in other aspects to get a full localization).
If PostgreSQL and other tools could do that, why Python could not?
Date User Action Args
2012-10-28 21:46:56reingartsetrecipients: + reingart, georg.brandl, ezio.melotti
2012-10-28 21:46:56reingartsetmessageid: <>
2012-10-28 21:46:56reingartlinkissue16344 messages
2012-10-28 21:46:55reingartcreate