J'ai besoin de résoudre un problème de traduction de genre, et Django ne semble pas avoir J'ai besoin de traduire de l'anglais: p> dans deux formes d'espagnol, une pour chaque sexe . Si l'utilisateur est un homme: p> et si est une femelle: p> notez la différence (Bienvenido / BIENVENIDA) P> Y a-t-il un moyen de l'obtenir? P> Merci, P> h. P> P>
3 Réponses :
Django est juste python, vous pouvez donc utiliser les liaisons Python GetText directement si vous en avez besoin, je ne vois aucune raison pour laquelle vous ne pouviez pas écrire un {% Gender_Trans [Gender]%} tag. P>
"Gender_Trans" peut ne pas être la nommée parfaite pour la balise :-)
La bibliothèque Python GetText ne prend pas en charge les contextes, voir bugs.python.org/issue2504 . Babel n'aide pas également ici, puisque MsgCtX Support est prévu pour la version 1.0, voir Babel.dgewall.org/milestone /1.0
Dans l'exemple op, le sexe dépend du contenu d'une variable: nous avons donc besoin d'un moyen d'extraire le «genre» de «nom d'utilisateur»!
@zgoda Python 3.8 Enfin, le support pGardtext code> et des fonctions similaires qui prennent un contexte: docs.python.org/3/library/gettext.html#gettext.pgetText
En attendant que les contextes soient pris en charge, une alternative facile serait de changer légèrement la phrase espagnole et d'utiliser une salutation qui ne varie pas en fonction du sexe d'une personne. Par exemple, vous pouvez utiliser "HOLA", ou un autre terme équivalent. P>
Cela peut travailler pour l'espagnol, mais pas pour d'autres langues traduites (si ...)
Les contextes sont pris en charge maintenant à Django.
La façon dont j'ai résolu ceci est:
Tout comme une mise à jour de ce numéro, les marqueurs contextuels sont désormais pris en charge dans Django 1.3: docs.djangoproject.com/fr/dev/topics/i18n/internationalizat ion / ...