gettext-header Documentation
A modern C++26 header-only library providing GNU gettext-compatible
internationalization (i18n), plus a C-compatible shared/static library
and a msgfmt replacement tool.
Overview
See Overview for project goals and architecture.
Quick Start
C++ header-only usage
#include <gettext/gettext.hpp>
#include <iostream>
int main() {
intl::bindtextdomain("myapp", "/usr/share/locale");
intl::textdomain("myapp");
// Translated if a catalog is loaded for the current locale
std::cout << intl::gettext("Hello, world!") << std::endl;
// Plural forms
int n = 5;
std::cout << intl::ngettext("file", "files", n) << std::endl;
// Context-qualified
std::cout << intl::pgettext("menu", "Open") << std::endl;
}
C API usage (link with -lintl)
#include <libintl.h>
#include <stdio.h>
int main(void) {
bindtextdomain("myapp", "/usr/share/locale");
textdomain("myapp");
printf("%s\n", gettext("Hello, world!"));
return 0;
}