#34602: Fail gettext when no translation file is found or when no msgid is
found in
the given translation file
-------------------------------------+-------------------------------------
Reporter: Gergely Kalmár | Owner: nobody
Type: Uncategorized | Status: closed
Component: | Version: 4.2
Internationalization |
Severity: Normal | Resolution: needsinfo
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Gergely Kalmár):
Sure, the case is very simple. Create a view like the one in the
documentation (see
https://docs.djangoproject.com/en/4.2/topics/i18n/translation/#standard-
translation):
{{{
from django.http import HttpResponse
from django.utils.translation import gettext as _
def my_view(request):
output = _("Welcome to my site.")
return HttpResponse(output)
}}}
Make sure that you use more than one language (e.g. set `LANGUAGES =
[('en', 'English'), ('de', 'German')])` and configure translations like
described in the documentation. Note that even if you display the view
with the German language, you will see "Welcome to my site." and will not
receive any error or warning about the fact that the German translation
file doesn't even exist yet.
Then create a translation catalog file and translate the sentence. Notice
that the translated sentence appears now properly. Now change the output
line to `output = _("Welcome to my updated site.")`. Notice how the
translated sentence turns back into English even when using German as a
language and you don't get any warning or error again.
I'd much prefer if we received an exception (or at least a warning) in
both cases. I understand that this would be a backwards-incompatible
change, which is why I suggested to perhaps use a setting to control this
(e.g. `RAISE_TRANSLATION_ERRORS`). Currently the translation system is
really error-prone, it is totally possible for a developer to change a
text in a view or a template and forget to update the translation files
and thus break translation for the end users.
--
Ticket URL: <https://code.djangoproject.com/ticket/34602#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/01070188777751ee-26721b73-8783-4848-bb3b-9332d094146b-000000%40eu-central-1.amazonses.com.