Search code examples
clocalizationinternationalizationgettext

fputs( _("") ) what does the underscore stand for?


I finally got myself to look at some Linux code. I am looking right now at ls.c.

At the function usage() at the bottom I found a lot of these statements:

fputs (_("\
List information about the FILEs (the current directory by default).\n\
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.\n\
\n\
"), stdout);

What does _("") mean? Is it something like L"string" or _T"string" or something completely new? I must also admit I don't know what words to use to search for something like this.


Solution

  • It's a convention used by libintl a.k.a. gettext, for translatable strings. When it runs, gettext function (which _ is aliased to) will return either original or translated string, depending on locale settings and availability of said string.