Lie Ryan, thank you for your answer! > Why would you want to translate docstring? Docstring is meant for > developers not users. I have mentioned that I want to provide API for existing image- processing applicaion in Python. In my case "developers" are "users". Python provides great possibilities for documenting objects, I want to use it for things such context help about API modules, classes, methods, and want to do it in several languages.
> Maintaining a translated docstring is going to be > a maintenance hell and will either hampers your application's agility or > you will be left with obsolete docstrings in various languages you don't > know. You are right, there are problems here, but there are advantages too (we are talking about API): developers can write documentation in thier "cracked" English (like my), but professional translator can correct it after with Poedit. > Anyway, my job is to answer questions, not question the economic > feasibility of your decision, so try this: > > #!python > __doc__ = _("""testmodule docstring""") > > class TestClass: > __doc__ = _("""testmodule.TestClass docstring""") > > def testClassMethod(self): > __doc__ = _("""testmodule.TestClass.testClassMethod docstring""") > print _("Call TestClass.testClassMethod()") Yes, I tried this method, but it does not work with methods and functions, this line > __doc__ = _("""testmodule.TestClass.testClassMethod docstring""") does nothing (There are not output in help()). Is it any way to assign docstring for function explicity? > If you want to avoid having the explicit assignment to __doc__, you can > also try using some metaclass or decorator magic to automatically wraps > docstring in a _() call. Yes, it will be better to avoid them, is it any existing tool/lib/ workaround that can do it? I am follower of aproved, stable solutions, do not like to reinvent the wheel. -- http://mail.python.org/mailman/listinfo/python-list