Skip to content
Snippets Groups Projects
Commit 16a175b3681e authored by Katsunori FUJIWARA's avatar Katsunori FUJIWARA
Browse files

i18n: use actual filename, in which function is defined, for hg.pot

Before this patch, source filename for msgid in hg.pot file becomes
incorrect, if a function is defined in file A, but detected in dict in
file B,

For example, almost all debug* commands are defined in
debugcommands.py, but hggettext detects them in "table" of
commands.py. Therefore, docstring fragments of debug* commands are
marked as "defined in commands.py" in hg.pot file.

This is serious problem for translation, because the cost to find out
original location of texts increases very much.
parent cc047a733f69
No related branches found
No related tags found
No related merge requests found
......@@ -112,4 +112,10 @@
for func, rstrip in functions:
if func.__doc__:
funcmod = inspect.getmodule(func)
extra = ''
if funcmod.__package__ == funcmod.__name__:
extra = '/__init__'
actualpath = '%s%s.py' % (funcmod.__name__.replace('.', '/'), extra)
src = inspect.getsource(func)
......@@ -115,7 +121,7 @@
src = inspect.getsource(func)
name = "%s.%s" % (path, func.__name__)
name = "%s.%s" % (actualpath, func.__name__)
lineno = inspect.getsourcelines(func)[1]
doc = func.__doc__
if rstrip:
doc = doc.rstrip()
lineno += offset(src, doc, name, 1)
......@@ -117,9 +123,9 @@
lineno = inspect.getsourcelines(func)[1]
doc = func.__doc__
if rstrip:
doc = doc.rstrip()
lineno += offset(src, doc, name, 1)
print(poentry(path, lineno, doc))
print(poentry(actualpath, lineno, doc))
def rawtext(path):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment