C, C++, Objective C
-------------------

RPMs
     gcc, gpp, gobjc, glibc, gettext

Ubuntu packages
     gcc, g++, gobjc, libc6-dev, libasprintf-dev

File extension
     For C: c, h.

     For C++: C, c++, cc, cxx, cpp, hpp.

     For Objective C: m.

String syntax
     "abc"

gettext shorthand
     _("abc")

gettext/ngettext functions
     gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext

textdomain
     textdomain function

bindtextdomain
     bindtextdomain and wbindtextdomain functions

setlocale
     Programmer must call setlocale (LC_ALL, "")

Prerequisite
     #include <libintl.h>

     #include <locale.h>

     #define _(string) gettext (string)

Use or emulate GNU gettext
     Use

Extractor
     xgettext -k_

Formatting with positions
     fprintf "%2$d %1$d"

     In C++: autosprintf "%2$d %1$d" (see Introduction (GNU autosprintf))

     In C++ 20 or newer: std::vformat "{1} {0}"

Portability
     autoconf (gettext.m4) and #if ENABLE_NLS

po-mode marking
     yes

The following examples are available in the examples directory: hello-c, hello-c-gnome, hello-c++, hello-c++-qt, hello-c++-kde, hello-c++-gnome, hello-c++-wxwidgets, hello-objc, hello-objc-gnustep, hello-objc-gnome.