MSGMERGE(1)
๐ MSGMERGE โ bestie edition ๐
okay so real talk: this is the msgmerge page from section 1 (User Commands) of the manual, and it's literally about smashing two translation files together so your .po stays cute and current. let's go ๐ฆ
โจ NAME โจ
msgmerge โ merge message catalog and template ๐ซถ
โจ SYNOPSIS โจ
msgmerge [OPTION] def.po ref.pot
โจ DESCRIPTION โจ
so what it does: it merges two Uniforum style .po files together. periodt. ๐
here's the tea on each one:
def.poโ this is your existing PO file, the one with actual translations. those translations get carried over into the brand-new file as long as they still match. comments? preserved, bestie. but extracted comments and file positions get thrown out. ๐ref.potโ this is the most recently created PO file, the one with up-to-date source references but old translations. OR it's a PO Template file (usually somethingxgettextmade). any translations or comments inside it get discarded โ BUT dot comments and file positions are preserved. ๐
and when it can't find an exact match? it uses fuzzy matching to get better results. slay.
also important, no cap: mandatory arguments to long options are mandatory for short options too.
๐ธ Input file location ๐ธ
def.poโ translations referring to old sourcesref.potโ references to new sources-D,--directory=DIRECTORYโ addDIRECTORYto the list for input files search-C,--compendium=FILEโ an extra library of message translations; you can specify this more than once, bestie, stack 'em ๐
๐ธ Operation mode ๐ธ
-U,--updateโ updatedef.po, and do literally nothing ifdef.pois already up to date
๐ธ Output file location ๐ธ
-o,--output-file=FILEโ write output to the specified file
The results go to standard output if you don't give an output file, or if it's -.
Output file location in update mode: the result gets written back to def.po.
--backup=CONTROLโ make a backup ofdef.po--suffix=SUFFIXโ override the usual backup suffix
The version control method can be picked via the --backup option or through the VERSION_CONTROL environment variable. here are the values, icons only:
none,offโ never make backups (even if--backupis given) ๐numbered,tโ make numbered backupsexisting,nilโ numbered if numbered backups exist, simple otherwisesimple,neverโ always make simple backups
The backup suffix is '~', unless it's set with --suffix or the SIMPLE_BACKUP_SUFFIX environment variable. โจ
๐ธ Operation modifiers ๐ธ
-m,--multi-domainโ applyref.potto each of the domains indef.po--for-msgfmtโ produce output for'msgfmt', not for a translator-N,--no-fuzzy-matchingโ do not use fuzzy matching--previousโ keep previous msgids of translated messages
๐ธ Input file syntax ๐ธ
-P,--properties-inputโ input files are in Java.propertiessyntax--stringtable-inputโ input files are in NeXTstep/GNUstep.stringssyntax
๐ธ Output details ๐ธ
--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 ifWHEN.WHENmay 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โ indented output style--no-locationโ suppress'#: filename:line'lines-n,--add-locationโ preserve'#: filename:line'lines (default)--strictโ strict Uniforum output style-p,--properties-outputโ write out a Java.propertiesfile--stringtable-outputโ write out a NeXTstep/GNUstep.stringsfile-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 (deprecated โ ๏ธ)-F,--sort-by-fileโ sort output by file location
๐ฉ heads up bestie:-s/--sort-outputis deprecated. it still exists, but likeโฆ it's giving legacy.
๐ธ Informative output ๐ธ
-h,--helpโ display this help and exit-V,--versionโ output version information and exit-v,--verboseโ increase verbosity level-q,--quiet,--silentโ suppress progress indicators
โจ AUTHOR โจ
Written by Peter Miller and Bruno Haible. ๐
โจ REPORTING BUGS โจ
found a bug? report it in the bug tracker at <https://savannah.gnu.org/projects/gettext> or by email to <bug-gettext@gnu.org>. ๐
โจ COPYRIGHT โจ
Copyright ยฉ 1995-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. ๐ญ
โจ SEE ALSO โจ
The full documentation for msgmerge is maintained as a Texinfo manual. If the info and msgmerge programs are properly installed at your site, the command
info msgmerge
should give you access to the complete manual. ๐
and that's the whole page, bestie!! this was the msgmerge man page from GNU gettext-tools 1.0, dated January 2026 โ go forth and merge those catalogs, you absolute icon ๐โจ๐๐ฆ
๐ฆ where this page comes from
- alpine 3.24: gettext-doc 1.0-r0 ยท GPL-3.0-or-later AND LGPL-2.1-or-later AND MIT
- arch rolling: gettext 1.0-2 ยท GFDL-1.2-only AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-only
- nixos 26.05: gettext 1.0
- nixpkgs unstable: gettext 1.0
- ubuntu stonking: gettext 1.0-3 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms