Kwpolska wrote: > I am using argparse in my project. I want to localize it, but it > seems to be impossible to change some things. See this, for example: > > usage: trash [-h] [-V] [-e] [-l] [-r] [-v] [-w] [PLIK [PLIK ...]] > > Trashman — menedżer śmietnika XDG w Pythonie. > > positional arguments: > PLIK pliki do wyrzucenia > > optional arguments: > -h, --help show this help message and exit > -V, --version show program's version number and exit > > (a snippet of help for Trashman, a Python trash manager, with > LANG='pl_PL.UTF-8'; https://github.com/Kwpolska/trashman ) > > Anyways, you can see that -h and -V (added semi-automatically by > argparse), “usage:” and “positional/optional arguments:” are still in > English. It doesn’t look very professional. Also, I want to use > fancy UTF-8 characters. Is there a way to fix that?
I don't know much about gettext, but the following suggests that most strings in argparse are properly wrapped: $ cat localize_argparse.py import gettext def my_gettext(s): return s.upper() gettext.gettext = my_gettext import argparse if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("-V", action="version") args = parser.parse_args() $ python localize_argparse.py -h USAGE: localize_argparse.py [-h] [-V] OPTIONAL ARGUMENTS: -h, --help SHOW THIS HELP MESSAGE AND EXIT -V show program's version number and exit The workaround for the "-V" option would be to add the help message explicitly parser.add_argument("-V", ..., help=_("show...")) You still have to provide all translations yourself. -- http://mail.python.org/mailman/listinfo/python-list