INTLTOOL-UPDATE(8)

πŸ’– INTLTOOL-UPDATE πŸ’–

okay bestie, welcome to the intltool-update page from the System Manager's Manual ✨ this one's all about making your translations slay 🌸


πŸŽ€ NAME πŸŽ€

intltool-update β€” updates PO template file and merge translations with it πŸ’…


✨ SYNOPSIS ✨

intltool-update [option]...
intltool-update LANGCODE

πŸ¦‹ DESCRIPTION πŸ¦‹

so like, intltool-update generates brand new po file templates straight from your source code, and then merges your existing translations with those new po templates. it's giving translation-glow-up, no cap πŸ’–

🚨 real talk tho: you must change working directory to the subdirectory containing translations (usually "po/") before running intltool-update. don't skip this step bestie, it's literally the vibe check πŸ™ˆ

🌈 OPTIONS 🌈

when you're running intltool-update, only one mode of operation is allowed each time. pick one. choose your fighter. periodt πŸ‘‘

πŸ’œ Mode of operation

  • -p, --pot β€” generate po template (.pot) only. just the template, nothing else, iconic behavior ✨
  • -s, --headers β€” executes intltool-extract(8) to extract strings inside XML/INI style files listed in POTFILES.in, and writes the extracted strings into header files, so that the strings can be recognised by xgettext(1). very "make it legible for the other tool" of it 🫢
  • -m, --maintain β€” search for left out files, which should have been listed in POTFILES.in or POTFILES.skip. a list of all these files are written into another file called "missing". it's giving detective energy πŸ”
  • -r, --report β€” display a status report for all translations in the software. the receipts, basically πŸ“‹
  • -d LANGCODE, --dist LANGCODE β€” merge LANGCODE.po with existing PO template πŸ’«

🌸 Other options

  • -g NAME, --gettext-package=NAME β€” manually specify PO template file name, instead of determining the name automatically from source. useful with -p/--pot option. this option has an additional effect: the name of current working directory is no more limited to "po" or "po-*". glow up + freedom, obsessed πŸ˜­πŸ’–
  • -o FILENAME, --output-file=FILENAME β€” manually specify output FILENAME after merging old translation with PO template. useful either with -d/--dist option or without any option. you get to name the baby 🍼
  • -x, --verbose β€” display lots of feedback. yapper mode activated πŸ—£οΈ
  • --version β€” show version information. the origin story ✨
  • --help β€” show usage and basic help information. bestie's lil cheat sheet πŸŽ€

🌟 EXAMPLES 🌟

creates a new PO template from source code, and name it foo.pot:

intltool-update --pot --gettext-package=foo

updates translation file xy.po using existing po template called "bar.pot", and writes output into "xy1.po":

intltool-update --dist --gettext-package=bar --output-file=xy1.po xy

creates new PO template and updates translation file xy.po (xy.po is overwritten with new content):

intltool-update xy
(same as intltool-update --pot && intltool-update --dist xy)
πŸ’€ heads up: in that last one, xy.po gets overwritten. dramatic but true.

πŸ“ FILES πŸ“

  • po/POTFILES.in β€” contains list of source files which contain translatable strings, one file per line. the guest list πŸ“
  • po/POTFILES.skip
  • po/POTFILES.ignore (obsolete) β€” contains list of source files which should be ignored when searching for translatable strings. the do-not-disturb list πŸ™…β€β™€οΈ
πŸ‘‘ note that po/POTFILES.ignore is obsolete β€” it's the ex that still shows up in the group chat.

😭 REPORTING BUGS 😭

report bugs to http://bugs.launchpad.net/intltool β€” they wanna hear it, fr fr 🫢


πŸ’… AUTHOR πŸ’…

  • Darin Adler <darin@bentspoon.com>
  • Kenneth Christiansen <kenneth@gnu.org>
  • Maciej Stachowiak <mjs@eazel.com>

the founding mothers/fathers of this whole situation, we stan 🌈


🧚 SEE ALSO 🧚

intltoolize(8), intltool-prepare(8), intltool-extract(8), intltool-merge(8), xgettext(1)


and that's the whole page bestie, go forth and localize πŸ’– this lil slice of intltool lore is dated 2003-08-02 β€” vintage, lowkey a classic, and honestly? it ate. mwah πŸŽ€βœ¨πŸ’