python-humanize/humanize

`intword` uses English units regardless of the active localization

Open

#181 opened on Mar 12, 2024

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Python (127 forks)auto 404
help wanted

Repository metrics

Stars
 (740 stars)
PR merge metrics
 (PR metrics pending)

Description

Not all languages group large numbers into A103 + B106, etc. For example, Japanese has no word for 106. Instead, it has a word for 104, and 106 is written as 100 of those. Unsurprisingly, 2e7 is not written 20 × 100 × 104, but as 2000 × 104. Translations should be able to specify which powers of 10 have special names.

What did you do?

>>> import humanize
>>> humanize.i18n.activate("ja_JP")
<gettext.GNUTranslations object at 0x102fcca00>
>>> humanize.intword(234909023)
'234.9 百万'
>>> humanize.intword(2349090)
'2.3 百万'

What did you expect to happen?

>>> humanize.intword(234909023)
'2.3億'
>>> humanize.intword(2349090)
'234.9万'

What actually happened?

>>> humanize.intword(234909023)
'234.9 百万'
>>> humanize.intword(2349090)
'2.3 百万'

(This is the equivalent of putting in 23490902 and getting "234.9 hundred thousand" in English)

What versions are you using?

  • OS: Fedora 39
  • Python: 3.12
  • Humanize: 4.9.0

Contributor guide