MSGUNIQ(1)

πŸ’… MSGUNIQ(1) β€” the unify-duplicate-translations girlie πŸ’…

okay so bestie, this is the manual for msguniq, a User Command, and it's about to become your new hyperfixation. sit down, grab a boba, and let's unify some duplicate translations ✨


πŸ¦‹ NAME πŸ¦‹

msguniq β€” unify duplicate translations in a message catalog. that's the whole vibe. duplicates? gone. unified? slay.


🌸 SYNOPSIS 🌸

msguniq [OPTION] [INPUTFILE]

✨ DESCRIPTION ✨

So what does she do? She unifies duplicate translations in a translation catalog πŸ’–. She finds duplicate translations of the same message ID. And here's the tea: those duplicates are invalid input for other programs like msgfmt, msgmerge or msgcat. so like, they're not just annoying, they're actually breaking things 😭

By default, duplicates get merged together. But if you use the --repeated option? Only duplicates are output and all the other messages get discarded πŸ™ˆ. Comments and extracted comments get cumulated β€” except if --use-first is specified, then they're taken from the first translation. File positions get cumulated too. And when you use the --unique option, duplicates are just... discarded. bye bestie πŸ‘‹

mandatory arguments to long options are mandatory for short options too. yes this is real, no this is not a drill πŸ’€

πŸŽ€ OPTIONS πŸŽ€

πŸ“ Input file location

  • INPUTFILE β€” the input PO file, bestie
  • -D, --directory=DIRECTORY β€” adds DIRECTORY to the list for input files search

if no input file is given, or if it's -, standard input is read πŸ‘‘

πŸ’Ύ Output file location

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

the results get written to standard output if no output file is specified, or if it's - 🌈

πŸ” Message selection

  • -d, --repeated β€” print only duplicates
  • -u, --unique β€” print only unique messages, discard duplicates

🧚 Input file syntax

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

🎨 Output details

  • -t, --to-code=NAME β€” encoding for output
  • --use-first β€” use the first available translation for each message, don't merge several translations
  • --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
  • -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. periodt. πŸ’œ


🫢 REPORTING BUGS 🫢

Found a bug? (rude of it, honestly.) Report bugs in the bug tracker at <https://savannah.gnu.org/projects/gettext> or by email to <bug-gettext@gnu.org> πŸ“¬


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. (not me warning you about warranties, but here we are πŸ’€)


🌈 SEE ALSO 🌈

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

info msguniq

should give you access to the complete manual πŸ¦‹


okay that's the whole page bestie, you're officially educated πŸ’– this was the MSGUNIQ(1) manual from GNU gettext-tools 1.0, dated January 2026 β€” and honestly? iconic. go unify some duplicates, you main character πŸŽ€βœ¨

πŸ“¦ where this page comes from