@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 wxWidgets
@subsection wxWidgets library
@cindex @code{wxWidgets} library

@table @asis
@item RPMs
wxGTK, gettext

@item Ubuntu packages
libwxgtk3.0-dev

@item File extension
@code{cpp}

@item String syntax
@code{"abc"}

@item gettext shorthand
@code{_("abc")}

@item gettext/ngettext functions
@code{wxLocale::GetString}, @code{wxGetTranslation}

@item textdomain
@code{wxLocale::AddCatalog}

@item bindtextdomain
@code{wxLocale::AddCatalogLookupPathPrefix}

@item setlocale
@code{wxLocale::Init}, @code{wxSetLocale}

@item Prerequisite
@code{#include <wx/intl.h>}

@item Use or emulate GNU gettext
emulate, see @code{include/wx/intl.h} and @code{src/common/intl.cpp}

@item Extractor
@code{xgettext}

@item Formatting with positions
wxString::Format supports positions if and only if the system has
@code{wprintf()}, @code{vswprintf()} functions and they support positions
according to POSIX.

@item Portability
fully portable

@item po-mode marking
yes
@end table
