def get_context(self, context, template, i18n_mode):
     if template in MARKERS:
         _tmp = template
         if i18n_mode not in MARKERS:
             template = i18n_mode
         else:
             template = NOT_PROVIDED
         i18n_mode = _tmp
     if template is NOT_PROVIDED:
         template = "menu/language_chooser.html"
     if not i18n_mode in MARKERS:
         i18n_mode = 'raw'
     if 'request' not in context:
         # If there's an exception (500), default context_processors may not be called.
         return {'template': 'cms/content.html'}
     marker = MARKERS[i18n_mode]
     current_lang = get_language()
     site = Site.objects.get_current()
     languages = []
     for lang in get_language_objects(site.pk):
         if lang.get('public', True):
             languages.append(
                 (lang['code'], marker(lang['name'], lang['code'])))
     context.update({
         'languages': languages,
         'current_language': current_lang,
         'template': template,
     })
     return context
Пример #2
0
 def get_context(self, context, template, i18n_mode):
     if template in MARKERS:
         _tmp = template
         if i18n_mode not in MARKERS:
             template = i18n_mode
         else:
             template = NOT_PROVIDED
         i18n_mode = _tmp
     if template is NOT_PROVIDED:
         template = "menu/language_chooser.html"
     if not i18n_mode in MARKERS:
         i18n_mode = 'raw'
     if 'request' not in context:
         # If there's an exception (500), default context_processors may not be called.
         return {'template': 'cms/content.html'}
     marker = MARKERS[i18n_mode]
     current_lang = get_language()
     site = Site.objects.get_current()
     languages = []
     for lang in get_language_objects(site.pk):
         if lang.get('public', True):
             languages.append((lang['code'], marker(lang['name'], lang['code'])))
     context['languages'] = languages
     context['current_language'] = current_lang
     context['template'] = template
     return context
Пример #3
0
 def add_language_menu(self):
     language_menu = self.toolbar.get_or_create_menu(LANGUAGE_MENU_IDENTIFIER, _('Language'))
     language_changer = getattr(self.request, '_language_changer', DefaultLanguageChanger(self.request))
     for language in get_language_objects(self.current_site.pk):
         try:
             url = language_changer(language['code'])
         except NoReverseMatch:
             url = DefaultLanguageChanger(self.request)(language['code'])
         language_menu.add_link_item(language['name'], url=url, active=self.current_lang == language['code'])
Пример #4
0
 def add_language_menu(self):
     language_menu = self.toolbar.get_or_create_menu(LANGUAGE_MENU_IDENTIFIER, _('Language'))
     language_changer = getattr(self.request, '_language_changer', DefaultLanguageChanger(self.request))
     for language in get_language_objects(self.current_site.pk):
         try:
             url = language_changer(language['code'])
         except NoReverseMatch:
             url = DefaultLanguageChanger(self.request)(language['code'])
         language_menu.add_link_item(language['name'], url=url, active=self.current_lang == language['code'])
Пример #5
0
 def add_language_menu(self):
     try:
         current_lang = get_language_object(get_language_from_request(self.request), self.current_site.pk)
     except LanguageError:
         current_lang = None
     language_menu = self.toolbar.get_or_create_menu(LANGUAGE_MENU_IDENTIFIER, _('Language'))
     language_changer = getattr(self.request, '_language_changer', DefaultLanguageChanger(self.request))
     for language in get_language_objects(self.current_site.pk):
         url = language_changer(language['code'])
         language_menu.add_link_item(language['name'], url=url, active=current_lang['code'] == language['code'])
Пример #6
0
 def single_page_translation(self):
     current_site = Site.objects.get_current()
     try:
         current_lang = get_language_object(get_language_from_request(self.request), current_site.pk)
     except LanguageError:
         current_lang = None
     language_menu = self.toolbar.get_or_create_menu(LANGUAGE_MENU_IDENTIFIER, _('Language'))
     position = language_menu.find_first(Break, identifier=ADD_PAGE_LANGUAGE_BREAK)
     menu = language_menu.get_or_create_menu('aldryn-translator', _('Get this page translated'), position=position)
     for language in get_language_objects(current_site.pk):
         if language['code'] != current_lang['code']:
             menu.add_modal_item(_('to %s' % language['name']), "%s?from_lang=%s&to_lang=%s" % (
                 reverse('admin:aldryn_translator_translation_add'), current_lang['code'], language['code']))
Пример #7
0
 def add_language_menu(self):
     try:
         current_lang = get_language_object(
             get_language_from_request(self.request), self.current_site.pk)
     except LanguageError:
         current_lang = None
     language_menu = self.toolbar.get_or_create_menu(
         LANGUAGE_MENU_IDENTIFIER, _('Language'))
     language_changer = getattr(self.request, '_language_changer',
                                DefaultLanguageChanger(self.request))
     for language in get_language_objects(self.current_site.pk):
         url = language_changer(language['code'])
         language_menu.add_link_item(
             language['name'],
             url=url,
             active=current_lang['code'] == language['code'])
Пример #8
0
    def change_language_menu(self):
        language_menu = self.toolbar.get_menu(LANGUAGE_MENU_IDENTIFIER)
        if not language_menu:
            return None

        add = []
        remove = self.page.get_languages()
        languages = get_language_objects(self.current_site.pk)
        for language in languages:
            code = language['code']
            if not code in remove:
                add.append(code)
        if add:
            language_menu.add_break(ADD_PAGE_LANGUAGE_BREAK)
            for code in add:
                language = get_language_object(code, self.current_site.pk)
                url = "%s?language=%s" % (reverse("admin:cms_page_change", args=[self.page.pk]), language['code'])
                language_menu.add_modal_item(_("Add %(language)s Translation") % {'language': language['name']},
                                             url=url)
        if remove:
            language_menu.add_break(REMOVE_PAGE_LANGUAGE_BREAK)
            for code in remove:
                try:
                    language = get_language_object(code, self.current_site.pk)
                    language_code = language['code']
                    language_name = language['name']
                except LanguageError:
                    language_code = code
                    language_name = code
                url = "%s?language=%s" % (
                    reverse("admin:cms_page_delete_translation", args=[self.page.pk]), language_code)
                language_menu.add_modal_item(_("Delete %(language)s Translation") % {'language': language_name},
                                             url=url, disabled=len(remove) == 1)

        if len(languages) > 1 and self.current_lang and len(remove) > 1:
            language_menu.add_break(COPY_PAGE_LANGUAGE_BREAK)
            for language in languages:
                if self.current_lang == language['code'] or language['code'] in add:
                    continue
                url = reverse('admin:cms_page_copy_language', args=[self.page.pk])
                question = _('Are you sure you want copy all plugins from %s?') % language['name']
                language_menu.add_ajax_item(_("Copy all plugins from %s") % language['name'], action=url,
                                            data={'source_language': language['code'],
                                                'target_language': self.current_lang}, question=question)
Пример #9
0
    def change_language_menu(self):
        language_menu = self.toolbar.get_menu(LANGUAGE_MENU_IDENTIFIER)
        if not language_menu:
            return None

        add = []
        remove = self.page.get_languages()
        languages = get_language_objects(self.current_site.pk)
        for language in languages:
            code = language['code']
            if not code in remove:
                add.append(code)
        if add:
            language_menu.add_break(ADD_PAGE_LANGUAGE_BREAK)
            for code in add:
                language = get_language_object(code, self.current_site.pk)
                url = "%s?language=%s" % (reverse("admin:cms_page_change", args=[self.page.pk]), language['code'])
                language_menu.add_modal_item(_("Add %(language)s Translation") % {'language': language['name']},
                                             url=url)
        if remove:
            language_menu.add_break(REMOVE_PAGE_LANGUAGE_BREAK)
            for code in remove:
                try:
                    language = get_language_object(code, self.current_site.pk)
                    language_code = language['code']
                    language_name = language['name']
                except LanguageError:
                    language_code = code
                    language_name = code
                url = "%s?language=%s" % (
                    reverse("admin:cms_page_delete_translation", args=[self.page.pk]), language_code)
                language_menu.add_modal_item(_("Delete %(language)s Translation") % {'language': language_name},
                                             url=url, disabled=len(remove) == 1)

        if len(languages) > 1 and self.current_lang and len(remove) > 1:
            language_menu.add_break(COPY_PAGE_LANGUAGE_BREAK)
            for language in languages:
                if self.current_lang == language['code'] or language['code'] in add:
                    continue
                url = reverse('admin:cms_page_copy_language', args=[self.page.pk])
                question = _('Are you sure you want copy all plugins from %s?') % language['name']
                language_menu.add_ajax_item(_("Copy all plugins from %s") % language['name'], action=url,
                                            data={'source_language': language['code'],
                                                'target_language': self.current_lang}, question=question, on_success=self.toolbar.REFRESH_PAGE)
Пример #10
0
def get_site_languages():
    return get_language_objects(Site.objects.get_current().pk)
Пример #11
0
 def change_language_menu(self):
     language_menu = self.toolbar.get_or_create_menu(
         LANGUAGE_MENU_IDENTIFIER)
     add = []
     remove = Title.objects.filter(page=self.page).values_list('language',
                                                               flat=True)
     languages = get_language_objects(self.current_site.pk)
     for language in languages:
         code = language['code']
         if not code in remove:
             add.append(code)
     if add:
         language_menu.add_break(ADD_PAGE_LANGUAGE_BREAK)
         for code in add:
             language = get_language_object(code, self.current_site.pk)
             url = "%s?language=%s" % (reverse("admin:cms_page_change",
                                               args=[self.page.pk
                                                     ]), language['code'])
             language_menu.add_modal_item(
                 _("Add %(language)s Translation") %
                 {'language': language['name']},
                 url=url)
     if remove:
         language_menu.add_break(REMOVE_PAGE_LANGUAGE_BREAK)
         for code in remove:
             try:
                 language = get_language_object(code, self.current_site.pk)
                 language_code = language['code']
                 language_name = language['name']
             except LanguageError:
                 language_code = code
                 language_name = code
             url = "%s?language=%s" % (reverse(
                 "admin:cms_page_delete_translation",
                 args=[self.page.pk]), language_code)
             language_menu.add_modal_item(
                 _("Delete %(language)s Translation") %
                 {'language': language_name},
                 url=url,
                 disabled=len(remove) == 1)
     try:
         current_lang = get_language_object(
             get_language_from_request(self.request), self.current_site.pk)
     except LanguageError:
         current_lang = None
     if len(languages) > 1 and current_lang and len(remove) > 1:
         language_menu.add_break(COPY_PAGE_LANGUAGE_BREAK)
         for language in languages:
             if current_lang['code'] == language['code'] or language[
                     'code'] in add:
                 continue
             url = reverse('admin:cms_page_copy_language',
                           args=[self.page.pk])
             question = _('Are you sure you want copy all plugins from %s?'
                          ) % language['name']
             language_menu.add_ajax_item(_("Copy all plugins from %s") %
                                         language['name'],
                                         action=url,
                                         data={
                                             'source_language':
                                             language['code'],
                                             'target_language':
                                             current_lang['code']
                                         },
                                         question=question)