ANN: ZanyBlue.Text, Localization Support for Ada

8 views
Skip to first unread message

Michael R

unread,
Nov 22, 2010, 5:19:05 AM11/22/10
to
Hi Folks,

This is the first release of the ZanyBlue Ada packages. This release
includes the Text package which support localization of Ada
applications
with Java style message formatting and .properties files. The
released
files are available at

http://sourceforge.net/projects/zanyblue/files/

There are two downloadable files:

1) The core release files: zanyblue-0.1.0b-r1663.tar.gz
2) Support files for testing (AUnit) and regneration of the built-in
localizations (CLDR) zanyblue-0.1.0b-r1663-libs3rd.tar.gz

The primary dev environment is Unix but has been tested on Windows.

Take care,
Michael.

The readme is:

The ZanyBlue.Text Package
-------------------------

ZanyBlue.Text is an Ada 2005 package supporting localization support
in Ada
by allowing the externalization of application messages into a
properties
file which can be localized into additional languages, similar to
Java.
The localized files include the locale string in the file name, e.g.,
the
file "zbmcompile.properties" is localized to
"zbmcompile_fr.properties" in
French.

The locale string is

* A language abbreviation (2 or 3 alpha-numeric characters), e.g.,
"en" for
English, "zh" for Chinese, "cop" for Coptic, etc.
* A script abbreviation (4 alpha-numeric characters), e.g., "Latn" for
Latin,
"Hant" for Traditional Han, "Hebr" for Hebrew, etc.
* A territory abbreviation (2 or 3 alpha-numeric characters), e.g.,
"US" for
US, "CN" for China, "142" for Asia, etc.

All components are optional, giving locale strings "" for the base
locale,
"en" for English, "zh_Hant" for Traditional Chinese, "zh_TW" for
Chinese
in Taiwan (also Traditional Chinese), and "zh_Hant_TW".

The externalized .properties files are compiled to an Ada 2005 package
containing the application strings (including localized strings) to be
compiled into an application. The selection of locale by
ZanyBlue.Text
is based on a locale argument which defaults to the locale string
value
of the environment variable "ZB_LANG", or, if it's not defined,
"LANG".
This allows applications to automatically switch the display language
(provided the application was localized into the selected locale).
E.g., the example application "moons" defaults to displaying English
but can be changed to using German, French or Spanish, e.g., to
display
is German:

$ export ZB_LANG=de
$ moons

The externalization of messages into a .properties files allows the
embedding
of parameters references via index (also similar to Java), e.g., the
message
to print the value of a number, the message could be defined as

00001=The value of the counter is {0} ticks.

The ZanyBlue.Text package supports the "passing" of argument values by
"boxing" the values into ZanyBlue.Text objects. This particular
message
could be printed, with an argument of 1904 as,

Print_Line ("myapp", "00001", +1904);

The unitary "+" operator is overloaded by the ZanyBlue.Text package to
create
the "boxed" object. See the ZanyBlue documentation for details on the
types
supported by the package.

Building
--------

The ZanyBlue packages have been build primarily on Unix systems using
a
recent GCC (GCC 4.4) or on Windows using GNAT GPL 2010. The GCC
version
4.5.0, however, gives an internal compiler error when building the
test
application.

The build is make based. To build on Unix:

$ cd src
$ make

The build will also build the needed files from Dmitry Kazakov's
components
v3.8 open source package used to format real values. To run the
ZanyBlue
tests for the Text package, use the "check" build target. The
ZanyBlue tests
use AdaCore's AUnit testing environment (also included in the src/
libs3rd
directory), which is compiled as part of the test application build,
i.e.,

$ make check

All the examples, except the "gtk" example, do not require additional
packages
beyond the ZanyBlue library. The "gtk" example requires the GtkAda
package
from AdaCore.

http://www.unicode.org/repos/cldr/tags/release-1-8-d03/common cldr

Contact
-------

For additional information contact Michael Rohan
<mic...@zanyblue.com>

Michael R

unread,
Nov 26, 2010, 2:00:44 AM11/26/10
to
> <mich...@zanyblue.com>

Hi Folks,

Noticed that the number of downloads for the libs3rd package exceeded
the download
for the actual ZanyBlue code: I've re-uploaded the code making it the
default download.
The libs3rd package contains the third party dependencies for ZanyBlue
needed only if
you want to change the set of built-in localizations via the
Unicode.org CLDR XML data
or you don't have AUnit.

The regression tests, via a "make check" in the src directory attempt
to first build
to the AUnit library in the src/libs3rd directory. If AUnit is
already installed simply
run "make check" in the src/test directory rather than the src
directory (the build of
AUnit, via ZanyBlue, only works on Unix).

Take care,
Michael

Reply all
Reply to author
Forward
0 new messages