def wikiLanguages(): """ Return the available user languages in this wiki. Since the wiki has only one charset set by the admin, and the user interface files could have another charset, not all languages are available on every wiki - unless we move to Unicode for all languages translations. Even then, Python still can't recode some charsets. !!! Note: we use strict = 1 to choose only language that we can recode strictly from the language encodings to the wiki encoding. This preference could be left to the wiki admin instead. Return a dict containing a subset of Sycamore languages ISO codes. """ available = {} for lang in languages.keys(): encoding = languages[lang][ENCODING].lower() if (lang == 'en' or encoding == config.charset or canRecode(encoding, config.charset, strict=1)): available[lang] = languages[lang] return available
return (0, str(e)) except (os.error, socket.error), e: return (0, "Connection to mailserver '%(server)s' failed: %(reason)s" % { 'server': mail_smarthost, 'reason': str(e) }) return (1, "Mail sent OK") def notify_maintainer(lang, mail_text): mailaddr = languages[lang][3] rc = None if mailaddr and mailaddr.find('***vacant***') < 0: text = mail_text % locals() rc = sendmail(mail_from, [mailaddr], mail_subject, text) return rc if __name__ == '__main__': langs = languages.keys() langs.remove('en') # nothing to do for english, so remove it #langs = ['da','es','fr','hr','it','ko', 'nl', 'zh',] # for testing import sys mail_text = sys.stdin.read() if len(mail_text) > 10: # do not send mails w/o real content for lang in langs: notify_maintainer(lang, mail_text)