12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- try:
- from flask_babelex import Domain
- except ImportError:
- def gettext(string, **variables):
- return string % variables
- def ngettext(singular, plural, num, **variables):
- variables.setdefault('num', num)
- return (singular if num == 1 else plural) % variables
- def lazy_gettext(string, **variables):
- return gettext(string, **variables)
- class Translations(object):
- ''' dummy Translations class for WTForms, no translation support '''
- def gettext(self, string):
- return string
- def ngettext(self, singular, plural, n):
- return singular if n == 1 else plural
- else:
- from flask_admin import translations
- class CustomDomain(Domain):
- def __init__(self):
- super(CustomDomain, self).__init__(translations.__path__[0], domain='admin')
- def get_translations_path(self, ctx):
- view = get_current_view()
- if view is not None:
- dirname = view.admin.translations_path
- if dirname is not None:
- return dirname
- return super(CustomDomain, self).get_translations_path(ctx)
- domain = CustomDomain()
- gettext = domain.gettext
- ngettext = domain.ngettext
- lazy_gettext = domain.lazy_gettext
- try:
- from wtforms.i18n import messages_path
- except ImportError:
- from wtforms.ext.i18n.utils import messages_path
- wtforms_domain = Domain(messages_path(), domain='wtforms')
- class Translations(object):
- ''' Fixes WTForms translation support and uses wtforms translations '''
- def gettext(self, string):
- t = wtforms_domain.get_translations()
- return t.ugettext(string)
- def ngettext(self, singular, plural, n):
- t = wtforms_domain.get_translations()
- return t.ungettext(singular, plural, n)
- # lazy imports
- from .helpers import get_current_view
|