Opened 16 years ago
Last modified 11 years ago
#10436 closed
Application names i10n in the admin app broken — at Initial Version
Reported by: | Ramiro Morales | Owned by: | Ramiro Morales |
---|---|---|---|
Component: | contrib.admin | Version: | dev |
Severity: | Normal | Keywords: | blocktrans trans app_label breadcrumbs capfirst title app-loading |
Cc: | Ben Spaulding, Jannis Leidel, basti@…, someuniquename@… | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Having
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
as we currently do in some admin templates shows a decision has been made to provide developers the means to translate application names. The problem is this feature was DOA (r3270, django/contrib/admin/templates/admin/index.html
, similar template code was copied since then to another file: r8474, app_index.html
)
See relevant django-users and django-i18n threads for the details.
The attached patch implements the manual steps outlined by the user patrikk in the first thread with the following enhancements:
index
,app_index
: Moved the markup-as-translatable of app names from the template to the view code so the translators don't need to translate a second title()'d version of every app name.- Consistent use of the capfirst filter over the app names in the breadcrumbs of the different views
- Don't touch
base_site.html
in order to provide for translatability of the app name in the <title> HTML tag for the application-specific model list view, implement the needed change in the relevant view (app_index
) instead (replacing a "%s administration" msgid with a more translator-friendly "%(app_label)s administration" one in the process). This spare translators the need to translate both a "flatpages" and a "flatpages administration" literal. - Extended fixes to other templates that also need them (
delete_confirm.html
,object_history.html
)
Note 1: The change_form.html
template ran the app label (in addition to the capfirst
filter) through the escape
filter. This has been dropped because it seems inconsistent with what is done in rest of the templates, and because the app name isn't user-provided content.
Note 2: There seems to be some inconsistency on how the app name is .title()'d for the name that appear in the caption of model tables (index
and app_index
views) and
|capfirst`'d for use in HTML title and breadcrumbs. This has been left untouched to avoid introducing a backward incompatible change.
Note that several of the problems exposed above had already been reported in #9273 and that some of the presentation-related (like calling .title() and/or capfirst() in view code could be moved to templates if/when #5972 gets committed (will try to work on adding test+docs to it.)
Change History (1)
by , 16 years ago
Attachment: | 10436-app-name-translation-in-admin-r9998.diff added |
---|