Skip to content

Commit

Permalink
Merge pull request #23 from carterbox/intcomma-translation
Browse files Browse the repository at this point in the history
BUG: Use %d for year translations convert to string for intcomma after
  • Loading branch information
hugovk committed Jun 22, 2022
2 parents 0e6ef5a + e34f1cc commit 6871118
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/humanize/time.py
Expand Up @@ -202,7 +202,7 @@ def naturaldelta(
else:
return _ngettext("1 year, %d day", "1 year, %d days", days) % days

return _ngettext("%s year", "%s years", years) % intcomma(years)
return _ngettext("%d year", "%d years", years).replace("%d", "%s") % intcomma(years)


def naturaltime(
Expand Down
19 changes: 19 additions & 0 deletions tests/test_i18n.py
Expand Up @@ -53,6 +53,25 @@ def test_intcomma() -> None:
assert humanize.intcomma(number) == "10,000,000"


def test_naturaldelta() -> None:
seconds = 1234 * 365 * 24 * 60 * 60

assert humanize.naturaldelta(seconds) == "1,234 years"

try:
humanize.i18n.activate("fr_FR")
assert humanize.naturaldelta(seconds) == "1 234 ans"
humanize.i18n.activate("es_ES")
assert humanize.naturaldelta(seconds) == "1,234 años"

except FileNotFoundError:
pytest.skip("Generate .mo with scripts/generate-translation-binaries.sh")

finally:
humanize.i18n.deactivate()
assert humanize.naturaldelta(seconds) == "1,234 years"


@pytest.mark.parametrize(
("locale", "number", "expected_result"),
(
Expand Down

0 comments on commit 6871118

Please sign in to comment.