@c This file is part of the GNU gettext manual. @c Copyright (C) 1995-2020 Free Software Foundation, Inc. @c See the file gettext.texi for copying conditions. @node C @subsection C, C++, Objective C @cindex C and C-like languages @table @asis @item RPMs gcc, gpp, gobjc, glibc, gettext @item Ubuntu packages gcc, g++, gobjc, libc6-dev, libasprintf-dev @item File extension For C: @code{c}, @code{h}. @*For C++: @code{C}, @code{c++}, @code{cc}, @code{cxx}, @code{cpp}, @code{hpp}. @*For Objective C: @code{m}. @item String syntax @code{"abc"} @item gettext shorthand @code{_("abc")} @item gettext/ngettext functions @code{gettext}, @code{dgettext}, @code{dcgettext}, @code{ngettext}, @code{dngettext}, @code{dcngettext} @item textdomain @code{textdomain} function @item bindtextdomain @code{bindtextdomain} and @code{wbindtextdomain} functions @item setlocale Programmer must call @code{setlocale (LC_ALL, "")} @item Prerequisite @code{#include } @*@code{#include } @*@code{#define _(string) gettext (string)} @item Use or emulate GNU gettext Use @item Extractor @code{xgettext -k_} @item Formatting with positions @code{fprintf "%2$d %1$d"} @*In C++: @code{autosprintf "%2$d %1$d"} (@pxref{Top, , Introduction, autosprintf, GNU autosprintf}) @item Portability autoconf (gettext.m4) and #if ENABLE_NLS @item po-mode marking yes @end table The following examples are available in the @file{examples} directory: @code{hello-c}, @code{hello-c-gnome}, @code{hello-c++}, @code{hello-c++-qt}, @code{hello-c++-kde}, @code{hello-c++-gnome}, @code{hello-c++-wxwidgets}, @code{hello-objc}, @code{hello-objc-gnustep}, @code{hello-objc-gnome}.