parler.utils.conf module

The configuration wrappers that are used for PARLER_LANGUAGES.

class parler.utils.conf.LanguagesSetting

Bases: dict

This is the actual object type of the PARLER_LANGUAGES setting. Besides the regular dict behavior, it also adds some additional methods.

get_active_choices(language_code=None, site_id=None)

Find out which translations should be visible in the site. It returns a list with either a single choice (the current language), or a list with the current language + fallback language.

get_default_language()

Return the default language.

get_fallback_language(language_code=None, site_id=None)

Find out what the fallback language is for a given language choice.

Deprecated since version 1.5: Use get_fallback_languages() instead.

get_fallback_languages(language_code=None, site_id=None)

Find out what the fallback language is for a given language choice.

get_first_language(site_id=None)

Return the first language for the current site. This can be used for user interfaces, where the languages are displayed in tabs.

get_language(language_code, site_id=None)

Return the language settings for the current site

This function can be used with other settings variables to support modules which create their own variation of the PARLER_LANGUAGES setting. For an example, see add_default_language_settings().

parler.utils.conf.add_default_language_settings(languages_list, var_name='PARLER_LANGUAGES', **extra_defaults)

Apply extra defaults to the language settings. This function can also be used by other packages to create their own variation of PARLER_LANGUAGES with extra fields. For example:

from django.conf import settings
from parler import appsettings as parler_appsettings

# Create local names, which are based on the global parler settings
MYAPP_DEFAULT_LANGUAGE_CODE = getattr(settings, 'MYAPP_DEFAULT_LANGUAGE_CODE', parler_appsettings.PARLER_DEFAULT_LANGUAGE_CODE)
MYAPP_LANGUAGES = getattr(settings, 'MYAPP_LANGUAGES', parler_appsettings.PARLER_LANGUAGES)

# Apply the defaults to the languages
MYAPP_LANGUAGES = parler_appsettings.add_default_language_settings(MYAPP_LANGUAGES, 'MYAPP_LANGUAGES',
    code=MYAPP_DEFAULT_LANGUAGE_CODE,
    fallback=MYAPP_DEFAULT_LANGUAGE_CODE,
    hide_untranslated=False
)

The returned object will be an LanguagesSetting object, which adds additional methods to the dict object.

Parameters:
  • languages_list – The settings, in PARLER_LANGUAGES format.
  • var_name – The name of your variable, for debugging output.
  • extra_defaults – Any defaults to override in the languages_list['default'] section, e.g. code, fallback, hide_untranslated.
Returns:

The updated languages_list with all defaults applied to all sections.

Return type:

LanguagesSetting

parler.utils.conf.get_parler_languages_from_django_cms(cms_languages=None)

Converts django CMS’ setting CMS_LANGUAGES into PARLER_LANGUAGES. Since CMS_LANGUAGES is a strict superset of PARLER_LANGUAGES, we do a bit of cleansing to remove irrelevant items.