On Wed, Aug 30, 2023 at 06:19:53PM +0200, Patrice Dumas wrote: > > I wonder if there is anything that can be done with the gettext API to > > try for a translation both with and without a context. What occurs to > > me is testing the return value of pgettext, seeing if it is equal to the > > input string, and if it is (so the translation failed), calling gettext > > instead (without the context). > > That could be a transitory measure to wait for translations to be > updated. We could do that in particular if we notice that many > translations are not updated for the official release.
This does not even work. I tried it with the latest de.po in the "texinfo_document" domain. The de.po file has a line: #: tp/Texinfo/Convert/HTML.pm:738 tp/Texinfo/Convert/HTML.pm:742 #: tp/Texinfo/Convert/HTML.pm:794 msgid "Next" msgstr "Nächste" which gives the translation of "Next" (without a context), but when I run "make update-po" this line goes away, and we have lines like the following instead: #: tp/Texinfo/Convert/HTML.pm:2143 #, fuzzy #| msgid "Next" msgctxt "NodeNext direction string" msgid "Next" msgstr "Nächste" I only got this translation to be used by removing the "#, fuzzy" line. Info node (gettext)Translated Entries: Each PO file entry for which the ‘msgstr’ field has been filled with a translation, and which is not marked as fuzzy (*note Fuzzy Entries::), is said to be a “translated” entry. Only translated entries will later be compiled by GNU ‘msgfmt’ and become usable in programs. Other entry types will be excluded; translation will not occur for them. Also under (gettext)msgcmp Invocation: ‘--use-fuzzy’ Consider fuzzy messages in the DEF.po file like translated messages. Note that using this option is usually wrong, because fuzzy messages are exactly those which have not been validated by a human translator. I expect there is a solution to be found here, either by doing something to change the operation of "make update-po" or other Makefile rules for gettext, or otherwise stripping out some of the "#, fuzzy" lines from the *.po files. I expect I'll be looking into this in the coming days, as it's quite important to have a fix (even a short-term one) before the official release. You can see the progress of translation at https://translationproject.org/domain/texinfo_document.html and although many translations are updated completely, for those that haven't been it is quite a severe drop in the number of translated strings, from 195/195 to 138/208 (that's about 30%).