Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions flask_user/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
:author: Ling Thio (ling.thio@gmail.com)
:license: Simplified BSD License, see LICENSE.txt for more details."""

import os
from passlib.context import CryptContext
from flask import Blueprint, current_app, url_for, render_template
from flask_login import LoginManager, UserMixin as LoginUserMixin
Expand All @@ -14,10 +15,8 @@
from . import passwords
from . import settings
from . import tokens
from . import translations
from . import views
from . import signals
from .translations import get_translations

# Enable the following: from flask_user import current_user
from flask_login import current_user
Expand Down Expand Up @@ -149,14 +148,26 @@ def init_app(self, app, db_adapter=None,
settings.check_settings(self)

# Initialize Translations -- Only if Flask-Babel has been installed
if hasattr(app.jinja_env, 'install_gettext_callables'):
app.jinja_env.install_gettext_callables(
lambda x: get_translations().ugettext(x),
lambda s, p, n: get_translations().ungettext(s, p, n),
newstyle=True)
try:
from flask_babelex import Domain
except ImportError:
from .translations import get_translations
if hasattr(app.jinja_env, 'install_gettext_callables'):
app.jinja_env.install_gettext_callables(
lambda x: get_translations().ugettext(x),
lambda s, p, n: get_translations().ungettext(s, p, n),
newstyle=True)
else:
app.jinja_env.add_extension('jinja2.ext.i18n')
app.jinja_env.install_null_translations()
else:
app.jinja_env.add_extension('jinja2.ext.i18n')
app.jinja_env.install_null_translations()
trans_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "translations")
flask_user_domain = Domain(trans_path, domain='flask_user')

@app.before_first_request
def merge_translations():
from flask_babelex import get_domain
get_domain().get_translations().merge(flask_user_domain.get_translations())


# Create password_crypt_context if needed
Expand All @@ -180,9 +191,6 @@ def init_app(self, app, db_adapter=None,
# Add context processor
app.context_processor(_flask_user_context_processor)

# Prepare for translations
_ = translations.gettext


def setup_login_manager(self, app):

Expand Down
5 changes: 4 additions & 1 deletion flask_user/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@

from wtforms import BooleanField, HiddenField, PasswordField, SubmitField, StringField
from wtforms import validators, ValidationError
from .translations import lazy_gettext as _
try:
from flask_babelex import lazy_gettext as _
except ImportError:
from .translations import lazy_gettext as _

# **************************
# ** Validation Functions **
Expand Down
5 changes: 4 additions & 1 deletion flask_user/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
from .decorators import confirm_email_required, login_required
from . import emails
from . import signals
from .translations import gettext as _
try:
from flask_babelex import gettext as _
except ImportError:
from .translations import gettext as _


def _call_or_get(function_or_property):
Expand Down