Grammatical error in German translation of form validation

Hi! I discovered a gramatical error in the German translation. Found it originally here.

This seems to be the problematic string: "%(model_name)s with this %(field_labels)s already exists."

This translates in German to:

Benutzer mit diesem E-Mail-Adresse existiert bereits.

The word “address” is femine, therefore it needs to be “dieser” instead of “diesem”.

Carlton Gibson mentioned that it’s a Django translation, so I’m here to fix it. :slightly_smiling_face:

How can I do that? I signed up for transifex and try to join the German team.

Best from Cologne
Ronny

Hi Ronny,

You need to wait for German team coordinator to accept your Transifex request.

Regarding the fix, I think you should follow the @claudep advice, or put an alternative form in brackets:

Benutzer mit diese(m) E-Mail-Adresse existiert bereits.

Translation taking into the account the gender of a model is not currently supported. #11688 is somehow related to this.

I started to work on “attributive” model translations in Django some time ago, but now I’m stuck on changing the template rendering. Though I created a repository with an intention to gather the requirements for better model translations in Django’s admin. Feel free to take a look and maybe contribute there.

An alternative to gettext machinery extension on Django’s side would be to migrate from gettext to project Fluent as a translation backend, but for that Fluent is still not mature enough yet.

Hi @m-aciek

thx for your reply! Then I’ll wait for the approval and try out one of the two suggested ways.

Best
Ronny

It is “dieser” not “diese” because of zhe possessive character.

Does anybody know how long an approval takes? :sweat_smile: Still nothing happened…

@MarkusH Please read above :upside_down_face:

What makes it more complicated is the fact, that there can be mutliple fields listed as field_labels in the message, e.g. E-Mail-Adresse und Login. Would article be even different in that case?

For what it’s worth I’ve logged this case in django-admin-i18n-requirements project:

% python print_improvements.py ../django de --module conf
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ current translation with examples                         ┃ enhanced translation                                                       ┃ enhanced examples                                        ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ db/models/base.py:1467                                    │ gender:field_labels:                                                       │ Benutzer mit diese E-Mail-Adresse existiert bereits.     │
│ %(model_name)s with this %(field_labels)s already exists. │   feminine: '%(model_name)s mit diese %(field_labels)s existiert bereits.' │ Gruppe mit diese E-Mail-Adresse existiert bereits.       │
│                                                           │   other: '%(model_name)s mit diesem %(field_labels)s existiert bereits.'   │ Berechtigung mit diese E-Mail-Adresse existiert bereits. │
│                                                           │                                                                            │ Sitzung mit diese E-Mail-Adresse existiert bereits.      │
│                                                           │                                                                            │ Website mit diese E-Mail-Adresse existiert bereits.      │
│                                                           │                                                                            │ Umleitung mit diese E-Mail-Adresse existiert bereits.    │
│                                                           │                                                                            │ Flat Page mit diese E-Mail-Adresse existiert bereits.    │
│                                                           │                                                                            │ Logeintrag mit diese E-Mail-Adresse existiert bereits.   │
│                                                           │                                                                            │ Inhaltstyp mit diese E-Mail-Adresse existiert bereits.   │
└───────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────┘

That’s why each language has to reformulate to find a way to make them correct. For example, some languages could find easier to translate this way:

There is already an instance %(model_name)s having the same field/s `%(field_labels)s`.

As I explained above the correct demonstrative pronoun is “dieser”, NOT “diese” for E-Mail.

And the demonstrative pronoun for “Login” would be “diesem”, thus you need to write “mit dieser E-Mail-Adresse und diesem Login”. As this seems not possible with how the sentence is structured right now, the structure itself should change.

1 Like

@doom Thx for your input. But haven’t we already agreed on the fact that we need to restructure the sentence? Still no invite, though, to be able to fix it :disappointed:

Thank you for explaining (I’ve fixed in the reqs repo). So to handle properly multiple fields in this message, we would need to move “this” inside “field_labels” to be able to control the declension properly based on the gender of particular field labels.

Polish has the same issue here (“tą”/“tym” for feminine/other gender of field label), plus declension of the noun (field label).

I’ve updated from current incorrect

%(model_name)s z tymi %(field_labels)s już istnieje.

to

Istnieje już instancja modelu %(model_name)s mająca takie same pole/pola %(field_labels)s.

following @claudep suggestion.