PODEBCONF-REPORT-PO(1)

๐Ÿ‘‘ PODEBCONF-REPORT-PO โ€” bestie edition (part 1) ๐Ÿ’–

okay so you opened the manual for podebconf-report-po, which lives in the po-debconf family, and honestly? it's a whole vibe. let's get into it ๐Ÿซถ


โœจ NAME โœจ

podebconf-report-po โ€” send outdated debconf PO files to the last translators. yes, it's literally the girl who forwards the group project doc to everyone who's behind ๐Ÿ’…


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

podebconf-report-po [options]

that's it. that's the whole synopsis. iconic, minimal, main character energy โœจ


๐ŸŒธ DESCRIPTION ๐ŸŒธ

so here's the tea: this program reads a directory full of po files to figure out which ones contain fuzzy or missing translations (aka the ones that are Not Okay). then it launches an editor so you can tweak the mail body and headers, asks you to confirm that yes you really do want to send these mails, and then sends them off to the last translator requesting updates. the mail will contain the PO file that has to be updated, because obviously, we're not gonna make them guess ๐Ÿ™ˆ

podebconf-report-po can be called either in the top-level directory, or in debian or debian/po subdirectories. and for non-debconf translations, it can be called from the po directory itself or from its parent directory. flexible queen ๐Ÿ’œ

it can also be used to send a call for translations to a mailing list. in that case, the POT file will be attached. slay.

different templates exist for translation update requests, request to send updated PO files to a bug report (--submit), or for calls for translations (--call). the template can also be provided by the user, because customization is self-care โœจ. see the TEMPLATES section for more info on the templates.


๐Ÿ’… OPTIONS ๐Ÿ’…

many options can be set in a configuration file. see section CONFIGURATION FILE. (yes bestie, we love a config file, it's giving organized)

  • --addlanguageteam=LANGUAGE:LIST โ€” specify a mailing list for a given language. this mailing list will be added to the CC list for the PO files of this language when --languageteam is used, in addition to the language team specified in the PO file (if these mailing lists differ).

this is useful to keep the specified team informed, and allow a faster reaction when a translator is known to be inactive. keeping people in the loop is literally the whole point ๐Ÿซถ

this option can be specified more than once. the language code and language mailing list are separated by a colon.

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --bts=NUMBER โ€” after a bug report has been filed (either manually or with the --submit flag) to track down translations, podebconf-report-po can be run again, but this time with the --bts=NUMBER flag. translators are then requested to respect the Reply-To: header field which is set to this bug report, so that all translations are gathered into a single location. one bug, all the replies, no chaos. organization is hot ๐Ÿ”ฅ
  • --call[=MAILING_LIST] โ€” send a call for translations. if the optional MAILING_LIST argument is not specified, the call for translations is sent to the Debian Internationalization list (debian-i18n@lists.debian.org). shoutout to the i18n girlies ๐ŸŒˆ

calls for translations are useful to receive translations in new languages.

by default, calls for translation are combined with regular requests for updates sent to translators, for the existing translations. you can disable this default behavior with the --withouttranslators option.

  • --conf=FILE โ€” specify the configuration file. by default, podebconf-report-po reads $HOME/.podebconf-report-po.conf. that's the default home, bestie ๐Ÿ 
  • --noconf โ€” do not read any configuration file. we're going in raw, no config, no notes ๐Ÿ’€
  • --deadline=DEADLINE โ€” specify the deadline for receiving the updated translations (default is no deadline).

this should be a date, which will be prefixed by:

 The deadline for receiving the updated translation is
 DEADLINE.

if the specified string starts with a '+', it will be interpreted by:

 LC_ALL=C date -R -d DEADLINE

if no deadline is specified (and the --nodeadline option is not used), a deadline will be prompted to the user, proposing a default deadline set to +10days. it will literally ask you. respectfully.

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --nodeadline โ€” deactivate the deadline indication to translators, and avoid the deadline prompts. no deadline, no stress, no prompts ๐ŸŒธ

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --default โ€” do not open the editor and use the template as is. not me skipping the editor ๐Ÿ’…

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --nodefault โ€” open an editor before sending the email(s). the editor era is back โœจ
  • -f, --force โ€” send the email(s) without confirmation. bold. brave. sending it fr fr ๐Ÿ”ฅ

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --noforce โ€” ask for confirmation before sending email(s). we love a consent moment ๐Ÿซถ
  • --from=FROM โ€” specify the name and the email address of the sender (default is taken from the DEBEMAIL and DEBFULLNAME environment variables, or from the EMAIL environment variable, or is set to the package maintainer if these variables are not set). so basically it'll figure out who you are if you don't tell it ๐Ÿ‘‘

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --gzip โ€” compress PO files in attachment with "gzip". small file, big vibe ๐ŸŽ€

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --nogzip โ€” do not compress PO files. raw file, raw energy ๐Ÿ’œ
  • -h, --help โ€” print usage information and exit. the classic bestie move when you're lost ๐Ÿ˜ญ
  • --langs=LANGUAGES โ€” specify a list of languages to restrict sending the notification only for these languages. the list of languages is comma separated. the PO files must be named according to these languages, with the .po extension. so like, be precise with your file names, okay?
  • --languageteam โ€” send the email also to the Language Team as carbon copy.

it is enabled by default. cc'ing the team, as one does ๐Ÿ’…

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --nolanguageteam โ€” do not send the email(s) to the language teams. keeping it private, i see ๐Ÿ™ˆ

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --mutt โ€” send the mails with mutt. this set the --postpone argument to $HOME/postponed. mutt girlies rise ๐Ÿฆ‹
  • --notdebconf โ€” indicate that it is not a debconf translation. podebconf-report-po will use the translator-po, call-po, or submit-po template (if no other templates are requested in the configuration file or in the command line). these templates do not mention debconf in the subject or mail body and are more suitable for non-debconf translations.

this option also changes the default po directory used by podebconf-report-po (i.e. the --podir option is not needed when the call is done from the po directory itself or from its parent directory).

by default, a debian/po directory is preferred over a po directory. with this option, only the po directory will be considered.

this option is usually not necessary. podebconf-report-po tries to determine the type of translation based on the current directory and the existence of a debian/po or po directory. it's smart, it's got intuition, it's basically psychic ๐Ÿงš

  • --package=PACKAGE โ€” specify the name of the package (default is the source package name).
  • --podir=DIR โ€” specify where the PO files are located. by default, podebconf-report-po checks if it is called from a po directory, or it searches for a debian/po directory (this can be disabled with the --notdebconf option), or for a po directory. it's gonna find them, don't worry ๐Ÿ’–
  • --postpone=MBOX โ€” do not send emails, append them in MBOX. this file can be used as a postponed mailbox with mutt -p. queued and ready for later, no rush โœจ
  • --potfile=POTFILE โ€” specify the POT file to send to a call for translations (--call). by default, podebconf-report-po uses the POT file of the PO files directory, if there is only one.

this file is also used to find the package's name and version, if none were specified with an option, and if no debian/changelog files were found. multitasking king ๐Ÿ‘‘

  • --sendmessage โ€” only send a message, with no attachments. this can be useful when the translators have a commit access to the package repository. no files, just words, we love a text-forward communication style ๐Ÿ’…
  • --smtp=SERVER โ€” specify SMTP server for mailing (default is "localhost").

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --submit โ€” instead of sending mails to translators, file a bug report against this package to request for translations. this is useful e.g. when preparing non-maintainer uploads to make sure that translations do not get lost. protect the translations at all costs ๐Ÿ˜ญ
  • --summary โ€” send a status report to the maintainer with the list of emails sent to translators. a little receipts moment ๐Ÿงพ

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --nosummary โ€” do not send any status report to the maintainer.
  • --utf8 โ€” send the email in UTF-8. this allow non-ascii characters in the mail body and mail header. the editor must support UTF-8. accents, emoji, all of it, allowed ๐ŸŒˆ

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --noutf8 โ€” send the email(s) in us-ascii. non-ascii characters are replaced by a question mark. so your รฉ becomes a ? and honestly? ๐Ÿ’€
  • --version โ€” print version information and exit.
  • -v, --verbose โ€” display additional information while running. it'll yap. affectionately.

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --noverbose โ€” do not use the verbose mode. quiet mode, mystery era ๐Ÿ™ˆ
  • --templatecall=TEMPLATE โ€” specify a file to use as a template for the call for translations email(s). the default template is /usr/share/po-debconf/templates/call.

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --templatesubmit=TEMPLATE โ€” specify a file to use as a template for the email(s) sent to translators when the --submit option is used. the default template is /usr/share/po-debconf/templates/submit.

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.

  • --templatetranslators=TEMPLATE โ€” specify a file to use as a template for the email(s) sent to translators. the default template is /usr/share/po-debconf/templates/translators.

this option can be specified in the configuration file to define default behavior of podebconf-report-po. see section CONFIGURATION FILE below.


โœจ bestie check, part 1 is done! more options and sections are coming in part 2, so don't go anywhere ๐Ÿ’–

...and yes bestie, this one can also be dropped right into the config file to set the default behavior of podebconf-report-po. The whole tea is spilled in CONFIGURATION FILE below. ๐Ÿซ–โœจ

  • --template=TEMPLATE โ€” point at a file and it becomes the template for your email(s). ๐Ÿ‘‘ And listen, if you use this one, it overrides whatever you gave to --templatetranslators, --templatesubmit, or --templatecall. It's giving main character energy and the others just have to deal. ๐Ÿ’…

This option can also live in the config file to set the default behavior of podebconf-report-po. See CONFIGURATION FILE below.

  • --notemplate โ€” just use the default template, no notes. chill, simple, iconic. ๐ŸŽ€
  • --withtranslators โ€” after you send the call for translation, go ahead and send requests for updates to the translators too. ๐Ÿ’Œ
Lowkey important: this option is ignored if --call isn't specified. And it's enabled by default, so you're already doing this unless you say otherwise. ๐Ÿ™ˆ

This option can be specified in the configuration file to define default behavior of podebconf-report-po. See CONFIGURATION FILE below.

  • --withouttranslators โ€” opposite vibe: after a call for translations, do not send translation-update requests to the translators. ๐Ÿšซ

This option can be specified in the configuration file to define default behavior of podebconf-report-po. See CONFIGURATION FILE below.


โœจ CONFIGURATION FILE โœจ

So by default, podebconf-report-po reads $HOME/.podebconf-report-po.conf. That's the spot. ๐Ÿ ๐Ÿ’–

You can point it somewhere else with --conf, and if you want it to forget the config file ever existed, hit it with --noconf. And ngl, any command line option you pass can override whatever the config file said โ€” command line stays winning. ๐Ÿ‘‘

The config files accept most of the command line options, just without the leading --:

  • deadline
  • nodeadline
  • smtp
  • from
  • verbose
  • force
  • templatetranslators
  • templatesubmit
  • templatecall
  • template
  • default
  • gzip
  • languageteam
  • nolanguageteam
  • addlanguageteam
  • summary
  • utf8
  • withouttranslators
  • withtranslators

Lines that start with a number sign โ€” possibly with some spaces before it โ€” are comments and get ignored entirely. not even read, bestie. ๐Ÿ’€

Here's an example, so you can see the vibe:

 # This is a comment
 smtp smtp.mydomain
 from = Me Myself <me@mydomain>
 utf8

๐ŸŒธ TEMPLATES ๐ŸŒธ

The templates you specify with --template, --templatetranslators, --templatesubmit, or --templatecall can contain these tags, and each one gets swapped out like magic โœจ:

  • <from>, <subject>, <reply-to> โ€” replaced by the corresponding headers of the email(s). ๐Ÿ“ง
  • <filelist> โ€” what it turns into depends on the mode, okay?
    • In the default mode, it's replaced by comments showing the list of translators with outdated translations. ๐Ÿ’ฌ
    • In --submit mode, it's replaced by the list of PO files with outdated translations. ๐Ÿ“„
    • And in --call mode, it's replaced by the list of PO files found in the PO directory. ๐Ÿ—‚๏ธ
  • <reply> โ€” replaced by a string that indicates how the translators have to reply (e.g. follow the Reply-To tag or sending the PO to a given bug report). ๐Ÿ“ฎ
  • <deadline> โ€” replaced by a string indicating the deadline for the translation (see --deadline). โฐ
  • <package> โ€” replaced by the name of the package (if it was detected). ๐Ÿ“ฆ
  • <statistics> โ€” replaced by the statistics of the PO files found in the PO directory (in the --call mode only). ๐Ÿ“Š

The /usr/share/po-debconf/templates directory contains the default templates. iykyk. ๐ŸŽ€


๐Ÿ’… EXAMPLES ๐Ÿ’…

The recommended usage is to call podebconf-report-po from the po directory you want updated:

podebconf-report-po --call

This will send a call for new translations to the <debian-i18n@lists.debian.org> mailing list and will ask translation updates to the previous translators. The language teams will also be notified and should be able to react if the assigned translator is known to be MIA. ๐Ÿ‘€ (we love a backup plan)

A prompt will ask a deadline to the user โ€” and the default is to request translations and updates within 10 days. ๐Ÿ—“๏ธ

Then an editor will display the message to be sent to the mailing list. When this editor exits, podebconf-report-po will ask confirmation to send the mail to the mailing list. โœ๏ธ

If confirmed, another editor will display the message to be sent to the translators and language teams. podebconf-report-po will ask for another confirmation to send the mails to translators and language teams. ๐Ÿ”

You should make a new release with the received translations after the deadline. ๐Ÿš€ no skipping this step fr fr


๐ŸŒˆ SEE ALSO ๐ŸŒˆ


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

  • Fabio Tranchitella <kobold@kobold.it>

and that's the whole page, bestie!! ๐Ÿฆ‹ This little masterpiece comes from the 2025-12-07 era and belongs to the PODEBCONF-REPORT-PO(1) crew. go forth and send those translation calls, you absolute icon. ๐Ÿ’–โœจ๐ŸŽ€

๐Ÿ“ฆ where this page comes from