Support for globalization

The support of globalization by DB Link has been greatly enhanced by integrating ICU classes and functions.

With the use of ICU:

  • DB Link messages can now be displayed in many different locales.

  • Numbers can be displayed using the user locale.

  • Dates and times can be set and retrieved using Unicode strings.

These capabilities are implemented in the classes IlEnvironment and IlINumeric and the extension of the class IldDateTime.

As a consequence, DB Link installation provides additional libraries and header files from ICU. The additional libraries must be delivered along with the application. They are installed in the shared libraries directories (shared or dll) of DB Link. Their names always contain "icu".

The class IlEnvironment

This class is used for handling external resources, options and environment variables. It also provides the API to handle messages, formatters for numbers and date and time.

It is designed to work as a singleton. That is, at most one instance can exist at any time while the application is running. Internally, DB Link asks for the instance creation when establishing the first connection.

It also provides a callback mechanism for applications to have their own resource-seeking function. Another callback mechanism allows applications to define a function to call whenever the locale is changed. This is particularly useful to keep the graphical user interface (GUI) display synchronized with the language of the locale.

The API of the class also allows loading additional resource bundles, as defined in ICU, and using them just like DB Link. These resource bundles can be stored in application specific locations, the class provides the necessary API to declare the directories where these bundles are stored.

Data

This version of DB Link contains a new directory data. This directory is intended to contain external resources for DB Link. It contains one directory ilddb in which the resource files are stored. It should contain at least one binary file named root.res. This directory contains two ICU resource files in binary format: one for "Little Endian" platforms and one for "Big Endian" platforms. At installation time, a link to the file appropriate for the platform is be created.