Django internationalisation pour les pages d'administration de traduire le nom du modèle et les attributs

De Django reinhardt, l'internationalisation est très agréable (en fonction gettext, LocaleMiddleware), mais quelle est la bonne façon de traduire le nom du modèle et les attributs pour les pages d'administration? Je n'ai rien trouvé à ce sujet dans la documentation:

Je voudrais avoir "Выберите заказ для изменения" au lieu de "Выберите ordre для изменения". Remarque, "l'ordre" n'est pas traduit.

Tout d'abord, j'ai défini un modèle, activé USE_I18N = True dans settings.py, exécutez django-admin makemessages -l ru. Aucune entrée n'est créé par défaut pour le modèle des noms et des attributs.

Grepping dans le Django code source, j'ai trouvé:

$ ack "Select %s to change"
contrib/admin/views/main.py
70:        self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name))

De sorte que le verbose_name propriété méta semble jouer un rôle ici. Essayé de l'utiliser:

class Order(models.Model):
    subject = models.CharField(max_length=150)
    description = models.TextField()
    class Meta:
        verbose_name = _('order')

Maintenant la mise à jour po fichier contient msgid 'order' qui peuvent être traduits. Alors j'ai mis la traduction en. Malheureusement, l'exécution de l'admin des pages montrent le même mélange de "Выберите ordre для изменения".

Je suis actuellement à l'aide de Django 1.1.1.
Quelqu'un pourrait m'indiquer la documentation pertinente? Parce que google ne peut pas. 😉 En attendant je vais creuser plus profondément dans le django code source...

  • Désolé de vous demander, mais après la mise à jour .fichier po ne vous exécutez ./manage.py makemessages pour mettre à jour le .mo fichier?
  • makemessages à jour uniquement les fichiers po. Je pense que tu veux dire django-admin compilemessages - je vous remercie pour votre conseil! J'ai pensé parce que python est un langage dynamique, les fichiers de traduction ne sont pas compilés, en face de C. Malheureusement, ma solution ne fonctionne toujours pas livrer un mixte de traduction (langues sont mélangées dans une même phrase). Pour le nom du modèle de la LANGUAGE_CODE d'implantation du projet est utilisé. La langue pour le reste du message est déterminé par l'Agent de l'Utilisateur ('Accept-Langues"). Je vais expérimenter avec les paresseux de la traduction et de dire si cela fonctionne.
InformationsquelleAutor geekQ | 2010-05-30