Non è possibile concatenare la stringa di due, ma la creazione di una nuova (che è già il caso con l'operazione +
in ogni caso, dal momento che stringa sono immutabili):
from django.utils.translation import gettext_lazy as _
stringtest = _("First string")
stringtest = "%s %s" % (stringtest, _(" Second string"))
print stringtest
Il problema è gettext_lazy
restituisce un oggetto proxy, dal momento che di solito viene utilizzato per tradurre la stringa nella definizione della classe (nell'attributo model per esempio) e non è progettato per essere utilizzato nel codice vista, come lo state facendo in questo momento. L'oggetto proxy ha un metodo per tradurlo in un oggetto str
MA non è una stringa.
Se non si ha realmente bisogno di questo _lazy
specificità, si può semplicemente utilizzare gettext
nel vostro punto di vista, che restituisce stringa di pianura:
>>> from django.utils.translation import gettext as _
>>> _("str1 ") + _("str2")
'str1 str2'
fonte
2014-05-17 09:40:02
Qual è l'eccezione? –
@KrzysztofSzularz Ottengo un errore 'impossibile concatenare 'str' e '__proxy__' errori – Erwan