# phpman > man > MSGCAT(1)

> **TLDR:** Concatenate and merge multiple `.po` translation files.
>
- Combine multiple `.po` files into one:
  `msgcat {{file1.po file2.po ...}} {{-o|--output-file}} {{combined.po}}`
- Combine input files listed in a text file:
  `msgcat {{-f|--files-from}} {{path/to/file_list.txt}} {{-o|--output-file}} {{combined.po}}`
- Set the output encoding (e.g. UTF-8):
  `msgcat {{-t|--to-code}} {{UTF-8}} {{input.po}} {{-o|--output-file}} {{output.po}}`
- Output only unique messages (appearing in one file only):
  `msgcat {{-u|--unique}} {{file1.po file2.po ...}} {{-o|--output-file}} {{unique.po}}`
- Use the first available translation for duplicate entries:
  `msgcat --use-first {{file1.po file2.po ...}} {{-o|--output-file}} {{output.po}}`
- Display help:
  `msgcat {{-h|--help}}`

*Source: tldr-pages*

---

[MSGCAT(1)](https://www.chedong.com/phpMan.php/man/MSGCAT/1/markdown)                                   User Commands                                  [MSGCAT(1)](https://www.chedong.com/phpMan.php/man/MSGCAT/1/markdown)



## NAME
       msgcat - combines several message catalogs

## SYNOPSIS
       **msgcat** [_OPTION_] [_INPUTFILE_]...

## DESCRIPTION
       Concatenates  and  merges  the  specified PO files.  Find messages which are common to two or
       more of the specified PO files.  By using the **--more-than** option, greater commonality may  be
       requested  before  messages  are  printed.  Conversely, the **--less-than** option may be used to
       specify less commonality before messages are printed (i.e.  **--less-than**=_2_ will only print the
       unique messages).  Translations, comments, extracted comments, and file positions will be cu‐
       mulated, except that if **--use-first** is specified, they will be taken from the first  PO  file
       to define them.

       Mandatory arguments to long options are mandatory for short options too.

### Input file location:
       INPUTFILE ...
              input files

### -f --files-from
              get list of input files from FILE

### -D --directory
              add DIRECTORY to list for input files search

       If input file is -, standard input is read.

### Output file location:
### -o --output-file
              write output to specified file

       The results are written to standard output if no output file is specified or if it is -.

### 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
              encoding for output

### --use-first
              use first available translation for each message, don't merge several translations

       **--lang**=_CATALOGNAME_
              set '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

### -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
              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.

## REPORTING BUGS
       Report bugs in the bug tracker at <<https://savannah.gnu.org/projects/gettext>> or by email  to
       <<bug-gettext@gnu.org>>.

## COPYRIGHT
       Copyright  ©  2001-2020  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 **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.



GNU gettext-tools 0.21                       March 2022                                    [MSGCAT(1)](https://www.chedong.com/phpMan.php/man/MSGCAT/1/markdown)
