--- /dev/null
+Babel Changelog
+===============
+
+Version 1.0
+-----------
+
+(codename to be decided, release date to be announced)
+
+- support python 2.6, 2.7, 3.3+ and pypy - drop all other versions
+- use tox for testing on different pythons
+- Added support for the locale plural rules defined by the CLDR.
+- Added `format_timedelta` function to support localized formatting of
+ relative times with strings such as "2 days" or "1 month" (ticket #126).
+- Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
+- Fixed the case where messages containing square brackets would break with
+ an unpack error.
+- updated to CLDR 23
+- Make the CLDR import script work with Python 2.7.
+- Fix various typos.
+- Sort output of list-locales.
+- Make the POT-Creation-Date of the catalog being updated equal to
+ POT-Creation-Date of the template used to update (ticket #148).
+- Use a more explicit error message if no option or argument (command) is
+ passed to pybabel (ticket #81).
+- Keep the PO-Revision-Date if it is not the default value (ticket #148).
+- Make --no-wrap work by reworking --width's default and mimic xgettext's
+ behaviour of always wrapping comments (ticket #145).
+- Add --project and --version options for commandline (ticket #173).
+- Add a __ne__() method to the Local class.
+- Explicitly sort instead of using sorted() and don't assume ordering
+ (Jython compatibility).
+- Removed ValueError raising for string formatting message checkers if the
+ string does not contain any string formattings (ticket #150).
+- Fix Serbian plural forms (ticket #213).
+- Small speed improvement in format_date() (ticket #216).
+- Fix so frontend.CommandLineInterface.run does not accumulate logging
+ handlers (#227, reported with initial patch by dfraser)
+- Fix exception if environment contains an invalid locale setting (#200)
+- use cPickle instead of pickle for better performance (#225)
+- Only use bankers round algorithm as a tie breaker if there are two nearest
+ numbers, round as usual if there is only one nearest number (#267, patch by
+ Martin)
+- Allow disabling cache behaviour in LazyProxy (#208, initial patch from Pedro
+ Algarvio)
+- Support for context-aware methods during message extraction (#229, patch
+ from David Rios)
+- "init" and "update" commands support "--no-wrap" option (#289)
+- fix formatting of fraction in format_decimal() if the input value is a float
+ with more than 7 significant digits (#183)
+- fix format_date() with datetime parameter (#282, patch from Xavier Morel)
+- fix format_decimal() with small Decimal values (#214, patch from George Lund)
+- fix handling of messages containing '\\n' (#198)
+- handle irregular multi-line msgstr (no "" as first line) gracefully (#171)
+- parse_decimal() now returns Decimals not floats, API change (#178)
+- no warnings when running setup.py without installed setuptools (#262)
+- modified Locale.__eq__ method so Locales are only equal if all of their
+ attributes (language, territory, script, variant) are equal
+- resort to hard-coded message extractors/checkers if pkg_resources is
+ installed but no egg-info was found (#230)
+- format_time() and format_datetime() now accept also floats (#242)
+- add babel.support.NullTranslations class similar to gettext.NullTranslations
+ but with all of Babel's new *gettext methods (#277)
+- "init" and "update" commands support "--width" option (#284)
+- fix 'input_dirs' option for setuptools integration (#232, initial patch by
+ Étienne Bersac)
+- ensure .mo file header contains the same information as the source .po file
+ (#199)
+- added support for get_language_name() on the locale objects.
+- added support for get_territory_name() on the locale objects.
+- added support for get_script_name() on the locale objects.
+- added pluralization support for currency names and added a '¤¤¤'
+ pattern for currencies that includes the full name.
+- depend on pytz now and wrap it nicer. This gives us improved support
+ for things like timezone transitions and an overall nicer API.
+- Added support for explicit charset to PO file reading.
+- Added experimental Python 3 support.
+- Added better support for returning timezone names.
+- Don't throw away a Catalog's obsolete messages when updating it.
+- Added basic likelySubtag resolving when doing locale parsing and no
+ match can be found.
+
+
+Version 0.9.6
+-------------
+
+(released on March 17th 2011)
+
+- Backport r493-494: documentation typo fixes.
+- Make the CLDR import script work with Python 2.7.
+- Fix various typos.
+- Fixed Python 2.3 compatibility (ticket #146, #233).
+- Sort output of list-locales.
+- Make the POT-Creation-Date of the catalog being updated equal to
+ POT-Creation-Date of the template used to update (ticket #148).
+- Use a more explicit error message if no option or argument (command) is
+ passed to pybabel (ticket #81).
+- Keep the PO-Revision-Date if it is not the default value (ticket #148).
+- Make --no-wrap work by reworking --width's default and mimic xgettext's
+ behaviour of always wrapping comments (ticket #145).
+- Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
+- Add --project and --version options for commandline (ticket #173).
+- Add a __ne__() method to the Local class.
+- Explicitly sort instead of using sorted() and don't assume ordering
+ (Python 2.3 and Jython compatibility).
+- Removed ValueError raising for string formatting message checkers if the
+ string does not contain any string formattings (ticket #150).
+- Fix Serbian plural forms (ticket #213).
+- Small speed improvement in format_date() (ticket #216).
+- Fix number formatting for locales where CLDR specifies alt or draft
+ items (ticket #217)
+- Fix bad check in format_time (ticket #257, reported with patch and tests by
+ jomae)
+- Fix so frontend.CommandLineInterface.run does not accumulate logging
+ handlers (#227, reported with initial patch by dfraser)
+- Fix exception if environment contains an invalid locale setting (#200)
+
+
+Version 0.9.5
+-------------
+
+(relased on April 6th 2010)
+
+- Fixed the case where messages containing square brackets would break with
+ an unpack error.
+- Backport of r467: Fuzzy matching regarding plurals should *NOT* be checked
+ against len(message.id) because this is always 2, instead, it's should be
+ checked against catalog.num_plurals (ticket #212).
+
+
+Version 0.9.4
+-------------
+
+(released on August 25th 2008)
+
+- Currency symbol definitions that is defined with choice patterns in the
+ CLDR data are no longer imported, so the symbol code will be used instead.
+- Fixed quarter support in date formatting.
+- Fixed a serious memory leak that was introduces by the support for CLDR
+ aliases in 0.9.3 (ticket #128).
+- Locale modifiers such as "@euro" are now stripped from locale identifiers
+ when parsing (ticket #136).
+- The system locales "C" and "POSIX" are now treated as aliases for
+ "en_US_POSIX", for which the CLDR provides the appropriate data. Thanks to
+ Manlio Perillo for the suggestion.
+- Fixed JavaScript extraction for regular expression literals (ticket #138)
+ and concatenated strings.
+- The `Translation` class in `babel.support` can now manage catalogs with
+ different message domains, and exposes the family of `d*gettext` functions
+ (ticket #137).
+
+
+Version 0.9.3
+-------------
+
+(released on July 9th 2008)
+
+- Fixed invalid message extraction methods causing an UnboundLocalError.
+- Extraction method specification can now use a dot instead of the colon to
+ separate module and function name (ticket #105).
+- Fixed message catalog compilation for locales with more than two plural
+ forms (ticket #95).
+- Fixed compilation of message catalogs for locales with more than two plural
+ forms where the translations were empty (ticket #97).
+- The stripping of the comment tags in comments is optional now and
+ is done for each line in a comment.
+- Added a JavaScript message extractor.
+- Updated to CLDR 1.6.
+- Fixed timezone calculations when formatting datetime and time values.
+- Added a `get_plural` function into the plurals module that returns the
+ correct plural forms for a locale as tuple.
+- Added support for alias definitions in the CLDR data files, meaning that
+ the chance for items missing in certain locales should be greatly reduced
+ (ticket #68).
+
+
+Version 0.9.2
+-------------
+
+(released on February 4th 2008)
+
+- Fixed catalogs' charset values not being recognized (ticket #66).
+- Numerous improvements to the default plural forms.
+- Fixed fuzzy matching when updating message catalogs (ticket #82).
+- Fixed bug in catalog updating, that in some cases pulled in translations
+ from different catalogs based on the same template.
+- Location lines in PO files do no longer get wrapped at hyphens in file
+ names (ticket #79).
+- Fixed division by zero error in catalog compilation on empty catalogs
+ (ticket #60).
+
+
+Version 0.9.1
+-------------
+
+(released on September 7th 2007)
+
+- Fixed catalog updating when a message is merged that was previously simple
+ but now has a plural form, for example by moving from `gettext` to
+ `ngettext`, or vice versa.
+- Fixed time formatting for 12 am and 12 pm.
+- Fixed output encoding of the `pybabel --list-locales` command.
+- MO files are now written in binary mode on windows (ticket #61).
+
+
+Version 0.9
+-----------
+
+(released on August 20th 2007)
+
+- The `new_catalog` distutils command has been renamed to `init_catalog` for
+ consistency with the command-line frontend.
+- Added compilation of message catalogs to MO files (ticket #21).
+- Added updating of message catalogs from POT files (ticket #22).
+- Support for significant digits in number formatting.
+- Apply proper "banker's rounding" in number formatting in a cross-platform
+ manner.
+- The number formatting functions now also work with numbers represented by
+ Python `Decimal` objects (ticket #53).
+- Added extensible infrastructure for validating translation catalogs.
+- Fixed the extractor not filtering out messages that didn't validate against
+ the keyword's specification (ticket #39).
+- Fixed the extractor raising an exception when encountering an empty string
+ msgid. It now emits a warning to stderr.
+- Numerous Python message extractor fixes: it now handles nested function
+ calls within a gettext function call correctly, uses the correct line number
+ for multi-line function calls, and other small fixes (tickets #38 and #39).
+- Improved support for detecting Python string formatting fields in message
+ strings (ticket #57).
+- CLDR upgraded to the 1.5 release.
+- Improved timezone formatting.
+- Implemented scientific number formatting.
+- Added mechanism to lookup locales by alias, for cases where browsers insist
+ on including only the language code in the `Accept-Language` header, and
+ sometimes even the incorrect language code.
+
+
+Version 0.8.1
+-------------
+
+(released on July 2nd 2007)
+
+- `default_locale()` would fail when the value of the `LANGUAGE` environment
+ variable contained multiple language codes separated by colon, as is
+ explicitly allowed by the GNU gettext tools. As the `default_locale()`
+ function is called at the module level in some modules, this bug would
+ completely break importing these modules on systems where `LANGUAGE` is set
+ that way.
+- The character set specified in PO template files is now respected when
+ creating new catalog files based on that template. This allows the use of
+ characters outside the ASCII range in POT files (ticket #17).
+- The default ordering of messages in generated POT files, which is based on
+ the order those messages are found when walking the source tree, is no
+ longer subject to differences between platforms; directory and file names
+ are now always sorted alphabetically.
+- The Python message extractor now respects the special encoding comment to be
+ able to handle files containing non-ASCII characters (ticket #23).
+- Added 'N_' (gettext noop) to the extractor's default keywords.
+- Made locale string parsing more robust, and also take the script part into
+ account (ticket #27).
+- Added a function to list all locales for which locale data is available.
+- Added a command-line option to the `pybabel` command which prints out all
+ available locales (ticket #24).
+- The name of the command-line script has been changed from just `babel` to
+ `pybabel` to avoid a conflict with the OpenBabel project (ticket #34).
+
+
+Version 0.8
+-----------
+
+(released on June 20th 2007)
+
+- First public release
+++ /dev/null
-Version 1.0
-
- * support python 2.6, 2.7, 3.3+ and pypy - drop all other versions
- * use tox for testing on different pythons
- * Added support for the locale plural rules defined by the CLDR.
- * Added `format_timedelta` function to support localized formatting of
- relative times with strings such as "2 days" or "1 month" (ticket #126).
- * Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
- * Fixed the case where messages containing square brackets would break with
- an unpack error.
- * updated to CLDR 23
- * Make the CLDR import script work with Python 2.7.
- * Fix various typos.
- * Sort output of list-locales.
- * Make the POT-Creation-Date of the catalog being updated equal to
- POT-Creation-Date of the template used to update (ticket #148).
- * Use a more explicit error message if no option or argument (command) is
- passed to pybabel (ticket #81).
- * Keep the PO-Revision-Date if it is not the default value (ticket #148).
- * Make --no-wrap work by reworking --width's default and mimic xgettext's
- behaviour of always wrapping comments (ticket #145).
- * Add --project and --version options for commandline (ticket #173).
- * Add a __ne__() method to the Local class.
- * Explicitly sort instead of using sorted() and don't assume ordering
- (Jython compatibility).
- * Removed ValueError raising for string formatting message checkers if the
- string does not contain any string formattings (ticket #150).
- * Fix Serbian plural forms (ticket #213).
- * Small speed improvement in format_date() (ticket #216).
- * Fix so frontend.CommandLineInterface.run does not accumulate logging
- handlers (#227, reported with initial patch by dfraser)
- * Fix exception if environment contains an invalid locale setting (#200)
- * use cPickle instead of pickle for better performance (#225)
- * Only use bankers round algorithm as a tie breaker if there are two nearest
- numbers, round as usual if there is only one nearest number (#267, patch by
- Martin)
- * Allow disabling cache behaviour in LazyProxy (#208, initial patch from Pedro
- Algarvio)
- * Support for context-aware methods during message extraction (#229, patch
- from David Rios)
- * "init" and "update" commands support "--no-wrap" option (#289)
- * fix formatting of fraction in format_decimal() if the input value is a float
- with more than 7 significant digits (#183)
- * fix format_date() with datetime parameter (#282, patch from Xavier Morel)
- * fix format_decimal() with small Decimal values (#214, patch from George Lund)
- * fix handling of messages containing '\\n' (#198)
- * handle irregular multi-line msgstr (no "" as first line) gracefully (#171)
- * parse_decimal() now returns Decimals not floats, API change (#178)
- * no warnings when running setup.py without installed setuptools (#262)
- * modified Locale.__eq__ method so Locales are only equal if all of their
- attributes (language, territory, script, variant) are equal
- * resort to hard-coded message extractors/checkers if pkg_resources is
- installed but no egg-info was found (#230)
- * format_time() and format_datetime() now accept also floats (#242)
- * add babel.support.NullTranslations class similar to gettext.NullTranslations
- but with all of Babel's new *gettext methods (#277)
- * "init" and "update" commands support "--width" option (#284)
- * fix 'input_dirs' option for setuptools integration (#232, initial patch by
- Étienne Bersac)
- * ensure .mo file header contains the same information as the source .po file
- (#199)
- * added support for get_language_name() on the locale objects.
- * added support for get_territory_name() on the locale objects.
- * added support for get_script_name() on the locale objects.
- * added pluralization support for currency names and added a '¤¤¤'
- pattern for currencies that includes the full name.
- * depend on pytz now and wrap it nicer. This gives us improved support
- for things like timezone transitions and an overall nicer API.
- * Added support for explicit charset to PO file reading.
- * Added experimental Python 3 support.
- * Added better support for returning timezone names.
- * Don't throw away a Catalog's obsolete messages when updating it.
- * Added basic likelySubtag resolving when doing locale parsing and no
- match can be found.
-
-
-Version 0.9.6
-http://svn.edgewall.org/repos/babel/tags/0.9.6/
-(Mar 17 2011, from branches/stable/0.9.x)
-
- * Backport r493-494: documentation typo fixes.
- * Make the CLDR import script work with Python 2.7.
- * Fix various typos.
- * Fixed Python 2.3 compatibility (ticket #146, #233).
- * Sort output of list-locales.
- * Make the POT-Creation-Date of the catalog being updated equal to
- POT-Creation-Date of the template used to update (ticket #148).
- * Use a more explicit error message if no option or argument (command) is
- passed to pybabel (ticket #81).
- * Keep the PO-Revision-Date if it is not the default value (ticket #148).
- * Make --no-wrap work by reworking --width's default and mimic xgettext's
- behaviour of always wrapping comments (ticket #145).
- * Fixed negative offset handling of Catalog._set_mime_headers (ticket #165).
- * Add --project and --version options for commandline (ticket #173).
- * Add a __ne__() method to the Local class.
- * Explicitly sort instead of using sorted() and don't assume ordering
- (Python 2.3 and Jython compatibility).
- * Removed ValueError raising for string formatting message checkers if the
- string does not contain any string formattings (ticket #150).
- * Fix Serbian plural forms (ticket #213).
- * Small speed improvement in format_date() (ticket #216).
- * Fix number formatting for locales where CLDR specifies alt or draft
- items (ticket #217)
- * Fix bad check in format_time (ticket #257, reported with patch and tests by
- jomae)
- * Fix so frontend.CommandLineInterface.run does not accumulate logging
- handlers (#227, reported with initial patch by dfraser)
- * Fix exception if environment contains an invalid locale setting (#200)
-
-
-Version 0.9.5
-http://svn.edgewall.org/repos/babel/tags/0.9.5/
-(Apr 6 2010, from branches/stable/0.9.x)
-
- * Fixed the case where messages containing square brackets would break with
- an unpack error.
- * Backport of r467: Fuzzy matching regarding plurals should *NOT* be checked
- against len(message.id) because this is always 2, instead, it's should be
- checked against catalog.num_plurals (ticket #212).
-
-
-Version 0.9.4
-http://svn.edgewall.org/repos/babel/tags/0.9.4/
-(Aug 25 2008, from branches/stable/0.9.x)
-
- * Currency symbol definitions that is defined with choice patterns in the
- CLDR data are no longer imported, so the symbol code will be used instead.
- * Fixed quarter support in date formatting.
- * Fixed a serious memory leak that was introduces by the support for CLDR
- aliases in 0.9.3 (ticket #128).
- * Locale modifiers such as "@euro" are now stripped from locale identifiers
- when parsing (ticket #136).
- * The system locales "C" and "POSIX" are now treated as aliases for
- "en_US_POSIX", for which the CLDR provides the appropriate data. Thanks to
- Manlio Perillo for the suggestion.
- * Fixed JavaScript extraction for regular expression literals (ticket #138)
- and concatenated strings.
- * The `Translation` class in `babel.support` can now manage catalogs with
- different message domains, and exposes the family of `d*gettext` functions
- (ticket #137).
-
-
-Version 0.9.3
-http://svn.edgewall.org/repos/babel/tags/0.9.3/
-(Jul 9 2008, from branches/stable/0.9.x)
-
- * Fixed invalid message extraction methods causing an UnboundLocalError.
- * Extraction method specification can now use a dot instead of the colon to
- separate module and function name (ticket #105).
- * Fixed message catalog compilation for locales with more than two plural
- forms (ticket #95).
- * Fixed compilation of message catalogs for locales with more than two plural
- forms where the translations were empty (ticket #97).
- * The stripping of the comment tags in comments is optional now and
- is done for each line in a comment.
- * Added a JavaScript message extractor.
- * Updated to CLDR 1.6.
- * Fixed timezone calculations when formatting datetime and time values.
- * Added a `get_plural` function into the plurals module that returns the
- correct plural forms for a locale as tuple.
- * Added support for alias definitions in the CLDR data files, meaning that
- the chance for items missing in certain locales should be greatly reduced
- (ticket #68).
-
-
-Version 0.9.2
-http://svn.edgewall.org/repos/babel/tags/0.9.2/
-(Feb 4 2008, from branches/stable/0.9.x)
-
- * Fixed catalogs' charset values not being recognized (ticket #66).
- * Numerous improvements to the default plural forms.
- * Fixed fuzzy matching when updating message catalogs (ticket #82).
- * Fixed bug in catalog updating, that in some cases pulled in translations
- from different catalogs based on the same template.
- * Location lines in PO files do no longer get wrapped at hyphens in file
- names (ticket #79).
- * Fixed division by zero error in catalog compilation on empty catalogs
- (ticket #60).
-
-
-Version 0.9.1
-http://svn.edgewall.org/repos/babel/tags/0.9.1/
-(Sep 7 2007, from branches/stable/0.9.x)
-
- * Fixed catalog updating when a message is merged that was previously simple
- but now has a plural form, for example by moving from `gettext` to
- `ngettext`, or vice versa.
- * Fixed time formatting for 12 am and 12 pm.
- * Fixed output encoding of the `pybabel --list-locales` command.
- * MO files are now written in binary mode on windows (ticket #61).
-
-
-Version 0.9
-http://svn.edgewall.org/repos/babel/tags/0.9.0/
-(Aug 20 2007, from branches/stable/0.9.x)
-
- * The `new_catalog` distutils command has been renamed to `init_catalog` for
- consistency with the command-line frontend.
- * Added compilation of message catalogs to MO files (ticket #21).
- * Added updating of message catalogs from POT files (ticket #22).
- * Support for significant digits in number formatting.
- * Apply proper "banker's rounding" in number formatting in a cross-platform
- manner.
- * The number formatting functions now also work with numbers represented by
- Python `Decimal` objects (ticket #53).
- * Added extensible infrastructure for validating translation catalogs.
- * Fixed the extractor not filtering out messages that didn't validate against
- the keyword's specification (ticket #39).
- * Fixed the extractor raising an exception when encountering an empty string
- msgid. It now emits a warning to stderr.
- * Numerous Python message extractor fixes: it now handles nested function
- calls within a gettext function call correctly, uses the correct line number
- for multi-line function calls, and other small fixes (tickets #38 and #39).
- * Improved support for detecting Python string formatting fields in message
- strings (ticket #57).
- * CLDR upgraded to the 1.5 release.
- * Improved timezone formatting.
- * Implemented scientific number formatting.
- * Added mechanism to lookup locales by alias, for cases where browsers insist
- on including only the language code in the `Accept-Language` header, and
- sometimes even the incorrect language code.
-
-
-Version 0.8.1
-http://svn.edgewall.org/repos/babel/tags/0.8.1/
-(Jul 2 2007, from branches/stable/0.8.x)
-
- * `default_locale()` would fail when the value of the `LANGUAGE` environment
- variable contained multiple language codes separated by colon, as is
- explicitly allowed by the GNU gettext tools. As the `default_locale()`
- function is called at the module level in some modules, this bug would
- completely break importing these modules on systems where `LANGUAGE` is set
- that way.
- * The character set specified in PO template files is now respected when
- creating new catalog files based on that template. This allows the use of
- characters outside the ASCII range in POT files (ticket #17).
- * The default ordering of messages in generated POT files, which is based on
- the order those messages are found when walking the source tree, is no
- longer subject to differences between platforms; directory and file names
- are now always sorted alphabetically.
- * The Python message extractor now respects the special encoding comment to be
- able to handle files containing non-ASCII characters (ticket #23).
- * Added 'N_' (gettext noop) to the extractor's default keywords.
- * Made locale string parsing more robust, and also take the script part into
- account (ticket #27).
- * Added a function to list all locales for which locale data is available.
- * Added a command-line option to the `pybabel` command which prints out all
- available locales (ticket #24).
- * The name of the command-line script has been changed from just `babel` to
- `pybabel` to avoid a conflict with the OpenBabel project (ticket #34).
-
-
-Version 0.8
-http://svn.edgewall.org/repos/babel/tags/0.8.0/
-(Jun 20 2007, from branches/stable/0.8.x)
-
- * First public release