Discussion:
Question about grammatical case when “humanizing” dates
Max Merz
2018-04-16 13:08:19 UTC
Permalink
Hello everybody,

I am the author of a pull request to fix Django bug #21408
<https://code.djangoproject.com/ticket/21408>, which concerns the German
translation of the phrases “X days ago” and “X days from now”. Up until
now, these phrases were translated into German with “vor X Tage” and “in X
Tage”, while the correct translation would have been “vor X Tagen” and “in
X Tagen” (this corresponds to the Dative inflection of the word “Tag”).
The problem lies in the fact that Django's implementation does not
translate the phrase “X days ago” as one, but rather translates the phrases
“
 ago” and “X days” separately, and puts the two translations together
afterwards. I tried to fix the bug for the German language by introducing a
`naturaltime` context to pass to `npgettext_lazy` when translating “X
days”, so that it would translate to “X Tagen”. (The same holds for “
 from
now”.)

When reviewing the changes in my pull request
<https://github.com/django/django/pull/9777>, Claude Paroz noted that there
might be languages in which a differentiation between “X days ago” and “X
days from now” is needed.
My (our) question is now: Are there any such languages, and if yes, could
you provide an example?

Thank you very much in advance :)

Cheers
Max
--
You received this message because you are subscribed to the Google Groups "Django internationalization and localization" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-i18n+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-i18n.
For more options, visit https://groups.google.com/d/optout.
Fòram na Gàidhlig
2018-05-07 06:34:11 UTC
Permalink
Hi Max,

thanks for looking into this!

To answer your question: Always, always, always present the translators
with full sentences, no exceptions. Even if the current hard-coding
should work for 50 languages that have been tested, language #51 will
come along and have a different word order and screw things up.

So, the string markup should be "X days ago" and "In X days", with no
hard-coded word order at all. You're already taking the plural forms
into account by using npgettext, so that bit is correct.

Scottish Gaelic examples:

2 days ago:
2 latha air ais

3 days ago:
3 làithean air ais

In 2 days:
An ceann 2 latha

In 3 days:
An ceann 3 làithean

I hope that helps.

Cheers

GunChleoc
Post by Max Merz
Hello everybody,
I am the author of a pull request to fix Django bug #21408
<https://code.djangoproject.com/ticket/21408>, which concerns the German
translation of the phrases “X days ago” and “X days from now”. Up until
now, these phrases were translated into German with “vor X Tage” and “in
X Tage”, while the correct translation would have been “vor X Tagen” and
“in X Tagen” (this corresponds to the Dative inflection of the word “Tag”).
The problem lies in the fact that Django's implementation does not
translate the phrase “X days ago” as one, but rather translates the
phrases “… ago” and “X days” separately, and puts the two translations
together afterwards. I tried to fix the bug for the German language by
introducing a `naturaltime` context to pass to `npgettext_lazy` when
translating “X days”, so that it would translate to “X Tagen”. (The same
holds for “… from now”.)
When reviewing the changes in my pull request
<https://github.com/django/django/pull/9777>, Claude Paroz noted that
there might be languages in which a differentiation between “X days ago”
and “X days from now” is needed.
My (our) question is now: Are there any such languages, and if yes,
could you provide an example?
Thank you very much in advance :)
Cheers
Max
--
You received this message because you are subscribed to the Google
Groups "Django internationalization and localization" group.
To unsubscribe from this group and stop receiving emails from it, send
Visit this group at https://groups.google.com/group/django-i18n.
For more options, visit https://groups.google.com/d/optout.
--
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (MingW32)

mQINBFNbSyEBEADh+uhohycnZgPPnyMs5pZQG6pKyLzFZoIKbVjY31ZoPZ2SdltB
elrwn6kFZkQiDx4K6nkZFHsPh8RMvWoFWg1rGiWkdsZessLFawraC8YEZDwtlaU5
SFXbE4+QnMfbPhe9tmC8Nbhec3dfV9zcXAhxc+zkIUsKFhSkpJ2Syvo9FCA/5adW
UZgWWKFwlSg4+/lrhJ6QJnldPlXfWcuEasKF7fjdafDIdS5hdKu8Lv+CiPQWvgsi
J2BDlZLzEZf3PD+NMujUbJa0nilD2ltu3/qRvR2f86YV6wRwt4E2OD8JJQOau4X2
Pg7vqkIbnB9rMiQ6T17rQ4rc80eesGCxQ6XOba9oa1eRRZDwY7HJtYwvPdw9HZaN
Lq2RRbGDGO0q7fxrzbp1WuNN+UXOA/pmVzWWczPfPHVcNIehGf3wQI+Vgh/qa+IZ
jLJ25I1Tv85cDzvv5gdtI8PR4JTfK6Db+gUJmsuIg2fmsljxA7OmeTgSPR7nEVq5
VlHYfx1T0uKlthWw/eDwlS44vTgm6HZzIdYqdPMPa/PU1U+WVuDejyDJTn/1TY78
oJMT/IixFR+N+smohhKASprewcsO2ClWGptSG0sRTiCrVHFD3Mt6SCVaxsQLHvek
KuNAUXhR2KSvYuqGT0Nv3bplN6svCp4CuAGZ3lyOIt/Sb7OFUwzcx2sOdwARAQAB
tC5Gw7JyYW0gbmEgR8OgaWRobGlnIDxmaW9zQGZvcmFtbmFnYWlkaGxpZy5uZXQ+
iQI5BBMBAgAjBQJTW0shAhsPBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQ
UHP09XBr75NHNBAAxv2C/G13Z1kCFOSOnbPpzqcIDcMuP7RK1Mv5XfOZLfqSw4le
gdDmZggX2/EBH6xFTXFPLSE6rVUKTkHLA7IY8D43GBtDWjcIyyuLnIjtR+LhRKCP
3/Sm8MyZMQvUH1CBpUXFNnP/HCR6xjm1Mog5kXxFeCR9PMjeEiobKXIVuMfuNlBD
WzoR2Nh+oroXLjZw3VMFewiCyhu4Pe7F3sLpVldiI3PBOyPQOBZ3HEIM490D/Lrh
rl3Wwmoug8j8rqkh/Fr+kKaToRJik4PkcxsfepzhMdNfCpr7I3jE5XQHzib5Ubv8
wsSaVNBG92NTnGKoAntWXBUaiDN84St9l+Zm/BgedRk+7wdESHBuOuFXoRc0yEjF
4tLOhyO9u5bYGQWHyJiwhbw51R8G+Kh3OPq/tr4KmsuueEI2v5cLkoDzwCpYyMnu
BfU8d0mt5eULbQCWcy7LYeQs6E+CEB+tPL3Qz2zaAAvwt7N2PLMjHf5Fcqj5LqrV
mzQfcB9zQFq9Rtld/IIIDkE1y/q/SNFYsFNW/u/bxWsu+lMOYtBco++O5DJhAq6t
7rJXUBirju50hhogHfBL2v6RG1b8/uiWm0m8713ZhiSvpr4Dd+V+DU9nPli5nTmU
En6gP7TTYJKETMf7O9i873Z8yG6zd0/fBzFyruS2KRTPV2GiVT6CI37gUtw=
=fcOW
-----END PGP PUBLIC KEY BLOCK-----
--
You received this message because you are subscribed to the Google Groups "Django internationalization and localization" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-i18n+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-i18n.
For more options, visit https://groups.google.com/d/optout.
Claude Paroz
2018-05-07 06:54:22 UTC
Permalink
Post by Fòram na Gàidhlig
Hi Max,
thanks for looking into this!
To answer your question: Always, always, always present the translators
with full sentences, no exceptions. Even if the current hard-coding
should work for 50 languages that have been tested, language #51 will
come along and have a different word order and screw things up.
So, the string markup should be "X days ago" and "In X days", with no
hard-coded word order at all. You're already taking the plural forms
into account by using npgettext, so that bit is correct.
Hey GunChleoc,

You know I'm already convinced with this rule, however it's very
difficult (if possible at all) in the present use case, because the
composed string is highly dynamic. It can be:

3 days ago
2 weeks, 3 days ago
1 year, 3 months ago
...

We'll try to come with an improved situation with the patch. Anyone with
a still better implementation idea is welcome to participate.

Claude
Post by Fòram na Gàidhlig
Post by Max Merz
When reviewing the changes in my pull request
<https://github.com/django/django/pull/9777
--
You received this message because you are subscribed to the Google Groups "Django internationalization and localization" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-i18n+***@googlegroups.com.
To post to this group, send email to django-***@googlegroups.com.
Visit this group at https://groups.google.com/group/django-i18n.
For more options, visit https://groups.google.com/d/optout.
Continue reading on narkive:
Loading...