This directory contains simple examples of the use of GNU gettext. Each example is a simple "hello world" program with a very small message catalog, written in a particular programming language for a particular environment. Example Language GUI Environment hello-c C hello-c-gnome2 C GNOME 2 (obsolete) hello-c-gnome3 C GNOME 3.10 or later hello-c-http C web browser hello-c++ C++ hello-c++20 C++ 20 hello-c++-qt C++ Qt hello-c++-kde C++ KDE hello-c++-gnome2 C++ GNOME 2 (obsolete) hello-c++-gnome3 C++ GNOME 3.10 or later hello-c++-wxwidgets C++ wxWidgets hello-objc ObjectiveC hello-objc-gnustep ObjectiveC GNUstep hello-objc-gnome2 ObjectiveC GNOME 2 (obsolete) hello-python Python hello-java Java hello-java-awt Java AWT hello-java-swing Java Swing hello-java-qtjambi Java Qt hello-csharp C# hello-csharp-forms C# Forms hello-guile Scheme hello-clisp Lisp hello-librep librep hello-rust Rust hello-go Go hello-go-http Go web browser hello-ruby Ruby hello-sh Shell hello-gawk awk hello-pascal Pascal hello-modula2 Modula-2 hello-d D hello-smalltalk Smalltalk hello-tcl Tcl hello-tcl-tk Tcl Tk hello-perl Perl hello-php PHP hello-ycp YCP libyui Before building an example, you need to 1. Build and install the GNU gettext package, as described in the INSTALL file. 2. cd to the example and do ./autogen.sh 3. Then you can build the example as usual: ./configure --prefix=/some/prefix make make install and see it work by executing /some/prefix/bin/hello The po/ directories of the examples use different binary catalog formats and Makefile types: Example Binary catalog format Makefile type hello-c .gmo Makefile.in.in hello-c-gnome2 .gmo Makefile.in.in hello-c-gnome3 .gmo Makefile.in.in hello-c-http .gmo Makefile.in.in hello-c++ .gmo Makefile.in.in hello-c++20 .gmo Makefile.in.in hello-c++-kde .gmo Makefile.in.in hello-c++-gnome2 .gmo Makefile.in.in hello-c++-gnome3 .gmo Makefile.in.in hello-objc .gmo Makefile.in.in hello-objc-gnome2 .gmo Makefile.in.in hello-c++-wxwidgets .gmo Makefile.am hello-python .gmo Makefile.am hello-guile .gmo Makefile.am hello-clisp .gmo Makefile.am hello-librep .gmo Makefile.am hello-rust .gmo Makefile.am hello-go .gmo Makefile.am hello-go-http .gmo Makefile.am hello-ruby .gmo Makefile.am hello-sh .gmo Makefile.am hello-gawk .gmo Makefile.am hello-pascal .gmo Makefile.am hello-modula2 .gmo Makefile.am hello-d .gmo Makefile.am hello-smalltalk .gmo Makefile.am hello-perl .gmo Makefile.am hello-php .gmo Makefile.am hello-ycp .gmo Makefile.am hello-java .properties Makefile.am hello-java-awt .properties Makefile.am hello-java-swing .properties Makefile.am hello-java-qtjambi .properties Makefile.am hello-csharp .resources.dll Makefile.am hello-csharp-forms .resources.dll Makefile.am hello-tcl .msg Makefile.am hello-tcl-tk .msg Makefile.am hello-c++-qt .qm Makefile.am hello-objc-gnustep .strings GNUmakefile The Makefiles in the po/ directories make use of the variable assignment operator != standardized by POSIX:2024 . They thus require a 'make' implementation that supports this operator !=. As of 2024, these are: GNU make >= 4.0, FreeBSD make, NetBSD make, OpenBSD make. This means that building on specific platforms requires use of GNU make: - On macOS, use /opt/homebrew/bin/gmake. - On Solaris 11 OpenIndiana, use /usr/bin/gmake = /usr/gnu/bin/make. - On Solaris 11.4, install GNU make yourself. - On AIX, use /opt/freeware/bin/make.