582 lines
28 KiB
Plaintext
582 lines
28 KiB
Plaintext
|
Locale-Maketext-Gettext change log
|
||
|
|
||
|
2009-06-27 version 1.28
|
||
|
Build script fix. No code changes.
|
||
|
1. Build.PL: Removed the build_requires, as they are not
|
||
|
required by the build process, but by the test process.
|
||
|
The build process should not be blocked by them.
|
||
|
Suggested by Ryan Niebur <ryanryan52@gmail.com> and
|
||
|
Adam Kennedy <adamkennedybackup@gmail.com>
|
||
|
(and Audrey Tang).
|
||
|
|
||
|
2009-04-28 version 1.27
|
||
|
Test suite fix. No code changes.
|
||
|
1. t/03-errors.t: Fixed the find_system_mo() subroutine to
|
||
|
exclude MO files with special characters that might be
|
||
|
considered as code by Locale::Maketext.
|
||
|
2. t/02-big-endian.t: Fixed the native-built MO file test
|
||
|
and moved the $POfile and $MOfile file name assignment
|
||
|
to the beginning, to ensure that their values are
|
||
|
assigned even if GNU gettext is not installed and
|
||
|
the test is skipped on the target test system.
|
||
|
|
||
|
2008-11-11
|
||
|
1. INSTALL: Fixed the grammer, changed "none" to "None.".
|
||
|
|
||
|
2008-04-22 version 1.26
|
||
|
Documentation fix. No code changes.
|
||
|
1. bin/maketext: Moved to script/maketext.
|
||
|
|
||
|
2008-04-21
|
||
|
1. TODO: Added.
|
||
|
2. Artistic and COPYING: Added.
|
||
|
3. INSTALL: Added. Installation instructions moved from README
|
||
|
to INSTALL.
|
||
|
|
||
|
2008-04-11 version 1.25
|
||
|
Test suite fix. No code changes.
|
||
|
1. t/03-errors.t and t/08-f-errors.t: Added find_system_mo(), to
|
||
|
select a system MO file that we can use.
|
||
|
|
||
|
2008-02-26 version 1.24
|
||
|
Test and build suite fix. No code changes.
|
||
|
1. t/02-big-endian.t: Added creating PO at run time, in order
|
||
|
to work with GNU gettext < 0.15 whose msgfmt does not support
|
||
|
msgctxt yet. This should work with both older and newer
|
||
|
GNU gettext.
|
||
|
2. t/test_native.po: Removed. It is now generated by
|
||
|
t/02-big-endian.t at run time.
|
||
|
3. Makefile.PL: Added "clean" to clean-up possible existing
|
||
|
test_native.po and test_native.mo.
|
||
|
4. Build.PL: Added "add_to_cleanup" to clean-up possible existing
|
||
|
test_native.po and test_native.mo.
|
||
|
5. Build.PL: Added "build_requires".
|
||
|
6. t/08-f-errors.t: Fixed so that it finds the newest MO file
|
||
|
found on the system, in order to avoid lagacy MO files.
|
||
|
(gettext 0.10 in 1995?)
|
||
|
7. t/08-f-errors.t: Fixed test 38 so that it skips in the eval()
|
||
|
block, and dumps the error on failure.
|
||
|
8. Changes: Added several missing change notes in version 1.23.
|
||
|
|
||
|
2008-02-19 version 1.23
|
||
|
Added support for GNU gettext pgettext() as pmaketext(), to
|
||
|
translate text messages in a particular context.
|
||
|
1. Gettext.pm: Added the pmaketext() method as an equivalent of
|
||
|
the pgettext() function in GNU gettext, to look up the text
|
||
|
message in a particular context, according to the suggestion
|
||
|
by Chris Travers.
|
||
|
2. Functions.pm: Added the pmaketext() function as an equivalent
|
||
|
of the pgettext() function in GNU gettext, and the dpmaketext()
|
||
|
function as an equivalent of the dpgettext() function in GNU
|
||
|
gettext, to look up the text message in a particular context,
|
||
|
according to the suggestion by Chris Travers.
|
||
|
3. Gettext.pm and Functions.pm: Fixed documentation and comments.
|
||
|
Changed "perl" as "Perl". Removed contractions and replaced
|
||
|
them with full sayings, in order to work with syntax
|
||
|
highlighting. Removed emotional marks for the same reason.
|
||
|
4. Makefile.PL: Added conditional checks for whether LICENSE is
|
||
|
available in ExtUtils::MakeMaker.
|
||
|
5. Gettext.pm and Functions.pm: Added xgettext keyword notation
|
||
|
for dmaketext(), pmaketext() and dpmaketext().
|
||
|
6. t/locale/*/LC_MESSAGES/*.mo, t/test_native.po: Added messages
|
||
|
with contexts for pmaketext() testings.
|
||
|
7. t/*.t: Added tests for pmaketext() and dpmaketext().
|
||
|
8. Gettext.pm: Fixed the failure_handler_auto() method to remove
|
||
|
the message context from the message key before sending to
|
||
|
the failure lexicon. The failure_handler_auto() method
|
||
|
differs from its Locale::Maketext parent from now on.
|
||
|
|
||
|
2007-03-28 version 1.22
|
||
|
1. t/*-f-*.t: Moved Locale::Maketext::Gettext::Functions::_reset()
|
||
|
from the end of each set of tests, to the front of each set of
|
||
|
tests. If at the end of the test set, it would not be run if
|
||
|
the eval{} block fails.
|
||
|
2. Gettext.pm, Functions.pm and maketext: Updated the URL of the
|
||
|
GNU gettext manual in the their POD documents.
|
||
|
3. Functions.pm: The example in its POD document is updated to show
|
||
|
more of the nature of Locale::Maketext.
|
||
|
|
||
|
2007-03-28 version 1.21
|
||
|
1. 04-encodings.t and 09-f-encodings.t: Inserted test#26 to test the
|
||
|
$@ error message. It is an encode() error that is not affected
|
||
|
by the Locale::Maketext $@ change with "local $@".
|
||
|
2. 06-racing.t: Added $LOOKUP_FAILURE as look-up failure flag. Added
|
||
|
a simple subroutine to handle lookup failure. Test that to see if
|
||
|
we are really die from lookup failure.
|
||
|
3. Gettext.pm, Functions.pm and 09-f-encodings.t: Renamed
|
||
|
ENCODING_SET to USERSET_ENCODING. USERSET_ENCODING is set to
|
||
|
the encoding user specified. Future test should use "exists",
|
||
|
but not "defined", as user may supply undef on this.
|
||
|
4. Gettext.pm: Renaming _lmg_failure_handler_auto() to
|
||
|
failure_handler_auto(). It should be OK to override it, and this
|
||
|
help subclasses to employ our version.
|
||
|
5. Functions.pm: Note why we don't use $@ but @ as the prototypes of
|
||
|
__(), N_(), maketext().
|
||
|
6. Functions.pm: Removed unused global variable $ENCODING.
|
||
|
7. Functions.pm: Renamed %VARS to %PARAMS. Changed $KEY_ENCODING
|
||
|
to $PARAMS{"KEY_ENCODING"}. Changed $DIE_FOR_LOOKUP_FAILURES to
|
||
|
$PARAMS{"DIE_FOR_LOOKUP_FAILURES"}. Changed $ENCODE_FAILURE to
|
||
|
$PARAMS{"ENCODE_FAILURE"}.
|
||
|
8. Gettext.pm and Functions.pm: Changed the returning line of
|
||
|
encoding(), key_encoding() and die_for_lookup_failures() to one
|
||
|
conditional line. This is more neat.
|
||
|
9. Functions.pm: Updated _reset(), resetting $PARAMS{"KEY_ENCODING"} to
|
||
|
"US-ASCII" instead of undef, add resetting
|
||
|
$PARAMS{"DIE_FOR_LOOKUP_FAILURES"} to 0;
|
||
|
10. Gettext.pm: Updated failure_handler_auto(), check if this method
|
||
|
is revoked statically.
|
||
|
11. t/*-f-*.t: Added Locale::Maketext::Gettext::Functions::_reset() to
|
||
|
the end of each set of tests, to reset the environment.
|
||
|
12. Gettext.pm: Added fail_with() as a wrapper to record the user set
|
||
|
lookup failure handler, so that we can safely switch with
|
||
|
die_for_lookup_failures(). A new attribute {"USERSET_FAIL"} is
|
||
|
added to record it. All references to fail_with() in other places
|
||
|
of the code are changed to SUPER::fail_with(). fail_with() is
|
||
|
only for the user since it will update the registered user
|
||
|
preference.
|
||
|
13. Gettext.pm and Functions.pm: In maketext(), check if the key is
|
||
|
Perl utf8 text with Encode::is_utf8() first before decode() the
|
||
|
key, so that user can safely run a multibyte-awared script.
|
||
|
14. Gettext.pm and Functions.pm: In maketext(), check if the key is
|
||
|
Perl utf8 text with Encode::is_utf8() first before encode(), for
|
||
|
empty/invalid lexicon with key_encoding() set but no output
|
||
|
encoding, so that we can have a real pass through. In the case
|
||
|
of an empty/invalid lexicon, the user should be responsible for
|
||
|
the output encoding. Added $keyd as the decoded() $key, so
|
||
|
that we can check the original $key later.
|
||
|
15. Functions.pm: In __(), removed unused variables $encoding,
|
||
|
$lh_encoding and $key_encoding.
|
||
|
16. maketext: In parse_args(), check the return value of the eval { }
|
||
|
block instead of $@, and remove the extra new line when outputing
|
||
|
the error in $@.
|
||
|
17. maketext: Added an example at the DESCRIPTION chapter of the
|
||
|
POD documentation.
|
||
|
18. Gettext.pm: Added a note on the relation of fail_with()
|
||
|
die_for_lookup_failures() at the description of the
|
||
|
die_for_lookup_failures() method at the METHODS section
|
||
|
of the POD documentation.
|
||
|
19. Makefile.PL: Added LICENSE attribute as "perl".
|
||
|
|
||
|
2007-03-28 version 1.20
|
||
|
Rewrite to follow the error handler design of Locale::Maketext, i.e.
|
||
|
the fail_with() method, instead of our own.
|
||
|
Clean up encoding mess. You may need to check if your application
|
||
|
was depending on the previous wrong, hard-to-handle behavior on look
|
||
|
up failurs. The new behavior should be easier to deal with.
|
||
|
1. Gettext.pm: In the textdomain() function, make sure {"ENCODING"}
|
||
|
is not set to undef when MO file does not exists.
|
||
|
2. Functions.pm: In the encoding() function, removed a piece of long
|
||
|
gone, commented code.
|
||
|
3. Gettext.pm and Functions.pm: In the encoding(), textdomain() and
|
||
|
the _get_handle() function, add a flag {"ENCODING_SET"} to tag if
|
||
|
we should respect the encoding() setting of the user. If there is
|
||
|
no user preferred encoding(), when obtaining language handle with
|
||
|
_get_handle() or textdomain(), encoding() will change to the
|
||
|
output encoding() to that of the corresponding MO file.
|
||
|
4. 09-f-encoding.t: Added "delete $VARS{"ENCODING_SET"}" in the end
|
||
|
of each test to clean up the environment.
|
||
|
5. Gettext.pm: Update the version number to 1.20.
|
||
|
6. Functions.pm: Update the version number to 0.10.
|
||
|
7. t/99-pod.t: Added.
|
||
|
8. Makefile.PL: Stylish clean-up and update. Added "SIGN".
|
||
|
9. Build.PL: Added.
|
||
|
|
||
|
2007-03-27
|
||
|
1. Gettext.pm: Added _lmg_failure_handler_auto(), as a replacement
|
||
|
of Locale::Maketext's failure_handler_auto(). Locale::Maketext's
|
||
|
failure_handler_auto() until version 1.10 has problem with
|
||
|
message keys without any brackets. See bug#33938 on rt.cpan.org.
|
||
|
It's content was simply copied from failure_handler_auto().
|
||
|
2. Gettext.pm: Removed classes Locale::Maketext::Gettext::_AUTO,
|
||
|
Locale::Maketext::Gettext::_AUTO::i_default,
|
||
|
Locale::Maketext::Gettext::_EMPTY and
|
||
|
Locale::Maketext::Gettext::_EMPTY::i_default. We are using
|
||
|
Locale::Maketext's fail_with() method to deal with look up errors
|
||
|
rather than making dummy language handles and deal with them by
|
||
|
ourselves. This simplify things, making the code more compatible
|
||
|
with Locale::Maketext. As a result, Locale::Maketext's
|
||
|
fail_with() method and {"fail"} attribute are working now.
|
||
|
3. Gettext.pm: In the maketext() method, removed the code that deal
|
||
|
with look up errors by ourselves. Now we handle this with the
|
||
|
{"fail"} attribute and the _lmg_failure_handler_auto() method,
|
||
|
following the original Locale::Maketext's design.
|
||
|
4. Gettext.pm: In the textdomain() method, added clear_isa_scan() in
|
||
|
the end to clear the ISA handler look up cache table. This way we
|
||
|
are not affected by the cache of _lmg_failure_handler_auto()
|
||
|
when switching domain with textdomain().
|
||
|
5. Gettext.pm and Functions.pm: In encoding() and key_encoding(),
|
||
|
feeding undef delete the property. This is to unify the practice
|
||
|
of "exists" and "defined" tests. All tests should use "exists"
|
||
|
instead of "defined" now.
|
||
|
6. Functions.pm: Added classes
|
||
|
Locale::Maketext::Gettext::Functions::_EMPTY and
|
||
|
Locale::Maketext::Gettext::Functions::_EMPTY::i_default as a
|
||
|
dummy locale.
|
||
|
7. Functions.pm: Add _get_empty_handle() to return the dummy locale,
|
||
|
with die_for_lookup_failures() properly set. This replaces the
|
||
|
$_EMPTY setting in the beginning of the file.
|
||
|
8. Functions.pm: In the _get_handle() method added unset the
|
||
|
key_encoding() before returning the language handle.
|
||
|
key_encoding() is handled by Locale::Maketext::Gettext::Functions.
|
||
|
Locale::Maketext::Gettext does not need to handle key_encoding().
|
||
|
This is to follow the nature of functional API that
|
||
|
key_encoding() should apply to all the following session in
|
||
|
functional API.
|
||
|
9. Gettext.pm and Functions.pm: In maketext(), stop playing magic
|
||
|
with encoding() and key_encoding() that automatically encode()
|
||
|
text back to key_encoding() when lookup fails. The result is
|
||
|
too unpredictable. The application should specify which encoding
|
||
|
they want themselves.
|
||
|
|
||
|
2007-03-22 version 1.18
|
||
|
Fixes for Perl 5.9. Locale::Maketext in Perl 5.9 does not set $@
|
||
|
as its error message. Tests replying on $@ may fail for this. But
|
||
|
I should check the return value of the eval{} block rather than $@
|
||
|
anyway.
|
||
|
1. t/*.t: Adition of $r as the return value of the eval{} blocks.
|
||
|
Addition of "return 1;" to the eval{} blocks to specify the return
|
||
|
values. Changing tests "ok($@, "");" to "ok($r, 1);". Changing
|
||
|
tests "ok($@, qr/maketext doesn't know how to say/);" and
|
||
|
"ok($@, qr/does not map to/);" to "ok($r, undef)". This is to
|
||
|
be refined. It is necessary to test if it fails by our expected
|
||
|
reason rather than only knowing that it fails.
|
||
|
2. Update the version number of Locale::Maketext::Gettext to match
|
||
|
the distribution version.
|
||
|
|
||
|
2005-04-27 version 1.17
|
||
|
1. Changes: Typo fixed.
|
||
|
|
||
|
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.
|
||
|
|
||
|
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
|