Make Ukrainian locale name follow ISO 639, update it and add tests#957
Make Ukrainian locale name follow ISO 639, update it and add tests#957nykula wants to merge 1 commit intopython-pendulum:masterfrom
Conversation
|
|
||
| def diff_for_humans(): | ||
| d = pendulum.now().subtract(seconds=1) | ||
| assert d.diff_for_humans(locale=locale) == "кілька секунд тому" |
There was a problem hiding this comment.
assert d.diff_for_humans(locale=locale) == "1 секунду тому"
There was a problem hiding this comment.
Pendulum considers diffs less than 10 seconds, including 0 or 1, to be "a few seconds", so I'd leave this test as is, which matches the behavior of other locales.
|
|
||
| d = pendulum.now().subtract(weeks=2) | ||
| assert d.diff_for_humans(locale=locale) == "2 тижні тому" | ||
|
|
There was a problem hiding this comment.
d = pendulum.now().subtract(weeks=5)
assert d.diff_for_humans(locale=locale) == "5 тижнів тому"
There was a problem hiding this comment.
weeks=5 behaves in the same way as months=1, resulting in 1 місяць тому. Should I add that assertion?
There was a problem hiding this comment.
All locales behave the same in this regard. @afastronomer most likely meant that from the grammar point of view, 2 weeks and 5 weeks correspond to different forms in Ukrainian. But the latter form is currently unused in Pendulum; there's no feature, that I know of, to get a human representation of a duration in a specific unit such as weeks. One way to get to the form is:
pendulum.locale('uk').translation(f"units.week.{pendulum.locale('uk').plural(5)}").format(5)
# -> '5 тижнів'|
|
||
| d = pendulum.now().subtract(days=2) | ||
| assert d.diff_for_humans(locale=locale) == "2 дні тому" | ||
|
|
There was a problem hiding this comment.
d = pendulum.now().subtract(days=5)
assert d.diff_for_humans(locale=locale) == "5 днів тому"
There was a problem hiding this comment.
Makes sense to check, thanks, will commit when I have more time.
| lower = locale.lower() | ||
| if lower == 'ua': | ||
| # Backward compatibility. Ukrainian was 'ua' initially. | ||
| lower = 'uk' | ||
| return lower |
There was a problem hiding this comment.
Don't think we need that, since the initial locale had the wrong code. @ashb what do you think?
Pull Request Check List
Fixes #955.