test-gendoc complained:
% extracting documentation from ru
checking for parse errors
+ gendoc-ru.txt:5686: (WARNING/2) Field list ends without a blank
line; unexpected unindent.
+ gendoc-ru.txt:8327: (WARNING/2) Definition list ends without a
blank line; unexpected unindent.
Buildbot complained:
$ python check-translation.py *.po
+ ru.po:9576:fatal(promptchoice): number of choices differs between
msgid and msgstr
+ [1]
Prompt text was obviously wrong.. because it didn't include a prompt.
This avoids a warning from msgfmt:
$ msgfmt -v -o mercurial/locale/zh_TW/LC_MESSAGES/hg.mo i18n/zh_TW.po -c
i18n/zh_TW.po:7: warning: header field 'Language' still has the
initial default value
I mainly did the simple cases, like removing ".. note::", changing single
quotes to double quotes and adapting underlining.
Unhelpful msgstr in fuzzy entries are removed. (They were suggestions by the
program msgmerge.)
Strip the locations by running msgcat [1] as the wiki [2] tells to do. Do
this in a separate patch for getting a smaller one when updating from hg.pot.
[1] msgcat --no-location -o de.po de.po
[2] mercurial.selenic.com/wiki/TranslatingMercurial#Updating_a_Translation
When generating documentation, indentation must match for getting the same
view for translated messages. Often an output is generated anyway, but it
can look different. When a syntactically wrong indentation change is done,
runrst will fail (this is detected by test-gendoc.t).
Fix the simple places. When translation knowledge is necessary, the entry is
marked as fuzzy (and therefore skipped when generating translations). A
translator can fix it later.
.. note:: is rst syntax which must not be translated. Fix this in the
translations.
This is not the first time this happens, so there should be a note for the
translator. A later patch will change the generation of the po files to
write this automatically.
A test in i18n/check-translation.py could help as well.
Document generation by runrst in "doc" directory may succeed silently,
even though initial indentation is different between msgid and msgstr:
for example, it may be unexpected or missing indentation.
This patch adds the checker to check equality of initial indentation
between msgid and msgstr.
This checker is categorized as "warning" level, because problem
detected by this is not so serious for usual Mercurial usage.
Document generation by runrst in "doc" directory may succeed silently,
even though there is the translated message missing tail '::'. In this
case, it uses "<blockquote>" instead of "<pre>" to surround succeeding
text block unexpectedly in generated HTML file.
This patch adds the checker to check equality of tail '::'-ness
between msgid and msgstr.
To detect also msgstr unexpectedly ending with '::', this checker
doesn't have matching regexp against msgid, and is applied on all
msgid/msgstr pairs.
This checker is categorized as "warning" level, because problem
detected by this is not so serious for usual Mercurial usage.