• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..26-Oct-2020-

bin/H26-Oct-2020-10662

lib/H26-Oct-2020-13774

po/H26-Oct-2020-1,3591,055

.gitignoreH A D08-Oct-201818 32

MANIFESTH A D08-Oct-2018921 3332

Makefile.PLH A D08-Oct-20181.8 KiB5424

README-NLSH A D08-Oct-20189.2 KiB191151

TRANSLATIONSH A D08-Oct-20181.9 KiB4234

README-NLS

1Notes on National Language Support (NLS)
2****************************************
3
4This package is internationalized with libintl-perl, a free
5internationalization library for Perl, you will need to install a copy of
6libintl-perl in order to use the package.  You can get libintl-perl from the
7Comprehensive Perl Archive Network CPAN at http://www.cpan.org/.
8
9The following notes are meant to be a quick start guide for somewhat
10experienced users and system administrators and many important details had to
11be omitted for brevity.
12
13Feel free to include this document in your own Perl packages internationalized
14with libintl-perl, no severe copyright restrictions apply.  You should send
15corrections or improvements to the author Guido Flohr <guido DOT flohr AT cantanea DOT
16com>, so that others can benefit from your changes.
17
18The End User's View
19===================
20
21The installation routine for this package will automatically take care that
22your system has a sufficient version of libintl-perl installed.  This is
23basically sufficient for proper operation, but - especially if
24internationalized software is new to you - you should read on carefully in
25order to fully benefit from the internationalization (I18N) features of this
26package.
27
28Perl Setup
29----------
30
31The I18N library libintl-perl will run with a wide range of Perl versions (at
32least from Perl version 5.005_03) but you will experience slight
33difference in features and performance depending on the version of Perl you
34use.
35
36With Perl versions prior to 5.7.3 you can use the package for all European
37scripts (including those with Greek or Cyrillic scripts), and also for many
38scripts used outside Europe, like Arabic, Hebrew, Georgian, Vietnamese or
39Thai, more general all scripts using 8 bit charsets.  Other scripts are only
40available if the translations in this package are provided in Unicode and they
41can only be output in Unicode.
42
43Beginning with Perl 5.7.3 the module Encode became part of the Perl core, and
44it offers you a much wider range of possible scripts.  If you plan to use some
45of the lesser used scripts for Chinese, Japanese, and Korean, you should also
46install the module Encode::HanExtra.
47
48Setting Your Language
49---------------------
50
51Most modern systems are already prepared and configured for
52internationalization, and the user interface of the software you have
53installed will already be configured for your preferred language.  Packages
54internationalized with libintl-perl will honor these configuration settings
55and will also operate in your preferred language if the necessary translations
56are available.
57
58The environment variable "LANGUAGE" has the highest precedence for
59translations.  The most common format for this environment variable is a
60(lowercase) two-letter language code and an (uppercase) two-letter country
61code separated by an underscore "_", for example:
62
63     LANGUAGE=fr_BE
64     export LANGUAGE
65
66This will set your language preferences to French ("fr") for Belgium ("BE").
67Other examples are French for France ("fr_FR"), German for Austria ("de_AT"),
68and so on.  You can also omit the country part ("FR", "DE", "IT", "RU", ...)
69in which case a default setting for the country will be assumed.
70
71If there are no translations available for your selected languages, the
72original message (normally in English) will be displayed.
73
74You can also define a chain of languages to be tried separated by a colon:
75
76     LANGUAGE=fr_BE:fr_FR:fr:it
77
78Read this as: "I want translations in French for Belgium.  If they are not
79available try French for France, then any French translation, and finally
80Italian".  Please note that this chain notation is only allowed for the
81environment variable "LANGUAGE", it is not valid for any of the following
82variables.
83
84If "LANGUAGE" is not set, the library checks the variable "LANG".  It has the
85same syntax as "LANGUAGE" but does not allow the preferences chain with the
86colon syntax.  After "LANG" the variable "LC_ALL" is tried, and finally
87"LC_MESSAGES" (think "locale category messages").
88
89IMPORTANT! The environment variable "LANGUAGE" is ignored, if neither the
90environment variable "LC_ALL" or "LC_MESSAGES" is set to a valid locale on
91your system.  It is also ignored, if the resulting locale is the fallback
92locale "C" or "POSIX".
93
94Note for Microsoft Windows users: The locale preferences you have configured
95for your system cannot yet be evaluated by libintl-perl.  This may change for
96future versions of libintl-perl but for the moment you have to make do with
97the instructions given above.  In order to set environment variables, you have
98to right-click on the icon "My Computer" on your desktop, select "Properties"
99in the context menu, and then click the tab labelled "Environment variables".
100
101Setting the Output Charset
102--------------------------
103
104Even if you have managed to properly select your preferred language, you may
105still have difficulties reading the program languages, because libintl-perl
106was unable to determine the correct charset to use for messages.  For example,
107it may assume Unicode ("UTF-8") but you really need ISO-Latin-1 (also known as
108"Latin-1" or "ISO-8859-1").  If this is the case, please set the environment
109variable "OUTPUT_CHARSET" to the appropriate value, for example:
110
111     OUTPUT_CHARSET=iso-8859-1
112     export OUTPUT_CHARSET
113
114Charset names are case-insensitive, i. e. "LATIN-1" is equivalent to
115"Latin-1" or even "lAtIn-1".
116
117Note: The output charset "utf8" is NOT recognized.  Please use the correct
118abbreviation "utf-8" (with a hyphen) instead.
119
120The Translator's View
121=====================
122
123If you want to contribute a new translation to this package, please contact
124the author first.  Somebody may have already started this translation, and
125furthermore the package author will be able to give you detailled instructions
126and help.
127
128Translating a Perl package is not much work and it does not require any
129technical skills.  If you are able to use the software itself, you will also
130be able to contribute a translation for your language.  But why should you do
131that? You are able to read and understand this text and you will also be able
132to understand the English messages that the software spits out by default.
133
134Computers are an integral part of today's society.  Computers are used to
135explore new sources of information, forbidding computers would be a modern
136form of censorship.  Computers may also improve social life, the internet
137helps people to find contacts in their area and all over the world, even if
138they would otherwise be deprived from that because of a handicap, lack of money
139for traveling, or other reasons.  In many societies, the ability to use and
140handle a computer also has a strong impact on your perspectives in life, you
141may not be able to find an adequate job because of your lack of computer
142experience, or you may even lose your job because of that.
143
144Everybody should benefit from computers, regardless of cultural
145background. Computers are expansive goods, and their price is already a high
146barrier to cross.  If computers speak in a foreign language, the learning
147curve gets steeper and the barrier gets even higher.  You can help the people
148that share your native language by contributing a translation.  The author of
149this package has already prepared everything, the rest is up to you!
150
151The Programmer's View
152=====================
153
154You have downloaded this package because you want to use it in your own
155project(s).  The fact that the package is internationalized with libintl-perl
156does not affect its usability in any way.  But you should keep in mind that
157textual messages produced by the package may change according to the locale
158settings at run-time.  This can lead to errors.  For example, if you parse
159error messages produced by the package, you will most probably fail to detect
160what you are looking for, if these error messages are suddenly presented in
161another language or another output charset.
162
163It is probably needless to say that this is bad practice and an indicator for
164a poorly written interface.  Either you have missed the correct method for
165determining the substance of the message in a locale-independent manner, or
166the author of the package has mis-designed the package interface.  In any
167case, this is a technical problem that should be solved by technicians.  You
168should not put that burden on the shoulders of your users but rather solve the
169problem in cooperation with the author of the module that causes it.
170
171If this is absolutely impossible, as a temporary workaround you can completely
172switch off the native language support of the package by setting the
173environment variable "LANGUAGE" to the special value "C":
174
175     BEGIN {
176         $ENV{LANGUAGE} = $ENV{LANG} = "C";
177     }
178
179The value "C" instructs libintl-perl to leave all messages untouched, and you
180can use the package as if it was not internationalized at all.
181
182If the project you are working on is not yet internationalized, you should
183consider to prepare it for internationalization now.  Doing so is only little
184work for yourself, but results in a large benefit for the users of your
185software.  The package "libintl-perl" ships with exhaustive documentation for
186programmers and a sample package that you can use as a skeleton for your own
187project(s).  Internationalizing Perl software with libintl-perl is easy, the
188package that this file is a part of, prooves that.
189
190Guido Flohr
191