8
votes

Quel système d'internationalisation dynamique à utiliser dans les projets Django?

Je développe un nouveau projet à partir de zéro avec Django. Je vois qu'il existe de nombreuses applications pour gérer la traduction du contenu dynamique.

  • Django-multilingue
  • Django-Pluggable-Model-i18n
  • Django-ModelTranslation
  • transdb
  • Django-multilingue-modèle -
  • django-transmetta

    Nommer peu.

    TRANSDB, transmetta et foire sonnelle multilingue, mais je veux lire des expériences personnelles.

    Lequel d'entre eux devrais-je choisir?


2 commentaires

Sans exigences réelles, la réponse est "Rouler une matrice". Il y a six choix. Six visages sur une matrice. Rouler et aller. Si vous n'aimez pas la réponse des dés, vous devrez également penser aux exigences ou réfléchir aux raisons pour lesquelles vous ne voudriez pas l'un des choix s'il a été choisi pour vous par un outsider.


Sans exigences réelles, la réponse reste "rouler une matrice".


4 Réponses :


5
votes

Je suis d'accord avec S.Lott dans lequel vous voudrez penser à ce dont vous avez besoin de l'internationalisation. Cependant, il s'agit d'une très bonne épuisée de tous les paquets mentionnés:

http: //blog.muhuk .Com / 2010/01/06 / Dynamic-Traduction-Apps-for-django.htm

Mon choix personnel jusqu'à présent est "rien de ce qui précède". Je suis actuellement prototypage avec Datatrans:

http://github.com/citylive/django-datatrans

http://www.botondus.com/dynamic-translation- avec-django-datatrans /

Mais je peux encore choisir une autre solution.


0 commentaires

0
votes

J'utilise le Django I18N pour un bilingue Projet: Je suis vraiment vraiment satisfait de celui-ci et je le recommanderais certainement, mais je dois dire que je n'ai jamais essayé l'un des autres ...


2 commentaires

Ce n'est pas une méthode élégante à utiliser avec du contenu dynamique.


Tout d'abord, vous avez besoin d'une sorte de hack pour ajouter le contenu traduisateur dans la base de données aux fichiers .po. Ensuite, vous devez fournir une interface pour les générateurs de contenu pour modifier et compiler ces fichiers. Enfin, vous devez redémarrer votre application pour apporter des modifications, ce qui peut être abusable si vos opérateurs ont ce privilège. Le support I18N intégré de Django n'est que génial pour le texte statique.



3
votes

Il y a 2 types de traduction modèle:

  1. Ajout de colonnes / champs supplémentaires au modèle à traduire
  2. en utilisant une deuxième table pour les traductions

    La 1ère approche est plus efficace car vous n'utilisez pas de jointures supplémentaires. Et le 2e one est moins intrusif car il ne modifie pas la table modèle d'origine. Personnellement, j'aime mieux la 1ère option et c'est l'une des principales raisons pour lesquelles j'utilise Django-Modeltranslation .

    Vous pouvez également consulter cette .


0 commentaires

2
votes

django-nani est une nouvelle application, qui est rapide et bien écrite en utilisant probablement la meilleure approche de conception.

C'est toujours en développement mais fonctionne bien et a un documentation . p>

Il s'agit d'un extrait pour voir comment les modèles multilingues sont définis: P>

from django.db import models
from nani.models import TranslatableModel, TranslatedFields


class DjangoApplication(TranslatableModel):
    name = models.CharField(max_length=255, unique=True)
    author = models.CharField(max_length=255)

    translations = TranslatedFields(
        description = models.TextField(),
        description_author = models.CharField(max_length=255),
    )

    def __unicode__(self):
        return self.name


0 commentaires