Locale-Maketext-Gettext change log
2005-04-20 version 1.13
1. Changes: Addition of new unencoded UTF-8 tests is
appended to the change log.
2. Changes: Addition of warning of key_encoding() is
appended to the change log.
3. Changes: Typo fixed: "Vesion" should be "Version".
4. Changes: Typo fixed: 2005-04-10 should be 2005-04-20.
2005-04-20 version 1.12
Documentation fixes.
1. Update the copyright year on the updated files.
2. Changes: Version number added.
2005-04-19 version 1.11
1. Gettext.pm: Using undef as encoding or key_encoding.
Methods encoding() and key_encoding() now check the
number of arguments instead of the argument value.
When undef, the unencoded UTF-8 text is returned.
2. Gettext.pm: Prototype of subroutine read_mo() is declared
first now.
3. Gettext.pm: Deprecated subroutine readmo() is removed.
4. Functions.pm: Prototypes of the following subroutines are
declared first now: bindtextdomain(), textdomain(),
get_handle(), maketext(), __(), N_(), dmaketext(),
reload_text(), encoding(), key_encoding(),
encode_failure(), die_for_lookup_failures(),
_declare_class(), _catclass(), _init_textdomain(),
_get_langs(), _get_handle(), _reset(), _new_rid(), _k()
and _lang().
5. 07-f-basic.t: Locale environment variables are cleared
before running tests, to avoid confusion from the user's
current locale.
6. 10-f-switching.t: Locale environment variables are
cleared before running tests, to avoid confusion from the
user's current locale.
7. Gettext.pm: Default KEY_ENCODING to US-ASCII. It is
always decoded to UTF-8 first when looked up in the
_AUTO lexicon, to ensure that the resulted text is always
in UTF-8.
8. Gettext.pm: Avoid caching undefined MO file encoding when
MO file is not available.
9. Gettext.pm: New attribute "MO_ENCODING" is added to
to record the encoding of the MO file.
10. Functions.pm: Default KEY_ENCODING to US-ASCII. It is
always decoded to UTF-8 first when looked up in the
_AUTO lexicon, to ensure that the resulted text is always
in UTF-8.
11. 04-encodings.t: Tests 28-33 added to test returning
unencoded UTF-8 text.
12. 09-f-encodings.t: Tests 28-33 added to test returning
unencoded UTF-8 text.
13. Gettext.pm: Warning is added to the use of
key_encoding().
14. Functions.pm: Warning is added to the use of
key_encoding().
2005-04-05
1. Gettext.pm: Subroutine attribute "method" is taged on the
following methods: encoding(), key_encoding(), new(),
subclass_init(), bindtextdomain(), textdomain(),
maketext(), reload_text(), die_for_lookup_failures()
and encode_failure().
2003-05-12
1. Gettext.pm: key_encoding applied to "not found" keys
only, so that it can be looked up in their original
encoding in the %Lexicon.
2003-05-09 version 1.10
1. Functions.pm: _get_handle: Fallback language handler
changed from the failed language handler $FLH to
the empty lexicon $_EMPTY. This has no real effect,
since lookup failures are always handled by $FLH, but
not the current language handler $LH. But this matches
the reality.
2003-05-08
1. Changes: typo (version 1.07 should be version 1.09)
2003-05-07
1. Changes: An excess blank line is removed.
2003-05-07 version 1.09
Test suite fix.
1. 02-big-endian.t: Fix on $MSGFMT so that it works on
more platforms.
2003-05-07 version 1.08
Fixes mistakes from version 1.07
1. Return the interpreter line to the maketext script. It
was a misunderstanding at 1.07
2. Content-Transfer-Encoding is fixed from 8bit to 7bit
in the English MO files.
3. t/test_native.po: Added.
4. 02-big-endian.t: Test suite for native-built MO files
are added. Please report your failures.
2003-05-05 version 1.07
Bug fixes.
1. Fix to the interpreter line in the maketext script so
that it can be replaced with correct interpreter at
make time.
2. 11-command-line.t: script location changed from
lib/maketext to blib/script/maketext.
3. C locale is added to the test suite.
4. 11-command-line.t: Locales en, zh_TW, zh_CN are remove
from the test suite, to avoid perl warnings from
systems that did not install these locales.
5. 11-command-line.t: $ENV{"LANGUAGE"} controls added.
2003-05-04 version 1.06
1. Language function override is not available for
L::M::G::F and the maketext script. I almost forgot
this problem. Notice is added to the documentation.
Suggestions are welcome.
2003-05-03 version 1.06
Introducing "maketext", a command line interface to
Locale::Maketext::Gettext (and Locale::Maketext).
1. The maketext script is added, a command line interface
to Locale::Maketext::Gettext (and Locale::Maketext).
2003-05-03 version 1.05
Test suites fixes. This fixes the failures reported from
CPAN testers. Failures reported from CPAN testers are
caused by Archive-Tar called by CPANPLUS, but not by
Locale::Maketext::Gettext itself. Bug report concerning
this problem is already submitted to Archive-Tar.
1. Test suite temporarily files test_dyn.mo are removed
from MANIFEST.
2. File::Copy is used instead of link in the test suites
to enable tests on platforms that does not support
hard links (Win32, for example).
3. Temporarily files are cleaned up at the end of
05-switching.t and 10-f-switching.t.
Upgrade is not required if you are using version 1.04.
2003-05-02 version 1.04
1. Support for MO files without encoding specified was
added. I don't know there are MO files born without
its encoding. ^^;
2. L::M::G::F: textdomain now works for default system
locale directories, too. For domains that are not
binded with bindtextdomain, it searches the system
locale directories to find the domain MO files.
Unlike textdomain in L::M::G, it remembers the search
result in order to build the index key.
3. Tests for default system locale directory search are
added. It may be skipped, though.
2003-05-02 version 1.03
1. L::M::G: A algorism bug about key_encoding with
auto-lexicon was fixed.
2. L::M::G::F: I decide to give up mod_perl safety for
encoding, key_encoding, encode_failure and
die_for_lookup_failures. POSIX::setlocale didn't
solve this problem, either. Use L::M::G if you need
that. Suggestions and solutions are welcome.
3. L::M::G: FLH (Failure language handler) is added to
help switching the die_for_lookup_failures setting.
Maketext can be slightly faster.
2003-05-01
Labor's Day!
A Major rewrite to Locale::Maketext::Gettext::Functions.
1. Packages are declared by a random class ID, instead
of by its text domain previously, in order for a text
domain to be redeclared with different sets of
languages infinitely. This solves the problem where
languages cannot to be removed at run-time. You can
add/remove languages/MO files at run time now. You
can also bindtextdomain() to another directory after
setting textdomain(). This is not possible to the
object interface of Locale::Maketext::Gettext (and
(Locale::Maketext).
2. fork_and_test is removed from the test suite. It
does not seem to be required by the current random
class ID system anymore.
3. The used of ($t1..$t6) is replaced by ($_[0]..$_[5])
in to 05-switching.t.
4. Garbage collection is added. Language handles
associated with abandoned localization classes are
dropped in time, in order to reduce memory used.
2003-04-30
1. L::M::G::F: I forgot to document dmaketext, too. ^^;
But, no, I will not put a third release today!
2. L::M::G::F: Fixes to documentation typos.
3. maketext() and __() are exchanged. maketext() is a
wrapper to __() now. The speed of __() should be
slightly faster.
2003-04-30 version 1.02
Documentation fixes.
1. L::M::G::F: Documentation fixes. get_handle was
not included in the documentation. ^^; I forgot to
put it in.
2. README was updated. L::M::G::F is included in the
README. Also, the installation procedure is updated,
too. I forgot to update it last time.
2003-04-30 version 1.01
Improvements to Locale::Maketext::Gettext::Functions.
1. L::M::G::F: Documentation fixes. Lots of errors sit
there in the previous documentation. It's impossible
to work if you follow the previous documentation. ^^;
Ha ha...
2. L::M::G: Map the language i-default to the locale C.
3. L::M::G::F: Map the locale C to the language i-default.
4. fork_and_test is added to the test suite to test without
polluting the package space. It is slow, though. ^^;
5. L::M::G::F: Several test suites are added.
6. L::M::G::F: Error tolerance is largely improved.
7. L::M::G: New method subclass_init is added. Object
initialization is moved from the new method to the
subclass_init method, so that another subclass may
inherit it further.
8. L::M::G::F: The "experimental" warning is removed.
Large amount of errors can be handled gracefully now.
2003-04-28
1. TestPkg/L10N.pm is renamed as T_L10N.pm. It is neater.
a TestPkg/ subdirectory is not necessary.
2. Change log is fixed. I forgot to put the version number
0.07.
3. Also, the version number should become 1.00, for
the joining of Locale::Maketext::Gettext::Functions. ^_*'
2003-04-28 version 0.07 (1.00)
Introducing Locale::Maketext::Gettext::Functions, a
functional interface to Locale::Maketext::Gettext.
1. The first Locale::Maketext::Gettext::Functions is out.
It works! ^_*' But it is still experimental. It cannot
deal with real world problems still. ^^;
2. Documentation was fixed so that it is neater.
2003-04-27
1. The name of the _AUTO lexicon package is shorten to
Locale::Maketext::Gettext::_AUTO.
2. Documentation rearrange.
2003-04-27 version 0.06
Improvements.
1. textdomain works for default system locale directories
now. For domains that are not binded with
bindtextdomain, it searches the system locale directories
to find the MO file. No test suite is available for this
functionality. I cannot predict what MO files are
available in your system locale directories. ^^; Please
report bugs if it does not work.
2. Slave package Locale::Maketext::Gettext::_AUTO::L10N is
added, in order to process the _AUTO Lexicon seperately.
This saves resources when user change the
die_for_lookup_failures setting. Changing
die_for_lookup_failures setting won't trigger copying and
replacing your whole %Lexicon anymore. As an effect, the
cached compiled result of the _AUTO lexicon is preserved
and the compilation overhead from Locale::Maketext is
greatly reduced.
3. read_mo is added to retire the readmo. Use of readmo is
deprecated. This idea is inspired by the implementation
of readmo as "parse_mo" in Locale::Maketext::Lexicon by
Autrijus. There is far too much meta infomation to be
returned other than its encoding. It's not possible to
change the API for each new requirement. To enable
sharing of the algorithm used in read_mo with whoever
need it, it's necessary to limit its function to read
and return the raw data, leaving all the other jobs to
its caller.
4. For the same reason, caching control is removed from
read_mo, too. read_mo read the MO file and return the
%Lexicon only. It really reads. Nothing more. ^_*'
2003-04-27 version 0.05
Bug and documentation fixes.
1. New method key_encoding was added. The _AUTO lexicon is
itself not multibyte-safe. You can specify the encoding
of your keys if you are using non-ASCII keys. This is
not a solution, but a workaround.
2. New method encode_failure was added. The default action
when encode fails changed from FB_CROAK to FB_DEFAULT.
I have changed my mind. GNU gettext never fails.
3. The paragraph about Locale::Maketext::Lexicon at the
NOTES section in the documentation is updated. The
paragraph about msgunfmt is removed.
4. The README file was updated.
5. The strange line "exists ${"$class\::Lexicon"}{$key};" is
removed. That problem seems to be solved. It is not
required anymore.
2003-04-25 version 0.04
Documentation fixes. Upgrade is not required if you are
using version 0.03.
2003-04-25 version 0.03
Bug fixes.
1. Fixed clashing of the die_for_lookup_failures setting
from multiple instances.
2. Change log is rewritten, to my own format.
3. A new racing test suite is added. The old racing test
suite was renamed as t-switching.
4. Redundant initialization of $LH->{"LOCALEDIRS"} in
bindtextdomain is removed.
5. An old line at die_for_lookup_failures which initialize
a wrong $LH->{"LOCALE"} is removed.
6. Removed 2 incorrect notice in the documentation. There
will not be infinite loops for bindtextdomain and
textdomain, whatever value it takes. Apparently I had
made a mistake. ^^;
7. Several typos in the comments are fixed.
8. Sanity checks to the MO file is moved into readmo().
Cache now has a higher precedence than the sanity checks,
which conforms with the global design.
9. More documentation was added to the SYNOPSIS.
10. Sanity checks for whether a method is invoked as a static
method are added. Maketext use static variables. We
should not clash them.
11. As a result of the above, the maketext method is no more
static. It is an instance method, meaning that
MyPkg::L10N::en->maketext does not work anymore.
12. Instance lexicon is initialized in the new method. I
almost forgot it. Thanks to the test suite. :p
2003-04-25 version 0.02
Class/object design fixes.
1. I did tell the difference from class variables to
instance variables. Forgive me, I had no experience
with object-oriented programming at all, not even OO for
perl. :p Just a few Java books. Anyway, the problem
with clashing class variables is fixed. Most class
variables are moved into instance variables.
2. Solved the default output encoding problem by using the
encoding of the MO file as the default encoding.
3. reload_text method is added to purge the MO file cache,
so that applications do not need to be restarted when
their MO file updates.
4. MO files of different byte orders are supported now.
Big-endian MO files support is added.
5. die_for_lookup_failures method was added. The default
behavior changed to "never fails", as GNU gettext does.
6. A test suite is added.
2003-04-24 version 0.01