MSGFMT(1)

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.