MSGCAT(1)

πŸ’– MSGCAT(1) β€” the user commands manual page, bestie πŸ’–

okay so. <rainbow>msgcat</rainbow>. it's a User Commands girlie and she has ONE job: gluing your message catalogs together. and she does it flawlessly. periodt.


✨ NAME ✨

msgcat β€” combines several message catalogs 🫢


✨ SYNOPSIS ✨

msgcat [OPTION] [INPUTFILE]...

✨ DESCRIPTION ✨

okay so picture this: you have a bunch of PO files and you need them ✨unified✨. msgcat concatenates and merges the specified PO files. it also finds messages which are common to two or more of the specified PO files. iconic behaviour honestly πŸ’…

and the way you can tune how common a message has to be before it gets printed?? obsessed. with --more-than you can request greater commonality before messages are printed. conversely, --less-than lets you request less commonality before messages are printed β€” like, --less-than=2 will only print the unique messages. no cap.

translations, comments, extracted comments, and file positions will be cumulated, except that if --use-first is specified, they will be taken from the first PO file to define them. iykyk.

🚨 bestie PSA: mandatory arguments to long options are mandatory for short options too. it's giving equal rights.

🌸 Input file location 🌸

  • INPUTFILE ... β€” the input files, plural, give me all of them
  • -f, --files-from=FILE β€” get the list of input files from FILE
  • -D, --directory=DIRECTORY β€” add DIRECTORY to the list for input files search

if the input file is -, standard input is read. classic - behaviour, we love her πŸ™ˆ


πŸŽ€ Output file location πŸŽ€

  • -o, --output-file=FILE β€” write output to the specified file

the results are written to standard output if no output file is specified, or if it is -. so if you just vibe and don't specify anything, stdout gets the goods πŸ’–


πŸ’œ Message selection πŸ’œ

  • -<, --less-than=NUMBER β€” print messages with less than this many definitions, defaults to infinite if not set
  • ->, --more-than=NUMBER β€” print messages with more than this many definitions, defaults to 0 if not set
  • -u, --unique β€” shorthand for --less-than=2, requests that only unique messages be printed

πŸ¦‹ Input file syntax πŸ¦‹

  • -P, --properties-input β€” input files are in Java .properties syntax
  • --stringtable-input β€” input files are in NeXTstep/GNUstep .strings syntax

πŸ‘‘ Output details πŸ‘‘

  • -t, --to-code=NAME β€” encoding for output
  • --use-first β€” use first available translation for each message, don't merge several translations
  • --lang=CATALOGNAME β€” set the 'Language' field in the header entry
  • --color β€” use colors and other text attributes always
  • --color=WHEN β€” use colors and other text attributes if WHEN. WHEN may be 'always', 'never', 'auto', or 'html'.
  • --style=STYLEFILE β€” specify CSS style rule file for --color
  • -e, --no-escape β€” do not use C escapes in output (default)
  • -E, --escape β€” use C escapes in output, no extended chars
  • --force-po β€” write PO file even if empty (yes, even when it's giving nothing πŸ’€)
  • -i, --indent β€” write the .po file using indented style
  • --no-location β€” do not write '#: filename:line' lines
  • -n, --add-location β€” generate '#: filename:line' lines (default)
  • --strict β€” write out strict Uniforum conforming .po file
  • -p, --properties-output β€” write out a Java .properties file
  • --stringtable-output β€” write out a NeXTstep/GNUstep .strings file
  • -w, --width=NUMBER β€” set output page width
  • --no-wrap β€” do not break long message lines, longer than the output page width, into several lines
  • -s, --sort-output β€” generate sorted output
  • -F, --sort-by-file β€” sort output by file location

⭐ Informative output ⭐

  • -h, --help β€” display this help and exit
  • -V, --version β€” output version information and exit

πŸ’œ AUTHOR πŸ’œ

Written by Bruno Haible. a legend, fr fr πŸ‘‘


😭 REPORTING BUGS 😭

found a bug? bestie, tell the bug tracker at <https://savannah.gnu.org/projects/gettext> or email <bug-gettext@gnu.org>. they want to hear from you, no cap.


Copyright Β© 2001-2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. like, none. zero. the way that legally means nothing is guaranteed 😭

🧚 SEE ALSO 🧚

The full documentation for msgcat is maintained as a Texinfo manual. If the info and msgcat programs are properly installed at your site, the command

info msgcat

should give you access to the complete manual. go read it, it's giving ✨comprehensive✨ πŸ“š


and that's the whole page, bestie!! GNU gettext-tools 1.0, dated January 2026 β€” mwah, slay, go merge some catalogs πŸ’…πŸŽ€πŸ’–

πŸ“¦ where this page comes from