def gettext(string): with RECENTLY_TRANSLATED_LOCK: global RECENTLY_TRANSLATED RECENTLY_TRANSLATED = [t for t in RECENTLY_TRANSLATED[-100:] if t != string] + [string] if not ACTIVE_TRANSLATION: return string # FIXME: What if our input is utf-8? Does gettext want us to # encode it first, or send the UTF-8 string? Since we are # not encoding it, the decode below may fail. :( translation = ACTIVE_TRANSLATION.gettext(string) try: translation = translation.decode('utf-8') except UnicodeEncodeError: pass return _fmt_safe(translation, string)
def ngettext(string1, string2, n): with RECENTLY_TRANSLATED_LOCK: global RECENTLY_TRANSLATED RECENTLY_TRANSLATED = [t for t in RECENTLY_TRANSLATED[-100:] if t not in (string1, string2) ] + [string1, string2] default = string1 if (n == 1) else string2 if not ACTIVE_TRANSLATION: return default # FIXME: What if our input is utf-8? Does gettext want us to # encode it first, or send the UTF-8 string? Since we are # not encoding it, the decode below may fail. :( translation = ACTIVE_TRANSLATION.ngettext(string1, string2, n) try: translation = translation.decode('utf-8') except UnicodeEncodeError: pass return _fmt_safe(translation, default)