Example #1
0
 def locale(self): 
     locale = request.params.get('locale')
     if locale is not None:
         try:
             set_session_locale(locale)
         except ValueError:
             abort(400, _('Invalid language specified'))
         try:
             set_lang(locale)
             # NOTE: When translating this string, substitute the word
             # 'English' for the language being translated into.
             # We do it this way because some Babel locales don't contain
             # a display_name!
             # e.g. babel.Locale.parse('no').get_display_name() returns None
             h.flash_notice(_("Language has been set to: English"))
         except:
             h.flash_notice(_("Language has been set to: English"))
     else:
         abort(400, _("No language given!"))
     return_to = get_redirect()
     if not return_to:
         # no need for error, just don't redirect
         return 
     return_to += '&' if '?' in return_to else '?'
     # hack to prevent next page being cached
     return_to += '__cache=%s' %  int(random.random()*100000000)
     redirect_to(return_to)
Example #2
0
 def locale(self): 
     locale = request.params.get('locale')
     if locale is not None:
         try:
             set_session_locale(locale)
         except ValueError:
             abort(400, _('Invalid language specified'))
         try:
             set_lang(locale)
             # NOTE: When translating this string, substitute the word
             # 'English' for the language being translated into.
             # We do it this way because some Babel locales don't contain
             # a display_name!
             # e.g. babel.Locale.parse('no').get_display_name() returns None
             h.flash_notice(_("Language has been set to: English"))
         except:
             h.flash_notice(_("Language has been set to: English"))
     else:
         abort(400, _("No language given!"))
     return_to = get_redirect()
     if not return_to:
         # no need for error, just don't redirect
         return 
     return_to += '&' if '?' in return_to else '?'
     # hack to prevent next page being cached
     return_to += '__cache=%s' %  int(random.random()*100000000)
     redirect_to(return_to)
Example #3
0
    def __before__(self):
        @cache.beaker_cache(**config['cache_options_nonpage'])
        def get_categories():
            return model.Category.all()

        @cache.beaker_cache(**config['cache_options_nonpage'])
        def get_user():
            try:
                return model.User.by_id(session['userid']).one()
            except (KeyError, NoResultFound):
                try:
                    del session['userid']
                    session.save()
                except KeyError:
                    pass
                return model.Guest()
        try:
            set_lang(request.GET['language'])
        except KeyError:
            pass
        c.blog_title = config['blog.title']
        c.blog_tagline = config['blog.tagline']
        c.breadcrumbs = []
        c.categories = get_categories()
        c.csrf_token = h.secure_form.auth_token_hidden_field()
        c.user = get_user()
Example #4
0
 def no_lang(self):
     resp = Response()
     set_lang(None)
     resp.write(_('No language'))
     set_lang([])
     resp.write(_('No languages'))
     return resp
Example #5
0
def user_language(user, fallbacks=[]):
    # find out the locale
    locale = None
    if user and user.locale:
        locale = user.locale

    if locale is None:
        locales = map(str, LOCALES)
        locale = Locale.parse(Locale.negotiate(fallbacks, locales)) \
                 or get_default_locale()

    # determinate from which path we load the translations
    translations_module = config.get('adhocracy.translations', 'adhocracy')
    translations_module_loader = pkgutil.get_loader(translations_module)
    if translations_module_loader is None:
        raise ValueError(('Cannot import the module "%s" configured for '
                          '"adhocracy.translations". Make sure it is an '
                          'importable module (and contains the '
                          'translation files in a subdirectory '
                          '"i18n"') % translations_module)

    translations_root = translations_module_loader.filename
    translations_config = {'pylons.paths': {'root': translations_root},
                           'pylons.package': config.get('pylons.package')}

    # set language and fallback
    set_lang(locale.language, pylons_config=translations_config)
    add_fallback(get_default_locale().language,
                 pylons_config=translations_config)
    formencode.api.set_stdtranslation(domain="FormEncode",
                                      languages=[locale.language])
    return locale
Example #6
0
def user_language(user, fallbacks=[]):
    # find out the locale
    locale = None
    if user and user.locale:
        locale = user.locale

    if locale is None:
        locales = map(str, LOCALES)
        locale = Locale.parse(Locale.negotiate(fallbacks, locales)) \
                 or get_default_locale()

    # determinate from which path we load the translations
    translations_module = config.get('adhocracy.translations', 'adhocracy')
    translations_module_loader = pkgutil.get_loader(translations_module)
    if translations_module_loader is None:
        raise ValueError(('Cannot import the module "%s" configured for '
                          '"adhocracy.translations". Make sure it is an '
                          'importable module (and contains the '
                          'translation files in a subdirectory '
                          '"i18n"') % translations_module)

    translations_root = translations_module_loader.filename
    translations_config = {'pylons.paths': {'root': translations_root},
                           'pylons.package': config.get('pylons.package')}

    # set language and fallback
    set_lang(locale.language, pylons_config=translations_config)
    add_fallback(get_default_locale().language,
                 pylons_config=translations_config)
    formencode.api.set_stdtranslation(domain="FormEncode",
                                      languages=[locale.language])
    return locale
 def no_lang(self):
     resp = Response()
     set_lang(None)
     resp.write(_("No language"))
     set_lang([])
     resp.write(_("No languages"))
     return resp
Example #8
0
    def __before__(self):
        @cache.beaker_cache(**config['cache_options_nonpage'])
        def get_categories():
            return model.Category.all()

        @cache.beaker_cache(**config['cache_options_nonpage'])
        def get_user():
            try:
                return model.User.by_id(session['userid']).one()
            except (KeyError, NoResultFound):
                try:
                    del session['userid']
                    session.save()
                except KeyError:
                    pass
                return model.Guest()

        try:
            set_lang(request.GET['language'])
        except KeyError:
            pass
        c.blog_title = config['blog.title']
        c.blog_tagline = config['blog.tagline']
        c.breadcrumbs = []
        c.categories = get_categories()
        c.csrf_token = h.secure_form.auth_token_hidden_field()
        c.user = get_user()
Example #9
0
    def __init__(self):

        lang = request.params.get('lang')
        if lang:
            if is_valid_string(lang):
                try:
                    set_lang(os.path.basename(lang))
                except LanguageError:
                    pass
        else:
            for lang in request.languages:
                if is_valid_string(lang):
                    try:
                        set_lang(lang)
                    except LanguageError:
                        continue
        try:
            add_fallback('en')
        except LanguageError:
            pass

        self.PREFIXES = {
            'mime': "m:",
            'group': "g:",
            'category': "c:",
            'license': "l:",
            'useflag': "u:",
            'library': "so:",
            'provided_library': "sop:",
        }
Example #10
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(
            Locale.negotiate(get_available_languages(), requested))

    if locale is None:
        locale = get_default_locale()

    tmpl_context.locale = locale

    options = [
        str(locale), locale.language,
        str(get_default_locale()),
        get_default_locale().language
    ]
    for language in options:
        try:
            set_lang(language)
            # Lose the territory part of the locale string
            tmpl_context.language = get_lang()[0].split('_')[0]
            break
        except:
            pass
Example #11
0
    def __init__(self):

        lang = request.params.get('lang')
        if lang:
            if is_valid_string(lang):
                try:
                    set_lang(os.path.basename(lang))
                except LanguageError:
                    pass
        else:
            for lang in request.languages:
                if is_valid_string(lang):
                    try:
                        set_lang(lang)
                    except LanguageError:
                        continue
        try:
            add_fallback('en')
        except LanguageError:
            pass

        self.PREFIXES = {
            'mime': "m:",
            'group': "g:",
            'category': "c:",
            'license': "l:",
            'useflag': "u:",
            'library': "so:",
            'provided_library': "sop:",
        }
Example #12
0
    def __call__(self, environ, start_response):
        """Invoke the Controller."""
        # set the language fallback to english
        add_fallback("en")
        # define the language based on browser preference
        user_agent_language = request.languages[0][0:2]
        set_lang(user_agent_language)
        formencode.api.set_stdtranslation(user_agent_language)

        # common values mostly inherited from config file
        c.version = __version__ # TODO move this into the development.ini file
        c.site_full_name = config["site_full_name"] # TODO move this into the development.ini file
        c.site_short_name = config["site_short_name"] # TODO move this into the development.ini file

        # controler and action named for use in templates
        #c.controller = request.environ['pylons.routes_dict']['controller']
        #c.action = request.environ['pylons.routes_dict']['action']

        # WSGIController.__call__ dispatches to the Controller method
        # the request is routed to. This routing information is
        # available in environ['pylons.routes_dict']
        try:
            return WSGIController.__call__(self, environ, start_response)
        finally:
            meta.Session.remove()
Example #13
0
File: base.py Project: TimmGit/posy
def setup_i18n(languages=None):
    if not languages:
        languages = pylons.request.accept_language.best_matches()
    if languages:
        for lang in languages[:]:
            try:
                add_fallback(lang)
            except LanguageError:
                # if there is no resource bundle for this language
                # remove the language from the list
                languages.remove(lang)
                log.debug("Skip language %s: not supported", lang)
        # if any language is left, set the best match as a default
        if languages:
            try:
                set_lang(languages[0])
            except LanguageError:
                log.debug("Language %s: not supported", languages[0])
            else:
                log.debug("Set request language to %s", languages[0])

            try:
                set_formencode_translation(languages)
            except LanguageError:
                log.debug("Language %s: not supported by FormEncode",
                        languages[0])
            else:
                log.debug("Set request language for FormEncode to %s",
                        languages[0])
Example #14
0
def localize(f, *args, **kwargs):
    if 'lang' in session:
        lang = session['lang']
        set_lang(lang)
    else:
        suport_lang = ['ru','en','uk']
        suport_domain = ['cleverad.yt:5000','10.0.0.8:5000']
        default_lang = 'ru'
        lang_cookie = request.cookies.get('lang', None)
        if not lang_cookie in suport_lang:
            lang_cookie = None
        domain = request.environ.get('HTTP_HOST', None)
        if not domain in suport_domain:
            domain = None
        if lang_cookie != None:
            lang = lang_cookie
        else:
            if domain == 'cleverad.yt:5000':
                lang = 'en'
            elif domain == '10.0.0.8:5000':
                lang = 'uk'
            elif domain == '10.0.0.8':
                lang = 'ru'
            else:
                lang = default_lang
        session['lang'] = lang
        session.save()
        set_lang(lang)
    response.set_cookie('lang', lang, max_age=360*24*3600 )
    return f(*args, **kwargs)
Example #15
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(Locale.negotiate(get_available_languages(), requested))

    if locale is None:
        locale = get_default_locale()

    tmpl_context.locale = locale

    options = [str(locale), locale.language, str(get_default_locale()),
        get_default_locale().language]
    for language in options:
        try:
            set_lang(language)
            # Lose the territory part of the locale string
            tmpl_context.language = get_lang()[0].split('_')[0]
            break
        except:
            pass
Example #16
0
File: base.py Project: Turante/posy
def setup_i18n(languages=None):
    if not languages:
        languages = pylons.request.accept_language.best_matches()
    if languages:
        for lang in languages[:]:
            try:
                add_fallback(lang)
            except LanguageError:
                # if there is no resource bundle for this language
                # remove the language from the list
                languages.remove(lang)
                log.debug("Skip language %s: not supported", lang)
        # if any language is left, set the best match as a default
        if languages:
            try:
                set_lang(languages[0])
            except LanguageError:
                log.debug("Language %s: not supported", languages[0])
            else:
                log.debug("Set request language to %s", languages[0])

            try:
                set_formencode_translation(languages)
            except LanguageError:
                log.debug("Language %s: not supported by FormEncode",
                          languages[0])
            else:
                log.debug("Set request language for FormEncode to %s",
                          languages[0])
Example #17
0
def user_language(user, fallbacks=[]):
    # find out the locale
    locale = None
    if user and user.locale:
        locale = user.locale

    if locale is None:
        locale = Locale.parse(Locale.negotiate(fallbacks, LOCALE_STRINGS_DASH,
                                               sep='-',
                                               aliases=A2_LOCALE_ALIASES)) \
            or get_default_locale()

    # determinate from which path we load the translations
    translations_config = {
        'pylons.paths': {
            'root': _get_translations_root()
        },
        'pylons.package': config.get('pylons.package')
    }

    # set language and fallback
    set_lang(str(locale), pylons_config=translations_config)
    add_fallback(str(get_default_locale()), pylons_config=translations_config)
    formencode.api.set_stdtranslation(domain="FormEncode",
                                      languages=[locale.language])
    return locale
Example #18
0
def setLang(lang):
    oldLang = get_lang()
    if (lang and (len(lang) == 2)):
        set_lang(lang)
    else:
        langToSet = langForCurrentRequest()
        set_lang(langToSet)  # TODO: check
    return oldLang[0]
Example #19
0
 def _set_lang(self, gettext):
     lang = request.GET['lang']
     try:
         set_lang(lang)
     except (LanguageError, IOError), e:
         resp_unicode = gettext('Could not set language to "%(lang)s"') % {
             'lang': lang
         }
Example #20
0
File: i18n.py Project: zydio/ckan
def handle_request(request, tmpl_context):
    ''' Set the language for the request '''
    lang = request.environ.get('CKAN_LANG',
                               config.get('ckan.locale_default', 'en'))
    if lang != 'en':
        i18n.set_lang(lang)
    tmpl_context.language = lang
    return lang
Example #21
0
def handle_request(request, tmpl_context):
    ''' Set the language for the request '''
    lang = request.environ.get('CKAN_LANG') or \
                        config.get('ckan.locale_default', 'en')
    if lang != 'en':
        i18n.set_lang(lang)
    tmpl_context.language = lang
    return lang
Example #22
0
 def __before__(self):
     set_lang(request.environ['app.lang'])
     h.setMenuItems(_('menus.dat'))
     self.menu_items = session[_('menus.dat')]
     if 'site_settings' not in session:
         settingsf = file(config['settings_file'],'rb')        
         session['site_settings'] = pickle.load(settingsf)        
         session.save()
Example #23
0
 def __before__(self):
     if 'lang' in session:
         set_lang(session['lang'])
     else:
         set_lang('fa')
         session['lang']='fa'
         session.save()
     h.setMenuItems(_('menus.dat'))
     self.menu_items = session[_('menus.dat')]
Example #24
0
    def __before__(self):
        if 'lang' in session:
            set_lang(session['lang'])
            set_stdtranslation(languages=['en','fa'])
        else:
            set_lang('fa')
            session['lang']='fa'
            session.save()

        h.setMenuItems(_('menus.dat'))
        self.menu_items = session[_('menus.dat')]
Example #25
0
File: i18n.py Project: tbalaz/test
def _set_lang(lang):
    ''' Allows a custom i18n directory to be specified.
    Creates a fake config file to pass to pylons.i18n.set_lang, which
    sets the Pylons root path to desired i18n_directory.
    This is needed as Pylons will only look for an i18n directory in
    the application root.'''
    if config.get('ckan.i18n_directory'):
        fake_config = {'pylons.paths': {'root': config['ckan.i18n_directory']},
                       'pylons.package': config['pylons.package']}
        i18n.set_lang(lang, pylons_config=fake_config)
    else:
        i18n.set_lang(lang)
Example #26
0
 def __before__(self):        
     #if 'lang' in session:
         #set_lang(session['lang'])
     #else:
         #set_lang('fa')
         #session['lang']='fa'
         #session.save()
     set_lang(request.environ['app.lang'])
         
     h.setMenuItems(_('menus.dat'))
     h.setPageContents(_('pages.dat'))
     self.menu_items = session[_('menus.dat')]     
Example #27
0
def _set_lang(lang):
    ''' Allows a custom i18n directory to be specified.
    Creates a fake config file to pass to pylons.i18n.set_lang, which
    sets the Pylons root path to desired i18n_directory.
    This is needed as Pylons will only look for an i18n directory in
    the application root.'''
    if config.get('ckan.i18n_directory'):
        fake_config = {'pylons.paths': {'root': config['ckan.i18n_directory']},
                       'pylons.package': config['pylons.package']}
        i18n.set_lang(lang, pylons_config=fake_config, class_=Translations)
    else:
        i18n.set_lang(lang, class_=Translations)
Example #28
0
File: base.py Project: gjn/mf-chsdi
    def __before__(self):
        default_lang = 'de'
        for lang in request.languages:
            if lang[:2] in ['de','fr','rm','it','en']:
                default_lang = lang[:2]
                break
        self.lang = request.params.get('lang', default_lang)
        if self.lang == 'rm':
            set_lang('fi', fallback=True)
        else:
           set_lang(self.lang, fallback=True)

        c.lang = self.lang
Example #29
0
    def __before__(self, action, **params):
        self.user = None
        try:
            user = session.get('user')
            if user:
                request.environ['REMOTE_USER'] = user
                request.environ['REMOTE_USER_NAME'] = session.get('user_name')
                self.user = user
        except:
            pass

        if 'lang' in session:
            set_lang(session['lang'])
	def __before__(self, action, **params):
		self.user = None
		try:
			user = session.get('user')
			if user:
				request.environ['REMOTE_USER'] = user
				request.environ['REMOTE_USER_NAME'] = session.get('user_name')
				self.user = user
		except:
			pass

		if 'lang' in session:
			set_lang(session['lang'])
Example #31
0
def _set_lang(lang):
    """ Allows a custom i18n directory to be specified.
    Creates a fake config file to pass to pylons.i18n.set_lang, which
    sets the Pylons root path to desired i18n_directory.
    This is needed as Pylons will only look for an i18n directory in
    the application root."""
    if config.get("ckan.i18n_directory"):
        fake_config = {
            "pylons.paths": {"root": config["ckan.i18n_directory"]},
            "pylons.package": config["pylons.package"],
        }
        i18n.set_lang(lang, pylons_config=fake_config)
    else:
        i18n.set_lang(lang)
Example #32
0
    def __call__(self, environ, start_response):
        """Invoke the Controller"""
        # WSGIController.__call__ dispatches to the Controller method
        # the request is routed to. This routing information is
        # available in environ['pylons.routes_dict']
        

        lang = request.params.get('language', None) 
        if lang and lang == 'de':
            session['lang'] = lang
        elif lang and lang == 'en':
            session['lang'] = lang

        if 'lang' in session: 
            if session['lang'] == 'de':
                set_lang(session['lang'])
        else:
            for ua_lang in request.languages:
                if ua_lang[0:2] == 'de':
                    session['lang'] = 'de'
                    break
                
                if ua_lang[0:2] == 'en':
                    session['lang'] = 'en'
                    
            if not 'lang' in session:
                session['lang'] = 'en'
                
            if session['lang'] == 'de':
                set_lang(session['lang'])
            
        try:
            c.user = session['user']
        except:
            pass


        #~ if asbool(config['debug']) and c.user:
            #~ query = meta.Session.query(model.User)
            #~ tmp = query.filter_by(id=c.user.id).first()
            #~ if not tmp:
                #~ log.debug('FOOOOOOO')
                #~ c.user = None
                #~ session['user'] = None
                #~ #redirect_to(controller='login', action='signout')
            
        try:
            return WSGIController.__call__(self, environ, start_response)
        finally:
            meta.Session.remove()
Example #33
0
    def __before__(self):
        if "photos" not in session:
            session["photos"] = {}
            session["photos"]["files"] = []

        if "lang" in session:
            set_lang(session["lang"])
            set_stdtranslation(languages=["en", "fa"])
        else:
            set_lang("fa")
            session["lang"] = "fa"
            session.save()

        h.setMenuItems(_("menus.dat"))
        self.menu_items = session[_("menus.dat")]
Example #34
0
    def __before__(self):
        # Set language according to what the browser requested
        user_agent_language = request.languages[0][0:2]
        if user_agent_language in g.supported_languages:
            set_lang(user_agent_language)
        else:
            set_lang(g.default_language)

        if self.requires_auth and 'user_id' not in session:
            # Remember where we came from so that the user can be sent there
            # after a successful login
            session['path_before_login'] = request.path_info
            session.save()
            return redirect_to(h.url_for(controller='login'))

        c.config = config
Example #35
0
def setup_i18n():
    from pylons.i18n import add_fallback, set_lang, LanguageError
    languages = pylons.request.accept_language.best_matches()
    if languages:
        for lang in languages[:]:
            try:
                add_fallback(lang)
            except LanguageError:
                # if there is no resource bundle for this language
                # remove the language from the list
                languages.remove(lang)
                log.debug("Skip language %s: not supported", lang)
        # if any language is left, set the best match as a default
        if languages:
            set_lang(languages[0])
            log.info("Set request language to %s", languages[0])
Example #36
0
    def __before__(self):
        # Set language according to what the browser requested
        user_agent_language = request.languages[0][0:2]
        if user_agent_language in g.supported_languages:
            set_lang(user_agent_language)
        else:
            set_lang(g.default_language)

        if self.requires_auth and 'user_id' not in session:
            # Remember where we came from so that the user can be sent there
            # after a successful login
            session['path_before_login'] = request.path_info
            session.save()
            return redirect_to(h.url_for(controller='login'))

        c.config = config
Example #37
0
def handle_request(request, tmpl_context):
    ''' Set the language for the request '''
    lang = request.environ.get('CKAN_LANG') or \
                        config.get('ckan.locale_default', 'en')
    if lang != 'en':
        i18n.set_lang(lang)
    tmpl_context.language = lang

    # set ckan_lang cookie if we have changed the language. We need to
    # remember this because repoze.who does it's own redirect.
    try:
        if request.cookies.get('ckan_lang') != lang:
            response.set_cookie('ckan_lang', lang)
    except AttributeError:
        # when testing FakeRequest does not have cookies
        pass
    return lang
Example #38
0
    def index(self):
        c.debug = "debug" in request.params
        default_lang = config.get("default_lang")
        for lang in request.languages:
            if lang[:2] in ['de','fr','rm','it','en']:
                default_lang = lang[:2]
                break
        c.lang = str(request.params.get("lang", default_lang))
        if c.lang == 'rm':
           set_lang('fi', fallback=True)
        else:
           set_lang(c.lang, fallback=True)

        c.mobilegeoadmin_host = config.get("mobilegeoadmin_host")
        c.mapgeoadmin_host = config.get("mapgeoadmin_host")

        return render("index.html")
Example #39
0
def _set_lang(lang):
    ''' Allows a custom i18n directory to be specified.
    Creates a fake config file to pass to pylons.i18n.set_lang, which
    sets the Pylons root path to desired i18n_directory.
    This is needed as Pylons will only look for an i18n directory in
    the application root.'''
    i18n_dir = get_ckan_i18n_dir()
    if i18n_dir:
        fake_config = {
            'pylons.paths': {
                'root': os.path.dirname(i18n_dir.rstrip('/'))
            },
            'pylons.package': config['pylons.package']
        }
        pylons_i18n.set_lang(lang,
                             pylons_config=fake_config,
                             class_=Translations)
    else:
        pylons_i18n.set_lang(lang, class_=Translations)
Example #40
0
 def __before__(self, controller, action):        
     if 'lang' not in session:
         session['lang'] = 'es'
         #user_agent_language = request.languages[0][0:2]
         #if user_agent_language in app_globals.languages:
         #    session['lang'] = user_agent_language
         session.save()
     
     set_lang(session['lang'])
     
     c.user = None
     if 'user_id' in session:
         c.user = meta.Session.query(User).filter_by(id = session['user_id']).first()
         
     if self.requires_auth and not c.user:
         return redirect(url(controller=''))
         
     if self.requires_admin and (not c.user or c.user.type != "admin"):
         return redirect(url(controller=''))
Example #41
0
def set_lang_list(locales):
    """Takes a list of locales (ordered by reducing preference) and tries
    to set them in order. If one fails then it puts up a flash message and
    tries the next."""
    import ckan.lib.helpers as h

    failed_locales = set()
    for locale in locales:
        # try locales in order of preference until one works
        try:
            if str(locale) == "en":
                # There is no language file for English, so if we set_lang
                # we would get an error. Just don't set_lang and finish.
                break
            set_lang(str(locale))
            break
        except LanguageError, e:
            if str(locale) not in failed_locales:
                h.flash_error(_("Could not change language to %r: %s") % (str(locale), e))
                failed_locales.add(str(locale))
Example #42
0
def mail_new_membership_request(locale, admin, group_name, url, user_name,
                                user_email):
    # TODO: Set admin locale. Admin/user locale is stored at drupal database so may be a bit challenging to fetch it. We default to finnish for the time being
    current_locale = get_lang()
    i18n.set_lang("fi")

    subject = _SUBJECT_MEMBERSHIP_REQUEST() % {'organization': group_name}
    message = _MESSAGE_MEMBERSHIP_REQUEST() % {
        'user': user_name,
        'email': user_email,
        'organization': group_name,
        'link': url
    }

    try:
        mail_user(admin, subject, message)
    except Exception:
        log.exception("Mail could not be sent")
    finally:
        set_lang(current_locale)
Example #43
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(Locale.negotiate(_KNOWN_LOCALES, requested))

    if locale is None:
        locale = get_default_locale()
    
    options = [str(locale), locale.language, str(get_default_locale()),
        get_default_locale().language]
    for language in options:
        try:
            set_lang(language) 
            tmpl_context.language = language
        except: pass
Example #44
0
def set_lang_list(locales):
    '''Takes a list of locales (ordered by reducing preference) and tries
    to set them in order. If one fails then it puts up a flash message and
    tries the next.'''
    import ckan.lib.helpers as h
    failed_locales = set()
    for locale in locales:
        # try locales in order of preference until one works
        try:
            if str(locale) == 'en':
                # There is no language file for English, so if we set_lang
                # we would get an error. Just don't set_lang and finish.
                break
            set_lang(str(locale))
            break
        except LanguageError, e:
            if str(locale) not in failed_locales:
                h.flash_error(_('Could not change language to %r: %s') % \
                              (str(locale), e))
                failed_locales.add(str(locale))
Example #45
0
    def __init__(self):

        lang = request.params.get('lang')
        if lang:
            if is_valid_string(lang):
                try:
                    set_lang(os.path.basename(lang))
                except LanguageError:
                    pass
        else:
            for lang in request.languages:
                if is_valid_string(lang):
                    try:
                        set_lang(lang)
                    except LanguageError:
                        continue
        try:
            add_fallback('en')
        except LanguageError:
            pass
Example #46
0
    def __init__(self):

        lang = request.params.get('lang')
        if lang:
            if is_valid_string(lang):
                try:
                    set_lang(os.path.basename(lang))
                except LanguageError:
                    pass
        else:
            for lang in request.languages:
                if is_valid_string(lang):
                    try:
                        set_lang(lang)
                    except LanguageError:
                        continue
        try:
            add_fallback('en')
        except LanguageError:
            pass
Example #47
0
    def __before__(self):
        # Set language according to what the browser requested
        user_agent_language = request.languages[0][0:2]
        if user_agent_language in app_globals.supported_languages:
            set_lang(user_agent_language)
        else:
            set_lang(app_globals.default_language)

        if self.requires_auth and 'user_id' not in session:
            # Remember where we came from so that the user can be sent there
            # after a successful login
            session['path_before_login'] = request.path_info
            session.save()
            redirect(url(controller='login', action='index'))

        c.config = config
        # The templates require the submenu to be existing
        # If no controller added a submenu, its fair enough to instantiate an empty
        # object here
        if not hasattr(c, 'submenu'):
            c.submenu = SubMenu()
Example #48
0
    def __before__(self):
        # Set language according to what the browser requested
        user_agent_language = request.languages[0][0:2]
        if user_agent_language in app_globals.supported_languages:
            set_lang(user_agent_language)
        else:
            set_lang(app_globals.default_language)

        if self.requires_auth and 'user_id' not in session:
            # Remember where we came from so that the user can be sent there
            # after a successful login
            session['path_before_login'] = request.path_info
            session.save()
            redirect(url(controller='login', action='index'))

        c.config = config
        # The templates require the submenu to be existing
        # If no controller added a submenu, its fair enough to instantiate an empty
        # object here
        if not hasattr(c, 'submenu'):
            c.submenu = SubMenu()
def mail_new_membership_request(locale, admin, group_name, url, user_name, user_email):
    # TODO: Set admin locale. Admin/user locale is stored at drupal database so may be a bit challenging to fetch it. We default to finnish for the time being
    current_locale = get_lang()
    i18n.set_lang("fi")

    subject = _SUBJECT_MEMBERSHIP_REQUEST() % {
        'organization': group_name
    }
    message = _MESSAGE_MEMBERSHIP_REQUEST() % {
        'user': user_name,
        'email': user_email,
        'organization': group_name,
        'link': url
    }

    try:
        mail_user(admin, subject, message)
    except Exception:
        log.exception("Mail could not be sent")
    finally:
        set_lang(current_locale)
Example #50
0
    def setup_app_env(self, environ, start_response):
        """Setup and register all the Pylons objects with the registry"""
        if self.log_debug:
            log.debug("Setting up Pylons stacked object globals")
        registry = environ['paste.registry']

        registry.register(WSGIRequest.defaults, self.request_options)
        registry.register(WSGIResponse.defaults, self.response_options)

        req = WSGIRequest(environ)

        # Setup the basic pylons global objects
        registry.register(pylons.request, req)
        registry.register(pylons.response, WSGIResponse())
        registry.register(pylons.buffet, self.buffet)
        registry.register(pylons.g, self.globals)
        registry.register(pylons.config, self.config)
        registry.register(pylons.h, self.helpers or \
                          pylons.legacy.load_h(self.package_name))

        # Setup the translator global object
        registry.register(pylons.translator, gettext.NullTranslations())
        lang = self.config.get('lang')
        if lang:
            set_lang(lang)

        if self.config['pylons.strict_c']:
            registry.register(pylons.c, ContextObj())
        else:
            registry.register(pylons.c, AttribSafeContextObj())

        econf = environ['pylons.environ_config']
        if econf.get('session'):
            registry.register(pylons.session, environ[econf['session']])
        if econf.get('cache'):
            registry.register(pylons.cache, environ[econf['cache']])
Example #51
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(Locale.negotiate(_KNOWN_LOCALES, requested))

    if locale is None:
        locale = get_default_locale()

    options = [
        str(locale), locale.language,
        str(get_default_locale()),
        get_default_locale().language
    ]
    for language in options:
        try:
            set_lang(language)
            tmpl_context.language = language
        except:
            pass
Example #52
0
 def i18n_index(self):
     obj = request._current_obj()
     locale_list = request.languages
     set_lang(request.languages)
     return unicode(_('basic index page'))
Example #53
0
 def i18n_index(self):
     locale_list = request.languages
     set_lang(request.languages)
     return unicode(_('basic index page'))
Example #54
0
def _reset_lang():
    try:
        i18n.set_lang(None)
    except TypeError:
        pass
Example #55
0
 def no_lang(self):
     set_lang(None)
     response.write(_('No language'))
     set_lang([])
     response.write(_('No languages'))
     return ''
Example #56
0
 def langs(self):
     locale_list = request.languages
     set_lang(request.languages)
     return str(get_lang())
Example #57
0
    def index(self):
        c.debug = "debug" in request.params
        c.lang = str(request.params.get("lang", config.get("default_lang")))
        set_lang(c.lang, fallback=True)

        return render("index.html")