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;
}

Indices and tables