dcgettext - Linux


dcgettext extracts messages from gettext-format message catalogs for use in programs. It is primarily used during the compilation and execution of software to handle multilingual text and message translations.


dcgettext [-q] [-e] [-t] [-o directory] DOMAIN MESSAGEID


  • -q: Quiet mode, suppresses warning messages.
  • -e: Print error messages about missing translations.
  • -t: Test mode, exits with 0 if translation exists, 1 otherwise.
  • -o directory: Specifies the directory where the message catalog is located. Default is "/usr/share/locale".


Extract a message translation for the "hello" message from the "messages" catalog:

dcgettext messages hello

Print an error message if the translation is missing:

dcgettext -e messages hello

Test if the translation exists:

dcgettext -t messages hello

Set the search directory for message catalogs:

dcgettext -o /my/custom/locale messages hello

Common Issues

  • Make sure the correct message catalog is specified in the DOMAIN argument.
  • Verify that the translation exists in the message catalog.
  • Check if the message catalog is installed and accessible.


Use with printf to display translated messages:

printf "$(dcgettext messages hello)"

Combine with xgettext to generate message catalogs:

xgettext -o messages.pot source.c
dcgettext -o /my/app/locale messages hello

Related Commands

  • gettext: Extracts messages from source code into a message catalog.
  • msgfmt: Compiles message catalogs for use by programs.
  • GNU gettext homepage