2011-07-08 3 views
1

J'utilise les blocktrans suivants:Utilisation blocktrans pour la traduction

{% blocktrans with item|gender_text as gendertext %} 
    This is {{gendertext}} item 
{% endblocktrans %} 

Dans mon fichier .po j'ai

msgid "This is %(gendertext)s item" 
msgstr "Some translation ... %(gendertext)s" 

Pour toute autre langue que l'anglais, je ne voudrais pas utiliser le gendertext variable. Je ne voudrais donc avoir

msgstr "Some translation ..." 

Cependant, quand j'enlève le %(gendertext)s de de msgstr, django_admin cris (lors de la compilation des messages):

'msgstr' is not a valid Python format string, unlike 'msgid'. Reason: The string ends in the middle of a directive. 
msgfmt: found 1 fatal error 

solutions de contournement pour ce cas?

Meir

+0

Mettre une condition dans votre modèle n'est pas bon pour vous? – sahid

Répondre

1

Si je comprends bien votre question, Django est juste de donner cette beacsue d'erreur, votre clé doit être là pour tout exemple languages.For, il n'y a pas un tel cas: en anglais, j'ai un gendertext clé mais en turc, je n'ai pas besoin de cette clé.

Une solution simple est de garder cette clé dans les deux langues, mais gardez-la vide si vous ne voulez pas rendre.

Outre votre question, je vous recommande vivement d'utiliser l'application rosetta, http://code.google.com/p/django-rosetta/ pour les processus de traduction.

Questions connexes