libintl-perl is a library that supports message translation for Perl, written in pure Perl (version 5.004 or better)
libintl-perl is a library that supports message translation for Perl, written in pure Perl (version 5.004 or better). A faster C version is also built and installed if the system fulfills all requirements.
Its interface is very similar to the gettext family of functions in C, and it uses the same file formats as GNU gettext, making it possible to use all tools available for gettext itself and to seamlessly integrate internationalized Perl code into mixed-language projects. An alternative library with a similar purpose is available as Locale::MakeText.
The core of the library is the module Locale::gettext_pp. It is a pure Perl re-implementation of the module Locale::gettext available on CPAN. However, the XS version Locale::gettext lacks some functions (notably plural handling and output conversion) that are already
present in Locale::gettext_pp. Locale::gettext_pp provides the internationalization functions that are available in your system library (libc) or additional C libraries (for example libintl in the case of GNU gettext).
The class Locale::Messages is an additional abstraction layer that is prepared for dynamic switching between different gettext implementations (for example Locale::gettext_pp and Locale::gettext). It provides basically the same interface as Locale::gettext_pp but in an
The module Locale::TextDomain is the only module that you should actually use in your software. It represents the message translation system for a particular text domain (a text domain is a unique identifier for your software package), makes use of Locale::Messages
for message translation and catalog location, and it provides additional utility functions, for example common shortcut names for i18n routines, tied hashes for hash-like lookups into the translation database, and finally an interpolation mechanism suitable for
The package also contains a charset conversion library Locale::Recode. This library is used internally by Locale::gettext_pp to allow on-the-fly charset conversion between the charset in a message catalog and the preferred (end) user charset. Its main advantage about the Encode package available for recent Perl versions is its portability, since it does not require the Unicode capabilities of Perl that were introduced with Perl 5.6. It fully supports UTF-8 with every Perl version and a wealth of common 8 bit encodings. If you have to do charset conversion with older Perl versions, then Locale::Recode may be worth a try although it is really only a helper library, not intended as a competitor to Encode.
- Perl 5.8 or better
- Perl 5.6 or better
- Earlier Perl versions
If libintl-perl is not installed on your system, you have to build it
from the sources. You need the program "make" for that and a command
line shell. No C compiler is required.
Unpack the package in a directory of your choice, cd into that
directory and then type
This will build the package. You can then run the tests with
To install the package, type
You will probably need root permissions to do that.
tags locale gettext your software the package libintl perl gnu gettext perl version charset conversion perl versions for example module locale the module message translation available for
Download libintl-perl 1.16
Other software in this category
- Desktop Environment
- Science and Engineering
- Text Editing&Processing