Skip to content

Instantly share code, notes, and snippets.

@virtadpt
Forked from loki42/gist:2349796
Created August 1, 2012 20:47
Show Gist options
  • Save virtadpt/3230577 to your computer and use it in GitHub Desktop.
Save virtadpt/3230577 to your computer and use it in GitHub Desktop.
multilingual python web app with babel
# get all langs from db
all_available_languages = [a['lang'] for a in cur.fetchall()]
def get_lang(lang):
default = 'en'
mo_dir = os.path.join(os.path.abspath(os.curdir), 'locale')
domain = 'musicfilmcomedy'
langs = [lang.replace('-', '_')]
langs.append(default)
loc = i18n_tool.load_translation(langs, mo_dir, domain)
cherrypy.response.i18n = loc
cherrypy.response.current_lang = lang
i18n_tool.set_lang()
class Primary(object):
backend = JsonBackend()
def __init__(self, lang='en'):
self.lang = lang
def _render_template(self, filename, **kwargs):
'''Set up each template with required data'''
template = mylookup.get_template(filename)
get_lang(self.lang)
kwargs['lang'] = self.lang
kwargs['_'] = _
return template.render(**kwargs)
@cherrypy.expose
def index(self):
return self._render_template('index.html')
class Root(Primary):
def __init__(self, langs):
Primary.__init__(self)
for lang in langs:
setattr(self, lang, Primary(lang))
application = cherrypy.Application(Root(all_available_languages), '', config='musicfilmcomedy.conf')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment