summaryrefslogtreecommitdiff
path: root/CHANGES.rst
diff options
context:
space:
mode:
authorAarni Koskela <akx@iki.fi>2022-01-25 15:40:30 +0200
committerAarni Koskela <akx@iki.fi>2022-01-25 16:39:51 +0200
commit5c6a970616472a863d568947c757f90bc7824c9c (patch)
tree28856c92d938d09237e331b73f4c3bec44b75d52 /CHANGES.rst
parent6e7227633697b053f97a7c041e6732232ec1c936 (diff)
downloadbabel-5c6a970616472a863d568947c757f90bc7824c9c.tar.gz
Changelog: rename to .rst, use :gh: for GitHub links
Refs #801
Diffstat (limited to 'CHANGES.rst')
-rw-r--r--CHANGES.rst725
1 files changed, 725 insertions, 0 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
new file mode 100644
index 0000000..6e84fe9
--- /dev/null
+++ b/CHANGES.rst
@@ -0,0 +1,725 @@
+Babel Changelog
+===============
+
+Version 2.9.1
+-------------
+
+Bugfixes
+~~~~~~~~
+
+* The internal locale-data loading functions now validate the name of the locale file to be loaded and only
+ allow files within Babel's data directory. Thank you to Chris Lyne of Tenable, Inc. for discovering the issue!
+
+Version 2.9.0
+-------------
+
+Upcoming version support changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* This version, Babel 2.9, is the last version of Babel to support Python 2.7, Python 3.4, and Python 3.5.
+
+Improvements
+~~~~~~~~~~~~
+
+* CLDR: Use CLDR 37 – Aarni Koskela (:gh:`734`)
+* Dates: Handle ZoneInfo objects in get_timezone_location, get_timezone_name - Alessio Bogon (:gh:`741`)
+* Numbers: Add group_separator feature in number formatting - Abdullah Javed Nesar (:gh:`726`)
+
+Bugfixes
+~~~~~~~~
+
+* Dates: Correct default Format().timedelta format to 'long' to mute deprecation warnings – Aarni Koskela
+* Import: Simplify iteration code in "import_cldr.py" – Felix Schwarz
+* Import: Stop using deprecated ElementTree methods "getchildren()" and "getiterator()" – Felix Schwarz
+* Messages: Fix unicode printing error on Python 2 without TTY. – Niklas Hambüchen
+* Messages: Introduce invariant that _invalid_pofile() takes unicode line. – Niklas Hambüchen
+* Tests: fix tests when using Python 3.9 – Felix Schwarz
+* Tests: Remove deprecated 'sudo: false' from Travis configuration – Jon Dufresne
+* Tests: Support Py.test 6.x – Aarni Koskela
+* Utilities: LazyProxy: Handle AttributeError in specified func – Nikiforov Konstantin (:gh:`724`)
+* Utilities: Replace usage of parser.suite with ast.parse – Miro Hrončok
+
+Documentation
+~~~~~~~~~~~~~
+
+* Update parse_number comments – Brad Martin (:gh:`708`)
+* Add __iter__ to Catalog documentation – @CyanNani123
+
+Version 2.8.1
+-------------
+
+This is solely a patch release to make running tests on Py.test 6+ possible.
+
+Bugfixes
+~~~~~~~~
+
+* Support Py.test 6 - Aarni Koskela (:gh:`747`, :gh:`750`, :gh:`752`)
+
+Version 2.8.0
+-------------
+
+Improvements
+~~~~~~~~~~~~
+
+* CLDR: Upgrade to CLDR 36.0 - Aarni Koskela (:gh:`679`)
+* Messages: Don't even open files with the "ignore" extraction method - @sebleblanc (:gh:`678`)
+
+Bugfixes
+~~~~~~~~
+
+* Numbers: Fix formatting very small decimals when quantization is disabled - Lev Lybin, @miluChen (:gh:`662`)
+* Messages: Attempt to sort all messages – Mario Frasca (:gh:`651`, :gh:`606`)
+
+Docs
+~~~~
+
+* Add years to changelog - Romuald Brunet
+* Note that installation requires pytz - Steve (Gadget) Barnes
+
+Version 2.7.0
+-------------
+
+Possibly incompatible changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+These may be backward incompatible in some cases, as some more-or-less internal
+APIs have changed. Please feel free to file issues if you bump into anything
+strange and we'll try to help!
+
+* General: Internal uses of ``babel.util.odict`` have been replaced with
+ ``collections.OrderedDict`` from The Python standard library.
+
+Improvements
+~~~~~~~~~~~~
+
+* CLDR: Upgrade to CLDR 35.1 - Alberto Mardegan, Aarni Koskela (:gh:`626`, :gh:`643`)
+* General: allow anchoring path patterns to the start of a string - Brian Cappello (:gh:`600`)
+* General: Bumped version requirement on pytz - @chrisbrake (:gh:`592`)
+* Messages: `pybabel compile`: exit with code 1 if errors were encountered - Aarni Koskela (:gh:`647`)
+* Messages: Add omit-header to update_catalog - Cédric Krier (:gh:`633`)
+* Messages: Catalog update: keep user comments from destination by default - Aarni Koskela (:gh:`648`)
+* Messages: Skip empty message when writing mo file - Cédric Krier (:gh:`564`)
+* Messages: Small fixes to avoid crashes on badly formatted .po files - Bryn Truscott (:gh:`597`)
+* Numbers: `parse_decimal()` `strict` argument and `suggestions` - Charly C (:gh:`590`)
+* Numbers: don't repeat suggestions in parse_decimal strict - Serban Constantin (:gh:`599`)
+* Numbers: implement currency formatting with long display names - Luke Plant (:gh:`585`)
+* Numbers: parse_decimal(): assume spaces are equivalent to non-breaking spaces when not in strict mode - Aarni Koskela (:gh:`649`)
+* Performance: Cache locale_identifiers() - Aarni Koskela (:gh:`644`)
+
+Bugfixes
+~~~~~~~~
+
+* CLDR: Skip alt=... for week data (minDays, firstDay, weekendStart, weekendEnd) - Aarni Koskela (:gh:`634`)
+* Dates: Fix wrong weeknumber for 31.12.2018 - BT-sschmid (:gh:`621`)
+* Locale: Avoid KeyError trying to get data on WindowsXP - mondeja (:gh:`604`)
+* Locale: get_display_name(): Don't attempt to concatenate variant information to None - Aarni Koskela (:gh:`645`)
+* Messages: pofile: Add comparison operators to _NormalizedString - Aarni Koskela (:gh:`646`)
+* Messages: pofile: don't crash when message.locations can't be sorted - Aarni Koskela (:gh:`646`)
+
+Tooling & docs
+~~~~~~~~~~~~~~
+
+* Docs: Remove all references to deprecated easy_install - Jon Dufresne (:gh:`610`)
+* Docs: Switch print statement in docs to print function - NotAFile
+* Docs: Update all pypi.python.org URLs to pypi.org - Jon Dufresne (:gh:`587`)
+* Docs: Use https URLs throughout project where available - Jon Dufresne (:gh:`588`)
+* Support: Add testing and document support for Python 3.7 - Jon Dufresne (:gh:`611`)
+* Support: Test on Python 3.8-dev - Aarni Koskela (:gh:`642`)
+* Support: Using ABCs from collections instead of collections.abc is deprecated. - Julien Palard (:gh:`609`)
+* Tests: Fix conftest.py compatibility with pytest 4.3 - Miro Hrončok (:gh:`635`)
+* Tests: Update pytest and pytest-cov - Miro Hrončok (:gh:`635`)
+
+Version 2.6.0
+-------------
+
+Possibly incompatible changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+These may be backward incompatible in some cases, as some more-or-less internal APIs have changed.
+Please feel free to file issues if you bump into anything strange and we'll try to help!
+
+* Numbers: Refactor decimal handling code and allow bypass of decimal quantization. (@kdeldycke) (PR :gh:`538`)
+* Messages: allow processing files that are in locales unknown to Babel (@akx) (PR :gh:`557`)
+* General: Drop support for EOL Python 2.6 and 3.3 (@hugovk) (PR :gh:`546`)
+
+Other changes
+~~~~~~~~~~~~~
+
+* CLDR: Use CLDR 33 (@akx) (PR :gh:`581`)
+* Lists: Add support for various list styles other than the default (@akx) (:gh:`552`)
+* Messages: Add new PoFileError exception (@Bedrock02) (PR :gh:`532`)
+* Times: Simplify Linux distro specific explicit timezone setting search (@scop) (PR :gh:`528`)
+
+Bugfixes
+~~~~~~~~
+
+* CLDR: avoid importing alt=narrow currency symbols (@akx) (PR :gh:`558`)
+* CLDR: ignore non-Latin numbering systems (@akx) (PR :gh:`579`)
+* Docs: Fix improper example for date formatting (@PTrottier) (PR :gh:`574`)
+* Tooling: Fix some deprecation warnings (@akx) (PR :gh:`580`)
+
+Tooling & docs
+~~~~~~~~~~~~~~
+
+* Add explicit signatures to some date autofunctions (@xmo-odoo) (PR :gh:`554`)
+* Include license file in the generated wheel package (@jdufresne) (PR :gh:`539`)
+* Python 3.6 invalid escape sequence deprecation fixes (@scop) (PR :gh:`528`)
+* Test and document all supported Python versions (@jdufresne) (PR :gh:`540`)
+* Update copyright header years and authors file (@akx) (PR :gh:`559`)
+
+
+Version 2.5.3
+-------------
+
+This is a maintenance release that reverts undesired API-breaking changes that slipped into 2.5.2
+(see :gh:`550`).
+
+It is based on v2.5.1 (f29eccd) with commits 7cedb84, 29da2d2 and edfb518 cherry-picked on top.
+
+Version 2.5.2
+-------------
+
+Bugfixes
+~~~~~~~~
+
+* Revert the unnecessary PyInstaller fixes from 2.5.0 and 2.5.1 (:gh:`533`) (@yagebu)
+
+Version 2.5.1
+-------------
+
+Minor Improvements and bugfixes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* Use a fixed datetime to avoid test failures (:gh:`520`) (@narendravardi)
+* Parse multi-line __future__ imports better (:gh:`519`) (@akx)
+* Fix validate_currency docstring (:gh:`522`)
+* Allow normalize_locale and exists to handle various unexpected inputs (:gh:`523`) (@suhojm)
+* Make PyInstaller support more robust (:gh:`525`, :gh:`526`) (@thijstriemstra, @akx)
+
+
+Version 2.5.0
+-------------
+
+New Features
+~~~~~~~~~~~~
+
+* Numbers: Add currency utilities and helpers (:gh:`491`) (@kdeldycke)
+* Support PyInstaller (:gh:`500`, :gh:`505`) (@wodo)
+
+Minor Improvements and bugfixes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* Dates: Add __str__ to DateTimePattern (:gh:`515`) (@sfermigier)
+* Dates: Fix an invalid string to bytes comparison when parsing TZ files on Py3 (:gh:`498`) (@rowillia)
+* Dates: Formatting zero-padded components of dates is faster (:gh:`517`) (@akx)
+* Documentation: Fix "Good Commits" link in CONTRIBUTING.md (:gh:`511`) (@naryanacharya6)
+* Documentation: Fix link to Python gettext module (:gh:`512`) (@Linkid)
+* Messages: Allow both dash and underscore separated locale identifiers in pofiles (:gh:`489`, :gh:`490`) (@akx)
+* Messages: Extract Python messages in nested gettext calls (:gh:`488`) (@sublee)
+* Messages: Fix in-place editing of dir list while iterating (:gh:`476`, :gh:`492`) (@MarcDufresne)
+* Messages: Stabilize sort order (:gh:`482`) (@xavfernandez)
+* Time zones: Honor the no-inherit marker for metazone names (:gh:`405`) (@akx)
+
+
+Version 2.4.0
+-------------
+
+New Features
+~~~~~~~~~~~~
+
+Some of these changes might break your current code and/or tests.
+
+* CLDR: CLDR 29 is now used instead of CLDR 28 (:gh:`405`) (@akx)
+* Messages: Add option 'add_location' for location line formatting (:gh:`438`, :gh:`459`) (@rrader, @alxpy)
+* Numbers: Allow full control of decimal behavior (:gh:`410`) (@etanol)
+
+Minor Improvements and bugfixes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* Documentation: Improve Date Fields descriptions (:gh:`450`) (@ldwoolley)
+* Documentation: Typo fixes and documentation improvements (:gh:`406`, :gh:`412`, :gh:`403`, :gh:`440`, :gh:`449`, :gh:`463`) (@zyegfryed, @adamchainz, @jwilk, @akx, @roramirez, @abhishekcs10)
+* Messages: Default to UTF-8 source encoding instead of ISO-8859-1 (:gh:`399`) (@asottile)
+* Messages: Ensure messages are extracted in the order they were passed in (:gh:`424`) (@ngrilly)
+* Messages: Message extraction for JSX files is improved (:gh:`392`, :gh:`396`, :gh:`425`) (@karloskar, @georgschoelly)
+* Messages: PO file reading supports multi-line obsolete units (:gh:`429`) (@mbirtwell)
+* Messages: Python message extractor respects unicode_literals in __future__ (:gh:`427`) (@sublee)
+* Messages: Roundtrip Language headers (:gh:`420`) (@kruton)
+* Messages: units before obsolete units are no longer erroneously marked obsolete (:gh:`452`) (@mbirtwell)
+* Numbers: `parse_pattern` now preserves the full original pattern (:gh:`414`) (@jtwang)
+* Numbers: Fix float conversion in `extract_operands` (:gh:`435`) (@akx)
+* Plurals: Fix plural forms for Czech and Slovak locales (:gh:`373`) (@ykshatroff)
+* Plurals: More plural form fixes based on Mozilla and CLDR references (:gh:`431`) (@mshenfield)
+
+
+Internal improvements
+~~~~~~~~~~~~~~~~~~~~~
+
+* Local times are constructed correctly in tests (:gh:`411`) (@etanol)
+* Miscellaneous small improvements (:gh:`437`) (@scop)
+* Regex flags are extracted from the regex strings (:gh:`462`) (@singingwolfboy)
+* The PO file reader is now a class and has seen some refactoring (:gh:`429`, :gh:`452`) (@mbirtwell)
+
+
+Version 2.3.4
+-------------
+
+(Bugfix release, released on April 22th 2016)
+
+Bugfixes
+~~~~~~~~
+
+* CLDR: The lxml library is no longer used for CLDR importing, so it should not cause strange failures either. Thanks to @aronbierbaum for the bug report and @jtwang for the fix. (https://github.com/python-babel/babel/pull/393)
+* CLI: Every last single CLI usage regression should now be gone, and both distutils and stand-alone CLIs should work as they have in the past. Thanks to @paxswill and @ajaeger for bug reports. (https://github.com/python-babel/babel/pull/389)
+
+Version 2.3.3
+-------------
+
+(Bugfix release, released on April 12th 2016)
+
+Bugfixes
+~~~~~~~~
+
+* CLI: Usage regressions that had snuck in between 2.2 and 2.3 should be no more. (https://github.com/python-babel/babel/pull/386) Thanks to @ajaeger, @sebdiem and @jcristovao for bug reports and patches.
+
+Version 2.3.2
+-------------
+
+(Bugfix release, released on April 9th 2016)
+
+Bugfixes
+~~~~~~~~
+
+* Dates: Period (am/pm) formatting was broken in certain locales (namely zh_TW). Thanks to @jun66j5 for the bug report. (:gh:`378`, :gh:`379`)
+
+Version 2.3.1
+-------------
+
+(Bugfix release because of deployment problems, released on April 8th 2016)
+
+Version 2.3
+-----------
+
+(Feature release, released on April 8th 2016)
+
+Internal improvements
+~~~~~~~~~~~~~~~~~~~~~
+
+* The CLI frontend and Distutils commands use a shared implementation (https://github.com/python-babel/babel/pull/311)
+* PyPy3 is supported (https://github.com/python-babel/babel/pull/343)
+
+Features
+~~~~~~~~
+
+* CLDR: Add an API for territory language data (https://github.com/python-babel/babel/pull/315)
+* Core: Character order and measurement system data is imported and exposed (https://github.com/python-babel/babel/pull/368)
+* Dates: Add an API for time interval formatting (https://github.com/python-babel/babel/pull/316)
+* Dates: More pattern formats and lengths are supported (https://github.com/python-babel/babel/pull/347)
+* Dates: Period IDs are imported and exposed (https://github.com/python-babel/babel/pull/349)
+* Dates: Support for date-time skeleton formats has been added (https://github.com/python-babel/babel/pull/265)
+* Dates: Timezone formatting has been improved (https://github.com/python-babel/babel/pull/338)
+* Messages: JavaScript extraction now supports dotted names, ES6 template strings and JSX tags (https://github.com/python-babel/babel/pull/332)
+* Messages: npgettext is recognized by default (https://github.com/python-babel/babel/pull/341)
+* Messages: The CLI learned to accept multiple domains (https://github.com/python-babel/babel/pull/335)
+* Messages: The extraction commands now accept filenames in addition to directories (https://github.com/python-babel/babel/pull/324)
+* Units: A new API for unit formatting is implemented (https://github.com/python-babel/babel/pull/369)
+
+Bugfixes
+~~~~~~~~
+
+* Core: Mixed-case locale IDs work more reliably (https://github.com/python-babel/babel/pull/361)
+* Dates: S...S formats work correctly now (https://github.com/python-babel/babel/pull/360)
+* Messages: All messages are now sorted correctly if sorting has been specified (https://github.com/python-babel/babel/pull/300)
+* Messages: Fix the unexpected behavior caused by catalog header updating (e0e7ef1) (https://github.com/python-babel/babel/pull/320)
+* Messages: Gettext operands are now generated correctly (https://github.com/python-babel/babel/pull/295)
+* Messages: Message extraction has been taught to detect encodings better (https://github.com/python-babel/babel/pull/274)
+
+Version 2.2
+-----------
+
+(Feature release, released on January 2nd 2016)
+
+Bugfixes
+~~~~~~~~
+
+* General: Add __hash__ to Locale. (:gh:`303`) (2aa8074)
+* General: Allow files with BOM if they're UTF-8 (:gh:`189`) (da87edd)
+* General: localedata directory is now locale-data (:gh:`109`) (2d1882e)
+* General: odict: Fix pop method (0a9e97e)
+* General: Removed uses of datetime.date class from .dat files (:gh:`174`) (94f6830)
+* Messages: Fix plural selection for Chinese (531f666)
+* Messages: Fix typo and add semicolon in plural_forms (5784501)
+* Messages: Flatten NullTranslations.files into a list (ad11101)
+* Times: FixedOffsetTimezone: fix display of negative offsets (d816803)
+
+Features
+~~~~~~~~
+
+* CLDR: Update to CLDR 28 (:gh:`292`) (9f7f4d0)
+* General: Add __copy__ and __deepcopy__ to LazyProxy. (a1cc3f1)
+* General: Add official support for Python 3.4 and 3.5
+* General: Improve odict performance by making key search O(1) (6822b7f)
+* Locale: Add an ordinal_form property to Locale (:gh:`270`) (b3f3430)
+* Locale: Add support for list formatting (37ce4fa, be6e23d)
+* Locale: Check inheritance exceptions first (3ef0d6d)
+* Messages: Allow file locations without line numbers (:gh:`279`) (79bc781)
+* Messages: Allow passing a callable to `extract()` (:gh:`289`) (3f58516)
+* Messages: Support 'Language' header field of PO files (:gh:`76`) (3ce842b)
+* Messages: Update catalog headers from templates (e0e7ef1)
+* Numbers: Properly load and expose currency format types (:gh:`201`) (df676ab)
+* Numbers: Use cdecimal by default when available (b6169be)
+* Numbers: Use the CLDR's suggested number of decimals for format_currency (:gh:`139`) (201ed50)
+* Times: Add format_timedelta(format='narrow') support (edc5eb5)
+
+Version 2.1
+-----------
+
+(Bugfix/minor feature release, released on September 25th 2015)
+
+- Parse and honour the locale inheritance exceptions
+ (:gh:`97`)
+- Fix Locale.parse using ``global.dat`` incompatible types
+ (:gh:`174`)
+- Fix display of negative offsets in ``FixedOffsetTimezone``
+ (:gh:`214`)
+- Improved odict performance which is used during localization file
+ build, should improve compilation time for large projects
+- Add support for "narrow" format for ``format_timedelta``
+- Add universal wheel support
+- Support 'Language' header field in .PO files
+ (fixes :gh:`76`)
+- Test suite enhancements (coverage, broken tests fixed, etc)
+- Documentation updated
+
+Version 2.0
+-----------
+
+(Released on July 27th 2015, codename Second Coming)
+
+- Added support for looking up currencies that belong to a territory
+ through the :func:`babel.numbers.get_territory_currencies`
+ function.
+- Improved Python 3 support.
+- Fixed some broken tests for timezone behavior.
+- Improved various smaller things for dealing with dates.
+
+Version 1.4
+-----------
+
+(bugfix release, release date to be decided)
+
+- Fixed a bug that caused deprecated territory codes not being
+ converted properly by the subtag resolving. This for instance
+ showed up when trying to use ``und_UK`` as a language code
+ which now properly resolves to ``en_GB``.
+- Fixed a bug that made it impossible to import the CLDR data
+ from scratch on windows systems.
+
+Version 1.3
+-----------
+
+(bugfix release, released on July 29th 2013)
+
+- Fixed a bug in likely-subtag resolving for some common locales.
+ This primarily makes ``zh_CN`` work again which was broken
+ due to how it was defined in the likely subtags combined with
+ our broken resolving. This fixes :gh:`37`.
+- Fixed a bug that caused pybabel to break when writing to stdout
+ on Python 3.
+- Removed a stray print that was causing issues when writing to
+ stdout for message catalogs.
+
+Version 1.2
+-----------
+
+(bugfix release, released on July 27th 2013)
+
+- Included all tests in the tarball. Previously the include
+ skipped past recursive folders.
+- Changed how tests are invoked and added separate standalone
+ test command. This simplifies testing of the package for
+ linux distributors.
+
+Version 1.1
+-----------
+
+(bugfix release, released on July 27th 2013)
+
+- added dummy version requirements for pytz so that it installs
+ on pip 1.4.
+- Included tests in the tarball.
+
+Version 1.0
+-----------
+
+(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.
+
+
+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 (:trac:`146`, :trac:`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 (: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`).
+- Fixed negative offset handling of Catalog._set_mime_headers (:trac:`165`).
+- 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
+ (Python 2.3 and 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 number formatting for locales where CLDR specifies alt or draft
+ items (:trac:`217`)
+- Fix bad check in format_time (:trac:`257`, reported with patch and tests by
+ jomae)
+- 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`)
+
+
+Version 0.9.5
+-------------
+
+(released 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 (:trac:`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 (:trac:`128`).
+- Locale modifiers such as "@euro" are now stripped from locale identifiers
+ when parsing (:trac:`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 (:trac:`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
+ (:trac:`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 (:trac:`105`).
+- Fixed message catalog compilation for locales with more than two plural
+ forms (:trac:`95`).
+- Fixed compilation of message catalogs for locales with more than two plural
+ forms where the translations were empty (:trac:`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
+ (:trac:`68`).
+
+
+Version 0.9.2
+-------------
+
+(released on February 4th 2008)
+
+- Fixed catalogs' charset values not being recognized (:trac:`66`).
+- Numerous improvements to the default plural forms.
+- Fixed fuzzy matching when updating message catalogs (:trac:`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 (:trac:`79`).
+- Fixed division by zero error in catalog compilation on empty catalogs
+ (:trac:`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 (:trac:`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 (:trac:`21`).
+- Added updating of message catalogs from POT files (:trac:`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 (:trac:`53`).
+- Added extensible infrastructure for validating translation catalogs.
+- Fixed the extractor not filtering out messages that didn't validate against
+ the keyword's specification (:trac:`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 :trac:`38` and
+ :trac:`39`).
+- Improved support for detecting Python string formatting fields in message
+ strings (:trac:`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 (:trac:`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 (:trac:`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 (:trac:`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 (:trac:`24`).
+- The name of the command-line script has been changed from just `babel` to
+ `pybabel` to avoid a conflict with the OpenBabel project (:trac:`34`).
+
+
+Version 0.8
+-----------
+
+(released on June 20th 2007)
+
+- First public release