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
 |