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()
def general_save(self, **kwargs): """Save :class:`~mediadrop.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('mediadrop') except LanguageError: # TODO: Show an error message on the language field kwargs['primary_language'] = None return self._save(general_form, 'general', values=kwargs)
def setup_translator(language='en', registry=None, locale_dirs=None): if not locale_dirs: locale_dirs = get_locale_dirs(pylons.config) translator = Translator(language, locale_dirs=locale_dirs) # 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'] register_instance(registry, 'translator', translator)
def setup_translator(language='en', registry=None, locale_dirs=None): if not locale_dirs: mediadrop_i18n_path = os.path.join(os.path.dirname(mediadrop.__file__), 'i18n') locale_dirs = {'mediadrop': mediadrop_i18n_path} translator = Translator(language, locale_dirs=locale_dirs) # 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)
def test_supports_multiple_locale_paths_for_single_domain(self): self._tempdir = tempfile.mkdtemp() first_path = self._create_catalog('first', something=u'foobar') second_path = self._create_catalog('second', something=u'baz') translator = Translator('de', {'foo': (first_path, second_path)}) assert_equals('baz', translator.gettext('something', domain='foo'))
def test_returns_input_for_unknown_domain(self): translator = Translator('de', {}) assert_equals(u'foo', translator.gettext(u'foo', domain=u'unknown'))