Locale-Maketext-Gettext change log
2005-04-26 version 1.16
Test suite fixes.
1. 02-big-endian.t: In test 7, 8, $MOfile and $POfile are quoted
when sending to the shell (backticks), to be safe to spaces and
other special shell characters in their paths.
2. 11-command-line.t: In all tests $maketext is quoted when sending
to the shell (backticks), to be safe to spaces and other special
shell characters in its path. This should solve the CPAN tester
failures 200029, 200332 and 200331. Thanks to Max Maischein
<corion@corion.net> for testing and reporting this.
3. Changes: File edited to widen line limit from 60 columns to 79
columns, to ease the reading.
4. THANKS: Updated.
corion-cpanplus[at]corion.net
2005-04-26 version 1.15
1. SIGNATURE: Included Modules::Signature gpg signature file added.
2. 00-signature.t: Added.
2005-04-21 version 1.14
1. maketext: Prototypes of the following subroutines are
declared first now: main() and parse_args().
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