speaklater è un modulo Python che fornisce stringhe pigri per le traduzioni. & Nbsp; In pratica si ottiene un oggetto che sembra essere una stringa, ma cambia il valore ogni volta che il valore viene valutato sulla base di un callable fornite.
Per esempio si può avere una funzione lazy_gettext globale che restituisce una stringa pigro con il valore della lingua corrente impostata.
Esempio:
>>> Da speaklater import make_lazy_string
>>> Sval = u'Ciao mondo '
>>> Stringa = make_lazy_string (lambda: sval)
Questa stringa pigro valuterà al valore della variabile sval.
>>> Corda
lu'Hello World '
>>> Unicode (stringa)
u'Ciao mondo '
>>> String.upper ()
u'Ciao mondo '
Se si modifica il valore, la stringa pigro cambierà così:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO WELT '
Questo è particolarmente utile se combinata con un filo locale e traduzioni gettext o dicts di stringhe da tradurre:
>>> Da speaklater import make_lazy_gettext
>>> Dal threading import locale
>>> L = locale ()
>>> l.translations = {u'Yes ':' Ja '}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> sì = lazy_gettext (u'Yes ')
>>> Print yes
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Print yes
Si
Stringhe pigri sono stringhe reali, quindi se si passa questo tipo di stringa a una funzione che esegue un controllo di esempio, fallirà. In questo caso è necessario convertire in modo esplicito con unicode e / o una stringa a seconda di ciò che stringa digitare la stringa pigro racchiude.
Per verificare se una stringa è pigro, è possibile utilizzare la funzione is_lazy_string:
>>> Da speaklater import is_lazy_string
>>> is_lazy_string (u'yes ')
Falso
>>> Is_lazy_string (sì)
Vero
Requisiti :
- Python
I commenti non trovato