speaklater er en Python-modul som gir late strenger for oversettelser. & Nbsp; I utgangspunktet får du et objekt som ser ut til å være en streng, men endrer verdien hver gang verdien vurderes på grunnlag av en callable du gir.
For eksempel kan du ha en global lazy_gettext funksjon som returnerer en lat streng med verdien av gjeldende sett språket.
Eksempel:
>>> Fra speaklater import make_lazy_string
>>> Sval = u'Hello World '
>>> String = make_lazy_string (lambda: sval)
Dette lat strengen vil vurdere verdien av den sval variabel.
>>> String
lu'Hello World '
>>> Unicode (string)
u'Hello World '
>>> String.upper ()
u'HELLO VERDEN '
Hvis du vil endre verdien, vil den late streng endre seg:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO WELT '
Dette er spesielt nyttig når den kombineres med en tråd lokal og GetText oversettelser eller dicts av oversett strenger:
>>> Fra speaklater import make_lazy_gettext
>>> Fra threading import lokal
>>> L = lokale ()
>>> l.translations = {u'Yes ':' ja '}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> ja = lazy_gettext (u'Yes ')
>>> Print ja
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Print ja
Si
Late strenger er ingen reelle strenger så hvis du passerer denne typen strengen til en funksjon som utfører en forekomst sjekk, vil det mislykkes. I så fall må du eksplisitt konvertere den med unicode og / eller streng avhengig av hva streng skriver lat streng innkapsler.
For å sjekke om en streng er lat, kan du bruke is_lazy_string funksjon:
>>> Fra speaklater import is_lazy_string
>>> is_lazy_string (u'yes ')
False
>>> Is_lazy_string (ja)
True
Krav :
- Python
Kommentarer ikke funnet