Code

Changes between Version 4 and Version 6 of Ticket #10436


Ignore:
Timestamp:
09/17/09 16:15:49 (5 years ago)
Author:
ramiro
Comment:

Updated ticket description.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #10436

    • Property Has patch set
  • Ticket #10436 – Description

    v4 v6  
    55}}} 
    66 
    7 as we currently do in some admin templates shows a decision has been made to provide developers the means to translate application names. 
     7as we currently do in some admin templates shows a decision has been made to allow developers the ability translate application names. 
    88 
    99Problem 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`) 
     
    1111See relevant [http://groups.google.com/group/django-users/browse_frm/thread/f8fcbe25e3327c5d django-users] and [http://groups.google.com/group/Django-I18N/browse_frm/thread/bdcdaf433bfcd144 django-i18n] threads for the details. 
    1212 
    13 The attached patch implements as a fix the awkward manual steps needed to workaround this bug outlined by the user ''patrikk'' in the first thread with the following enhancements: 
     13The attached patch implements as a fix the awkward manual steps needed to workaround this bug outlined by the user ''patrikk'' in the first thread, plus the following enhancements: 
    1414 
    15  * `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. 
    16  * Consistent use of the capfirst filter over the app names in the breadcrumbs of the different views. 
    17  * 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 will spare translators having to translate both "<appaname>" and a "<appaname administration" literals. 
    18  * Extend above fixes to other templates that also need them (`delete_confirm.html`,  `object_history.html`) 
     15 * `index`, `app_index`: Moved the markup-as-translatable of app names from the template to the view code so the translators aren't forced to translate a second `title()`'d version of every app name. 
     16 * Consistent use of the `capfirst` filter on the app names in the breadcrumbs of the different views. 
     17 * 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. Instead, implement the needed change in the relevant view (`app_index`) (replacing a `"%s administration"` msgid with a more translator-friendly `"%(app_label)s administration"` one in the process). This will spare translators the need to translate both a `"<appname>"` and a `"<appname> administration"` literals. 
     18 * Extend above fixes to other templates that also need them (`delete_confirm.html`, `object_history.html`) 
    1919 
    20 '''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. 
     20Notes to reviewers: 
    2121 
    22 '''Note 2:''' There seems to be some inconsistency on how the app name is a) .title()'d for the name that appear in the caption of model tables (`index` and `app_index` views`) and b) |capfirst'd for use in HTML title and breadcrumbs. This has been left untouched to avoid introducing a backward incompatible change. 
     22'''Note 1:''' This patch has nothing to do with the decision of how we will allow the app name metadata to be specified and marked as translatable in the app itself, that seems to be a new feature I'm sure is being dealt with in other tickets. This ticket is much less ambitious: it's about fixing an old internationalization bug in the presentation of that information (irrespective of its origin in the backend) in the admin contrib app. 
    2323 
    24 '''Note 3:''' A further enhancement would be to move presentation-related munging (like calling .title() and/or capfirst() in view code) from views to templates if/when #5972 gets committed (will try to work on adding test+docs to it) but meanwhile this fix can solve this bug now with what we have at hand. 
     24'''Note 2:''' The `change_form.html` template ran the app label through the `escape` filter. This has been dropped because it seems inconsistent with what is done in rest of the templates, the app name isn't end user-provided content so the risk of being abused for XSS seems low. 
     25 
     26'''Note 3:''' There seems to be some inconsistency on how the app name is a) `.title()`'d for the name that appear in the caption of model tables (`index` and `app_index` views) and b) `|capfirst`'d for use in HTML title and breadcrumbs. This has been left untouched to avoid introducing a backward incompatible change. 
     27 
     28'''Note 4:''' A further enhancement would be to move presentation-related munging (like calling `.title()` and/or `capfirst()` in view code) from views to templates if/when #5972 gets committed  but meanwhile this fix can solve this bug now with the tools we have at hand now. 
    2529 
    2630Several of the problems exposed above had already been reported in #9273.