Esempio n. 1
0
    def languages(self):
        context = self.context
        # Website languages
        ws_languages = context.site_root.get_property('website_languages')
        if len(ws_languages) == 1:
            return []

        # Select language
        accept = context.accept_language
        current_language = accept.select_language(ws_languages)
        # Sort the available languages
        ws_languages = list(ws_languages)
        ws_languages.sort()

        languages = []
        ws_languages_len = len(ws_languages)
        gettext = get_domain('itools').gettext
        for index, language in enumerate(ws_languages):
            href = context.uri.replace(language=language)
            selected = (language == current_language)
            css_class = 'selected' if selected else ''
            if index == 0:
                css_class = '%s first' % css_class
            if index == (ws_languages_len - 1):
                css_class = '%s last' % css_class
            value = get_language_name(language)
            languages.append({
                'name': language,
                'value': gettext(value, language),
                'href': href,
                'selected': selected,
                'class': css_class})
        return languages
Esempio n. 2
0
    def get_languages_map(self):
        """
        Return a list of dictionaries, each dictionary has the language
        id, its title and a boolean value to indicate wether it's the
        user preferred language, for example:

          [{'id': 'en', 'title': 'English', 'selected': 1}]

        Used in changeLanguageForm.
        """
        # For now only LPM instances are considered to be containers of
        # multilingual data.
        try:
            ob = self.getLocalPropertyManager()
        except AttributeError:
            ob = self

        ob_language = ob.get_selected_language()
        ob_languages = ob.get_available_languages()

        langs = []
        for x in ob_languages:
            langs.append({'id': x, 'title': i18n.get_language_name(x),
                          'selected': x == ob_language})

        return langs
Esempio n. 3
0
    def languages(self):
        context = self.context
        # Website languages
        ws_languages = context.root.get_value('website_languages')
        if len(ws_languages) == 1:
            return []

        # Select language
        accept = context.accept_language
        current_language = accept.select_language(ws_languages)

        languages = []
        gettext = get_domain('itools').gettext
        for language in ws_languages:
            href = context.uri.replace(language=language)
            selected = (language == current_language)
            css_class = 'selected' if selected else None
            value = get_language_name(language)
            languages.append({
                'name': language,
                'value': gettext(value, language),
                'href': href,
                'selected': selected,
                'class': css_class})

        return languages
Esempio n. 4
0
    def get_languages_map(self):
        """
        Return a list of dictionaries, each dictionary has the language
        id, its title and a boolean value to indicate wether it's the
        user preferred language, for example:

          [{'id': 'en', 'title': 'English', 'selected': 1}]

        Used in changeLanguageForm.
        """
        # For now only LPM instances are considered to be containers of
        # multilingual data.
        try:
            ob = self.getLocalPropertyManager()
        except AttributeError:
            ob = self

        ob_language = ob.get_selected_language()
        ob_languages = ob.get_available_languages()

        langs = []
        for x in ob_languages:
            langs.append({
                'id': x,
                'title': get_language_name(x),
                'selected': x == ob_language
            })

        return langs
Esempio n. 5
0
    def languages(self):
        context = self.context
        # Website languages
        ws_languages = context.root.get_value('website_languages')
        if len(ws_languages) == 1:
            return []

        # Select language
        accept = context.accept_language
        current_language = accept.select_language(ws_languages)

        languages = []
        gettext = get_domain('itools').gettext
        for language in ws_languages:
            href = context.uri.replace(language=language)
            selected = (language == current_language)
            css_class = 'selected' if selected else None
            value = get_language_name(language)
            languages.append({
                'name': language,
                'value': gettext(value, language),
                'href': href,
                'selected': selected,
                'class': css_class
            })

        return languages
Esempio n. 6
0
    def get_language_name(self, id=None):
        """
        Returns the name of the given language code.

        XXX Kept here for backwards compatibility only
        """
        if id is None:
            id = self.get_default_language()
        return get_language_name(id)
Esempio n. 7
0
    def get_language_name(self, id=None):
        """
        Returns the name of the given language code.

        XXX Kept here for backwards compatibility only
        """
        if id is None:
            id = self.get_default_language()
        return i18n.get_language_name(id)
Esempio n. 8
0
 def get_languages_mapping(self):
     """Returns a list of dictionary, one for each objects language. The
     dictionary contains the language code, its name and a boolean value
     that tells wether the language is the default one or not.
     """
     return [ {'code': x,
               'name': get_language_name(x),
               'default': x == self._default_language}
              for x in self._languages ]
Esempio n. 9
0
    def get_namespace(self, resource, context):
        proxy = super(WikiFolder_ImportODT, self)
        namespace = proxy.get_namespace(resource, context)
        root = resource.get_site_root()
        languages = root.get_property('website_languages')

        namespace['meta-lang'] = []
        for code in languages:
            namespace['meta-lang'].append({
                'name': get_language_name(code),
                'value': code})
        return namespace
Esempio n. 10
0
def get_language_name(self, id=None):
    """
    Returns the name of the given language code.

    XXX Kept here for backwards compatibility only
    """
    if id is None:
        id = self.get_default_language()
    language_name = i18n.get_language_name(id)
    if language_name=='???':
        return self.get_user_defined_language_name(id) or language_name
    else:
        return language_name
Esempio n. 11
0
    def _get_items(self):
        multilingual = False
        schema = self.view._get_schema(self.resource, self.context)
        for key, datatype in schema.iteritems():
            if getattr(datatype, "multilingual", False):
                multilingual = True
                break

        if multilingual is False:
            # No multilingual fields
            return []

        root = self.resource.get_root()
        languages = root.get_value("website_languages")
        edit_languages = self.resource.get_edit_languages(self.context)
        return [{"title": get_language_name(x), "name": x, "selected": x in edit_languages} for x in languages]
Esempio n. 12
0
    def _get_items(self):
        multilingual = False
        schema = self.view._get_schema(self.resource, self.context)
        for key, datatype in schema.iteritems():
            if getattr(datatype, 'multilingual', False):
                multilingual = True
                break

        if multilingual is False:
            # No multilingual fields
            return []

        root = self.resource.get_root()
        languages = root.get_value('website_languages')
        edit_languages = self.resource.get_edit_languages(self.context)
        return [ {'title': get_language_name(x), 'name': x,
                  'selected': x in edit_languages}
                 for x in languages ]
Esempio n. 13
0
    def get_namespace(self, resource, context):
        root = context.root

        # Languages
        user_language = resource.get_value('user_language')
        languages = [{
            'code': code,
            'name': get_language_name(code),
            'is_selected': code == user_language
        } for code in root.get_available_languages()]

        # Timezone
        user_timezone = resource.get_value('user_timezone')
        timezones = [{
            'name': name,
            'is_selected': name == user_timezone
        } for name in common_timezones]

        return {'languages': languages, 'timezones': timezones}
Esempio n. 14
0
    def get_namespace(self, resource, context):
        root = context.root

        # Languages
        user_language = resource.get_value('user_language')
        languages = [
            {'code': code,
             'name': get_language_name(code),
             'is_selected': code == user_language}
            for code in root.get_available_languages() ]

        # Timezone
        user_timezone = resource.get_value('user_timezone')
        timezones = [
            {'name': name,
             'is_selected': name == user_timezone}
            for name in common_timezones ]

        return {'languages': languages,
                'timezones': timezones}
Esempio n. 15
0
    def get_namespace(self, resource, context):
        ws_languages = context.root.get_value('website_languages')

        # Active languages
        default = ws_languages[0]
        active = []
        for code in ws_languages:
            language_name = get_language_name(code)
            active.append({
                'code': code,
                'name': language_name,
                'isdefault': code == default})

        # Not active languages
        not_active = [
            x for x in get_languages() if x['code'] not in ws_languages ]
        not_active.sort(lambda x, y: cmp(x['name'], y['name']))

        # Ok
        return {
            'active_languages': active,
            'not_active_languages': not_active}
Esempio n. 16
0
    def get_namespace(self, resource, context):
        ws_languages = context.root.get_value('website_languages')

        # Active languages
        default = ws_languages[0]
        active = []
        for code in ws_languages:
            language_name = get_language_name(code)
            active.append({
                'code': code,
                'name': language_name,
                'isdefault': code == default
            })

        # Not active languages
        not_active = [
            x for x in get_languages() if x['code'] not in ws_languages
        ]
        not_active.sort(lambda x, y: cmp(x['name'], y['name']))

        # Ok
        return {'active_languages': active, 'not_active_languages': not_active}
Esempio n. 17
0
def get_language_msg(code):
    language = get_language_name(code)
    return MSG(language)
Esempio n. 18
0
def get_language_msg(code):
    language = get_language_name(code)
    return MSG(language)