New Upstream Release - python-humanize

Ready changes

Summary

Merged new upstream version: 4.6.0 (was: 4.4.0).

Diff

diff --git a/.flake8 b/.flake8
new file mode 100644
index 0000000..f4546ad
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,2 @@
+[flake8]
+max_line_length = 88
diff --git a/.github/renovate.json b/.github/renovate.json
index 2d2f276..8d0bb39 100644
--- a/.github/renovate.json
+++ b/.github/renovate.json
@@ -7,6 +7,10 @@
       "groupName": "github-actions",
       "matchManagers": ["github-actions"],
       "separateMajorMinor": "false"
+    },
+    {
+      "groupName": "docs/requirements.txt",
+      "matchPaths": ["docs/requirements.txt"]
     }
   ],
   "schedule": ["on the first day of the month"]
diff --git a/.github/workflows/require-pr-label.yml b/.github/workflows/require-pr-label.yml
index 1079f3f..d243fa6 100644
--- a/.github/workflows/require-pr-label.yml
+++ b/.github/workflows/require-pr-label.yml
@@ -9,7 +9,7 @@ jobs:
     runs-on: ubuntu-latest
 
     steps:
-      - uses: mheap/github-action-required-labels@v2
+      - uses: mheap/github-action-required-labels@v3
         with:
           mode: minimum
           count: 1
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 1a19d3e..1ac5a3a 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -11,7 +11,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        python-version: ["pypy-3.8", "3.7", "3.8", "3.9", "3.10", "3.11-dev"]
+        python-version: ["pypy3.8", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
         os: [windows-latest, macos-latest, ubuntu-latest]
 
     steps:
@@ -22,7 +22,7 @@ jobs:
         with:
           python-version: ${{ matrix.python-version }}
           cache: pip
-          cache-dependency-path: setup.cfg
+          cache-dependency-path: pyproject.toml
 
       - name: Install Linux dependencies
         if: startsWith(matrix.os, 'ubuntu')
@@ -57,7 +57,7 @@ jobs:
   success:
     needs: test
     runs-on: ubuntu-latest
-    name: test successful
+    name: Test successful
     steps:
       - name: Success
         run: echo Test successful
diff --git a/.gitignore b/.gitignore
index dccc5cf..68bc17f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,160 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
 .coverage
-.DS_Store
-.eggs
-.testmondata
-.tox
-*.egg-info*
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
 *.mo
 *.pot
-*.py[co]
-*.sw[po]
-build
-dist
-docs/_build*
-htmlcov
-site
-tags
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+#   For a library or package, you might want to ignore these files since the code is
+#   intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+#   However, in case of collaboration, if having platform-specific dependencies or dependencies
+#   having no cross-platform support, pipenv may install dependencies that don't work, or not
+#   install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+#   This is especially recommended for binary packages to ensure reproducibility, and is more
+#   commonly ignored for libraries.
+#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+#   in version control.
+#   https://pdm.fming.dev/#use-with-ide
+.pdm.toml
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+#  and can be added to the global gitignore or merged into this file.  For a more nuclear
+#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d1228e4..2b47718 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,23 +1,23 @@
 repos:
   - repo: https://github.com/asottile/pyupgrade
-    rev: v2.37.3
+    rev: v3.3.1
     hooks:
       - id: pyupgrade
         args: [--py37-plus]
 
   - repo: https://github.com/psf/black
-    rev: 22.6.0
+    rev: 22.12.0
     hooks:
       - id: black
         args: [--target-version=py37]
 
   - repo: https://github.com/PyCQA/isort
-    rev: 5.10.1
+    rev: 5.12.0
     hooks:
       - id: isort
 
-  - repo: https://github.com/myint/autoflake
-    rev: v1.4
+  - repo: https://github.com/PyCQA/autoflake
+    rev: v2.0.0
     hooks:
       - id: autoflake
         name: autoflake
@@ -31,18 +31,19 @@ repos:
         files: \.py$
 
   - repo: https://github.com/PyCQA/flake8
-    rev: 5.0.4
+    rev: 6.0.0
     hooks:
       - id: flake8
-        additional_dependencies: [flake8-2020, flake8-implicit-str-concat]
+        additional_dependencies: [flake8-2020, flake8-errmsg, flake8-implicit-str-concat]
 
   - repo: https://github.com/pre-commit/pygrep-hooks
-    rev: v1.9.0
+    rev: v1.10.0
     hooks:
       - id: python-check-blanket-noqa
+      - id: python-no-log-warn
 
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v4.3.0
+    rev: v4.4.0
     hooks:
       - id: check-json
       - id: check-merge-conflict
@@ -51,32 +52,31 @@ repos:
       - id: end-of-file-fixer
 
   - repo: https://github.com/PyCQA/pydocstyle
-    rev: 6.1.1
+    rev: 6.3.0
     hooks:
       - id: pydocstyle
         args: ["--convention", "google"]
         files: "src/"
 
   - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v0.971
+    rev: v0.991
     hooks:
       - id: mypy
         additional_dependencies: [pytest, types-freezegun, types-setuptools]
         args: [--strict]
 
-  - repo: https://github.com/asottile/setup-cfg-fmt
-    rev: v2.0.0
-    hooks:
-      - id: setup-cfg-fmt
-        args: [--max-py-version=3.11, --include-version-classifiers]
-
   - repo: https://github.com/tox-dev/pyproject-fmt
-    rev: 0.3.5
+    rev: 0.5.0
     hooks:
       - id: pyproject-fmt
 
+  - repo: https://github.com/abravalheri/validate-pyproject
+    rev: v0.12.1
+    hooks:
+      - id: validate-pyproject
+
   - repo: https://github.com/tox-dev/tox-ini-fmt
-    rev: 0.5.2
+    rev: 0.6.1
     hooks:
       - id: tox-ini-fmt
 
diff --git a/PKG-INFO b/PKG-INFO
index 89fc47a..01d6e08 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,17 +1,17 @@
 Metadata-Version: 2.1
 Name: humanize
-Version: 4.4.0
+Version: 4.6.0
 Summary: Python humanize utilities
-Home-page: https://github.com/python-humanize/humanize
-Author: Jason Moiron
-Author-email: jmoiron@jmoiron.net
-Maintainer: Hugo van Kemenade
-License: MIT
-Project-URL: Source, https://github.com/python-humanize/humanize
-Project-URL: Issue tracker, https://github.com/python-humanize/humanize/issues
-Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-humanize?utm_source=pypi-humanize&utm_medium=pypi
 Project-URL: Documentation, https://python-humanize.readthedocs.io/
+Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-humanize?utm_source=pypi-humanize&utm_medium=pypi
+Project-URL: Homepage, https://github.com/python-humanize/humanize
+Project-URL: Issue tracker, https://github.com/python-humanize/humanize/issues
 Project-URL: Release notes, https://github.com/python-humanize/humanize/releases
+Project-URL: Source, https://github.com/python-humanize/humanize
+Author-email: Jason Moiron <jmoiron@jmoiron.net>
+Maintainer: Hugo van Kemenade
+License: MIT
+License-File: LICENCE
 Keywords: humanize time size
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -30,9 +30,12 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Text Processing
 Classifier: Topic :: Text Processing :: General
 Requires-Python: >=3.7
-Description-Content-Type: text/markdown
+Requires-Dist: importlib-metadata; python_version < '3.8'
 Provides-Extra: tests
-License-File: LICENCE
+Requires-Dist: freezegun; extra == 'tests'
+Requires-Dist: pytest; extra == 'tests'
+Requires-Dist: pytest-cov; extra == 'tests'
+Description-Content-Type: text/markdown
 
 # humanize
 
@@ -50,6 +53,7 @@ a number into a fuzzy human-readable duration ("3 minutes ago") or into a
 human-readable size or throughput. It is localized to:
 
 - Arabic
+- Basque
 - Bengali
 - Brazilian Portuguese
 - Catalan
@@ -261,7 +265,7 @@ FileNotFoundError: [Errno 2] No translation file found for domain: 'humanize'
 How to add new phrases to existing locale files:
 
 ```sh
-xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py  # extract new phrases
+xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -k'NS_:1,2' -k'_ngettext:1,2' -l python src/humanize/*.py  # extract new phrases
 msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files
 ```
 
diff --git a/README.md b/README.md
index d63929a..5a668d7 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@ a number into a fuzzy human-readable duration ("3 minutes ago") or into a
 human-readable size or throughput. It is localized to:
 
 - Arabic
+- Basque
 - Bengali
 - Brazilian Portuguese
 - Catalan
@@ -225,7 +226,7 @@ FileNotFoundError: [Errno 2] No translation file found for domain: 'humanize'
 How to add new phrases to existing locale files:
 
 ```sh
-xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py  # extract new phrases
+xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -k'NS_:1,2' -k'_ngettext:1,2' -l python src/humanize/*.py  # extract new phrases
 msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files
 ```
 
diff --git a/debian/changelog b/debian/changelog
index 4c7151c..bdefc82 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+python-humanize (4.6.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Thu, 01 Jun 2023 23:21:10 -0000
+
 python-humanize (4.4.0-1) unstable; urgency=medium
 
   [ Debian Janitor ]
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 896ed5e..b2dc3c7 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,6 +1,6 @@
-mkdocs==1.3.1
+mkdocs==1.4.2
 mkdocs-material
-mkdocstrings[python]==0.19.0
+mkdocstrings[python]==0.20.0
 mkdocs-include-markdown-plugin
 pygments
-pymdown-extensions==9.5
+pymdown-extensions==9.9.2
diff --git a/pyproject.toml b/pyproject.toml
index 1dd2e5c..9534d32 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,12 +1,80 @@
 [build-system]
-build-backend = "setuptools.build_meta"
+build-backend = "hatchling.build"
 requires = [
-  "setuptools>=42",
-  "setuptools_scm[toml]>=3.4",
+  "hatch-vcs",
+  "hatchling",
 ]
 
+[project]
+name = "humanize"
+description = "Python humanize utilities"
+readme = "README.md"
+keywords = [
+  "humanize time size",
+]
+license = {text = "MIT"}
+maintainers = [{name = "Hugo van Kemenade"}]
+authors = [{name = "Jason Moiron", email = "jmoiron@jmoiron.net"}]
+requires-python = ">=3.7"
+dependencies = [
+  'importlib-metadata; python_version < "3.8"',
+]
+dynamic = [
+  "version",
+]
+classifiers = [
+    "Development Status :: 5 - Production/Stable",
+    "Intended Audience :: Developers",
+    "License :: OSI Approved :: MIT License",
+    "Operating System :: OS Independent",
+    "Programming Language :: Python",
+    "Programming Language :: Python :: 3",
+    "Programming Language :: Python :: 3 :: Only",
+    "Programming Language :: Python :: 3.7",
+    "Programming Language :: Python :: 3.8",
+    "Programming Language :: Python :: 3.9",
+    "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
+    "Programming Language :: Python :: Implementation :: CPython",
+    "Programming Language :: Python :: Implementation :: PyPy",
+    "Topic :: Text Processing",
+    "Topic :: Text Processing :: General",
+]
+[project.optional-dependencies]
+tests = [
+  "freezegun",
+  "pytest",
+  "pytest-cov",
+]
+
+[project.urls]
+Documentation = "https://python-humanize.readthedocs.io/"
+Funding = "https://tidelift.com/subscription/pkg/pypi-humanize?utm_source=pypi-humanize&utm_medium=pypi"
+Homepage = "https://github.com/python-humanize/humanize"
+"Issue tracker" = "https://github.com/python-humanize/humanize/issues"
+"Release notes" = "https://github.com/python-humanize/humanize/releases"
+Source = "https://github.com/python-humanize/humanize"
+
+
 [tool.black]
 target_version = ["py37"]
 
-[tool.setuptools_scm]
+[tool.hatch]
+version.source = "vcs"
+
+[tool.hatch.build]
+artifacts = [
+  "*.mo",
+]
+
+[tool.hatch.version.raw-options]
 local_scheme = "no-local-version"
+
+[tool.isort]
+profile = "black"
+
+[tool.pydocstyle]
+convention = "google"
+
+[tool.pytest.ini_options]
+addopts = "--color=yes"
diff --git a/scripts/update-translations.sh b/scripts/update-translations.sh
index 90fc641..bb4ec80 100755
--- a/scripts/update-translations.sh
+++ b/scripts/update-translations.sh
@@ -1,13 +1,13 @@
 set -e
 
 # extract new phrases
-/usr/local/opt/gettext/bin/xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -k'NS_:1,2' -l python src/humanize/*.py
+xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -k'NS_:1,2' -k'_ngettext:1,2' -l python src/humanize/*.py
 
 for d in src/humanize/locale/*/; do
     locale="$(basename $d)"
     echo "$locale"
     # add them to locale files
-    /usr/local/opt/gettext/bin/msgmerge -U src/humanize/locale/$locale/LC_MESSAGES/humanize.po humanize.pot
+    msgmerge -U src/humanize/locale/$locale/LC_MESSAGES/humanize.po humanize.pot
     # compile to binary .mo
-    /usr/local/opt/gettext/bin/msgfmt --check -o src/humanize/locale/$locale/LC_MESSAGES/humanize{.mo,.po}
+    msgfmt --check -o src/humanize/locale/$locale/LC_MESSAGES/humanize{.mo,.po}
 done
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index 54cbbc6..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,70 +0,0 @@
-[metadata]
-name = humanize
-description = Python humanize utilities
-long_description = file: README.md
-long_description_content_type = text/markdown
-url = https://github.com/python-humanize/humanize
-author = Jason Moiron
-author_email = jmoiron@jmoiron.net
-maintainer = Hugo van Kemenade
-license = MIT
-license_file = LICENCE
-classifiers = 
-	Development Status :: 5 - Production/Stable
-	Intended Audience :: Developers
-	License :: OSI Approved :: MIT License
-	Operating System :: OS Independent
-	Programming Language :: Python
-	Programming Language :: Python :: 3
-	Programming Language :: Python :: 3 :: Only
-	Programming Language :: Python :: 3.7
-	Programming Language :: Python :: 3.8
-	Programming Language :: Python :: 3.9
-	Programming Language :: Python :: 3.10
-	Programming Language :: Python :: 3.11
-	Programming Language :: Python :: Implementation :: CPython
-	Programming Language :: Python :: Implementation :: PyPy
-	Topic :: Text Processing
-	Topic :: Text Processing :: General
-keywords = humanize time size
-project_urls = 
-	Source=https://github.com/python-humanize/humanize
-	Issue tracker=https://github.com/python-humanize/humanize/issues
-	Funding=https://tidelift.com/subscription/pkg/pypi-humanize?utm_source=pypi-humanize&utm_medium=pypi
-	Documentation=https://python-humanize.readthedocs.io/
-	Release notes=https://github.com/python-humanize/humanize/releases
-
-[options]
-packages = find:
-install_requires = 
-	importlib-metadata;python_version < '3.8'
-python_requires = >=3.7
-include_package_data = True
-package_dir = =src
-zip_safe = False
-
-[options.packages.find]
-where = src
-
-[options.extras_require]
-tests = 
-	freezegun
-	pytest
-	pytest-cov
-
-[flake8]
-max_line_length = 88
-
-[pydocstyle]
-convention = google
-
-[tool:isort]
-profile = black
-
-[tool:pytest]
-addopts = --color=yes
-
-[egg_info]
-tag_build = 
-tag_date = 0
-
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 6068493..0000000
--- a/setup.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from setuptools import setup
-
-setup()
diff --git a/src/humanize.egg-info/PKG-INFO b/src/humanize.egg-info/PKG-INFO
deleted file mode 100644
index 89fc47a..0000000
--- a/src/humanize.egg-info/PKG-INFO
+++ /dev/null
@@ -1,277 +0,0 @@
-Metadata-Version: 2.1
-Name: humanize
-Version: 4.4.0
-Summary: Python humanize utilities
-Home-page: https://github.com/python-humanize/humanize
-Author: Jason Moiron
-Author-email: jmoiron@jmoiron.net
-Maintainer: Hugo van Kemenade
-License: MIT
-Project-URL: Source, https://github.com/python-humanize/humanize
-Project-URL: Issue tracker, https://github.com/python-humanize/humanize/issues
-Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-humanize?utm_source=pypi-humanize&utm_medium=pypi
-Project-URL: Documentation, https://python-humanize.readthedocs.io/
-Project-URL: Release notes, https://github.com/python-humanize/humanize/releases
-Keywords: humanize time size
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
-Classifier: Programming Language :: Python :: 3.10
-Classifier: Programming Language :: Python :: 3.11
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Topic :: Text Processing
-Classifier: Topic :: Text Processing :: General
-Requires-Python: >=3.7
-Description-Content-Type: text/markdown
-Provides-Extra: tests
-License-File: LICENCE
-
-# humanize
-
-[![PyPI version](https://img.shields.io/pypi/v/humanize.svg?logo=pypi&logoColor=FFE873)](https://pypi.org/project/humanize/)
-[![Supported Python versions](https://img.shields.io/pypi/pyversions/humanize.svg?logo=python&logoColor=FFE873)](https://pypi.org/project/humanize/)
-[![Documentation Status](https://readthedocs.org/projects/python-humanize/badge/?version=latest)](https://python-humanize.readthedocs.io/en/latest/?badge=latest)
-[![PyPI downloads](https://img.shields.io/pypi/dm/humanize.svg)](https://pypistats.org/packages/humanize)
-[![GitHub Actions status](https://github.com/python-humanize/humanize/workflows/Test/badge.svg)](https://github.com/python-humanize/humanize/actions)
-[![codecov](https://codecov.io/gh/python-humanize/humanize/branch/main/graph/badge.svg)](https://codecov.io/gh/python-humanize/humanize)
-[![MIT License](https://img.shields.io/github/license/python-humanize/humanize.svg)](LICENCE)
-[![Tidelift](https://tidelift.com/badges/package/pypi/humanize)](https://tidelift.com/subscription/pkg/pypi-humanize?utm_source=pypi-humanize&utm_medium=badge)
-
-This modest package contains various common humanization utilities, like turning
-a number into a fuzzy human-readable duration ("3 minutes ago") or into a
-human-readable size or throughput. It is localized to:
-
-- Arabic
-- Bengali
-- Brazilian Portuguese
-- Catalan
-- Danish
-- Dutch
-- European Portuguese
-- Finnish
-- French
-- German
-- Greek
-- Indonesian
-- Italian
-- Japanese
-- Korean
-- Persian
-- Polish
-- Russian
-- Simplified Chinese
-- Slovak
-- Slovenian
-- Spanish
-- Swedish
-- Turkish
-- Ukrainian
-- Vietnamese
-
-## API reference
-
-[https://python-humanize.readthedocs.io](https://python-humanize.readthedocs.io)
-
-<!-- usage-start -->
-
-## Installation
-
-### From PyPI
-
-```bash
-python3 -m pip install --upgrade humanize
-```
-
-### From source
-
-```bash
-git clone https://github.com/python-humanize/humanize
-cd humanize
-python3 -m pip install -e .
-```
-
-## Usage
-
-### Integer humanization
-
-```pycon
->>> import humanize
->>> humanize.intcomma(12345)
-'12,345'
->>> humanize.intword(123455913)
-'123.5 million'
->>> humanize.intword(12345591313)
-'12.3 billion'
->>> humanize.apnumber(4)
-'four'
->>> humanize.apnumber(41)
-'41'
-```
-
-### Date & time humanization
-
-```pycon
->>> import humanize
->>> import datetime as dt
->>> humanize.naturalday(dt.datetime.now())
-'today'
->>> humanize.naturaldelta(dt.timedelta(seconds=1001))
-'16 minutes'
->>> humanize.naturalday(dt.datetime.now() - dt.timedelta(days=1))
-'yesterday'
->>> humanize.naturalday(dt.date(2007, 6, 5))
-'Jun 05'
->>> humanize.naturaldate(dt.date(2007, 6, 5))
-'Jun 05 2007'
->>> humanize.naturaltime(dt.datetime.now() - dt.timedelta(seconds=1))
-'a second ago'
->>> humanize.naturaltime(dt.datetime.now() - dt.timedelta(seconds=3600))
-'an hour ago'
-```
-
-### Precise time delta
-
-```pycon
->>> import humanize
->>> import datetime as dt
->>> delta = dt.timedelta(seconds=3633, days=2, microseconds=123000)
->>> humanize.precisedelta(delta)
-'2 days, 1 hour and 33.12 seconds'
->>> humanize.precisedelta(delta, minimum_unit="microseconds")
-'2 days, 1 hour, 33 seconds and 123 milliseconds'
->>> humanize.precisedelta(delta, suppress=["days"], format="%0.4f")
-'49 hours and 33.1230 seconds'
-```
-
-#### Smaller units
-
-If seconds are too large, set `minimum_unit` to milliseconds or microseconds:
-
-```pycon
->>> import humanize
->>> import datetime as dt
->>> humanize.naturaldelta(dt.timedelta(seconds=2))
-'2 seconds'
-```
-
-```pycon
->>> delta = dt.timedelta(milliseconds=4)
->>> humanize.naturaldelta(delta)
-'a moment'
->>> humanize.naturaldelta(delta, minimum_unit="milliseconds")
-'4 milliseconds'
->>> humanize.naturaldelta(delta, minimum_unit="microseconds")
-'4 milliseconds'
-```
-
-```pycon
->>> humanize.naturaltime(delta)
-'now'
->>> humanize.naturaltime(delta, minimum_unit="milliseconds")
-'4 milliseconds ago'
->>> humanize.naturaltime(delta, minimum_unit="microseconds")
-'4 milliseconds ago'
-```
-
-### File size humanization
-
-```pycon
->>> import humanize
->>> humanize.naturalsize(1_000_000)
-'1.0 MB'
->>> humanize.naturalsize(1_000_000, binary=True)
-'976.6 KiB'
->>> humanize.naturalsize(1_000_000, gnu=True)
-'976.6K'
-```
-
-### Human-readable floating point numbers
-
-```pycon
->>> import humanize
->>> humanize.fractional(1/3)
-'1/3'
->>> humanize.fractional(1.5)
-'1 1/2'
->>> humanize.fractional(0.3)
-'3/10'
->>> humanize.fractional(0.333)
-'333/1000'
->>> humanize.fractional(1)
-'1'
-```
-
-### Scientific notation
-
-```pycon
->>> import humanize
->>> humanize.scientific(0.3)
-'3.00 x 10⁻¹'
->>> humanize.scientific(500)
-'5.00 x 10²'
->>> humanize.scientific("20000")
-'2.00 x 10⁴'
->>> humanize.scientific(1**10)
-'1.00 x 10⁰'
->>> humanize.scientific(1**10, precision=1)
-'1.0 x 10⁰'
->>> humanize.scientific(1**10, precision=0)
-'1 x 10⁰'
-```
-
-## Localization
-
-How to change locale at runtime:
-
-```pycon
->>> import humanize
->>> import datetime as dt
->>> humanize.naturaltime(dt.timedelta(seconds=3))
-'3 seconds ago'
->>> _t = humanize.i18n.activate("ru_RU")
->>> humanize.naturaltime(dt.timedelta(seconds=3))
-'3 секунды назад'
->>> humanize.i18n.deactivate()
->>> humanize.naturaltime(dt.timedelta(seconds=3))
-'3 seconds ago'
-```
-
-You can pass additional parameter `path` to `activate` to specify a path to search
-locales in.
-
-```pycon
->>> import humanize
->>> humanize.i18n.activate("xx_XX")
-<...>
-FileNotFoundError: [Errno 2] No translation file found for domain: 'humanize'
->>> humanize.i18n.activate("pt_BR", path="path/to/my/own/translation/")
-<gettext.GNUTranslations instance ...>
-```
-
-<!-- usage-end -->
-
-How to add new phrases to existing locale files:
-
-```sh
-xgettext --from-code=UTF-8 -o humanize.pot -k'_' -k'N_' -k'P_:1c,2' -l python src/humanize/*.py  # extract new phrases
-msgmerge -U src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po humanize.pot # add them to locale files
-```
-
-How to add a new locale:
-
-```sh
-msginit -i humanize.pot -o humanize/locale/<locale name>/LC_MESSAGES/humanize.po --locale <locale name>
-```
-
-Where `<locale name>` is a locale abbreviation, eg. `en_GB`, `pt_BR` or just `ru`, `fr`
-etc.
-
-List the language at the top of this README.
diff --git a/src/humanize.egg-info/SOURCES.txt b/src/humanize.egg-info/SOURCES.txt
deleted file mode 100644
index 9302622..0000000
--- a/src/humanize.egg-info/SOURCES.txt
+++ /dev/null
@@ -1,106 +0,0 @@
-.gitignore
-.pre-commit-config.yaml
-.readthedocs.yml
-LICENCE
-MANIFEST.in
-README.md
-RELEASING.md
-mkdocs.yml
-pyproject.toml
-setup.cfg
-setup.py
-tox.ini
-.github/CONTRIBUTING.md
-.github/FUNDING.yml
-.github/ISSUE_TEMPLATE.md
-.github/PULL_REQUEST_TEMPLATE.md
-.github/SECURITY.md
-.github/labels.yml
-.github/release-drafter.yml
-.github/renovate.json
-.github/workflows/docs.yml
-.github/workflows/labels.yml
-.github/workflows/lint.yml
-.github/workflows/release-drafter.yml
-.github/workflows/require-pr-label.yml
-.github/workflows/test.yml
-docs/filesize.md
-docs/i18n.md
-docs/index.md
-docs/number.md
-docs/requirements.txt
-docs/time.md
-docs/css/code_select.css
-scripts/generate-translation-binaries.sh
-scripts/update-translations.sh
-src/humanize/__init__.py
-src/humanize/filesize.py
-src/humanize/i18n.py
-src/humanize/number.py
-src/humanize/py.typed
-src/humanize/time.py
-src/humanize.egg-info/PKG-INFO
-src/humanize.egg-info/SOURCES.txt
-src/humanize.egg-info/dependency_links.txt
-src/humanize.egg-info/not-zip-safe
-src/humanize.egg-info/requires.txt
-src/humanize.egg-info/top_level.txt
-src/humanize/locale/ar/LC_MESSAGES/humanize.mo
-src/humanize/locale/ar/LC_MESSAGES/humanize.po
-src/humanize/locale/bn_BD/LC_MESSAGES/humanize.mo
-src/humanize/locale/bn_BD/LC_MESSAGES/humanize.po
-src/humanize/locale/ca_ES/LC_MESSAGES/humanize.mo
-src/humanize/locale/ca_ES/LC_MESSAGES/humanize.po
-src/humanize/locale/da_DK/LC_MESSAGES/humanize.mo
-src/humanize/locale/da_DK/LC_MESSAGES/humanize.po
-src/humanize/locale/de_DE/LC_MESSAGES/humanize.mo
-src/humanize/locale/de_DE/LC_MESSAGES/humanize.po
-src/humanize/locale/el_GR/LC_MESSAGES/humanize.mo
-src/humanize/locale/el_GR/LC_MESSAGES/humanize.po
-src/humanize/locale/es_ES/LC_MESSAGES/humanize.mo
-src/humanize/locale/es_ES/LC_MESSAGES/humanize.po
-src/humanize/locale/fa_IR/LC_MESSAGES/humanize.mo
-src/humanize/locale/fa_IR/LC_MESSAGES/humanize.po
-src/humanize/locale/fi_FI/LC_MESSAGES/humanize.mo
-src/humanize/locale/fi_FI/LC_MESSAGES/humanize.po
-src/humanize/locale/fr_FR/LC_MESSAGES/humanize.mo
-src/humanize/locale/fr_FR/LC_MESSAGES/humanize.po
-src/humanize/locale/id_ID/LC_MESSAGES/humanize.mo
-src/humanize/locale/id_ID/LC_MESSAGES/humanize.po
-src/humanize/locale/it_IT/LC_MESSAGES/humanize.mo
-src/humanize/locale/it_IT/LC_MESSAGES/humanize.po
-src/humanize/locale/ja_JP/LC_MESSAGES/humanize.mo
-src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po
-src/humanize/locale/ko_KR/LC_MESSAGES/humanize.mo
-src/humanize/locale/ko_KR/LC_MESSAGES/humanize.po
-src/humanize/locale/nl_NL/LC_MESSAGES/humanize.mo
-src/humanize/locale/nl_NL/LC_MESSAGES/humanize.po
-src/humanize/locale/pl_PL/LC_MESSAGES/humanize.mo
-src/humanize/locale/pl_PL/LC_MESSAGES/humanize.po
-src/humanize/locale/pt_BR/LC_MESSAGES/humanize.mo
-src/humanize/locale/pt_BR/LC_MESSAGES/humanize.po
-src/humanize/locale/pt_PT/LC_MESSAGES/humanize.mo
-src/humanize/locale/pt_PT/LC_MESSAGES/humanize.po
-src/humanize/locale/ru_RU/LC_MESSAGES/humanize.mo
-src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po
-src/humanize/locale/sk_SK/LC_MESSAGES/humanize.mo
-src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po
-src/humanize/locale/sl_SI/LC_MESSAGES/humanize.mo
-src/humanize/locale/sl_SI/LC_MESSAGES/humanize.po
-src/humanize/locale/sv_SE/LC_MESSAGES/humanize.mo
-src/humanize/locale/sv_SE/LC_MESSAGES/humanize.po
-src/humanize/locale/tr_TR/LC_MESSAGES/humanize.mo
-src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po
-src/humanize/locale/uk_UA/LC_MESSAGES/humanize.mo
-src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po
-src/humanize/locale/vi_VN/LC_MESSAGES/humanize.mo
-src/humanize/locale/vi_VN/LC_MESSAGES/humanize.po
-src/humanize/locale/zh_CN/LC_MESSAGES/humanize.mo
-src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po
-src/humanize/locale/zh_HK/LC_MESSAGES/humanize.mo
-src/humanize/locale/zh_HK/LC_MESSAGES/humanize.po
-tests/__init__.py
-tests/test_filesize.py
-tests/test_i18n.py
-tests/test_number.py
-tests/test_time.py
\ No newline at end of file
diff --git a/src/humanize.egg-info/dependency_links.txt b/src/humanize.egg-info/dependency_links.txt
deleted file mode 100644
index 8b13789..0000000
--- a/src/humanize.egg-info/dependency_links.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/humanize.egg-info/not-zip-safe b/src/humanize.egg-info/not-zip-safe
deleted file mode 100644
index 8b13789..0000000
--- a/src/humanize.egg-info/not-zip-safe
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/humanize.egg-info/requires.txt b/src/humanize.egg-info/requires.txt
deleted file mode 100644
index c7bb048..0000000
--- a/src/humanize.egg-info/requires.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-[:python_version < "3.8"]
-importlib-metadata
-
-[tests]
-freezegun
-pytest
-pytest-cov
diff --git a/src/humanize.egg-info/top_level.txt b/src/humanize.egg-info/top_level.txt
deleted file mode 100644
index 38040f7..0000000
--- a/src/humanize.egg-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-humanize
diff --git a/src/humanize/filesize.py b/src/humanize/filesize.py
index 6e1f57e..58d2803 100644
--- a/src/humanize/filesize.py
+++ b/src/humanize/filesize.py
@@ -4,8 +4,8 @@
 from __future__ import annotations
 
 suffixes = {
-    "decimal": ("kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"),
-    "binary": ("KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"),
+    "decimal": (" kB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"),
+    "binary": (" KiB", " MiB", " GiB", " TiB", " PiB", " EiB", " ZiB", " YiB"),
     "gnu": "KMGTPEZY",
 }
 
@@ -34,6 +34,10 @@ def naturalsize(
         '2.930K'
         >>> naturalsize(3000, True)
         '2.9 KiB'
+        >>> naturalsize(10**28)
+        '10000.0 YB'
+        >>> naturalsize(-4096, True)
+        '-4.0 KiB'
 
         ```
     Args:
@@ -70,12 +74,8 @@ def naturalsize(
     for i, s in enumerate(suffix):
         unit = base ** (i + 2)
 
-        if abs_bytes < unit and not gnu:
-            return (format + " %s") % ((base * bytes_ / unit), s)
+        if abs_bytes < unit:
+            break
 
-        if abs_bytes < unit and gnu:
-            return (format + "%s") % ((base * bytes_ / unit), s)
-
-    if gnu:
-        return (format + "%s") % ((base * bytes_ / unit), s)
-    return (format + " %s") % ((base * bytes_ / unit), s)
+    ret: str = format % (base * bytes_ / unit) + s
+    return ret
diff --git a/src/humanize/i18n.py b/src/humanize/i18n.py
index 664b074..c6fc6cc 100644
--- a/src/humanize/i18n.py
+++ b/src/humanize/i18n.py
@@ -17,11 +17,15 @@ _CURRENT = local()
 _THOUSANDS_SEPARATOR = {
     "de_DE": ".",
     "fr_FR": " ",
+    "it_IT": ".",
+    "pt_BR": ".",
 }
 
 # Mapping of locale to decimal separator
 _DECIMAL_SEPARATOR = {
     "de_DE": ",",
+    "it_IT": ",",
+    "pt_BR": ",",
 }
 
 
@@ -60,10 +64,11 @@ def activate(locale: str, path: str | None = None) -> gettext_module.NullTransla
         path = _get_default_locale_path()
 
     if path is None:
-        raise Exception(
+        msg = (
             "Humanize cannot determinate the default location of the 'locale' folder. "
             "You need to pass the path explicitly."
         )
+        raise Exception(msg)
     if locale not in _TRANSLATIONS:
         translation = gettext_module.translation("humanize", path, [locale])
         _TRANSLATIONS[locale] = translation
diff --git a/src/humanize/locale/ar/LC_MESSAGES/humanize.po b/src/humanize/locale/ar/LC_MESSAGES/humanize.po
index aabf2f4..9eccc44 100644
--- a/src/humanize/locale/ar/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/ar/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-04-13 17:27+0300\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2022-04-13 17:28+0300\n"
 "Last-Translator: AYMEN Mohammed <let.me.code.safe@gmail.com>\n"
 "Language-Team: Arabic <let.me.code.safe@gmail.com>\n"
@@ -17,341 +17,347 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "صفر"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "اول"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "ثاني"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "ثالث"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "رابع"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "خامس"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "سادس"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "سابع"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "ثامن"
 
-#: src/humanize/number.py:67
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "تاسع"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "صفر"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "اول"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ثاني"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ثالث"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "رابع"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "خامس"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "سادس"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "سابع"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ثامن"
 
-#: src/humanize/number.py:80
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "تاسع"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "الف"
 msgstr[1] "الاف"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "مليون"
 msgstr[1] "ملايين"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "مليار"
 msgstr[1] "مليارات"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "تريليون"
 msgstr[1] "تريليونات"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "كوادريليون"
 msgstr[1] "كوادريليون"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "كوينتيليون"
 msgstr[1] "كوينتيليون"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "سكستليون"
 msgstr[1] "سكستليون"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "سبتيليون"
 msgstr[1] "سبتيليون"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "اوكتيليون"
 msgstr[1] "اوكتيليون"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "نونليون"
 msgstr[1] "نونليون"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "ديليون"
 msgstr[1] "ديليون"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:189
+msgid "googol"
+msgid_plural "googol"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "صفر"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "واحد"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "اثنين"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "ثلاثه"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "اربعه"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "خمسه"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "سته"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "سبعه"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "ثمانيه"
 
-#: src/humanize/number.py:256
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "تسعه"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d ميكرو من الثانية"
 msgstr[1] "%d ميكرو من الثانية"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d جزء من الثانية"
 msgstr[1] "%d اجزاء من الثانية"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "لحظة"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "ثانية"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d ثانية"
 msgstr[1] "%d ثواني"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "دقيقة"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d دقيقة"
 msgstr[1] "%d دقائق"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "ساعة"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d ساعة"
 msgstr[1] "%d ساعات"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "يوم"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d يوم"
 msgstr[1] "%d أيام"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "شهر"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d شهر"
 msgstr[1] "%d أشهر"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "سنة"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 سنة ، %d يوم"
 msgstr[1] "1 سنة ، %d ايام"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "سنة وشهر"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 سنة ، %d شهر"
 msgstr[1] "1 سنة ، %d اشهر"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d سنة"
 msgstr[1] "%d سنين"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s من الان"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "قبل %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "الان"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "اليوم"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "بكرة"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "أمس"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s و %s"
diff --git a/src/humanize/locale/bn_BD/LC_MESSAGES/humanize.po b/src/humanize/locale/bn_BD/LC_MESSAGES/humanize.po
index 2109573..ec5a3f4 100644
--- a/src/humanize/locale/bn_BD/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/bn_BD/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-29 21:59+0600\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2021-07-29 22:07+0600\n"
 "Last-Translator: U-WASI-PC\\Wasi Master <arianmollik323@gmail.com>\n"
 "Language-Team: Bengali\n"
@@ -17,275 +17,349 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr ""
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr ""
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr ""
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:67
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr ""
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr ""
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr ""
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:80
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr ""
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:178
+msgid "thousand"
+msgid_plural "thousand"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:179
+#, fuzzy
+msgid "million"
+msgid_plural "million"
+msgstr[0] "%d মিলিসেকন্ড"
+msgstr[1] "%d মিলিসেকন্ড"
+
+#: src/humanize/number.py:180
+msgid "billion"
+msgid_plural "billion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:181
+msgid "trillion"
+msgid_plural "trillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:182
+msgid "quadrillion"
+msgid_plural "quadrillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:183
+msgid "quintillion"
+msgid_plural "quintillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:184
+msgid "sextillion"
+msgid_plural "sextillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:185
+msgid "septillion"
+msgid_plural "septillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:186
+msgid "octillion"
+msgid_plural "octillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:187
+msgid "nonillion"
+msgid_plural "nonillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:188
+#, fuzzy
+msgid "decillion"
+msgid_plural "decillion"
+msgstr[0] "%d মিলিসেকন্ড"
+msgstr[1] "%d মিলিসেকন্ড"
+
+#: src/humanize/number.py:189
+msgid "googol"
+msgid_plural "googol"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "শুন্য"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "এক"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "দুই"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "তিন"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "চার"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "পাচ"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "ছয়"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "সাত"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "আট"
 
-#: src/humanize/number.py:256
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "নয়"
 
-#: src/humanize/time.py:138
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d মাইক্রোসেকন্ড"
 msgstr[1] "%d মাইক্রোসেকন্ড"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d মিলিসেকন্ড"
 msgstr[1] "%d মিলিসেকন্ড"
 
-#: src/humanize/time.py:150 src/humanize/time.py:231
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "এক মুহুর্ত"
 
-#: src/humanize/time.py:152
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "এক সেকন্ড"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d সেকন্ড"
 msgstr[1] "%d সেকন্ড"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "এক মিনিট"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d মিনিট"
 msgstr[1] "%d মিনিট"
 
-#: src/humanize/time.py:161
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "এক ঘন্টা"
 
-#: src/humanize/time.py:164
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d ঘন্টা"
 msgstr[1] "%d ঘন্টা"
 
-#: src/humanize/time.py:167
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "এক দিন"
 
-#: src/humanize/time.py:169 src/humanize/time.py:172
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d দিন"
 msgstr[1] "%d দিন"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "এক মাস"
 
-#: src/humanize/time.py:176
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d মাস"
 msgstr[1] "%d মাস"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "এক বছর"
 
-#: src/humanize/time.py:181 src/humanize/time.py:190
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "%d বছর"
 msgstr[1] "%d বছর"
 
-#: src/humanize/time.py:184
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "১ বছর, ১ মাস"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "১ বছর, %d মাস"
 msgstr[1] "১ বছর, %d মাস"
 
-#: src/humanize/time.py:192
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d বছর"
 msgstr[1] "%d বছর"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "আজ থেকে %s পরে"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s আগে"
 
-#: src/humanize/time.py:232
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "এখন"
 
-#: src/humanize/time.py:255
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "আজকে"
 
-#: src/humanize/time.py:257
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "আগামীকাল"
 
-#: src/humanize/time.py:259
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "গতকাল"
 
-#: src/humanize/time.py:545
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s আর  %s"
diff --git a/src/humanize/locale/ca_ES/LC_MESSAGES/humanize.po b/src/humanize/locale/ca_ES/LC_MESSAGES/humanize.po
index 5fbde4a..4fc1d32 100644
--- a/src/humanize/locale/ca_ES/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/ca_ES/LC_MESSAGES/humanize.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2021-04-09 19:57+0200\n"
 "Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
 "Language-Team: Catalan\n"
@@ -17,347 +17,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n!=1;\n"
 "X-Generator: Poedit 2.4.1\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "º"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "º"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "º"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "º"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "º"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "º"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milió"
 msgstr[1] "milió"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "mil milions"
 msgstr[1] "mil milions"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "bilions"
 msgstr[1] "bilions"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "quadrilió"
 msgstr[1] "quadrilió"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "quintillió"
 msgstr[1] "quintillió"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sextilió"
 msgstr[1] "sextilió"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septilió"
 msgstr[1] "septilió"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "octilió"
 msgstr[1] "octilió"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "nonilió"
 msgstr[1] "nonilió"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "decilió"
 msgstr[1] "decilió"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "zero"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "un"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dos"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tres"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "quatre"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "cinc"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "sis"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "set"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "vuit"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "nou"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microsegon"
 msgstr[1] "%d microsegons"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d mil·lisegons"
 msgstr[1] "%d mil·lisegons"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "un moment"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "un segon"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d segon"
 msgstr[1] "%d segons"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "un minut"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minut"
 msgstr[1] "%d minuts"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "una hora"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d hora"
 msgstr[1] "%d hores"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "un dia"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d dia"
 msgstr[1] "%d dies"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "un mes"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mes"
 msgstr[1] "%d mesos"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "un any"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 any, %d dia"
 msgstr[1] "1 any, %d dies"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 any, 1 mes"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 any, %d mes"
 msgstr[1] "1 any, %d mesos"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d any"
 msgstr[1] "%d anys"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "en %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "fa %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "ara"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "avui"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "demà"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "ahir"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s i %s"
diff --git a/src/humanize/locale/da_DK/LC_MESSAGES/humanize.mo b/src/humanize/locale/da_DK/LC_MESSAGES/humanize.mo
index 79dd84e..a74df1b 100644
Binary files a/src/humanize/locale/da_DK/LC_MESSAGES/humanize.mo and b/src/humanize/locale/da_DK/LC_MESSAGES/humanize.mo differ
diff --git a/src/humanize/locale/da_DK/LC_MESSAGES/humanize.po b/src/humanize/locale/da_DK/LC_MESSAGES/humanize.po
index 9c75042..d65f32c 100644
--- a/src/humanize/locale/da_DK/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/da_DK/LC_MESSAGES/humanize.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
-"Report-Msgid-Bugs-To: https://github.com/python-humanize/humanize/issues\n"
-"POT-Creation-Date: 2021-07-05 09:49+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2021-11-24 22:25+0200\n"
 "Last-Translator: YURII DEREVYCH <gkhelloworld@gmail.com>\n"
 "Language-Team: Da\n"
@@ -18,347 +18,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 3.0\n"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr ":e"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr ":t"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr ":e"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:67
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr ":e"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr ":t"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr ":e"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:80
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "tusind"
 msgstr[1] "thousand"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "million"
 msgstr[1] "millioner"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "billion"
 msgstr[1] "billioner"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "billion"
 msgstr[1] "billioner"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "quadrillion"
 msgstr[1] "quadrillioner"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "quintillion"
 msgstr[1] "quintillioner"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sextillion"
 msgstr[1] "sextillioner"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septillion"
 msgstr[1] "septillioner"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "octillion"
 msgstr[1] "octillioner"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "nonillion"
 msgstr[1] "nonillioner"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "decillion"
 msgstr[1] "decillioner"
 
-#: src/humanize/number.py:152
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "nul"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "en"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "to"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tre"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "fire"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "fem"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "seks"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "syv"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "otte"
 
-#: src/humanize/number.py:256
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "ni"
 
-#: src/humanize/time.py:138
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d mikrosekund"
 msgstr[1] "%d mikrosekunder"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d millsekund"
 msgstr[1] "%d millsekunder"
 
-#: src/humanize/time.py:150 src/humanize/time.py:231
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "et øjeblik"
 
-#: src/humanize/time.py:152
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "en anden"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d sekund"
 msgstr[1] "%d sekunder"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "en minut"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minut"
 msgstr[1] "%d minutter"
 
-#: src/humanize/time.py:161
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "en time"
 
-#: src/humanize/time.py:164
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d time"
 msgstr[1] "%d timer"
 
-#: src/humanize/time.py:167
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "en dag"
 
-#: src/humanize/time.py:169 src/humanize/time.py:172
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d dag"
 msgstr[1] "%d dage"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "en måned"
 
-#: src/humanize/time.py:176
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d måned"
 msgstr[1] "%d måneder"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "et år"
 
-#: src/humanize/time.py:181 src/humanize/time.py:190
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 år, %d dag"
 msgstr[1] "1 år, %d dage"
 
-#: src/humanize/time.py:184
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 år, 1 måned"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 år, %d måned"
 msgstr[1] "1 år, %d måneder"
 
-#: src/humanize/time.py:192
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d år"
 msgstr[1] "%d år"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s fra nu"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s siden"
 
-#: src/humanize/time.py:232
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "nu"
 
-#: src/humanize/time.py:255
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "i dag"
 
-#: src/humanize/time.py:257
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "i morgen"
 
-#: src/humanize/time.py:259
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "i går"
 
-#: src/humanize/time.py:545
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s og %s"
diff --git a/src/humanize/locale/de_DE/LC_MESSAGES/humanize.mo b/src/humanize/locale/de_DE/LC_MESSAGES/humanize.mo
index 6942e8c..bf8bbcb 100644
Binary files a/src/humanize/locale/de_DE/LC_MESSAGES/humanize.mo and b/src/humanize/locale/de_DE/LC_MESSAGES/humanize.mo differ
diff --git a/src/humanize/locale/de_DE/LC_MESSAGES/humanize.po b/src/humanize/locale/de_DE/LC_MESSAGES/humanize.po
index d4a7f6e..026df97 100644
--- a/src/humanize/locale/de_DE/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/de_DE/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2016-12-18 11:50+0100\n"
 "Last-Translator: Christian Klein <chris@5711.org>\n"
 "Language-Team: German\n"
@@ -19,347 +19,347 @@ msgstr ""
 "Generated-By: Christian Klein\n"
 "X-Generator: Sublime Text 3\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Tausend"
+msgstr[1] "Tausend"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "Million"
-msgstr[1] "Million"
+msgstr[1] "Millionen"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "Milliarde"
-msgstr[1] "Milliarde"
+msgstr[1] "Milliarden"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "Billion"
-msgstr[1] "Billion"
+msgstr[1] "Billionen"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "Billiarde"
-msgstr[1] "Billiarde"
+msgstr[1] "Billiarden"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "Trillion"
-msgstr[1] "Trillion"
+msgstr[1] "Trillionen"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "Trilliarde"
-msgstr[1] "Trilliarde"
+msgstr[1] "Trilliarden"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "Quadrillion"
-msgstr[1] "Quadrillion"
+msgstr[1] "Quadrillionen"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "Quadrillarde"
-msgstr[1] "Quadrillarde"
+msgstr[1] "Quadrillarden"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "Quintillion"
-msgstr[1] "Quintillion"
+msgstr[1] "Quintillionen"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "Quintilliarde"
-msgstr[1] "Quintilliarde"
+msgstr[1] "Quintilliarden"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "Googol"
 msgstr[1] "Googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "null"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "eins"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "zwei"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "drei"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "vier"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "fünf"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "sechs"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sieben"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "acht"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "neun"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d Mikrosekunde"
 msgstr[1] "%d Mikrosekunden"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d Millisekunde"
 msgstr[1] "%d Millisekunden"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "ein Moment"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "eine Sekunde"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d Sekunde"
 msgstr[1] "%d Sekunden"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "eine Minute"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d Minute"
 msgstr[1] "%d Minuten"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "eine Stunde"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d Stunde"
 msgstr[1] "%d Stunden"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "ein Tag"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d Tag"
 msgstr[1] "%d Tage"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "ein Monat"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d Monat"
 msgstr[1] "%d Monate"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "ein Jahr"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "ein Jahr und %d Tag"
 msgstr[1] "ein Jahr und %d Tage"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "ein Monat"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "ein Jahr und %d Monat"
 msgstr[1] "ein Jahr und %d Monate"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d Jahr"
 msgstr[1] "%d Jahre"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s ab jetzt"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "vor %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "jetzt"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "heute"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "morgen"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "gestern"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s und %s"
diff --git a/src/humanize/locale/el_GR/LC_MESSAGES/humanize.mo b/src/humanize/locale/el_GR/LC_MESSAGES/humanize.mo
index 99db2ae..cabaa53 100644
Binary files a/src/humanize/locale/el_GR/LC_MESSAGES/humanize.mo and b/src/humanize/locale/el_GR/LC_MESSAGES/humanize.mo differ
diff --git a/src/humanize/locale/el_GR/LC_MESSAGES/humanize.po b/src/humanize/locale/el_GR/LC_MESSAGES/humanize.po
index d7e1a0c..4128976 100644
--- a/src/humanize/locale/el_GR/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/el_GR/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-08-05 01:06+0300\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2022-08-05 01:09+0300\n"
 "Last-Translator: Isaak Tsalicoglou <isaak@waseigo.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -19,347 +19,427 @@ msgstr ""
 "Generated-By: Isaak Tsalicoglou\n"
 "X-Generator: Mousepad 0.5.9\n"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
-msgid "ος"
-msgstr "."
+msgid "st"
+msgstr ""
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
-msgid "ος"
-msgstr "."
+msgid "nd"
+msgstr ""
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
-msgid "ος"
-msgstr "."
+msgid "rd"
+msgstr ""
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:80
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
-msgid "ος"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:84
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:85
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
-msgid "η"
-msgstr "."
+msgid "st"
+msgstr ""
 
-#: src/humanize/number.py:86
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
-msgid "η"
-msgstr "."
+msgid "nd"
+msgstr ""
 
-#: src/humanize/number.py:87
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
-msgid "η"
-msgstr "."
+msgid "rd"
+msgstr ""
 
-#: src/humanize/number.py:88
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:89
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:90
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:91
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:92
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:93
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
-msgid "η"
-msgstr "."
+msgid "th"
+msgstr ""
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "χιλιάδα"
 msgstr[1] "χιλιάδες"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "εκατομμύριο"
 msgstr[1] "εκατομμύρια"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "δισεκατομμύριο"
 msgstr[1] "δισεκατομμύρια"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "τρισεκατομμύριο"
 msgstr[1] "τρισεκατομμύρια"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "τετράκις εκατομμύριο"
 msgstr[1] "τετράκις εκατομμύρια"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "πεντάκις εκατομμύριο"
 msgstr[1] "πεντάκις εκατομμύρια"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "εξάκις εκατομμύριο"
 msgstr[1] "εξάκις εκατομμύρια"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "επτάκις εκατομμύριο"
 msgstr[1] "επτάκις εκατομμύρια"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "οκτάκις εκατομμύριο"
 msgstr[1] "οκτάκις εκατομμύρια"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "εννεάκις εκατομμύριο"
 msgstr[1] "εννεάκις εκατομμύρια"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "δεκάκις εκατομμύριο"
 msgstr[1] "δεκάκις εκατομμύρια"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "δέκα τριακονταδυάκις εκατομμύριο"
 msgstr[1] "δέκα τριακονταδυάκις εκατομμύρια"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "μηδέν"
 
-#: src/humanize/number.py:275
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "ένα"
 
-#: src/humanize/number.py:276
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "δύο"
 
-#: src/humanize/number.py:277
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "τρία"
 
-#: src/humanize/number.py:278
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "τέσσερα"
 
-#: src/humanize/number.py:279
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "πέντε"
 
-#: src/humanize/number.py:280
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "έξι"
 
-#: src/humanize/number.py:281
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "επτά"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "οκτώ"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "εννέα"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d εκατομμυριοστό του δευτερολέπτου"
 msgstr[1] "%d εκατομμυριοστά του δευτερολέπτου"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d χιλιοστό του δευτερολέπτου"
 msgstr[1] "%d χιλιοστά του δευτερολέπτου"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "μια στιγμή"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "ένα δευτερόλεπτο"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d δευτερόλεπτο"
 msgstr[1] "%d δευτερόλεπτα"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "ένα λεπτό"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d λεπτό"
 msgstr[1] "%d λεπτά"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "μία ώρα"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d ώρα"
 msgstr[1] "%d ώρες"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "μία ημέρα"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d ημέρα"
 msgstr[1] "%d ημέρες"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "ένα μήνα"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d μήνα"
 msgstr[1] "%d μήνες"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "ένα έτος"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "ένα έτος και %d ημέρα"
 msgstr[1] "ένα έτος και %d ημέρες"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "ένα έτος και ένα μήνα"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "ένα έτος και %d μήνα"
 msgstr[1] "ένα έτος και %d μήνες"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d έτος"
 msgstr[1] "%d έτη"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "σε %s από τώρα"
 
-#: src/humanize/time.py:242
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "πριν από %s"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "τώρα"
 
-#: src/humanize/time.py:269
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "σήμερα"
 
-#: src/humanize/time.py:271
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "αύριο"
 
-#: src/humanize/time.py:273
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "χθες"
 
-#: src/humanize/time.py:581
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s και %s"
+
+#~ msgctxt "0 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "1 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "2 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "3 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "4 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "5 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "6 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "7 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "8 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "9 (male)"
+#~ msgid "ος"
+#~ msgstr "."
+
+#~ msgctxt "0 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "1 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "2 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "3 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "4 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "5 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "6 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "7 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "8 (female)"
+#~ msgid "η"
+#~ msgstr "."
+
+#~ msgctxt "9 (female)"
+#~ msgid "η"
+#~ msgstr "."
diff --git a/src/humanize/locale/es_ES/LC_MESSAGES/humanize.po b/src/humanize/locale/es_ES/LC_MESSAGES/humanize.po
index 0795951..80e52a0 100644
--- a/src/humanize/locale/es_ES/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/es_ES/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2020-03-31 21:08+0200\n"
 "Last-Translator: Álvaro Mondéjar <mondejar1994@gmail.com>\n"
 "Language-Team: \n"
@@ -18,347 +18,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 2.3\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "º"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "º"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "º"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ª"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ª"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ª"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "mil"
 msgstr[1] "mil"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "millón"
 msgstr[1] "millones"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "billón"
 msgstr[1] "billones"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "trillón"
 msgstr[1] "trillones"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "quatrillón"
 msgstr[1] "quatrillones"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "quintillón"
 msgstr[1] "quintillones"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sextillón"
 msgstr[1] "sextillones"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septillón"
 msgstr[1] "septillones"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "octillón"
 msgstr[1] "octillones"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "nonillón"
 msgstr[1] "nonillones"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "decillón"
 msgstr[1] "decillones"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "gúgol"
 msgstr[1] "gúgol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "cero"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "uno"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dos"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tres"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "cuatro"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "cinco"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "seis"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "siete"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "ocho"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "nueve"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microsegundo"
 msgstr[1] "%d microsegundos"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d milisegundo"
 msgstr[1] "%d milisegundos"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "un momento"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "un segundo"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d segundo"
 msgstr[1] "%d segundos"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "un minuto"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuto"
 msgstr[1] "%d minutos"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "una hora"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d hora"
 msgstr[1] "%d horas"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "un día"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d día"
 msgstr[1] "%d días"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "un mes"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mes"
 msgstr[1] "%d meses"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "un año"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 año y %d día"
 msgstr[1] "1 año y %d días"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 año y 1 mes"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 año y %d mes"
 msgstr[1] "1 año y %d meses"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d año"
 msgstr[1] "%d años"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "en %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "hace %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "ahora"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "hoy"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "mañana"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "ayer"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s y %s"
diff --git a/src/humanize/locale/eu/LC_MESSAGES/humanize.mo b/src/humanize/locale/eu/LC_MESSAGES/humanize.mo
new file mode 100644
index 0000000..cd62ff3
Binary files /dev/null and b/src/humanize/locale/eu/LC_MESSAGES/humanize.mo differ
diff --git a/src/humanize/locale/eu/LC_MESSAGES/humanize.po b/src/humanize/locale/eu/LC_MESSAGES/humanize.po
new file mode 100644
index 0000000..3d09ae9
--- /dev/null
+++ b/src/humanize/locale/eu/LC_MESSAGES/humanize.po
@@ -0,0 +1,364 @@
+# Basque translations for PACKAGE package.
+# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Mikel Olasagasti <mikel@olasagasti.info>, 2023.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
+"PO-Revision-Date: 2023-01-02 20:35+0100\n"
+"Last-Translator: Mikel Olasagasti <mikel@olasagasti.info>\n"
+"Language-Team: Basque <translation-team-eu@googlegroups.com>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.1.1\n"
+
+#: src/humanize/number.py:84
+msgctxt "0 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:85
+msgctxt "1 (male)"
+msgid "st"
+msgstr "."
+
+#: src/humanize/number.py:86
+msgctxt "2 (male)"
+msgid "nd"
+msgstr "."
+
+#: src/humanize/number.py:87
+msgctxt "3 (male)"
+msgid "rd"
+msgstr "."
+
+#: src/humanize/number.py:88
+msgctxt "4 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:89
+msgctxt "5 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:90
+msgctxt "6 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:91
+msgctxt "7 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:92
+msgctxt "8 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:93
+msgctxt "9 (male)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:97
+msgctxt "0 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:98
+msgctxt "1 (female)"
+msgid "st"
+msgstr "."
+
+#: src/humanize/number.py:99
+msgctxt "2 (female)"
+msgid "nd"
+msgstr "."
+
+#: src/humanize/number.py:100
+msgctxt "3 (female)"
+msgid "rd"
+msgstr "."
+
+#: src/humanize/number.py:101
+msgctxt "4 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:102
+msgctxt "5 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:103
+msgctxt "6 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:104
+msgctxt "7 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:105
+msgctxt "8 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:106
+msgctxt "9 (female)"
+msgid "th"
+msgstr "."
+
+#: src/humanize/number.py:178
+msgid "thousand"
+msgid_plural "thousand"
+msgstr[0] "mila"
+msgstr[1] "mila"
+
+#: src/humanize/number.py:179
+msgid "million"
+msgid_plural "million"
+msgstr[0] "milioi"
+msgstr[1] "milioi"
+
+#: src/humanize/number.py:180
+msgid "billion"
+msgid_plural "billion"
+msgstr[0] "miliar"
+msgstr[1] "miliar"
+
+#: src/humanize/number.py:181
+msgid "trillion"
+msgid_plural "trillion"
+msgstr[0] "trilioi"
+msgstr[1] "trilioi"
+
+#: src/humanize/number.py:182
+msgid "quadrillion"
+msgid_plural "quadrillion"
+msgstr[0] "kuatrilioi"
+msgstr[1] "kuatrilioi"
+
+#: src/humanize/number.py:183
+msgid "quintillion"
+msgid_plural "quintillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:184
+msgid "sextillion"
+msgid_plural "sextillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:185
+msgid "septillion"
+msgid_plural "septillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:186
+msgid "octillion"
+msgid_plural "octillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:187
+msgid "nonillion"
+msgid_plural "nonillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:188
+msgid "decillion"
+msgid_plural "decillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/humanize/number.py:189
+msgid "googol"
+msgid_plural "googol"
+msgstr[0] "googol"
+msgstr[1] "googol"
+
+#: src/humanize/number.py:301
+msgid "zero"
+msgstr "zero"
+
+#: src/humanize/number.py:302
+msgid "one"
+msgstr "bat"
+
+#: src/humanize/number.py:303
+msgid "two"
+msgstr "bi"
+
+#: src/humanize/number.py:304
+msgid "three"
+msgstr "hiru"
+
+#: src/humanize/number.py:305
+msgid "four"
+msgstr "lau"
+
+#: src/humanize/number.py:306
+msgid "five"
+msgstr "bost"
+
+#: src/humanize/number.py:307
+msgid "six"
+msgstr "sei"
+
+#: src/humanize/number.py:308
+msgid "seven"
+msgstr "zazpi"
+
+#: src/humanize/number.py:309
+msgid "eight"
+msgstr "zortzi"
+
+#: src/humanize/number.py:310
+msgid "nine"
+msgstr "bederatzi"
+
+#: src/humanize/time.py:152
+#, python-format
+msgid "%d microsecond"
+msgid_plural "%d microseconds"
+msgstr[0] "mikrosegundo %d"
+msgstr[1] "%d mikrosegundo"
+
+#: src/humanize/time.py:161
+#, python-format
+msgid "%d millisecond"
+msgid_plural "%d milliseconds"
+msgstr[0] "milisegundo %d"
+msgstr[1] "%d milisegundo"
+
+#: src/humanize/time.py:164 src/humanize/time.py:259
+msgid "a moment"
+msgstr "une bat"
+
+#: src/humanize/time.py:167
+msgid "a second"
+msgstr "segundo bat"
+
+#: src/humanize/time.py:170
+#, python-format
+msgid "%d second"
+msgid_plural "%d seconds"
+msgstr[0] "segundo %d"
+msgstr[1] "%d segundo"
+
+#: src/humanize/time.py:173
+msgid "a minute"
+msgstr "minutu bat"
+
+#: src/humanize/time.py:177
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] "minutu %d"
+msgstr[1] "%d minutu"
+
+#: src/humanize/time.py:180
+msgid "an hour"
+msgstr "ordu bat"
+
+#: src/humanize/time.py:184
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] "ordu %d"
+msgstr[1] "%d ordu"
+
+#: src/humanize/time.py:188
+msgid "a day"
+msgstr "egun bat"
+
+#: src/humanize/time.py:191 src/humanize/time.py:194
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] "egun %d"
+msgstr[1] "%d egun"
+
+#: src/humanize/time.py:197
+msgid "a month"
+msgstr "hilabete bat"
+
+#: src/humanize/time.py:199
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] "hilabete %d"
+msgstr[1] "%d hilabete"
+
+#: src/humanize/time.py:203
+msgid "a year"
+msgstr "urte bat"
+
+#: src/humanize/time.py:206 src/humanize/time.py:217
+#, python-format
+msgid "1 year, %d day"
+msgid_plural "1 year, %d days"
+msgstr[0] "urte 1, egun %d"
+msgstr[1] "urte 1, %d egun"
+
+#: src/humanize/time.py:210
+msgid "1 year, 1 month"
+msgstr "urte 1, hilabete 1"
+
+#: src/humanize/time.py:213
+#, python-format
+msgid "1 year, %d month"
+msgid_plural "1 year, %d months"
+msgstr[0] "urte 1, hilabete %d"
+msgstr[1] "urte 1, %d hilabete"
+
+#: src/humanize/time.py:219
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] "urte %d"
+msgstr[1] "%d urte"
+
+#: src/humanize/time.py:256
+#, python-format
+msgid "%s from now"
+msgstr "hemendik %s-(e)ra"
+
+#: src/humanize/time.py:256
+#, python-format
+msgid "%s ago"
+msgstr "orain dela %s"
+
+#: src/humanize/time.py:260
+msgid "now"
+msgstr "orain"
+
+#: src/humanize/time.py:284
+msgid "today"
+msgstr "gaur"
+
+#: src/humanize/time.py:287
+msgid "tomorrow"
+msgstr "bihar"
+
+#: src/humanize/time.py:290
+msgid "yesterday"
+msgstr "atzo"
+
+#: src/humanize/time.py:600
+#, python-format
+msgid "%s and %s"
+msgstr "%s eta %s"
diff --git a/src/humanize/locale/fa_IR/LC_MESSAGES/humanize.po b/src/humanize/locale/fa_IR/LC_MESSAGES/humanize.po
index f5b841e..a1ac7ac 100644
--- a/src/humanize/locale/fa_IR/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/fa_IR/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2017-01-10 02:44+0330\n"
 "Last-Translator: Christian Klein <chris@5711.org>\n"
 "Language-Team: German\n"
@@ -19,347 +19,347 @@ msgstr ""
 "Generated-By: Christian Klein\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "صفرمین"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "اولین"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "دومین"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "سومین"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "چهارمین"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "پنجمین"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "ششمین"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "هفتمین"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "هشتمین"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "نهمین"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "صفرمین"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "اولین"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "دومین"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "سومین"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "چهارمین"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "پنجمین"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ششمین"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "هفتمین"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "هشتمین"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "نهمین"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "هزار"
 msgstr[1] "هزار"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "میلیون"
 msgstr[1] "میلیون"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "میلیارد"
 msgstr[1] "میلیارد"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "ترلیون"
 msgstr[1] "ترلیون"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "کوادریلیون"
 msgstr[1] "کوادریلیون"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "کوانتیلیون"
 msgstr[1] "کوانتیلیون"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "سکستیلیون"
 msgstr[1] "سکستیلیون"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "سپتیلیون"
 msgstr[1] "سپتیلیون"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "اوکتیلیون"
 msgstr[1] "اوکتیلیون"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "نونیلیون"
 msgstr[1] "نونیلیون"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "دسیلیون"
 msgstr[1] "دسیلیون"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "گوگول"
 msgstr[1] "گوگول"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "صفر"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "یک"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "دو"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "سه"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "چهار"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "پنج"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "شش"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "هفت"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "هشت"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "نه"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d میکرو‌ثانیه"
 msgstr[1] "%d میکرو‌ثانیه"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d میلی‌ثانیه"
 msgstr[1] "%d میلی‌ثانیه"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "یک لحظه"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "یک ثانیه"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d ثانیه"
 msgstr[1] "%d ثانیه"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "یک دقیقه"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d دقیقه"
 msgstr[1] "%d دقیقه"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "یک ساعت"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d ساعت"
 msgstr[1] "%d ساعت"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "یک روز"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d روز"
 msgstr[1] "%d روز"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "یک ماه"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d ماه"
 msgstr[1] "%d ماه"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "یک سال"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "۱ سال و %d روز"
 msgstr[1] "۱ سال و %d روز"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "۱ سال و ۱ ماه"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "۱ سال و %d ماه"
 msgstr[1] "۱ سال و %d ماه"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d سال"
 msgstr[1] "%d سال"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s تا به اکنون"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s پیش"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "اکنون"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "امروز"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "فردا"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "دیروز"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s و %s"
diff --git a/src/humanize/locale/fi_FI/LC_MESSAGES/humanize.po b/src/humanize/locale/fi_FI/LC_MESSAGES/humanize.po
index 1b36995..97ca9dc 100644
--- a/src/humanize/locale/fi_FI/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/fi_FI/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2017-03-02 11:26+0200\n"
 "Last-Translator: Ville Skyttä <ville.skytta@iki.fi>\n"
 "Language-Team: Finnish\n"
@@ -18,347 +18,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.8.12\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "tuhatta"
 msgstr[1] "tuhatta"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "miljoonaa"
 msgstr[1] "miljoonaa"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "miljardia"
 msgstr[1] "miljardia"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "biljoonaa"
 msgstr[1] "biljoonaa"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "kvadriljoonaa"
 msgstr[1] "kvadriljoonaa"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "kvintiljoonaa"
 msgstr[1] "kvintiljoonaa"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sekstiljoonaa"
 msgstr[1] "sekstiljoonaa"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septiljoonaa"
 msgstr[1] "septiljoonaa"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "oktiljoonaa"
 msgstr[1] "oktiljoonaa"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "noniljoonaa"
 msgstr[1] "noniljoonaa"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "dekiljoonaa"
 msgstr[1] "dekiljoonaa"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "nolla"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "yksi"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "kaksi"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "kolme"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "neljä"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "viisi"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "kuusi"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "seitsemän"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "kahdeksan"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "yhdeksän"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d mikrosekunti"
 msgstr[1] "%d mikrosekuntia"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d millisekunti"
 msgstr[1] "%d millisekuntia"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "hetki"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "sekunti"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d sekunti"
 msgstr[1] "%d sekuntia"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "minuutti"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuutti"
 msgstr[1] "%d minuuttia"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "tunti"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d tunti"
 msgstr[1] "%d tuntia"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "päivä"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d päivä"
 msgstr[1] "%d päivää"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "kuukausi"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d kuukausi"
 msgstr[1] "%d kuukautta"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "vuosi"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 vuosi, %d päivä"
 msgstr[1] "1 vuosi, %d päivää"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 vuosi, 1 kuukausi"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 vuosi, %d kuukausi"
 msgstr[1] "1 vuosi, %d kuukautta"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d vuosi"
 msgstr[1] "%d vuotta"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s tästä"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s sitten"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "nyt"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "tänään"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "huomenna"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "eilen"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s ja %s"
diff --git a/src/humanize/locale/fr_FR/LC_MESSAGES/humanize.po b/src/humanize/locale/fr_FR/LC_MESSAGES/humanize.po
index 13f894e..1f7c806 100644
--- a/src/humanize/locale/fr_FR/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/fr_FR/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2013-06-22 08:52+0100\n"
 "Last-Translator: Olivier Cortès <oc@1flow.io>\n"
 "Language-Team: fr_FR <LL@li.org>\n"
@@ -19,357 +19,357 @@ msgstr ""
 "Generated-By: Babel 0.9.6\n"
 "X-Generator: Poedit 1.5.5\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "er"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "e"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "e"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ère"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "e"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "e"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "e"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 #, fuzzy
 msgid "million"
 msgid_plural "million"
 msgstr[0] "%(value)s million"
 msgstr[1] "%(value)s million"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "milliard"
 msgstr[1] "milliard"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 #, fuzzy
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "%(value)s billion"
 msgstr[1] "%(value)s billion"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 #, fuzzy
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "%(value)s billiard"
 msgstr[1] "%(value)s billiard"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 #, fuzzy
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "%(value)s trillion"
 msgstr[1] "%(value)s trillion"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 #, fuzzy
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "%(value)s trilliard"
 msgstr[1] "%(value)s trilliard"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 #, fuzzy
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "%(value)s quatrillion"
 msgstr[1] "%(value)s quatrillion"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 #, fuzzy
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "%(value)s quadrilliard"
 msgstr[1] "%(value)s quadrilliard"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 #, fuzzy
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "%(value)s quintillion"
 msgstr[1] "%(value)s quintillion"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 #, fuzzy
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "%(value)s quintilliard"
 msgstr[1] "%(value)s quintilliard"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 #, fuzzy
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "%(value)s gogol"
 msgstr[1] "%(value)s gogol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "zéro"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "un"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "deux"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "trois"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "quatre"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "cinq"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "six"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sept"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "huit"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "neuf"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microseconde"
 msgstr[1] "%d microsecondes"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d milliseconde"
 msgstr[1] "%d millisecondes"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "un moment"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "une seconde"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d seconde"
 msgstr[1] "%d secondes"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "une minute"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minute"
 msgstr[1] "%d minutes"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "une heure"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d heure"
 msgstr[1] "%d heures"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "un jour"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d jour"
 msgstr[1] "%d jours"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "un mois"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mois"
 msgstr[1] "%d mois"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "un an"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "un an et %d jour"
 msgstr[1] "un an et %d jours"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "un an et un mois"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "un an et %d mois"
 msgstr[1] "un an et %d mois"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d an"
 msgstr[1] "%d ans"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "dans %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "il y a %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "maintenant"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "aujourd'hui"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "demain"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "hier"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s et %s"
diff --git a/src/humanize/locale/id_ID/LC_MESSAGES/humanize.po b/src/humanize/locale/id_ID/LC_MESSAGES/humanize.po
index bf35c4d..9f688bd 100644
--- a/src/humanize/locale/id_ID/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/id_ID/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2017-03-18 15:41+0700\n"
 "Last-Translator: adie.rebel@gmail.com\n"
 "Language-Team: Indonesian\n"
@@ -18,325 +18,325 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 1.8.11\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "juta"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "miliar"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "triliun"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "kuadriliun"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "quintillion"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sextillion"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septillion"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "octillion"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "nonillion"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "decillion"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "nol"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "satu"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dua"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tiga"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "empat"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "lima"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "enam"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "tujuh"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "delapan"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "sembilan"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d mikro detik"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d mili detik"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "beberapa saat"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "sedetik"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d detik"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "semenit"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d menit"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "sejam"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d jam"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "sehari"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d hari"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "sebulan"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d bulan"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "setahun"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 tahun, %d hari"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 tahun, 1 bulan"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 tahun, %d bulan"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d tahun"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s dari sekarang"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s yang lalu"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "sekarang"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "hari ini"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "besok"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "kemarin"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s dan %s"
diff --git a/src/humanize/locale/it_IT/LC_MESSAGES/humanize.mo b/src/humanize/locale/it_IT/LC_MESSAGES/humanize.mo
index d0ed0ce..4dd3382 100644
Binary files a/src/humanize/locale/it_IT/LC_MESSAGES/humanize.mo and b/src/humanize/locale/it_IT/LC_MESSAGES/humanize.mo differ
diff --git a/src/humanize/locale/it_IT/LC_MESSAGES/humanize.po b/src/humanize/locale/it_IT/LC_MESSAGES/humanize.po
index ac2c0f6..881e24b 100644
--- a/src/humanize/locale/it_IT/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/it_IT/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2018-10-27 22:52+0200\n"
 "Last-Translator: derfel <code@derfel.net>\n"
 "Language-Team: Italian\n"
@@ -18,347 +18,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 2.2\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "º"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "º"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "º"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ª"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ª"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ª"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "migliaio"
+msgstr[1] "migliaia"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
-msgstr[0] "milioni"
+msgstr[0] "milione"
 msgstr[1] "milioni"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
-msgstr[0] "miliardi"
+msgstr[0] "miliardo"
 msgstr[1] "miliardi"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
-msgstr[0] "bilioni"
+msgstr[0] "bilione"
 msgstr[1] "bilioni"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
-msgstr[0] "biliardi"
+msgstr[0] "biliardo"
 msgstr[1] "biliardi"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
-msgstr[0] "trilioni"
+msgstr[0] "trilione"
 msgstr[1] "trilioni"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
-msgstr[0] "triliardi"
+msgstr[0] "triliardo"
 msgstr[1] "triliardi"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
-msgstr[0] "quadrilioni"
+msgstr[0] "quadrilione"
 msgstr[1] "quadrilioni"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
-msgstr[0] "quadriliardi"
+msgstr[0] "quadriliardo"
 msgstr[1] "quadriliardi"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
-msgstr[0] "quintilioni"
+msgstr[0] "quintilione"
 msgstr[1] "quintilioni"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
-msgstr[0] "quintiliardi"
+msgstr[0] "quintiliardo"
 msgstr[1] "quintiliardi"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "zero"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "uno"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "due"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tre"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "quattro"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "cinque"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "sei"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sette"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "otto"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "nove"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microsecondo"
 msgstr[1] "%d microsecondi"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d millisecondo"
 msgstr[1] "%d millisecondi"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "un momento"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "un secondo"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d secondo"
 msgstr[1] "%d secondi"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "un minuto"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuto"
 msgstr[1] "%d minuti"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "un'ora"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d ora"
 msgstr[1] "%d ore"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "un giorno"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d giorno"
 msgstr[1] "%d giorni"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "un mese"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mese"
 msgstr[1] "%d mesi"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "un anno"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "un anno e %d giorno"
 msgstr[1] "un anno e %d giorni"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "un anno ed un mese"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "un anno e %d mese"
 msgstr[1] "un anno e %d mesi"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d anno"
 msgstr[1] "%d anni"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "fra %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s fa"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "adesso"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "oggi"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "domani"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "ieri"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
-msgstr ""
+msgstr "%s e %s"
diff --git a/src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po b/src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po
index e18c329..83bf7f1 100644
--- a/src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2018-01-22 10:48+0900\n"
 "Last-Translator: Kan Torii <oss@qoolloop.com>\n"
 "Language-Team: Japanese\n"
@@ -19,336 +19,336 @@ msgstr ""
 "Generated-By: Babel 0.9.6\n"
 "X-Generator: Poedit 2.0.6\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "番目"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "番目"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "番目"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "番目"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "番目"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "番目"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "番目"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "百万"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 #, fuzzy
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "十億"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "兆"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 #, fuzzy
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "千兆"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 #, fuzzy
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "百京"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 #, fuzzy
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "十垓"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 #, fuzzy
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "じょ"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 #, fuzzy
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "千じょ"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 #, fuzzy
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "百穣"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 #, fuzzy
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "十溝"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 #, fuzzy
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "溝無量大数"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr ""
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "一"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "二"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "三"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "四"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "五"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "六"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "七"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "八"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "九"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] ""
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] ""
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 #, fuzzy
 msgid "a moment"
 msgstr "短時間"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "1秒"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d秒"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "1分"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d分"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "1時間"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d時間"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "1日"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d日"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "1ヶ月"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%dヶ月"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "1年"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1年 %d日"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1年 1ヶ月"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1年 %dヶ月"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d年"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s後"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s前"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 #, fuzzy
 msgid "now"
 msgstr "今"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "本日"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "明日"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "昨日"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr ""
diff --git a/src/humanize/locale/ko_KR/LC_MESSAGES/humanize.po b/src/humanize/locale/ko_KR/LC_MESSAGES/humanize.po
index b8c0000..0b6fd94 100644
--- a/src/humanize/locale/ko_KR/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/ko_KR/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2013-07-10 11:38+0900\n"
 "Last-Translator: @youngrok\n"
 "Language-Team: ko_KR <LL@li.org>\n"
@@ -19,376 +19,376 @@ msgstr ""
 "Generated-By: Babel 0.9.6\n"
 "X-Generator: Poedit 1.5.7\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 #, fuzzy
 msgctxt "0 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 #, fuzzy
 msgctxt "1 (male)"
 msgid "st"
 msgstr "번째"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 #, fuzzy
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "번째"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 #, fuzzy
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "번째"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 #, fuzzy
 msgctxt "4 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 #, fuzzy
 msgctxt "5 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 #, fuzzy
 msgctxt "6 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 #, fuzzy
 msgctxt "7 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 #, fuzzy
 msgctxt "8 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 #, fuzzy
 msgctxt "9 (male)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 #, fuzzy
 msgctxt "0 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 #, fuzzy
 msgctxt "1 (female)"
 msgid "st"
 msgstr "번째"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 #, fuzzy
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "번째"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 #, fuzzy
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "번째"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 #, fuzzy
 msgctxt "4 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 #, fuzzy
 msgctxt "5 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 #, fuzzy
 msgctxt "6 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 #, fuzzy
 msgctxt "7 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 #, fuzzy
 msgctxt "8 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 #, fuzzy
 msgctxt "9 (female)"
 msgid "th"
 msgstr "번째"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "%(value)s million"
 msgstr[1] "%(value)s million"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "milliard"
 msgstr[1] "milliard"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 #, fuzzy
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "%(value)s billion"
 msgstr[1] "%(value)s billion"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 #, fuzzy
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "%(value)s quadrillion"
 msgstr[1] "%(value)s quadrillion"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 #, fuzzy
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "%(value)s quintillion"
 msgstr[1] "%(value)s quintillion"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 #, fuzzy
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "%(value)s sextillion"
 msgstr[1] "%(value)s sextillion"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 #, fuzzy
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "%(value)s septillion"
 msgstr[1] "%(value)s septillion"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 #, fuzzy
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "%(value)s octillion"
 msgstr[1] "%(value)s octillion"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 #, fuzzy
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "%(value)s nonillion"
 msgstr[1] "%(value)s nonillion"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 #, fuzzy
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "%(value)s décillion"
 msgstr[1] "%(value)s décillion"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 #, fuzzy
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "%(value)s gogol"
 msgstr[1] "%(value)s gogol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr ""
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "하나"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "둘"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "셋"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "넷"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "다섯"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "여섯"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "일곱"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "여덟"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "아홉"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d마이크로초"
 msgstr[1] "%d마이크로초"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d밀리초"
 msgstr[1] "%d밀리초"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "잠깐"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "1초"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d초"
 msgstr[1] "%d초"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "1분"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d분"
 msgstr[1] "%d분"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "1시간"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d시간"
 msgstr[1] "%d시간"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "하루"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d일"
 msgstr[1] "%d일"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "1개월"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d개월"
 msgstr[1] "%d개월"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "1년"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1년, %d일"
 msgstr[1] "1년, %d일"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1년, 1개월"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1년, %d개월"
 msgstr[1] "1년, %d개월"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d년"
 msgstr[1] "%d년"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s 후"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s 전"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "방금"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "오늘"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "내일"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "어제"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr ""
diff --git a/src/humanize/locale/nl_NL/LC_MESSAGES/humanize.po b/src/humanize/locale/nl_NL/LC_MESSAGES/humanize.po
index d9d56f2..7a191af 100644
--- a/src/humanize/locale/nl_NL/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/nl_NL/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2015-03-25 21:08+0100\n"
 "Last-Translator: Martin van Wingerden\n"
 "Language-Team: nl_NL\n"
@@ -19,347 +19,347 @@ msgstr ""
 "Generated-By: Babel 0.9.6\n"
 "X-Generator: Poedit 1.7.5\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "ste"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "de"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "de"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ste"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "de"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "de"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "de"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "miljoen"
 msgstr[1] "miljoen"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "miljard"
 msgstr[1] "miljard"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "biljoen"
 msgstr[1] "biljoen"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "biljard"
 msgstr[1] "biljard"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "triljoen"
 msgstr[1] "triljoen"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "triljard"
 msgstr[1] "triljard"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "quadriljoen"
 msgstr[1] "quadriljoen"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "quadriljard"
 msgstr[1] "quadriljard"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "quintiljoen"
 msgstr[1] "quintiljoen"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "quintiljard"
 msgstr[1] "quintiljard"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "nul"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "één"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "twee"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "drie"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "vier"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "vijf"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "zes"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "zeven"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "acht"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "negen"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microseconde"
 msgstr[1] "%d microseconden"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d milliseconde"
 msgstr[1] "%d milliseconden"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "een moment"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "een seconde"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d seconde"
 msgstr[1] "%d seconden"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "een minuut"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuut"
 msgstr[1] "%d minuten"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "een uur"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d uur"
 msgstr[1] "%d uur"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "een dag"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d dag"
 msgstr[1] "%d dagen"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "een maand"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d maand"
 msgstr[1] "%d maanden"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "een jaar"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 jaar, %d dag"
 msgstr[1] "1 jaar, %d dagen"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 jaar, 1 maand"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 jaar, %d maand"
 msgstr[1] "1 jaar, %d maanden"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d jaar"
 msgstr[1] "%d jaar"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "over %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s geleden"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "nu"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "vandaag"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "morgen"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "gisteren"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s en %s"
diff --git a/src/humanize/locale/pl_PL/LC_MESSAGES/humanize.po b/src/humanize/locale/pl_PL/LC_MESSAGES/humanize.po
index dea532a..f7bbc62 100644
--- a/src/humanize/locale/pl_PL/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/pl_PL/LC_MESSAGES/humanize.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2020-04-22 10:02+0200\n"
 "Last-Translator: Bartosz Bubak <bartosz.bubak gmail com>\n"
 "Language-Team: Polish\n"
@@ -20,231 +20,231 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "tysiąc"
 msgstr[1] "tysiąc"
 msgstr[2] "tysięcy"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milion"
 msgstr[1] "miliony"
 msgstr[2] "milionów"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "miliard"
 msgstr[1] "miliardy"
 msgstr[2] "miliardów"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "bilion"
 msgstr[1] "biliony"
 msgstr[2] "bilionów"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "biliard"
 msgstr[1] "biliardy"
 msgstr[2] "biliardów"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "trylion"
 msgstr[1] "tryliony"
 msgstr[2] "trylionów"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "tryliard"
 msgstr[1] "tryliard"
 msgstr[2] "tryliard"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "kwadrylion"
 msgstr[1] "kwadryliony"
 msgstr[2] "kwadrylionów"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "kwadryliard"
 msgstr[1] "kwadryliardy"
 msgstr[2] "kwadryliardów"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "kwintylion"
 msgstr[1] "kwintyliony"
 msgstr[2] "kwintylionów"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "kwintyliard"
 msgstr[1] "kwintyliardy"
 msgstr[2] "kwintyliardów"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googole"
 msgstr[2] "googoli"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "zero"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "jeden"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dwa"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "trzy"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "cztery"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "pięć"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "sześć"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "siedem"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "osiem"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "dziewięć"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
@@ -252,7 +252,7 @@ msgstr[0] "%d mikrosekunda"
 msgstr[1] "%d mikrosekundy"
 msgstr[2] "%d mikrosekund"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
@@ -260,15 +260,15 @@ msgstr[0] "%d milisekunda"
 msgstr[1] "%d milisekundy"
 msgstr[2] "%d milisekund"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "chwila"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "sekunda"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
@@ -276,11 +276,11 @@ msgstr[0] "%d sekunda"
 msgstr[1] "%d sekundy"
 msgstr[2] "%d sekund"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "minuta"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
@@ -288,11 +288,11 @@ msgstr[0] "%d minuta"
 msgstr[1] "%d minuty"
 msgstr[2] "%d minut"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "godzina"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
@@ -300,11 +300,11 @@ msgstr[0] "%d godzina"
 msgstr[1] "%d godziny"
 msgstr[2] "%d godzin"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "dzień"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
@@ -312,11 +312,11 @@ msgstr[0] "%d dzień"
 msgstr[1] "%d dni"
 msgstr[2] "%d dni"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "miesiąc"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
@@ -324,11 +324,11 @@ msgstr[0] "%d miesiąc"
 msgstr[1] "%d miesiące"
 msgstr[2] "%d miesięcy"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "rok"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
@@ -336,11 +336,11 @@ msgstr[0] "1 rok, %d dzień"
 msgstr[1] "1 rok, %d dni"
 msgstr[2] "1 rok, %d dni"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 rok, 1 miesiąc"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
@@ -348,7 +348,7 @@ msgstr[0] "1 rok, %d miesiąc"
 msgstr[1] "1 rok, %d miesiące"
 msgstr[2] "1 rok, %d miesięcy"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
@@ -356,33 +356,33 @@ msgstr[0] "%d rok"
 msgstr[1] "%d lata"
 msgstr[2] "%d lat"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s od teraz"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s temu"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "teraz"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "dziś"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "jutro"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "wczoraj"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s i %s"
diff --git a/src/humanize/locale/pt_BR/LC_MESSAGES/humanize.po b/src/humanize/locale/pt_BR/LC_MESSAGES/humanize.po
index ecb395b..4c9afaf 100644
--- a/src/humanize/locale/pt_BR/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/pt_BR/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2016-06-15 15:58-0300\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -18,347 +18,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Poedit 1.8.5\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "º"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "º"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "º"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ª"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ª"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ª"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milhão"
 msgstr[1] "milhão"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "bilhão"
 msgstr[1] "bilhão"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "trilhão"
 msgstr[1] "trilhão"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "quatrilhão"
 msgstr[1] "quatrilhão"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "quintilhão"
 msgstr[1] "quintilhão"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sextilhão"
 msgstr[1] "sextilhão"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septilhão"
 msgstr[1] "septilhão"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "octilhão"
 msgstr[1] "octilhão"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "nonilhão"
 msgstr[1] "nonilhão"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "decilhão"
 msgstr[1] "decilhão"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "undecilhão"
 msgstr[1] "undecilhão"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "zero"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "um"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dois"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "três"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "quatro"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "cinco"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "seis"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sete"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "oito"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "nove"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microssegundo"
 msgstr[1] "%d microssegundos"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d milissegundo"
 msgstr[1] "%d milissegundos"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "um momento"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "um segundo"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d segundo"
 msgstr[1] "%d segundos"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "um minuto"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuto"
 msgstr[1] "%d minutos"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "uma hora"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d hora"
 msgstr[1] "%d horas"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "um dia"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d dia"
 msgstr[1] "%d dias"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "um mês"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mês"
 msgstr[1] "%d meses"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "um ano"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 ano e %d dia"
 msgstr[1] "1 ano e %d dias"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 ano e 1 mês"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 ano e %d mês"
 msgstr[1] "1 ano e %d meses"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d ano"
 msgstr[1] "%d anos"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "em %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "há %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "agora"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "hoje"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "amanhã"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "ontem"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s e %s"
diff --git a/src/humanize/locale/pt_PT/LC_MESSAGES/humanize.po b/src/humanize/locale/pt_PT/LC_MESSAGES/humanize.po
index a2d1fed..24c5237 100644
--- a/src/humanize/locale/pt_PT/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/pt_PT/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2020-07-05 18:17+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
@@ -18,347 +18,347 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Poedit 2.3.1\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "º"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "º"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "º"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "º"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ª"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ª"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ª"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "ª"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milhão"
 msgstr[1] "milhão"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "milhar de milhão"
 msgstr[1] "milhar de milhão"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "bilião"
 msgstr[1] "bilião"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "mil biliões"
 msgstr[1] "mil biliões"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "trilião"
 msgstr[1] "trilião"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "mil triliões"
 msgstr[1] "mil triliões"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "quatrilião"
 msgstr[1] "quatrilião"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "mil quatriliões"
 msgstr[1] "mil quatriliões"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "quintilhão"
 msgstr[1] "quintilhão"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "mil quintilhões"
 msgstr[1] "mil quintilhões"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "sextilhão"
 msgstr[1] "sextilhão"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "zero"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "um"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dois"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "três"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "quatro"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "cinco"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "seis"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sete"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "oito"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "nove"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d microssegundo"
 msgstr[1] "%d microssegundos"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d milissegundo"
 msgstr[1] "%d milissegundos"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "um momento"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "um segundo"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d segundo"
 msgstr[1] "%d segundos"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "um minuto"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minuto"
 msgstr[1] "%d minutos"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "uma hora"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d hora"
 msgstr[1] "%d horas"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "um dia"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d dia"
 msgstr[1] "%d dias"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "um mês"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d mês"
 msgstr[1] "%d meses"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "um ano"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 ano e %d dia"
 msgstr[1] "1 ano e %d dias"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 ano e 1 mês"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 ano e %d mês"
 msgstr[1] "1 ano e %d meses"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d ano"
 msgstr[1] "%d anos"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "daqui a %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "há %s"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "agora"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "hoje"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "amanhã"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "ontem"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s e %s"
diff --git a/src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po b/src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po
index b03aa5f..d640ef4 100644
--- a/src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/ru_RU/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2014-03-24 20:32+0300\n"
 "Last-Translator: Sergey Prokhorov <me@seriyps.ru>\n"
 "Language-Team: ru_RU <LL@li.org>\n"
@@ -15,236 +15,236 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "Generated-By: Babel 0.9.6\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "ый"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "ой"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "ий"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "ый"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "ый"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "ый"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ый"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ой"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ий"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "ый"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "ый"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ой"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "ый"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "тысяча"
 msgstr[1] "тысячи"
 msgstr[2] "тысяч"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "миллион"
 msgstr[1] "миллиона"
 msgstr[2] "миллионов"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "миллиард"
 msgstr[1] "миллиарда"
 msgstr[2] "миллиардов"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "триллион"
 msgstr[1] "триллиона"
 msgstr[2] "триллионов"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "квадриллион"
 msgstr[1] "квадриллиона"
 msgstr[2] "квадриллионов"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "квинтиллион"
 msgstr[1] "квинтиллиона"
 msgstr[2] "квинтиллионов"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "сикстиллион"
 msgstr[1] "сикстиллиона"
 msgstr[2] "сикстиллионов"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "септиллион"
 msgstr[1] "септиллиона"
 msgstr[2] "септиллионов"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "октиллион"
 msgstr[1] "октиллиона"
 msgstr[2] "октиллионов"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "нониллион"
 msgstr[1] "нониллиона"
 msgstr[2] "нониллионов"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "децилион"
 msgstr[1] "децилиона"
 msgstr[2] "децилионов"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "гогол"
 msgstr[1] "гогола"
 msgstr[2] "гоголов"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "ноль"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "один"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "два"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "три"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "четыре"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "пять"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "шесть"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "семь"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "восемь"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "девять"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
@@ -252,7 +252,7 @@ msgstr[0] "%d микросекунда"
 msgstr[1] "%d микросекунды"
 msgstr[2] "%d микросекунд"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
@@ -260,15 +260,15 @@ msgstr[0] "%d миллисекунда"
 msgstr[1] "%d миллисекунды"
 msgstr[2] "%d миллисекунд"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "только что"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "секунду"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
@@ -276,11 +276,11 @@ msgstr[0] "%d секунда"
 msgstr[1] "%d секунды"
 msgstr[2] "%d секунд"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "минуту"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
@@ -288,11 +288,11 @@ msgstr[0] "%d минута"
 msgstr[1] "%d минуты"
 msgstr[2] "%d минут"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "час"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
@@ -300,11 +300,11 @@ msgstr[0] "%d час"
 msgstr[1] "%d часа"
 msgstr[2] "%d часов"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "день"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
@@ -312,11 +312,11 @@ msgstr[0] "%d день"
 msgstr[1] "%d дня"
 msgstr[2] "%d дней"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "месяц"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
@@ -324,11 +324,11 @@ msgstr[0] "%d месяц"
 msgstr[1] "%d месяца"
 msgstr[2] "%d месяцев"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "год"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
@@ -336,11 +336,11 @@ msgstr[0] "1 год, %d день"
 msgstr[1] "1 год, %d дня"
 msgstr[2] "1 год, %d дней"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 год, 1 месяц"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
@@ -348,7 +348,7 @@ msgstr[0] "1 год, %d месяц"
 msgstr[1] "1 год, %d месяца"
 msgstr[2] "1 год, %d месяцев"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
@@ -356,33 +356,33 @@ msgstr[0] "%d год"
 msgstr[1] "%d года"
 msgstr[2] "%d лет"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "через %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s назад"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "сейчас"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "сегодня"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "завтра"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "вчера"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s и %s"
diff --git a/src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po b/src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po
index 941718a..78c8399 100644
--- a/src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2020-09-29 22:43+0300\n"
 "Last-Translator: Jose Riha <jose1711 gmail com>\n"
 "Language-Team: sk <LL@li.org>\n"
@@ -18,231 +18,231 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milióna/ov"
 msgstr[1] "milióna/ov"
 msgstr[2] "milióna/ov"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "miliardy/árd"
 msgstr[1] "miliardy/árd"
 msgstr[2] "miliardy/árd"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "bilióna/ov"
 msgstr[1] "bilióna/ov"
 msgstr[2] "bilióna/ov"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "biliardy/árd"
 msgstr[1] "biliardy/árd"
 msgstr[2] "biliardy/árd"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "trilióna/árd"
 msgstr[1] "trilióna/árd"
 msgstr[2] "trilióna/árd"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "triliardy/árd"
 msgstr[1] "triliardy/árd"
 msgstr[2] "triliardy/árd"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "kvadrilióna/ov"
 msgstr[1] "kvadrilióna/ov"
 msgstr[2] "kvadrilióna/ov"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "kvadriliardy/árd"
 msgstr[1] "kvadriliardy/árd"
 msgstr[2] "kvadriliardy/árd"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "kvintilióna/ov"
 msgstr[1] "kvintilióna/ov"
 msgstr[2] "kvintilióna/ov"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "kvintiliardy/árd"
 msgstr[1] "kvintiliardy/árd"
 msgstr[2] "kvintiliardy/árd"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googola/ov"
 msgstr[1] "googola/ov"
 msgstr[2] "googola/ov"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "nula"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "jedna"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dve"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tri"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "štyri"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "päť"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "šesť"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sedem"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "osem"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "deväť"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
@@ -250,7 +250,7 @@ msgstr[0] "%d mikrosekundu"
 msgstr[1] "%d mikrosekundy"
 msgstr[2] "%d mikrosekúnd"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
@@ -258,15 +258,15 @@ msgstr[0] "%d milisekundu"
 msgstr[1] "%d milisekundy"
 msgstr[2] "%d milisekúnd"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "chvíľku"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "sekundu"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
@@ -274,11 +274,11 @@ msgstr[0] "%d sekundu"
 msgstr[1] "%d sekundy"
 msgstr[2] "%d sekúnd"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "minútu"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
@@ -286,11 +286,11 @@ msgstr[0] "%d minútu"
 msgstr[1] "%d minúty"
 msgstr[2] "%d minút"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "hodinu"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
@@ -298,11 +298,11 @@ msgstr[0] "%d hodina"
 msgstr[1] "%d hodiny"
 msgstr[2] "%d hodín"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "deň"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
@@ -310,11 +310,11 @@ msgstr[0] "%d deň"
 msgstr[1] "%d dni"
 msgstr[2] "%d dní"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "mesiac"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
@@ -322,11 +322,11 @@ msgstr[0] "%d mesiac"
 msgstr[1] "%d mesiace"
 msgstr[2] "%d mesiacov"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "rok"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
@@ -334,11 +334,11 @@ msgstr[0] "1 rok, %d deň"
 msgstr[1] "1 rok, %d dni"
 msgstr[2] "1 rok, %d dní"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 rok, 1 mesiac"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
@@ -346,7 +346,7 @@ msgstr[0] "1 rok, %d mesiac"
 msgstr[1] "1 rok, %d mesiace"
 msgstr[2] "1 rok, %d mesiacov"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
@@ -354,33 +354,33 @@ msgstr[0] "%d rok"
 msgstr[1] "%d roky"
 msgstr[2] "%d rokov"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "o %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s naspäť"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "teraz"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "dnes"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "zajtra"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "včera"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr ""
diff --git a/src/humanize/locale/sl_SI/LC_MESSAGES/humanize.po b/src/humanize/locale/sl_SI/LC_MESSAGES/humanize.po
index a6624bf..e61dc45 100644
--- a/src/humanize/locale/sl_SI/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/sl_SI/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-11 22:52+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2021-06-11 23:39+0200\n"
 "Last-Translator: dkrat7 <dkrat7 @github.com>\n"
 "Language-Team: Slovenian\n"
@@ -15,111 +15,111 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
-"%100==4 ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
+"n%100==4 ? 2 : 3);\n"
 "X-Generator: Poedit 2.3\n"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:67
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:80
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "tisoč"
@@ -127,7 +127,7 @@ msgstr[1] "tisoč"
 msgstr[2] "tisoč"
 msgstr[3] "tisoč"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milijon"
@@ -135,7 +135,7 @@ msgstr[1] "milijona"
 msgstr[2] "milijoni"
 msgstr[3] "milijonov"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "milijarda"
@@ -143,7 +143,7 @@ msgstr[1] "milijardi"
 msgstr[2] "milijarde"
 msgstr[3] "milijard"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "bilijon"
@@ -151,7 +151,7 @@ msgstr[1] "bilijona"
 msgstr[2] "bilijoni"
 msgstr[3] "bilijonov"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "bilijarda"
@@ -159,7 +159,7 @@ msgstr[1] "bilijardi"
 msgstr[2] "bilijarde"
 msgstr[3] "bilijard"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "trilijon"
@@ -167,7 +167,7 @@ msgstr[1] "trilijona"
 msgstr[2] "trilijoni"
 msgstr[3] "trilijonov"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "trilijarda"
@@ -175,7 +175,7 @@ msgstr[1] "trilijardi"
 msgstr[2] "trilijarde"
 msgstr[3] "trilijard"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "kvadrilijon"
@@ -183,7 +183,7 @@ msgstr[1] "kvadrilijona"
 msgstr[2] "kvadrilijoni"
 msgstr[3] "kvadrilijonov"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "kvadrilijarda"
@@ -191,7 +191,7 @@ msgstr[1] "kvadrilijardi"
 msgstr[2] "kvadrilijarde"
 msgstr[3] "kvadrilijard"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "kvintilijon"
@@ -199,7 +199,7 @@ msgstr[1] "kvintilijona"
 msgstr[2] "kvintilijoni"
 msgstr[3] "kvintilijonov"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "kvintilijarda"
@@ -207,7 +207,7 @@ msgstr[1] "kvintilijardi"
 msgstr[2] "kvintilijarde"
 msgstr[3] "kvintilijard"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "gugol"
@@ -215,47 +215,47 @@ msgstr[1] "gugola"
 msgstr[2] "gugoli"
 msgstr[3] "gugolov"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "nič"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "ena"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "dve"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tri"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "štiri"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "pet"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "šest"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sedem"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "osem"
 
-#: src/humanize/number.py:256
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "devet"
 
-#: src/humanize/time.py:138
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
@@ -264,7 +264,7 @@ msgstr[1] "%d mikrosekundi"
 msgstr[2] "%d mikrosekunde"
 msgstr[3] "%d mikrosekund"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
@@ -273,15 +273,15 @@ msgstr[1] "%d milisekundi"
 msgstr[2] "%d milisekunde"
 msgstr[3] "%d milisekund"
 
-#: src/humanize/time.py:150 src/humanize/time.py:231
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "trenutek"
 
-#: src/humanize/time.py:152
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "sekunda"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
@@ -290,11 +290,11 @@ msgstr[1] "%d sekundi"
 msgstr[2] "%d sekunde"
 msgstr[3] "%d sekund"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "minuta"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
@@ -303,11 +303,11 @@ msgstr[1] "%d minuti"
 msgstr[2] "%d minute"
 msgstr[3] "%d minut"
 
-#: src/humanize/time.py:161
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "ura"
 
-#: src/humanize/time.py:164
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
@@ -316,11 +316,11 @@ msgstr[1] "%d uri"
 msgstr[2] "%d ure"
 msgstr[3] "%d ur"
 
-#: src/humanize/time.py:167
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "dan"
 
-#: src/humanize/time.py:169 src/humanize/time.py:172
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
@@ -329,11 +329,11 @@ msgstr[1] "%d dneva"
 msgstr[2] "%d dnevi"
 msgstr[3] "%d dni"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "mesec"
 
-#: src/humanize/time.py:176
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
@@ -342,11 +342,11 @@ msgstr[1] "%d meseca"
 msgstr[2] "%d meseci"
 msgstr[3] "%d mesecev"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "leto"
 
-#: src/humanize/time.py:181 src/humanize/time.py:190
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
@@ -355,11 +355,11 @@ msgstr[1] "1 leto, %d dneva"
 msgstr[2] "1 leto, %d dnevi"
 msgstr[3] "1 leto, %d dni"
 
-#: src/humanize/time.py:184
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 leto, 1 mesec"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
@@ -368,7 +368,7 @@ msgstr[1] "1 leto, %d meseca"
 msgstr[2] "1 leto, %d meseci"
 msgstr[3] "1 leto, %d mesecev"
 
-#: src/humanize/time.py:192
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
@@ -377,33 +377,33 @@ msgstr[1] "%d leti"
 msgstr[2] "%d leta"
 msgstr[3] "%d let"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s od zdaj"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s nazaj"
 
-#: src/humanize/time.py:232
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "zdaj"
 
-#: src/humanize/time.py:255
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "danes"
 
-#: src/humanize/time.py:257
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "jutri"
 
-#: src/humanize/time.py:259
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "včeraj"
 
-#: src/humanize/time.py:545
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s in %s"
diff --git a/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.mo b/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.mo
index 4323acc..0833b41 100644
Binary files a/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.mo and b/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.mo differ
diff --git a/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.po b/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.po
index a0d4241..db73501 100644
--- a/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/sv_SE/LC_MESSAGES/humanize.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
-"Report-Msgid-Bugs-To: https://github.com/python-humanize/humanize/issues\n"
-"POT-Creation-Date: 2021-07-05 09:49+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2021-07-05 10:30+0200\n"
 "Last-Translator: Kess Vargavind <vargavind@gmail.com>\n"
 "Language-Team: Swedish\n"
@@ -17,347 +17,347 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr ":a"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr ":a"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr ":e"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:67
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr ":a"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr ":a"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr ":e"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:80
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr ":e"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "tusen"
 msgstr[1] "tusen"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "miljon"
 msgstr[1] "miljoner"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "miljard"
 msgstr[1] "miljarder"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "biljon"
 msgstr[1] "biljoner"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "biljard"
 msgstr[1] "biljarder"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "triljon"
 msgstr[1] "triljoner"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "triljard"
 msgstr[1] "triljarder"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "kvadriljon"
 msgstr[1] "kvadriljoner"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "kvadriljard"
 msgstr[1] "kvadriljarder"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "kvintiljon"
 msgstr[1] "kvintiljoner"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "kvintiljard"
 msgstr[1] "kvintiljarder"
 
-#: src/humanize/number.py:152
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "noll"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "ett"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "två"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "tre"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "fyra"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "fem"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "sex"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "sju"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "åtta"
 
-#: src/humanize/number.py:256
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "nio"
 
-#: src/humanize/time.py:138
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d mikrosekund"
 msgstr[1] "%d mikrosekunder"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d millsekund"
 msgstr[1] "%d millsekunder"
 
-#: src/humanize/time.py:150 src/humanize/time.py:231
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "en liten stund"
 
-#: src/humanize/time.py:152
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "en sekund"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d sekund"
 msgstr[1] "%d sekunder"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "en minut"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d minut"
 msgstr[1] "%d minuter"
 
-#: src/humanize/time.py:161
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "en timme"
 
-#: src/humanize/time.py:164
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d timme"
 msgstr[1] "%d timmar"
 
-#: src/humanize/time.py:167
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "en dag"
 
-#: src/humanize/time.py:169 src/humanize/time.py:172
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d dag"
 msgstr[1] "%d dagar"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "en månad"
 
-#: src/humanize/time.py:176
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d månad"
 msgstr[1] "%d månader"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "ett år"
 
-#: src/humanize/time.py:181 src/humanize/time.py:190
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 år, %d dag"
 msgstr[1] "1 år, %d dagar"
 
-#: src/humanize/time.py:184
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 år, 1 månad"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 år, %d månad"
 msgstr[1] "1 år, %d månader"
 
-#: src/humanize/time.py:192
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d år"
 msgstr[1] "%d år"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s från nu"
 
-#: src/humanize/time.py:228
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s sedan"
 
-#: src/humanize/time.py:232
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "nu"
 
-#: src/humanize/time.py:255
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "idag"
 
-#: src/humanize/time.py:257
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "imorgon"
 
-#: src/humanize/time.py:259
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "igår"
 
-#: src/humanize/time.py:545
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s och %s"
diff --git a/src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po b/src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po
index 03a6f2f..7ea2be4 100644
--- a/src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: humanize\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2017-02-23 20:00+0300\n"
 "Last-Translator: Emre Çintay <emre@cintay.com>\n"
 "Language-Team: Turkish\n"
@@ -19,347 +19,347 @@ msgstr ""
 "X-Generator: Poedit 1.8.7.1\n"
 "Generated-By: Emre Çintay\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "milyon"
 msgstr[1] "milyon"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "milyar"
 msgstr[1] "milyar"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "trilyon"
 msgstr[1] "trilyon"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "katrilyon"
 msgstr[1] "katrilyon"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "kentilyon"
 msgstr[1] "kentilyon"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "sekstilyon"
 msgstr[1] "sekstilyon"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "septilyon"
 msgstr[1] "septilyon"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "oktilyon"
 msgstr[1] "oktilyon"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "nonilyon"
 msgstr[1] "nonilyon"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "desilyon"
 msgstr[1] "desilyon"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "googol"
 msgstr[1] "googol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr ""
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "bir"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "iki"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "üç"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "dört"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "beş"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "altı"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "yedi"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "sekiz"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "dokuz"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "biraz"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "bir saniye"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d saniye"
 msgstr[1] "%d saniye"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "bir dakika"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d dakika"
 msgstr[1] "%d dakika"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "bir saat"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d saat"
 msgstr[1] "%d saat"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "bir gün"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d gün"
 msgstr[1] "%d gün"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "bir ay"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d ay"
 msgstr[1] "%d ay"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "bir yıl"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 yıl, %d gün"
 msgstr[1] "1 yıl, %d gün"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 yıl, 1 ay"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 yıl, %d ay"
 msgstr[1] "1 yıl, %d ay"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d yıl"
 msgstr[1] "%d yıl"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "şu andan itibaren %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s önce"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "şimdi"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "bugün"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "yarın"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "dün"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr ""
diff --git a/src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po b/src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po
index d74ca5f..cac5bab 100644
--- a/src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: \n"
 "Last-Translator: TL\n"
 "Language-Team: uk_UA\n"
@@ -10,236 +10,236 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "Generated-By:\n"
 "X-Generator: \n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "ий"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "ий"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "ій"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "ий"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "ий"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "ій"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "ий"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "тисяча"
 msgstr[1] "тисячі"
 msgstr[2] "тисяч"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "мільйон"
 msgstr[1] "мільйона"
 msgstr[2] "мільйонів"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "мільярд"
 msgstr[1] "мільярда"
 msgstr[2] "мільярдів"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "трильйон"
 msgstr[1] "трильйона"
 msgstr[2] "трильйонів"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "квадрильйон"
 msgstr[1] "квадрильйона"
 msgstr[2] "квадрильйонів"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "квинтиліон"
 msgstr[1] "квинтиліона"
 msgstr[2] "квинтиліонів"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "сикстильйон"
 msgstr[1] "сикстильйона"
 msgstr[2] "сикстильйонів"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "септильйон"
 msgstr[1] "септильйона"
 msgstr[2] "септильйонів"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "октильйон"
 msgstr[1] "октильйона"
 msgstr[2] "октильйонів"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "нонильйон"
 msgstr[1] "нонильйона"
 msgstr[2] "нонильйонів"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "децильйон"
 msgstr[1] "децильйона"
 msgstr[2] "децильйонів"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "гугол"
 msgstr[1] "гугла"
 msgstr[2] "гуглів"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "нуль"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "один"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "два"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "три"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "чотири"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "п'ять"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "шість"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "сім"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "вісім"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "дев'ять"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, fuzzy, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
@@ -247,7 +247,7 @@ msgstr[0] "%d мікросекунда"
 msgstr[1] "%d мікросекунди"
 msgstr[2] "%d мікросекунд"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, fuzzy, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
@@ -255,15 +255,15 @@ msgstr[0] "%d мілісекунда"
 msgstr[1] "%d мілісекунди"
 msgstr[2] "%d мілісекунд"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "у цей момент"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "секунда"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
@@ -271,11 +271,11 @@ msgstr[0] "%d секунда"
 msgstr[1] "%d секунди"
 msgstr[2] "%d секунд"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "хвилина"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
@@ -283,11 +283,11 @@ msgstr[0] "%d хвилина"
 msgstr[1] "%d хвилини"
 msgstr[2] "%d хвилин"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "година"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
@@ -295,11 +295,11 @@ msgstr[0] "%d година"
 msgstr[1] "%d години"
 msgstr[2] "%d годин"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "день"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
@@ -307,11 +307,11 @@ msgstr[0] "%d день"
 msgstr[1] "%d дня"
 msgstr[2] "%d днів"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "місяць"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
@@ -319,11 +319,11 @@ msgstr[0] "%d місяць"
 msgstr[1] "%d місяця"
 msgstr[2] "%d місяців"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "рік"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
@@ -331,11 +331,11 @@ msgstr[0] "1 рік, %d день"
 msgstr[1] "1 рік, %d дня"
 msgstr[2] "1 рік, %d днів"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 рік, 1 місяць"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
@@ -343,7 +343,7 @@ msgstr[0] "1 рік, %d місяць"
 msgstr[1] "1 рік, %d місяця"
 msgstr[2] "1 рік, %d місяців"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
@@ -351,33 +351,33 @@ msgstr[0] "%d рік"
 msgstr[1] "%d роки"
 msgstr[2] "%d років"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "через %s"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s назад"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "зараз"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "сьогодні"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "завтра"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "вчора"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s й %s"
diff --git a/src/humanize/locale/vi_VN/LC_MESSAGES/humanize.po b/src/humanize/locale/vi_VN/LC_MESSAGES/humanize.po
index e57b0c9..08b0640 100644
--- a/src/humanize/locale/vi_VN/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/vi_VN/LC_MESSAGES/humanize.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2017-05-30 11:51+0700\n"
 "Last-Translator: Olivier Cortès <oc@1flow.io>\n"
 "Language-Team: vi_VI <sapd@vccloud.vn>\n"
@@ -19,354 +19,354 @@ msgstr ""
 "Generated-By: Babel 0.9.6\n"
 "X-Generator: Poedit 1.8.7.1\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "."
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "."
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "."
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "."
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "nghìn"
 msgstr[1] "nghìn"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "%(value)s triệu"
 msgstr[1] "%(value)s triệu"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "tỷ"
 msgstr[1] "tỷ"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "%(value)s nghìn tỷ"
 msgstr[1] "%(value)s nghìn tỷ"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "%(value)s triệu tỷ"
 msgstr[1] "%(value)s triệu tỷ"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 #, fuzzy
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "%(value)s tỷ tỷ"
 msgstr[1] "%(value)s tỷ tỷ"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 #, fuzzy
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "%(value)s sextillion"
 msgstr[1] "%(value)s sextillion"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 #, fuzzy
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "%(value)s septillion"
 msgstr[1] "%(value)s septillion"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 #, fuzzy
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "%(value)s octillion"
 msgstr[1] "%(value)s octillion"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 #, fuzzy
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "%(value)s nonillion"
 msgstr[1] "%(value)s nonillion"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 #, fuzzy
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "%(value)s décillion"
 msgstr[1] "%(value)s décillion"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 #, fuzzy
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "%(value)s gogol"
 msgstr[1] "%(value)s gogol"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "không"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "một"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "hai"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "ba"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "bốn"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "năm"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "sáu"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "bảy"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "tám"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "chín"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d micro giây"
 msgstr[1] "%d micro giây"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d mili giây"
 msgstr[1] "%d mili giây"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "ngay lúc này"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "một giây"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d giây"
 msgstr[1] "%d giây"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "một phút"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d phút"
 msgstr[1] "%d phút"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "một giờ"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d giờ"
 msgstr[1] "%d giờ"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "một ngày"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d ngày"
 msgstr[1] "%d ngày"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "một tháng"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d tháng"
 msgstr[1] "%d tháng"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "một năm"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "1 năm %d ngày"
 msgstr[1] "1 năm %d ngày"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 năm 1 tháng"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 năm %d tháng"
 msgstr[1] "un an et %d mois"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d năm"
 msgstr[1] "%d năm"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s ngày tới"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s trước"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "ngay bây giờ"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "hôm nay"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "ngày mai"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "ngày hôm qua"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s và %s"
diff --git a/src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po b/src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po
index 8c54a9a..8ab1791 100644
--- a/src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2016-11-14 23:02+0000\n"
 "Last-Translator: Liwen SUN <sunliwen@gmail.com>\n"
 "Language-Team: Chinese (simplified)\n"
@@ -18,347 +18,347 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "第"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "第"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "第"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "第"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "第"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "第"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "百万"
 msgstr[1] "百万"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "十亿"
 msgstr[1] "十亿"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "兆"
 msgstr[1] "兆"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "万亿"
 msgstr[1] "万亿"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "百京"
 msgstr[1] "百京"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "十垓"
 msgstr[1] "十垓"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "秭"
 msgstr[1] "秭"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "千秭"
 msgstr[1] "千秭"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "百穰"
 msgstr[1] "百穰"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "十沟"
 msgstr[1] "十沟"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "古高尔"
 msgstr[1] "古高尔"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr ""
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "一"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "二"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "三"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "四"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "五"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "六"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "七"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "八"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "九"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "一会儿"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "1秒"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d秒"
 msgstr[1] "%d秒"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "1分"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d分"
 msgstr[1] "%d分"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "1小时"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d小时"
 msgstr[1] "%d小时"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "1天"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d天"
 msgstr[1] "%d天"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "1月"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d月"
 msgstr[1] "%d月"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "1年"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "%d年"
 msgstr[1] "%d年"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1年又1月"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1年又%d月"
 msgstr[1] "1年又%d月"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d年"
 msgstr[1] "%d年"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s之后"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s之前"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "现在"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "今天"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "明天"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "昨天"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr ""
diff --git a/src/humanize/locale/zh_HK/LC_MESSAGES/humanize.po b/src/humanize/locale/zh_HK/LC_MESSAGES/humanize.po
index e37719b..eff6fd6 100644
--- a/src/humanize/locale/zh_HK/LC_MESSAGES/humanize.po
+++ b/src/humanize/locale/zh_HK/LC_MESSAGES/humanize.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-04 23:15+0200\n"
+"POT-Creation-Date: 2023-01-08 19:22+0200\n"
 "PO-Revision-Date: 2016-11-14 23:02+0000\n"
 "Last-Translator: Edward Ho <edward@edward.is>\n"
 "Language-Team: Chinese (traditional)\n"
@@ -19,347 +19,347 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: src/humanize/number.py:57
+#: src/humanize/number.py:84
 msgctxt "0 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:58
+#: src/humanize/number.py:85
 msgctxt "1 (male)"
 msgid "st"
 msgstr "第"
 
-#: src/humanize/number.py:59
+#: src/humanize/number.py:86
 msgctxt "2 (male)"
 msgid "nd"
 msgstr "第"
 
-#: src/humanize/number.py:60
+#: src/humanize/number.py:87
 msgctxt "3 (male)"
 msgid "rd"
 msgstr "第"
 
-#: src/humanize/number.py:61
+#: src/humanize/number.py:88
 msgctxt "4 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:62
+#: src/humanize/number.py:89
 msgctxt "5 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:63
+#: src/humanize/number.py:90
 msgctxt "6 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:64
+#: src/humanize/number.py:91
 msgctxt "7 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:65
+#: src/humanize/number.py:92
 msgctxt "8 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:66
+#: src/humanize/number.py:93
 msgctxt "9 (male)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:70
+#: src/humanize/number.py:97
 msgctxt "0 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:71
+#: src/humanize/number.py:98
 msgctxt "1 (female)"
 msgid "st"
 msgstr "第"
 
-#: src/humanize/number.py:72
+#: src/humanize/number.py:99
 msgctxt "2 (female)"
 msgid "nd"
 msgstr "第"
 
-#: src/humanize/number.py:73
+#: src/humanize/number.py:100
 msgctxt "3 (female)"
 msgid "rd"
 msgstr "第"
 
-#: src/humanize/number.py:74
+#: src/humanize/number.py:101
 msgctxt "4 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:75
+#: src/humanize/number.py:102
 msgctxt "5 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:76
+#: src/humanize/number.py:103
 msgctxt "6 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:77
+#: src/humanize/number.py:104
 msgctxt "7 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:78
+#: src/humanize/number.py:105
 msgctxt "8 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:79
+#: src/humanize/number.py:106
 msgctxt "9 (female)"
 msgid "th"
 msgstr "第"
 
-#: src/humanize/number.py:140
+#: src/humanize/number.py:178
 msgid "thousand"
 msgid_plural "thousand"
 msgstr[0] "千"
 msgstr[1] "千"
 
-#: src/humanize/number.py:141
+#: src/humanize/number.py:179
 msgid "million"
 msgid_plural "million"
 msgstr[0] "百萬"
 msgstr[1] "百萬"
 
-#: src/humanize/number.py:142
+#: src/humanize/number.py:180
 msgid "billion"
 msgid_plural "billion"
 msgstr[0] "十億"
 msgstr[1] "十億"
 
-#: src/humanize/number.py:143
+#: src/humanize/number.py:181
 msgid "trillion"
 msgid_plural "trillion"
 msgstr[0] "兆"
 msgstr[1] "兆"
 
-#: src/humanize/number.py:144
+#: src/humanize/number.py:182
 msgid "quadrillion"
 msgid_plural "quadrillion"
 msgstr[0] "萬億"
 msgstr[1] "萬億"
 
-#: src/humanize/number.py:145
+#: src/humanize/number.py:183
 msgid "quintillion"
 msgid_plural "quintillion"
 msgstr[0] "百京"
 msgstr[1] "百京"
 
-#: src/humanize/number.py:146
+#: src/humanize/number.py:184
 msgid "sextillion"
 msgid_plural "sextillion"
 msgstr[0] "十垓"
 msgstr[1] "十垓"
 
-#: src/humanize/number.py:147
+#: src/humanize/number.py:185
 msgid "septillion"
 msgid_plural "septillion"
 msgstr[0] "秭"
 msgstr[1] "秭"
 
-#: src/humanize/number.py:148
+#: src/humanize/number.py:186
 msgid "octillion"
 msgid_plural "octillion"
 msgstr[0] "千秭"
 msgstr[1] "千秭"
 
-#: src/humanize/number.py:149
+#: src/humanize/number.py:187
 msgid "nonillion"
 msgid_plural "nonillion"
 msgstr[0] "百穰"
 msgstr[1] "百穰"
 
-#: src/humanize/number.py:150
+#: src/humanize/number.py:188
 msgid "decillion"
 msgid_plural "decillion"
 msgstr[0] "十溝"
 msgstr[1] "十溝"
 
-#: src/humanize/number.py:151
+#: src/humanize/number.py:189
 msgid "googol"
 msgid_plural "googol"
 msgstr[0] "古高爾"
 msgstr[1] "古高爾"
 
-#: src/humanize/number.py:246
+#: src/humanize/number.py:301
 msgid "zero"
 msgstr "零"
 
-#: src/humanize/number.py:247
+#: src/humanize/number.py:302
 msgid "one"
 msgstr "一"
 
-#: src/humanize/number.py:248
+#: src/humanize/number.py:303
 msgid "two"
 msgstr "二"
 
-#: src/humanize/number.py:249
+#: src/humanize/number.py:304
 msgid "three"
 msgstr "三"
 
-#: src/humanize/number.py:250
+#: src/humanize/number.py:305
 msgid "four"
 msgstr "四"
 
-#: src/humanize/number.py:251
+#: src/humanize/number.py:306
 msgid "five"
 msgstr "五"
 
-#: src/humanize/number.py:252
+#: src/humanize/number.py:307
 msgid "six"
 msgstr "六"
 
-#: src/humanize/number.py:253
+#: src/humanize/number.py:308
 msgid "seven"
 msgstr "七"
 
-#: src/humanize/number.py:254
+#: src/humanize/number.py:309
 msgid "eight"
 msgstr "八"
 
-#: src/humanize/number.py:255
+#: src/humanize/number.py:310
 msgid "nine"
 msgstr "九"
 
-#: src/humanize/time.py:133
+#: src/humanize/time.py:152
 #, python-format
 msgid "%d microsecond"
 msgid_plural "%d microseconds"
 msgstr[0] "%d 微秒"
 msgstr[1] "%d 微秒"
 
-#: src/humanize/time.py:142
+#: src/humanize/time.py:161
 #, python-format
 msgid "%d millisecond"
 msgid_plural "%d milliseconds"
 msgstr[0] "%d 毫秒"
 msgstr[1] "%d 毫秒"
 
-#: src/humanize/time.py:145 src/humanize/time.py:220
+#: src/humanize/time.py:164 src/humanize/time.py:259
 msgid "a moment"
 msgstr "一會"
 
-#: src/humanize/time.py:147
+#: src/humanize/time.py:167
 msgid "a second"
 msgstr "1 秒"
 
-#: src/humanize/time.py:149
+#: src/humanize/time.py:170
 #, python-format
 msgid "%d second"
 msgid_plural "%d seconds"
 msgstr[0] "%d 秒"
 msgstr[1] "%d 秒"
 
-#: src/humanize/time.py:151
+#: src/humanize/time.py:173
 msgid "a minute"
 msgstr "1 分鐘"
 
-#: src/humanize/time.py:154
+#: src/humanize/time.py:177
 #, python-format
 msgid "%d minute"
 msgid_plural "%d minutes"
 msgstr[0] "%d 分鐘"
 msgstr[1] "%d 分鐘"
 
-#: src/humanize/time.py:156
+#: src/humanize/time.py:180
 msgid "an hour"
 msgstr "1 小時"
 
-#: src/humanize/time.py:159
+#: src/humanize/time.py:184
 #, python-format
 msgid "%d hour"
 msgid_plural "%d hours"
 msgstr[0] "%d 小時"
 msgstr[1] "%d 小時"
 
-#: src/humanize/time.py:162
+#: src/humanize/time.py:188
 msgid "a day"
 msgstr "1 天"
 
-#: src/humanize/time.py:164 src/humanize/time.py:167
+#: src/humanize/time.py:191 src/humanize/time.py:194
 #, python-format
 msgid "%d day"
 msgid_plural "%d days"
 msgstr[0] "%d 天"
 msgstr[1] "%d 天"
 
-#: src/humanize/time.py:169
+#: src/humanize/time.py:197
 msgid "a month"
 msgstr "1 月"
 
-#: src/humanize/time.py:171
+#: src/humanize/time.py:199
 #, python-format
 msgid "%d month"
 msgid_plural "%d months"
 msgstr[0] "%d 月"
 msgstr[1] "%d 月"
 
-#: src/humanize/time.py:174
+#: src/humanize/time.py:203
 msgid "a year"
 msgstr "1 年"
 
-#: src/humanize/time.py:176 src/humanize/time.py:185
+#: src/humanize/time.py:206 src/humanize/time.py:217
 #, python-format
 msgid "1 year, %d day"
 msgid_plural "1 year, %d days"
 msgstr[0] "%d 年"
 msgstr[1] "%d 年"
 
-#: src/humanize/time.py:179
+#: src/humanize/time.py:210
 msgid "1 year, 1 month"
 msgstr "1 年又 1 個月"
 
-#: src/humanize/time.py:182
+#: src/humanize/time.py:213
 #, python-format
 msgid "1 year, %d month"
 msgid_plural "1 year, %d months"
 msgstr[0] "1 年又 %d 個月"
 msgstr[1] "1 年又 %d 個月"
 
-#: src/humanize/time.py:187
+#: src/humanize/time.py:219
 #, python-format
 msgid "%d year"
 msgid_plural "%d years"
 msgstr[0] "%d年"
 msgstr[1] "%d年"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s from now"
 msgstr "%s 之後"
 
-#: src/humanize/time.py:217
+#: src/humanize/time.py:256
 #, python-format
 msgid "%s ago"
 msgstr "%s 之前"
 
-#: src/humanize/time.py:221
+#: src/humanize/time.py:260
 msgid "now"
 msgstr "現在"
 
-#: src/humanize/time.py:244
+#: src/humanize/time.py:284
 msgid "today"
 msgstr "今天"
 
-#: src/humanize/time.py:246
+#: src/humanize/time.py:287
 msgid "tomorrow"
 msgstr "明天"
 
-#: src/humanize/time.py:248
+#: src/humanize/time.py:290
 msgid "yesterday"
 msgstr "昨天"
 
-#: src/humanize/time.py:534
+#: src/humanize/time.py:600
 #, python-format
 msgid "%s and %s"
 msgstr "%s 與 %s"
diff --git a/src/humanize/number.py b/src/humanize/number.py
index bfd2b48..2cabf81 100644
--- a/src/humanize/number.py
+++ b/src/humanize/number.py
@@ -26,6 +26,17 @@ if TYPE_CHECKING:
 NumberOrString: TypeAlias = "float | str"
 
 
+def _format_not_finite(value: float) -> str:
+    """Utility function to handle infinite and nan cases."""
+    if math.isnan(value):
+        return "NaN"
+    if math.isinf(value) and value < 0:
+        return "-Inf"
+    if math.isinf(value) and value > 0:
+        return "+Inf"
+    return ""
+
+
 def ordinal(value: NumberOrString, gender: str = "male") -> str:
     """Converts an integer to its ordinal as a string.
 
@@ -63,6 +74,8 @@ def ordinal(value: NumberOrString, gender: str = "male") -> str:
         str: Ordinal string.
     """
     try:
+        if not math.isfinite(float(value)):
+            return _format_not_finite(float(value))
         value = int(value)
     except (TypeError, ValueError):
         return str(value)
@@ -135,11 +148,15 @@ def intcomma(value: NumberOrString, ndigits: int | None = None) -> str:
     try:
         if isinstance(value, str):
             value = value.replace(thousands_sep, "").replace(decimal_sep, ".")
+            if not math.isfinite(float(value)):
+                return _format_not_finite(float(value))
             if "." in value:
                 value = float(value)
             else:
                 value = int(value)
         else:
+            if not math.isfinite(float(value)):
+                return _format_not_finite(float(value))
             float(value)
     except (TypeError, ValueError):
         return str(value)
@@ -208,6 +225,8 @@ def intword(value: NumberOrString, format: str = "%.1f") -> str:
         be coaxed into an `int`.
     """
     try:
+        if not math.isfinite(float(value)):
+            return _format_not_finite(float(value))
         value = int(value)
     except (TypeError, ValueError):
         return str(value)
@@ -224,7 +243,8 @@ def intword(value: NumberOrString, format: str = "%.1f") -> str:
     for ordinal_, power in enumerate(powers[1:], 1):
         if value < power:
             chopped = value / float(powers[ordinal_ - 1])
-            if float(format % chopped) == float(10**3):
+            powers_difference = powers[ordinal_] / powers[ordinal_ - 1]
+            if float(format % chopped) == powers_difference:
                 chopped = value / float(powers[ordinal_])
                 singular, plural = human_powers[ordinal_]
                 return (
@@ -271,6 +291,8 @@ def apnumber(value: NumberOrString) -> str:
         is returned.
     """
     try:
+        if not math.isfinite(float(value)):
+            return _format_not_finite(float(value))
         value = int(value)
     except (TypeError, ValueError):
         return str(value)
@@ -330,6 +352,8 @@ def fractional(value: NumberOrString) -> str:
     """
     try:
         number = float(value)
+        if not math.isfinite(number):
+            return _format_not_finite(number)
     except (TypeError, ValueError):
         return str(value)
     whole_number = int(number)
@@ -393,6 +417,8 @@ def scientific(value: NumberOrString, precision: int = 2) -> str:
     }
     try:
         value = float(value)
+        if not math.isfinite(value):
+            return _format_not_finite(value)
     except (ValueError, TypeError):
         return str(value)
     fmt = "{:.%se}" % str(int(precision))
@@ -460,6 +486,9 @@ def clamp(
     if value is None:
         return None
 
+    if not math.isfinite(value):
+        return _format_not_finite(value)
+
     if floor is not None and value < floor:
         value = floor
         token = floor_token
@@ -475,10 +504,11 @@ def clamp(
     if callable(format):
         return token + format(value)
 
-    raise ValueError(
+    msg = (
         "Invalid format. Must be either a valid formatting string, or a function "
         "that accepts value and returns a string."
     )
+    raise ValueError(msg)
 
 
 def metric(value: float, unit: str = "", precision: int = 3) -> str:
@@ -516,16 +546,18 @@ def metric(value: float, unit: str = "", precision: int = 3) -> str:
     Returns:
         str:
     """
+    if not math.isfinite(value):
+        return _format_not_finite(value)
     exponent = int(math.floor(math.log10(abs(value)))) if value != 0 else 0
 
-    if exponent >= 27 or exponent < -24:
+    if exponent >= 33 or exponent < -30:
         return scientific(value, precision - 1) + unit
 
     value /= 10 ** (exponent // 3 * 3)
     if exponent >= 3:
-        ordinal_ = "kMGTPEZY"[exponent // 3 - 1]
+        ordinal_ = "kMGTPEZYRQ"[exponent // 3 - 1]
     elif exponent < 0:
-        ordinal_ = "mμnpfazy"[(-exponent - 1) // 3]
+        ordinal_ = "mμnpfazyrq"[(-exponent - 1) // 3]
     else:
         ordinal_ = ""
     value_ = format(value, ".%if" % (precision - (exponent % 3) - 1))
diff --git a/src/humanize/time.py b/src/humanize/time.py
index c28d5aa..a84f0cd 100644
--- a/src/humanize/time.py
+++ b/src/humanize/time.py
@@ -124,7 +124,8 @@ def naturaldelta(
     """
     tmp = Unit[minimum_unit.upper()]
     if tmp not in (Unit.SECONDS, Unit.MILLISECONDS, Unit.MICROSECONDS):
-        raise ValueError(f"Minimum unit '{minimum_unit}' not supported")
+        msg = f"Minimum unit '{minimum_unit}' not supported"
+        raise ValueError(msg)
     min_unit = tmp
 
     if isinstance(value, dt.timedelta):
@@ -409,9 +410,8 @@ def _suitable_minimum_unit(min_unit: Unit, suppress: typing.Iterable[Unit]) -> U
             if unit > min_unit and unit not in suppress:
                 return unit
 
-        raise ValueError(
-            "Minimum unit is suppressed and no suitable replacement was found"
-        )
+        msg = "Minimum unit is suppressed and no suitable replacement was found"
+        raise ValueError(msg)
 
     return min_unit
 
diff --git a/tests/test_i18n.py b/tests/test_i18n.py
index f8782f8..7af3ef2 100644
--- a/tests/test_i18n.py
+++ b/tests/test_i18n.py
@@ -53,6 +53,9 @@ def test_intcomma() -> None:
         humanize.i18n.activate("fr_FR")
         assert humanize.intcomma(number) == "10 000 000"
 
+        humanize.i18n.activate("pt_BR")
+        assert humanize.intcomma(number) == "10.000.000"
+
     except FileNotFoundError:
         pytest.skip("Generate .mo with scripts/generate-translation-binaries.sh")
 
diff --git a/tests/test_number.py b/tests/test_number.py
index b429931..bc67785 100644
--- a/tests/test_number.py
+++ b/tests/test_number.py
@@ -1,6 +1,7 @@
 """Number tests."""
 from __future__ import annotations
 
+import math
 import typing
 
 import pytest
@@ -25,6 +26,11 @@ from humanize import number
         ("111", "111th"),
         ("something else", "something else"),
         (None, "None"),
+        (math.nan, "NaN"),
+        (math.inf, "+Inf"),
+        (-math.inf, "-Inf"),
+        ("nan", "NaN"),
+        ("-inf", "-Inf"),
     ],
 )
 def test_ordinal(test_input: str, expected: str) -> None:
@@ -63,6 +69,11 @@ def test_ordinal(test_input: str, expected: str) -> None:
         ([1234.5454545, 2], "1,234.55"),
         ([1234.5454545, 3], "1,234.545"),
         ([1234.5454545, 10], "1,234.5454545000"),
+        ([math.nan], "NaN"),
+        ([math.inf], "+Inf"),
+        ([-math.inf], "-Inf"),
+        (["nan"], "NaN"),
+        (["-inf"], "-Inf"),
     ],
 )
 def test_intcomma(
@@ -104,9 +115,17 @@ def test_intword_powers() -> None:
         (["3500000000000000000000"], "3.5 sextillion"),
         (["8100000000000000000000000000000000"], "8.1 decillion"),
         (["-8100000000000000000000000000000000"], "-8.1 decillion"),
+        ([1_000_000_000_000_000_000_000_000_000_000_000_000], "1000.0 decillion"),
+        ([1_100_000_000_000_000_000_000_000_000_000_000_000], "1100.0 decillion"),
+        ([2_100_000_000_000_000_000_000_000_000_000_000_000], "2100.0 decillion"),
         ([None], "None"),
         (["1230000", "%0.2f"], "1.23 million"),
         ([10**101], "1" + "0" * 101),
+        ([math.nan], "NaN"),
+        ([math.inf], "+Inf"),
+        ([-math.inf], "-Inf"),
+        (["nan"], "NaN"),
+        (["-inf"], "-Inf"),
     ],
 )
 def test_intword(test_args: list[str], expected: str) -> None:
@@ -125,6 +144,11 @@ def test_intword(test_args: list[str], expected: str) -> None:
         (10, "10"),
         ("7", "seven"),
         (None, "None"),
+        (math.nan, "NaN"),
+        (math.inf, "+Inf"),
+        (-math.inf, "-Inf"),
+        ("nan", "NaN"),
+        ("-inf", "-Inf"),
     ],
 )
 def test_apnumber(test_input: int | str, expected: str) -> None:
@@ -146,6 +170,11 @@ def test_apnumber(test_input: int | str, expected: str) -> None:
         (1.5, "1 1/2"),
         (0.3, "3/10"),
         (0.333, "333/1000"),
+        (math.nan, "NaN"),
+        (math.inf, "+Inf"),
+        (-math.inf, "-Inf"),
+        ("nan", "NaN"),
+        ("-inf", "-Inf"),
     ],
 )
 def test_fractional(test_input: float | str, expected: str) -> None:
@@ -172,6 +201,11 @@ def test_fractional(test_input: float | str, expected: str) -> None:
         ([float(2e-20)], "2.00 x 10⁻²⁰"),
         ([float(-3e20)], "-3.00 x 10²⁰"),
         ([float(-4e-20)], "-4.00 x 10⁻²⁰"),
+        ([math.nan], "NaN"),
+        ([math.inf], "+Inf"),
+        ([-math.inf], "-Inf"),
+        (["nan"], "NaN"),
+        (["-inf"], "-Inf"),
     ],
 )
 def test_scientific(test_args: list[typing.Any], expected: str) -> None:
@@ -189,6 +223,9 @@ def test_scientific(test_args: list[typing.Any], expected: str) -> None:
         ([0.0001, "{:.0%}", 0.01, None, "under ", None], "under 1%"),
         ([0.9999, "{:.0%}", None, 0.99, None, "above "], "above 99%"),
         ([1, humanize.intword, 1e6, None, "under "], "under 1.0 million"),
+        ([math.nan], "NaN"),
+        ([math.inf], "+Inf"),
+        ([-math.inf], "-Inf"),
     ],
 )
 def test_clamp(test_args: list[typing.Any], expected: str) -> None:
@@ -211,8 +248,14 @@ def test_clamp(test_args: list[typing.Any], expected: str) -> None:
         ([200_000], "200 k"),
         ([1e25, "m"], "10.0 Ym"),
         ([1e26, "m"], "100 Ym"),
-        ([1e27, "A"], "1.00 x 10²⁷A"),
-        ([1.234e28, "A"], "1.23 x 10²⁸A"),
+        ([1e27, "A"], "1.00 RA"),
+        ([1.234e28, "A"], "12.3 RA"),
+        ([1.234e-28, "A"], "123 qA"),
+        ([1.235e29, "A"], "124 RA"),
+        ([2.56e-30, "V"], "2.56 qV"),
+        ([2.596e32, "F"], "260 QF"),
+        ([1e50], "1.00 x 10⁵⁰"),
+        ([1e-50], "1.00 x 10⁻⁵⁰"),
         ([-1500, "V"], "-1.50 kV"),
         ([0.12], "120 m"),
         ([0.012], "12.0 m"),
@@ -220,12 +263,16 @@ def test_clamp(test_args: list[typing.Any], expected: str) -> None:
         ([0.00012], "120 μ"),
         ([1e-23], "10.0 y"),
         ([1e-24], "1.00 y"),
-        ([1e-25], "1.00 x 10⁻²⁵"),
-        ([1e-26], "1.00 x 10⁻²⁶"),
+        ([1e-25], "100 r"),
+        ([1e-26], "10.0 r"),
         ([1, "°"], "1.00°"),
         ([0.1, "°"], "100m°"),
         ([100], "100"),
         ([0.1], "100 m"),
+        ([math.nan], "NaN"),
+        ([math.nan, "m"], "NaN"),
+        ([math.inf], "+Inf"),
+        ([-math.inf], "-Inf"),
     ],
     ids=str,
 )
diff --git a/tests/test_time.py b/tests/test_time.py
index d37fb6a..2e64df0 100644
--- a/tests/test_time.py
+++ b/tests/test_time.py
@@ -36,6 +36,9 @@ class FakeDate:
     def __init__(self, year: int, month: int, day: int) -> None:
         self.year, self.month, self.day = year, month, day
 
+    def __str__(self) -> str:
+        return f"{self.year}-{self.month}-{self.day}"
+
 
 VALUE_ERROR_TEST = FakeDate(290149024, 2, 2)
 OVERFLOW_ERROR_TEST = FakeDate(120390192341, 2, 2)
diff --git a/tox.ini b/tox.ini
index c6e41e9..be1d692 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,8 @@
 [tox]
 envlist =
-    py{py3, 311, 310, 39, 38, 37}
+    docs
+    lint
+    py{py3, 312, 311, 310, 39, 38, 37}
 
 [testenv]
 passenv =

More details

Full run details

Historical runs