Next: , Up: Individual Programming Languages   [Contents][Index]


15.5.1 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 in 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.