Bruno Haible 8a1f4d3657 examples: Don't fail build if rxgettext is not installed.
* gettext-tools/examples/po/xsmallpot.sh: Ignore a 'make' failure in the
hello-ruby example.
* gettext-tools/examples/po/hello-ruby.pot: New generated file.
2024-12-23 21:38:14 +01:00
..
2024-12-16 20:39:16 +01:00
2024-12-16 20:39:16 +01:00
2015-10-14 15:00:09 +09:00
2024-12-18 19:31:54 +01:00
2020-09-06 13:14:10 +02:00
2024-12-18 19:31:54 +01:00
2024-12-18 19:31:54 +01:00

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++                  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-sh                   Shell
    hello-python               Python
    hello-clisp                Lisp
    hello-librep               librep
    hello-guile                Scheme
    hello-smalltalk            Smalltalk
    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-ruby                 Ruby
    hello-gawk                 awk
    hello-pascal               Pascal
    hello-ycp                  YCP               libyui
    hello-tcl                  Tcl
    hello-tcl-tk               Tcl               Tk
    hello-perl                 Perl
    hello-php                  PHP

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
    hello-c-gnome2             .gmo                    Makefile.in
    hello-c-gnome3             .gmo                    Makefile.in
    hello-c++                  .gmo                    Makefile.in
    hello-c++20                .gmo                    Makefile.in
    hello-c++-kde              .gmo                    Makefile.in
    hello-c++-gnome2           .gmo                    Makefile.in
    hello-c++-gnome3           .gmo                    Makefile.in
    hello-objc                 .gmo                    Makefile.in
    hello-objc-gnome2          .gmo                    Makefile.in
    hello-c++-wxwidgets        .gmo                    Makefile.am
    hello-sh                   .gmo                    Makefile.am
    hello-python               .gmo                    Makefile.am
    hello-clisp                .gmo                    Makefile.am
    hello-librep               .gmo                    Makefile.am
    hello-guile                .gmo                    Makefile.am
    hello-smalltalk            .gmo                    Makefile.am
    hello-ruby                 .gmo                    Makefile.am
    hello-gawk                 .gmo                    Makefile.am
    hello-pascal               .gmo                    Makefile.am
    hello-ycp                  .gmo                    Makefile.am
    hello-perl                 .gmo                    Makefile.am
    hello-php                  .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
<https://pubs.opengroup.org/onlinepubs/9799919799/utilities/make.html>.
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.