-----------
(Released on July 26th 2013, codename Revival)
- 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" (:trac:`126`).
- Fixed negative offset handling of Catalog._set_mime_headers (:trac:`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 (:trac:`148`).
- Use a more explicit error message if no option or argument (command) is
passed to pybabel (:trac:`81`).
- Keep the PO-Revision-Date if it is not the default value (:trac:`148`).
- Make --no-wrap work by reworking --width's default and mimic xgettext's
behaviour of always wrapping comments (:trac:`145`).
- Add --project and --version options for commandline (:trac:`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 (:trac:`150`).
- Fix Serbian plural forms (:trac:`213`).
- Small speed improvement in format_date() (:trac:`216`).
- Fix so frontend.CommandLineInterface.run does not accumulate logging
handlers (:trac:`227`, reported with initial patch by dfraser)
- Fix exception if environment contains an invalid locale setting
(:trac:`200`)
- use cPickle instead of pickle for better performance (:trac:`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 (:trac:`267`,
patch by Martin)
- Allow disabling cache behaviour in LazyProxy (:trac:`208`, initial patch
from Pedro Algarvio)
- Support for context-aware methods during message extraction (:trac:`229`,
patch from David Rios)
- "init" and "update" commands support "--no-wrap" option (:trac:`289`)
- fix formatting of fraction in format_decimal() if the input value is a float
with more than 7 significant digits (:trac:`183`)
- fix format_date() with datetime parameter (:trac:`282`, patch from Xavier
Morel)
- fix format_decimal() with small Decimal values (:trac:`214`, patch from
George Lund)
- fix handling of messages containing '\\n' (:trac:`198`)
- handle irregular multi-line msgstr (no "" as first line) gracefully
(:trac:`171`)
- parse_decimal() now returns Decimals not floats, API change (:trac:`178`)
- no warnings when running setup.py without installed setuptools (:trac:`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 (:trac:`230`)
- format_time() and format_datetime() now accept also floats (:trac:`242`)
- add babel.support.NullTranslations class similar to gettext.NullTranslations
but with all of Babel's new gettext methods (:trac:`277`)
- "init" and "update" commands support "--width" option (:trac:`284`)
- fix 'input_dirs' option for setuptools integration (:trac:`232`, initial
patch by Étienne Bersac)
- ensure .mo file header contains the same information as the source .po file
(:trac:`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.