Exemplo n.º 1
0
    def update(self):
        def css_class(language):
            css_attr = None
            if language == selected:
                css_attr = "selected"
            if language in translations:
                if css_attr:
                    css_attr = css_attr + " available"
                else:
                    css_attr = "available"
            return css_attr

        def language_name(language):
            return language.get("native", language.get("name"))

        translations = get_available_translations(self.context)
        if hasattr(self.context, "language"):
            translations[self.context.language] = None
        languages = get_all_languages()
        selected = normalize_lang(get_default_language())
        url = ui_utils.url.absoluteURL(getSite(), self.request)

        self.languages = sorted(
            [{
                "code": language,
                "flag": url + languages[language].get('flag', ''),
                "name": language_name(languages[language]),
                "css_class": css_class(language),
                "url": "%s/change-language?language=%s" % (url, language),
            } for language in languages],
            key=lambda l: l.get("code"))
Exemplo n.º 2
0
    def setUpWidgets(self, ignore_request=False):
        languages = get_all_languages()
        self.form_fields = filterFields(self.context, self.form_fields)

        # do not display empty form fields
        omit_names = []
        for f in self.form_fields:
            val = getattr(self.context, f.__name__)
            if val is None:
                omit_names.append(f.__name__)
        self.form_fields = self.form_fields.omit(*omit_names)
        context = self.context
        if ITranslatable.providedBy(self.context):
            lang = get_default_language()
            try:
                translation = get_field_translations(self.context, lang)
            except:
                translation = []
            if (
                not translation
                and getattr(self.context, "language", None)
                and getattr(self.context, "language", None) != lang
            ):
                supported_lang = languages.get(lang)
                if supported_lang:
                    langname = supported_lang.get("native", None)
                    if langname == None:
                        langname = supported_lang.get("name")
                    self.status = translate(
                        _(u"This content is not yet translated into" + " $language", mapping={"language": langname}),
                        domain="bungeni",
                        context=self.request,
                    )
            context = copy(removeSecurityProxy(self.context))
            for field_translation in translation:
                setattr(context, field_translation.field_name, field_translation.field_text)
        self.widgets = form.setUpEditWidgets(
            self.form_fields,
            "",
            context,
            self.request,
            adapters=self.adapters,
            for_display=True,
            ignore_request=ignore_request,
        )
Exemplo n.º 3
0
    def setUpWidgets(self, ignore_request=False):
        languages = get_all_languages()
        self.form_fields = filterFields(self.context, self.form_fields)

        #do not display empty form fields
        omit_names = []
        for f in self.form_fields:
            val = getattr(self.context, f.__name__)
            if val is None:
                omit_names.append(f.__name__)
        self.form_fields = self.form_fields.omit(*omit_names)
        context = self.context
        if ITranslatable.providedBy(self.context):
            lang = get_default_language()
            try:
                translation = get_field_translations(self.context, lang)
            except:
                translation = []
            if (not translation and getattr(self.context, "language", None)
                    and getattr(self.context, "language", None) != lang):
                supported_lang = languages.get(lang)
                if supported_lang:
                    langname = supported_lang.get("native", None)
                    if langname == None:
                        langname = supported_lang.get("name")
                    self.status = translate(
                        _(u"This content is not yet translated into" +\
                            " $language",
                            mapping={"language": langname}),
                        domain="bungeni",
                        context=self.request
                    )
            context = copy(removeSecurityProxy(self.context))
            for field_translation in translation:
                setattr(context, field_translation.field_name,
                        field_translation.field_text)
        self.widgets = form.setUpEditWidgets(self.form_fields,
                                             "",
                                             context,
                                             self.request,
                                             adapters=self.adapters,
                                             for_display=True,
                                             ignore_request=ignore_request)
Exemplo n.º 4
0
    def update(self):
        
        def css_class(language):
            css_attr = None
            if language == selected:
                css_attr = "selected"
            if language in translations:
                if css_attr:
                    css_attr = css_attr + " available"
                else:
                    css_attr = "available"
            return css_attr
        
        def language_name(language): 
            return language.get("native", language.get("name"))

        translations = get_available_translations(self.context)
        if hasattr(self.context, "language"):
            translations[self.context.language] = None
        languages = get_all_languages()
        selected = normalize_lang(get_default_language())
        url = ui_utils.url.absoluteURL(getSite(), self.request)
        
        self.languages = sorted([
                {
                    "code": language,
                    "flag": url+languages[language].get('flag', ''),
                    "name": language_name(languages[language]),
                    "css_class": css_class(language),
                    "url": "%s/change-language?language=%s" % (
                        url, language
                    ),
                } 
                for language in languages
            ], 
            key=lambda l:l.get("code")
        )
Exemplo n.º 5
0
 def get_languages(self):
     langs = [(name, obj, (name in capi.pivot_languages))
              for name, obj in get_all_languages().items()]
     langs.sort(key=lambda lg: not lg[2])
     return langs
Exemplo n.º 6
0
 def get_languages(self):
     langs = [(name, obj, (name in capi.pivot_languages)) 
         for name, obj in get_all_languages().items()]
     langs.sort(key=lambda lg:not lg[2])
     return langs