OS Manuals

/usr/bin/msgfmt

GNU locale utilities

From gettext 1.0-r8 (os), captured 2026-11-05 by running msgfmt --help (exit 0). permalink

Usage: /usr/bin/msgfmt [OPTION] filename.po ...

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

Report bugs in the bug tracker at <https://savannah.gnu.org/projects/gettext>
or by email to <bug-gettext@gnu.org>.
Options (37)
OptionDescriptionSource
-D, --directory DIRECTORYadd DIRECTORY to list for input files searchhelp + man
-j, --javaJava mode: generate a Java ResourceBundle classhelp + man
--java2like --java, and assume Java2 (JDK 1.2 or higher)help + man
--csharpC# mode: generate a .NET .dll filehelp + man
--csharp-resourcesC# resources mode: generate a .NET .resources filehelp + man
--tclTcl mode: generate a tcl/msgcat .msg filehelp + man
--qtQt mode: generate a Qt .qm filehelp + man
--desktopDesktop Entry mode: generate a .desktop filehelp + man
--xmlXML mode: generate XML filehelp + man
-o, --output-file FILEwrite output to specified filehelp + man
--strictenable strict Uniforum modehelp + man
-r, --resource RESOURCEresource namehelp + man
-l, --locale LOCALElocale name, either language or language_COUNTRYhelp + man
--sourceproduce a .java file, instead of a .class filehelp + man
-d DIRECTORYbase directory of classes directory hierarchyhelp + man
--template TEMPLATEa .desktop file used as a templatehelp + man
-kWORD, --keyword WORDlook for WORD as an additional keywordhelp + man
-L, --language NAMErecognise the specified XML languagehelp + man
--replace-textoutput XML with translated text replacing the original text, not augmenting the original texthelp + man
-P, --properties-inputinput files are in Java .properties syntaxhelp + man
--stringtable-inputinput files are in NeXTstep/GNUstep .strings syntaxhelp + man
-c, --checkperform all the checks implied by --check-format, --check-header, --check-domainhelp + man
--check-formatcheck language dependent format stringshelp + man
--check-headerverify presence and contents of the header entryhelp + man
--check-domaincheck for conflicts between domain directives and the --output-file optionhelp + man
-C, --check-compatibilitycheck that GNU msgfmt behaves like X/Open msgfmthelp + man
--check-accelerators CHARcheck presence of keyboard accelerators for menu itemshelp
-f, --use-fuzzyuse fuzzy entries in outputhelp + man
--no-convertdon't convert the messages to UTF-8 encodinghelp + man
--no-redundancydon't pre-expand ISO C 99 <inttypes.h> format string directive macroshelp + man
-a, --alignment NUMBERalign strings to NUMBER bytes (default: 1)help + man
--endianness BYTEORDERwrite out 32-bit numbers in the given byte order (big or little, default depends on platform)help + man
--no-hashbinary file will not include the hash tablehelp + man
-h, --helpdisplay this help and exithelp + man
-V, --versionoutput version information and exithelp + man
--statisticsprint statistics about translationshelp + man
-v, --verboseincrease verbosity levelhelp + man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.