Babel v1.0 Release Notes

  • πŸš€ (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).
    • 0️⃣ Keep the PO-Revision-Date if it is not the default value (:trac:148).
    • 0️⃣ 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.