@@ -0,0 +1,91 @@
|
|||||||
|
name = "intl"
|
||||||
|
description = "NLS thin Ada binding"
|
||||||
|
version = "1.0.1"
|
||||||
|
long-description = """
|
||||||
|
|
||||||
|
This is a small Ada library that provides NLS support by using
|
||||||
|
[gettext (3)](https://linux.die.net/man/3/gettext),
|
||||||
|
[textdomain (3)](https://linux.die.net/man/3/textdomain) and
|
||||||
|
[bindtextdomain (3)](https://linux.die.net/man/3/bindtextdomain).
|
||||||
|
|
||||||
|
When NLS is not supported or disabled, the Ada library implements the
|
||||||
|
NLS operations by using empty suitable stubs that skip the NLS transformation
|
||||||
|
and emit the English default message.
|
||||||
|
|
||||||
|
## Using the library
|
||||||
|
|
||||||
|
The first step in using the NLS library is to call the `Initialize` procedure
|
||||||
|
that handles the setup of `textdomain` and `bindtextdomain` to configure the
|
||||||
|
language according to the user's locale. The program localized messages are
|
||||||
|
stored in a catalog file that is created by `msginit (1)` and `msgfmt (1)` tools.
|
||||||
|
In most cases catalog file are identified by a unique name that must be given
|
||||||
|
to the `Initialize` procedure (below, it will be `mytool`).
|
||||||
|
|
||||||
|
```
|
||||||
|
with Intl;
|
||||||
|
...
|
||||||
|
PROG_NAME : constant String := "mytool";
|
||||||
|
...
|
||||||
|
Intl.Initialize (PROG_NAME, "/usr/share/locale");
|
||||||
|
```
|
||||||
|
|
||||||
|
To localize a message, the `"-"` function is provided to encapsulate the call
|
||||||
|
to the [gettext (3)](https://linux.die.net/man/3/gettext) method. If the message
|
||||||
|
is translated and the catalog contains it in the user's language, it will be
|
||||||
|
converted by `gettext` and the `"-"` function returns the localized message.
|
||||||
|
|
||||||
|
```
|
||||||
|
with GNAT.IO;
|
||||||
|
...
|
||||||
|
function "-" (Message : in String) return String is (Intl."-" (Message));
|
||||||
|
...
|
||||||
|
GNAT.IO.Put_Line (-("Hello world!"));
|
||||||
|
```
|
||||||
|
|
||||||
|
To build the message translation file (`PO files`), a tool can be used to extract
|
||||||
|
from the source code the default messages. This process is
|
||||||
|
explained in the [GNU gettext](https://www.gnu.org/software/gettext/manual/) documentation.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
authors = ["Stephane.Carrez@gmail.com"]
|
||||||
|
maintainers = ["Stephane.Carrez@gmail.com"]
|
||||||
|
maintainers-logins = ["stcarrez"]
|
||||||
|
licenses = "Apache-2.0"
|
||||||
|
website = "https://gitlab.com/stcarrez/ada-intl"
|
||||||
|
tags = ["i18n", "nls", "bindings"]
|
||||||
|
|
||||||
|
[gpr-externals]
|
||||||
|
INTL_USE_NLS = ["yes", "no"]
|
||||||
|
INTL_USE_LIBINTL = ["yes", "no"]
|
||||||
|
|
||||||
|
[gpr-set-externals."case(os)".linux]
|
||||||
|
INTL_USE_NLS = "yes"
|
||||||
|
INTL_USE_LIBINTL = "no"
|
||||||
|
|
||||||
|
[gpr-set-externals."case(os)".freebsd]
|
||||||
|
INTL_USE_NLS = "yes"
|
||||||
|
INTL_USE_LIBINTL = "yes"
|
||||||
|
|
||||||
|
# Note: for NetBSD, we could use:
|
||||||
|
# [gpr-set-externals."case(os)".netbsd]
|
||||||
|
# INTL_USE_NLS = "yes"
|
||||||
|
# INTL_USE_LIBINTL = "yes"
|
||||||
|
|
||||||
|
# Note: on MacOS and Windows, you can override this and use the NLS
|
||||||
|
# support if you install the GNU gettext package.
|
||||||
|
[gpr-set-externals."case(os)".windows]
|
||||||
|
INTL_USE_NLS = "no"
|
||||||
|
INTL_USE_LIBINTL = "no"
|
||||||
|
|
||||||
|
[gpr-set-externals."case(os)".macos]
|
||||||
|
INTL_USE_NLS = "no"
|
||||||
|
INTL_USE_LIBINTL = "no"
|
||||||
|
|
||||||
|
[configuration]
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[origin]
|
||||||
|
commit = "881966ea8636d4f0f64bb7e59107d446f812fffa"
|
||||||
|
url = "git+https://gitlab.com/stcarrez/ada-intl.git"
|
||||||
|
|
||||||
Reference in New Issue
Block a user