Search code examples
gettextprivacy

What, and why, does GNU gettext send over the public internet?


I was trying out gettext and ran msginit --locale=en --input=messages.po and this is what I see:

[... blah ...]
Is the following your email address?
  localUserName@localHostName
Please confirm by pressing Return, or enter your email address.

Retrieving http://translationproject.org/team/index.html... done.
A translation team for your language (en) does not exist yet.
If you want to create a new translation team for en or en_PG, please visit
  http://www.iro.umontreal.ca/contrib/po/HTML/teams.html
  http://www.iro.umontreal.ca/contrib/po/HTML/leaders.html
  http://www.iro.umontreal.ca/contrib/po/HTML/index.html

Created en_PG.po.

What was or would have been disclosed? What is the purpose of this disclosure?

$ msginit --version
msginit (GNU gettext-tools) 0.19.8.1

Solution

  • You don't need wireshark for tracing here. A text editor will do:

    The tool msginit invokes a shell script <prefix>/share/gettext/projects/TP/team-address that tries to download (via <prefix>/lib/gettext/urlget) the table with translation teams from http://translationproject.org/team/index.html, and it falls back to a local copy installed under <prefix>/share/gettext/projects/TP/teams.html. The purpose of this is to fill the PO header Language-Team with an up-to-date email address.

    I agree that the user should at least be prompted before an internet connection is opened.

    I have opened an upstream issues for that:

    In versions before 0.20, the program (it is the above-mentioned script team-address) always reports that a "translation team for your language (xy) does not exist yet", no matter what locale you specify. This is fixed in gettext version 0.20.1.

    Thanks for pointing this out!

    As a workaround, you may edit the shell script team-address to not invoke urlget but use the local copy directly.