# MSGFMT

NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSO

## NAME

msgfmt - compile message catalog to binary format

## SYNOPSIS

msgfmt [OPTION] filename.po ...

## DESCRIPTION

Generate binary message catalog from textual translation description.

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

Input file location:
filename.po ...

input files

-D, --directory=DIRECTORY

add DIRECTORY to list for input files search

If input file is -, standard input is read.

Operation mode:
-j, --java

Java mode: generate a Java ResourceBundle class

--java2

like --java, and assume Java2 (JDK 1.2 or higher)

--csharp

C# mode: generate a .NET .dll file

--csharp-resources

C# resources mode: generate a .NET .resources file

| --tcl |  | Tcl mode: generate a tcl/msgcat .msg file |
| --qt |  | Qt mode: generate a Qt .qm file |

--desktop

Desktop Entry mode: generate a .desktop file

| --xml |  | XML mode: generate XML file |

Output file location:
-o, --output-file=FILE

write output to specified file

--strict

enable strict Uniforum mode

If output file is -, output is written to standard output.

Output file location in Java mode:
-r, --resource=RESOURCE

resource name

-l, --locale=LOCALE

locale name, either language or language_COUNTRY

--source

produce a .java file, instead of a .class file

-d DIRECTORY

base directory of classes directory hierarchy

The class name is determined by appending the locale name to the resource name, separated with an underscore. The -d option is mandatory. The class is written under the specified directory.

Output file location in C# mode:
-r, --resource=RESOURCE

resource name

-l, --locale=LOCALE

locale name, either language or language_COUNTRY

-d DIRECTORY

base directory for locale dependent .dll files

The -l and -d options are mandatory. The .dll file is written in a subdirectory of the specified directory whose name depends on the locale.

Output file location in Tcl mode:
-l, --locale=LOCALE

locale name, either language or language_COUNTRY

-d DIRECTORY

base directory of .msg message catalogs

The -l and -d options are mandatory. The .msg file is written in the specified directory.

Desktop Entry mode options:
-l, --locale=LOCALE

locale name, either language or language_COUNTRY

-o, --output-file=FILE

write output to specified file

--template=TEMPLATE

a .desktop file used as a template

-d DIRECTORY

base directory of .po files

-kWORD, --keyword=WORD

look for WORD as an additional keyword

-k, --keyword

do not to use default keywords

The -l, -o, and --template options are mandatory. If -D is specified, input files are read from the directory instead of the command line arguments.

XML mode options:
-l, --locale=LOCALE

locale name, either language or language_COUNTRY

-L, --language=NAME

recognise the specified XML language

-o, --output-file=FILE

write output to specified file

--template=TEMPLATE

an XML file used as a template

-d DIRECTORY

base directory of .po files

--replace-text

output XML with translated text replacing the original text, not augmenting the original text

The -l, -o, and --template options are mandatory. If -D is specified, input files are read from the directory instead of the command line arguments.

Input file syntax:
-P, --properties-input

input files are in Java .properties syntax

--stringtable-input

input files are in NeXTstep/GNUstep .strings syntax

Input file interpretation:
-c, --check

perform all the checks implied by --check-format, --check-header, --check-domain

--check-format

check language dependent format strings

--check-header

verify presence and contents of the header entry

--check-domain

check for conflicts between domain directives and the --output-file option

-C, --check-compatibility

check that GNU msgfmt behaves like X/Open msgfmt

--check-accelerators[=CHAR]

check presence of keyboard accelerators for menu items

-f, --use-fuzzy

use fuzzy entries in output

Output details:
--no-convert

don’t convert the messages to UTF-8 encoding

--no-redundancy

don’t pre-expand ISO C 99 <inttypes.h> format string directive macros

-a, --alignment=NUMBER

align strings to NUMBER bytes (default: 1)

--endianness=BYTEORDER

write out 32-bit numbers in the given byte order (big or little, default depends on platform)

--no-hash

binary file will not include the hash table

Informative output:
-h, --help

display this help and exit

-V, --version

output version information and exit

--statistics

print statistics about translations

-v, --verbose

increase verbosity level

## AUTHOR

Written by Ulrich Drepper, Bruno Haible, and Daiki Ueno.

## 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 © 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 msgfmt is maintained as a Texinfo manual. If the info and msgfmt programs are properly installed at your site, the command

info msgfmt

should give you access to the complete manual.