Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Babel is written and maintained by the Babel team and various contributors:
- Hugo van Kemenade
- Jun Omae
- Heungsub Lee
- Boris Verkhovskiy
- Jakob Schnitzer
- Sachin Paliwal
- Alex Willmer
Expand All @@ -49,6 +50,9 @@ Babel is written and maintained by the Babel team and various contributors:
- Arturas Moskvinas
- Leonardo Pistone
- Hyunjun Kim
- Bart Broere
- Guillaume Gauvrit
- clach04
- wandrew004
- James McKinney
- Tomáš Hrnčiar
Expand Down
55 changes: 55 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,61 @@
Babel Changelog
===============

Version 2.18.0
--------------

Happy 2026! This release is, coincidentally, also being made from FOSDEM.

We will aspire for a slightly less glacial release cadence in this year;
there are interesting features in the pipeline.

Features
~~~~~~~~

* Core: Add `babel.core.get_cldr_version()` by @akx in :gh:`1242`
* Core: Use CLDR 47 by @tomasr8 in :gh:`1210`
* Core: Use canonical IANA zone names in zone_territories by @akx in :gh:`1220`
* Messages: Improve extract performance via ignoring directories early during os.walk by @akx in :gh:`968`
* Messages: Merge in per-format keywords and auto_comments by @akx in :gh:`1243`
* Messages: Update keywords for extraction of dpgettext and dnpgettext by @mardiros in :gh:`1235`
* Messages: Validate all plurals in Python format checker by @tomasr8 in :gh:`1188`
* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @akx in :gh:`1203`

Bugfixes
~~~~~~~~

* Core: Fix formatting for "Empty locale identifier" exception added in #1164 by @akx in :gh:`1184`
* Core: Improve handling of no-inheritance-marker in timezone data by @akx in :gh:`1194`
* Core: Make the number pattern regular expression more efficient by @akx in :gh:`1213`
* Messages: Keep translator comments next to the translation function call by @akx in :gh:`1196`
* Numbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales by @bartbroere in :gh:`1246`

Other improvements
~~~~~~~~~~~~~~~~~~

* Core: Avoid unnecessary uses of `map()` by @akx in :gh:`1180`
* Messages: Have init-catalog create directories too by @akx in :gh:`1244`
* Messages: Optimizations for read_po by @akx in :gh:`1200`
* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @akx in :gh:`1204`


Infrastructure and documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* CI: Renovate CI & lint tools by @akx in :gh:`1228`
* CI: Tighten up CI with Zizmor by @akx in :gh:`1230`
* CI: make job permissions explicit by @akx in :gh:`1227`
* Docs: Add SECURITY.md by @akx in :gh:`1229`
* Docs: Remove u string prefix from docs by @verhovsky in :gh:`1174`
* Docs: Update dates.rst with current unicode.org tr35 link by @clach04 in :gh:`1189`
* General: Add some PyPI classifiers by @tomasr8 in :gh:`1186`
* General: Apply reformatting by hand and with Ruff by @akx in :gh:`1202`
* General: Test on and declare support for Python 3.14 by @akx in :gh:`1233`
* Tests: Convert Unittest testcases with setup/teardown to fixtures by @akx in :gh:`1240`
* Tests: Mark PyPy CI flake as xfail by @akx in :gh:`1197`
* Tests: Move pytest config to `pyproject.toml` by @tomasr8 in :gh:`1187`
* Tests: Unwrap most `unittest` test cases to bare functions by @akx in :gh:`1241`

Version 2.17.0
--------------

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2013-2025 by the Babel Team, see AUTHORS for more information.
Copyright (c) 2013-2026 by the Babel Team, see AUTHORS for more information.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
Expand Down
4 changes: 2 additions & 2 deletions babel/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
access to various locale display names, localized number and date
formatting, etc.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand All @@ -25,7 +25,7 @@
parse_locale,
)

__version__ = '2.17.0'
__version__ = '2.18.0'

__all__ = [
'Locale',
Expand Down
2 changes: 1 addition & 1 deletion babel/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Core locale representation and locale data access.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/dates.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* ``LC_ALL``, and
* ``LANG``
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/lists.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* ``LC_ALL``, and
* ``LANG``
:copyright: (c) 2015-2025 by the Babel Team.
:copyright: (c) 2015-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/localedata.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
:note: The `Locale` class, which uses this module under the hood, provides a
more convenient interface for accessing the locale data.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/localtime/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Babel specific fork of tzlocal to determine the local timezone
of the system.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/localtime/_fallback.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Emulated fallback local timezone when all else fails.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Support for ``gettext`` message catalogs.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Data structures for message catalogs.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/checkers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
:since: version 0.9
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/extract.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
The main entry points into the extraction functionality are the functions
`extract_from_dir` and `extract_from_file`.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/frontend.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Frontends for the message extraction functionality.

:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/jslexer.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
A simple JavaScript 1.5 lexer which is used for the JavaScript
extractor.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/mofile.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Writing of files in the ``gettext`` MO (machine object) format.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/plurals.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Plural form definitions.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/messages/pofile.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Reading and writing of files in the ``gettext`` PO (portable object)
format.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/numbers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* ``LC_ALL``, and
* ``LANG``
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/plural.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
CLDR Plural support. See UTS #35.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/support.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
.. note: the code in this module is not used by Babel itself
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
2 changes: 1 addition & 1 deletion babel/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Various utility classes and functions.
:copyright: (c) 2013-2025 by the Babel Team.
:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
"""

Expand Down
3 changes: 2 additions & 1 deletion scripts/generate_authors.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
re.compile("Jun Omae"): "Jun Omae",
re.compile(r"^Hugo$"): "Hugo van Kemenade",
re.compile(r"^Tomas R([.])?"): "Tomas R.",
re.compile(r"^Ruff$"): "", # It's a robot
}


Expand All @@ -22,7 +23,7 @@ def map_alias(name):
def get_sorted_authors_list():
authors = check_output(['git', 'log', '--format=%aN'], cwd=root_path).decode('UTF-8')
counts = Counter(map_alias(name) for name in authors.splitlines())
return [author for (author, count) in counts.most_common()]
return [author for (author, count) in counts.most_common() if author]


def get_authors_file_content():
Expand Down
Loading