Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix hardcoded conjunction in precisedelta() #161

Closed
ghost opened this issue Sep 28, 2020 · 8 comments · Fixed by #163
Closed

Fix hardcoded conjunction in precisedelta() #161

ghost opened this issue Sep 28, 2020 · 8 comments · Fixed by #163
Labels
bug Something isn't working

Comments

@ghost
Copy link

ghost commented Sep 28, 2020

There's a hardcoded conjunction in line 498 - time.py which needs to be fixed.

@hugovk
Copy link
Collaborator

hugovk commented Sep 28, 2020

Thanks, please could you provide some example code which triggers it?

@ghost
Copy link
Author

ghost commented Sep 29, 2020

Hi, @hugovk. Every code will trigger because it is hardcoded conjunction. Example:

>>> humanize.i18n.activate('pt_BR')
<gettext.GNUTranslations object at 0x03652AD8>
>>> humanize.precisedelta(timedelta(milliseconds=127_000))
'2 minutos and 7 segundos' # it should be '2 minutos e 7 segundos'.
>>> humanize.i18n.activate('ru_RU')
<gettext.GNUTranslations object at 0x03652C40>
>>> humanize.precisedelta(timedelta(milliseconds=127_000))
'2 минуты and 7 секунд' # it should be '2 минуты и 7 секунд'.

As you can see, there's a hardcoded and conjunction which needs to be fixed.

@hugovk hugovk added the bug Something isn't working label Sep 29, 2020
@hugovk
Copy link
Collaborator

hugovk commented Sep 29, 2020

Thanks! Please see PR #163 for a fix, cc @eldipa.

@ghost
Copy link
Author

ghost commented Sep 30, 2020

Thank you! I'll test this patch update.

@ghost ghost closed this as completed Sep 30, 2020
@ghost ghost reopened this Sep 30, 2020
@ghost
Copy link
Author

ghost commented Sep 30, 2020

Hmm, I don't know why, but the problem still persists.

I used this command line to install the patch branch:

pip install git+https://github.com/hugovk/humanize@i18n-and

And this command line to check if the problem was solved:

>>> import humanize
>>> humanize.__version__
'1.0.1.dev167'
>>> humanize.activate('pt_BR')
<gettext.GNUTranslations object at 0x03892AD8>
>>> from datetime import timedelta
>>> humanize.precisedelta(timedelta(seconds=122))
'2 minutos and 2 segundos'

Did I do something wrong?

@hugovk
Copy link
Collaborator

hugovk commented Sep 30, 2020

Thanks for testing! That's because I forgot to add the pt_BR translation here:

af178e4#diff-b45af0ec59e02401849a9249157c36b0R286

I've now added it to both pt_BR and pt_PT: 6bf67c7.

If you happen to know any of these languages, we could update those at the same time:

src/humanize/locale/es_ES/LC_MESSAGES/humanize.po
src/humanize/locale/fa_IR/LC_MESSAGES/humanize.po
src/humanize/locale/id_ID/LC_MESSAGES/humanize.po
src/humanize/locale/it_IT/LC_MESSAGES/humanize.po
src/humanize/locale/ja_JP/LC_MESSAGES/humanize.po
src/humanize/locale/ko_KR/LC_MESSAGES/humanize.po
src/humanize/locale/pl_PL/LC_MESSAGES/humanize.po
src/humanize/locale/sk_SK/LC_MESSAGES/humanize.po
src/humanize/locale/tr_TR/LC_MESSAGES/humanize.po
src/humanize/locale/uk_UA/LC_MESSAGES/humanize.po
src/humanize/locale/vi_VI/LC_MESSAGES/humanize.po
src/humanize/locale/zh_CN/LC_MESSAGES/humanize.po

@ghost
Copy link
Author

ghost commented Sep 30, 2020

Tested right now and it seems to work perfectly now. Thank you for the update! Let me know when this branch is merged so I can update the library.

@ghost ghost closed this as completed Sep 30, 2020
@hugovk
Copy link
Collaborator

hugovk commented Sep 30, 2020

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant