Exemplo n.º 1
0
 def setup_translator(self):
     # Load the primary translator on first request and reactivate it for
     # each subsequent request until the primary language is changed.
     app_globs = app_globals._current_obj()
     lang = app_globs.settings['primary_language'] or 'en'
     if app_globs.primary_language == lang and app_globs.primary_translator:
         translator = app_globs.primary_translator
     else:
         translator = Translator(lang, config['locale_dirs'])
         app_globs.primary_translator = translator
         app_globs.primary_language = lang
     translator.install_pylons_global()
Exemplo n.º 2
0
 def setup_translator(self):
     # Load the primary translator on first request and reactivate it for
     # each subsequent request until the primary language is changed.
     app_globs = app_globals._current_obj()
     lang = app_globs.settings['primary_language'] or 'en'
     if app_globs.primary_language == lang and app_globs.primary_translator:
         translator = app_globs.primary_translator
     else:
         translator = Translator(lang, config['locale_dirs'])
         app_globs.primary_translator = translator
         app_globs.primary_language = lang
     translator.install_pylons_global()
Exemplo n.º 3
0
 def general_save(self, **kwargs):
     """Save :class:`~mediacore.forms.admin.settings.GeneralForm`."""
     # Ensure this translation actually works before saving it
     lang = kwargs.get('general', {}).get('primary_language')
     if lang:
         locale = Locale.parse(lang)
         t = Translator(locale, config['locale_dirs'])
         try:
             t._load_domain('mediacore')
         except LanguageError:
             # TODO: Show an error message on the language field
             kwargs['primary_language'] = None
     return self._save(general_form, 'general', values=kwargs)
Exemplo n.º 4
0
 def general_save(self, **kwargs):
     """Save :class:`~mediacore.forms.admin.settings.GeneralForm`."""
     # Ensure this translation actually works before saving it
     lang = kwargs.get('general', {}).get('primary_language')
     if lang:
         locale = Locale.parse(lang)
         t = Translator(locale, config['locale_dirs'])
         try:
             t._load_domain('mediacore')
         except LanguageError:
             # TODO: Show an error message on the language field
             kwargs['primary_language'] = None
     return self._save(general_form, 'general', values=kwargs)
Exemplo n.º 5
0
def setup_translator(language='en', registry=None):
    mediacore_i18n_path = os.path.join(os.path.dirname(mediacore.__file__),
                                       'i18n')
    translator = Translator(language, dict(mediacore=mediacore_i18n_path))
    # not sure why but sometimes pylons.translator is not a StackedObjectProxy
    # but just a regular Translator.
    if not hasattr(pylons.translator, '_push_object'):
        pylons.translator = StackedObjectProxy()
    if registry is None:
        registry = pylons.request.environ['paste.registry']
    registry.replace(pylons.translator, translator)
Exemplo n.º 6
0
def fake_request(pylons_config, server_name='mediadrop.example', language='en',
                 method='GET', request_uri='/', post_vars=None):
    app_globals = pylons_config['pylons.app_globals']
    pylons.app_globals._push_object(app_globals)
    
    if post_vars and method.upper() != 'POST':
        raise ValueError('You must not specify post_vars for request method %r' % method)
    wsgi_environ = create_wsgi_environ('http://%s%s' % (server_name, request_uri),
        method.upper(), request_body=post_vars)
    request = Request(wsgi_environ, charset='utf-8')
    request.language = language
    request.settings = app_globals.settings
    pylons.request._push_object(request)
    response = Response(content_type='application/xml', charset='utf-8')
    pylons.response._push_object(response)
    
    session = SessionObject(wsgi_environ)
    pylons.session._push_object(session)

    routes_url = URLGenerator(pylons_config['routes.map'], wsgi_environ)
    pylons.url._push_object(routes_url)

    # TODO: Use ContextObj() for Pylons 0.10
    tmpl_context = AttribSafeContextObj()
    tmpl_context.paginators = Bunch()
    pylons.tmpl_context._push_object(tmpl_context)
    # some parts of Pylons (e.g. Pylons.controllers.core.WSGIController)
    # use the '.c' alias instead.
    pylons.c = pylons.tmpl_context
    
    paste_registry = Registry()
    paste_registry.prepare()
    engines = create_tw_engine_manager(app_globals)
    host_framework = PylonsHostFramework(engines=engines)
    paste_registry.register(tw.framework, host_framework)
    
    mediacore_i18n_path = os.path.join(os.path.dirname(mediacore.__file__), 'i18n')
    translator = Translator(language, dict(mediacore=mediacore_i18n_path))
    # not sure why but sometimes pylons.translator is not a StackedObjectProxy
    # but just a regular Translator.
    if not hasattr(pylons.translator, '_push_object'):
        pylons.translator = StackedObjectProxy()
    paste_registry.replace(pylons.translator, translator)
    
    wsgi_environ.update({
        'pylons.pylons': pylons,
        'paste.registry': paste_registry,
    })
    return request
Exemplo n.º 7
0
    def init(self, locale_map=None):
        locale = default_locale() or 'en'
        translator = Translator(locale, locale_map or {})
        pylons.translator._push_object(translator)

        config_file = find_config(default=None)
        parser = self.create_parser(config_file)

        options = parser.parse_args()
        if not options.config:
            parser.error(
                _('Please specify a config file using "--config=<filename>"'))
        init_mediacore(options.config)
        self.validate_options(options, parser)
        self.options = options
        return self
Exemplo n.º 8
0
 def setup_translator(config):
     app_globals = config['pylons.app_globals']
     lang = app_globals.settings['primary_language'] or 'en'
     translator = Translator(lang, _locale_dirs(config))
     pylons.translator._push_object(translator)