Permission names should be translated on syncdb
|Reported by:||hcarvalhoalves||Owned by:||nobody|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The basic permissions created during syncdb (add, change, delete) should be localized according to the LANGUAGE_CODE. Permission names are the only human-readable representation available to apps using contrib.auth, and are also used on contrib.admin, so it's kind of disappointing that all the admin is translated, but still unusable for managing permissions by non-english speakers because permissions aren't translated.
The relevant code is at django/contrib/auth/management/__init__.py:12
def _get_all_permissions(opts): "Returns (codename, name) for all permissions in the given opts." perms =  for action in ('add', 'change', 'delete'): perms.append((_get_permission_codename(action, opts), u'Can %s %s' % (action, opts.verbose_name_raw))) return perms + list(opts.permissions)
I tried a patch (see attachment), and created translations to my locale (pt_BR), but syncdb doesn't seem to consider translations.
Looking for an insight on this, fixing this should be trivial, and would help a lot those using contrib.auth (today I need to edit all my permission's names by hand to about 60 models, it sucks).
Change History (4)
Changed 7 years ago by hcarvalhoalves
comment:1 follow-up: ↓ 2 Changed 7 years ago by Alex
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Resolution set to duplicate
- Status changed from new to closed