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

c, gettext, internationalization, localization

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.

Problem

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.

Original source

Related problems