GETTEXT(1) User Commands GETTEXT(1)

gettext - retrieve text string from message database

gettext [-d textdomain | -−domain=textdomain]
     [textdomain] msgid

gettext -s [-e] [-n]
     [-d textdomain | -−domain=textdomain] msgid...

The gettext utility retrieves a translated text string corresponding to string msgid from a message object generated with msgfmt(1). The message object name is derived from the optional argument textdomain if present, otherwise from the TEXTDOMAIN environment. If no domain is specified, or if a corresponding string cannot be found, gettext prints msgid.

Ordinarily, gettext looks for its message object in /usr/lib/locale/lang/LC_MESSAGES where lang is the locale name. If present, the TEXTDOMAINDIR environment variable replaces the pathname component up to lang.

This command interprets C escape sequences such as \t for tab. Use \\ to print a backslash. To produce a message on a line of its own, either enter \n at the end of msgid, or use this command in conjunction with printf(1).

When used with the -s option, gettext behaves like echo(1). But it does not simply copy its arguments to standard output. Instead, those messages found in the selected catalog are translated.

The following options are supported:

-d textdomain

Retrieves translated messages from the domain textdomain, if textdomain is not specified as an operand.


Enables expansion of some escape sequences if used with the -s option.


Suppresses trailing newline if used with the -s option.


Behaves like echo(1) (see DESCRIPTION above). If the -s option is specified, no expansion of C escape sequences is performed and a newline character is appended to the output, by default.

The following operands are supported:


A domain name used to retrieve the messages. This overrides the specification by the -d or -−domain options, if present.


A key to retrieve the localized message.

Specifies locale name.


Specifies messaging locale, and if present overrides LANG for messages.


Specifies the text domain name, which is identical to the message object filename without .mo suffix.


Specifies the pathname to the message database. If present, replaces /usr/lib/locale.

echo(1), msgfmt(1), printf(1), gettext(3C), setlocale(3C), attributes(7)

This is the shell equivalent of the library routine gettext(3C).

September 17, 2001 OmniOS