# Settings

You will find all the Pootle-specific settings in this document.

If you have upgraded, you might want to compare your previous copy to the one distributed with the Pootle version for any new settings you might be interested in.

## Customizing Settings

When starting Pootle with the `pootle` runner script, by default it will try to load custom settings from the ~/.pootle/pootle.conf file. These settings will override the defaults set by Pootle.

An alternative location for the settings file can be specified by setting the `-c </path/to/settings.conf/>` flag when executing the runner. You can also set the `POOTLE_SETTINGS` environment variable to specify the path to the custom configuration file. The environment variable will take precedence over the command-line flag.

If instead of an installation you deployed Pootle straight from the git repository, you can either set the `POOTLE_SETTINGS` environment variable or put a file under the pootle/settings/ directory. Note that the files in this directory are read in alphabetical order, and creating a 90-local.conf file is recommended (files ending in -local.conf will be ignored by git).

## Available Settings

This is a list of Pootle-specific settings grouped by the file they’re contained and ordered alphabetically.

### 10-base.conf

This file contains base configuration settings.

`DESCRIPTION`
  Description of the Pootle server.

`TITLE`
  The name of the Pootle server.

### 20-backends.conf

Backend and caching settings.

`OBJECT_CACHE_TIMEOUT`

  Default: `2500000`

  Time in seconds the Pootle’s statistics cache will last.

`POOTLE_TOP_STATS_CACHE_TIMEOUT`

  Default: `86400`

  Time in seconds the Pootle’s top statistics cache will last.

`POOTLE_LOG_DIRECTORY`

  Default: `/var/log/pootle/`

  The directory where Pootle writes event logs to. These are high-level logs of events on store/unit changes and manage.py commands executed

### 30-site.conf

Site-specific settings.

`CAN_CONTACT`

  Default: `True`

  Controls whether users will be able to use the contact form. The address to receive messages is controlled by `CONTACT_EMAIL`.

`CAN_REGISTER`

  Default: `True`

  Controls whether user registrations are allowed or not. If set to `False`, administrators will still be able to create new user accounts.

`CONTACT_EMAIL`

  Default: `info@YOUR_DOMAIN.com`

  Address to receive messages sent through the contact form. This will only have effect if `CAN_CONTACT` is set to `True`.

`POOTLE_REPORT_STRING_ERRORS_EMAIL`

  Default: `string_errors_manager@YOUR_DOMAIN.com`

  Email address to report errors on strings.

### 40-apps.conf

Configuration settings for applications used by Pootle.

`API_LIMIT_PER_PAGE`

  Default: `0`

  New in version 2.5.1.

  Number of records Pootle API will show in a list view. `0` means no limit.

`CUSTOM_TEMPLATE_CONTEXT`

  Default: `{}`

  New in version 2.5.

  Custom template context dictionary. The values will be available in the templates as `{{ custom.<key> }}`.

`FUZZY_MATCH_MAX_LENGTH`

  Default: `70`

  New in version 2.5.

  Maximum character length to consider when doing fuzzy matching. The default might not be enough for long texts. Please note this affects all fuzzy matching operations, so bear in mind this might affect performance.

`FUZZY_MATCH_MIN_SIMILARITY`

  Default: `75`

  New in version 2.5.

  Minimum similarity to consider when doing fuzzy matching. Please note this affects all fuzzy matching operations, so bear in mind this might affect performance.

`LEGALPAGE_NOCHECK_PREFIXES`

  Default: `('/accounts', '/admin', '/api', '/contact', '/django_admin', '/jsi18n', '/pages', )`

  New in version 2.5.1.

  List of path prefixes where the `LegalAgreementMiddleware` will check if the current logged-in user has agreed all the legal documents defined for the Pootle instance. Don’t change this unless you know what you’re doing.

`MIN_AUTOTERMS`

  Default: `60`

  When building the terminology, the minimum number of terms that will be automatically extracted.

`MARKUP_FILTER`

  Default: `(None, {})`

  New in version 2.5.

  Two-tuple defining the markup filter to apply in certain textareas.

  - Accepted values for the first element are `textile`, `markdown`, `restructuredtext` and None
  - The second element should be a dictionary of keyword arguments that will be passed to the markup function

  Examples:

      MARKUP_FILTER = (None, {})

      MARKUP_FILTER = ('markdown', {'safe_mode': 'escape'})

      MARKUP_FILTER = ('restructuredtext', {'settings_overrides': {
                                               'report_level': 'quiet',
                                               }
                                           })

`MAX_AUTOTERMS`

  Default: `600`

  When building the terminology, the maximum number of terms that will be automatically extracted.

`POOTLE_ENABLE_API`

  Default: `False`

  New in version 2.5.1.

  Enable Pootle API.

`TASTYPIE_DEFAULT_FORMATS`

  Default: `['json']`

  New in version 2.5.1.

  List defining the allowed serialization formats for Pootle API. Check Tastypie docs for all the available formats and its dependencies (see in Installation section).

`TOPSTAT_SIZE`

  Default: `5`

  The number of rows displayed in the top contributors table.

`USE_CAPTCHA`

  Default: `True`

  Enable spam prevention through a captcha.

### 51-ldap.conf

Optional LDAP configuration settings. To enable the LDAP authentication backend, you’ll need to append `'pootle.core.auth.ldap_backend.LdapBackend'` to the list of `AUTHENTICATION_BACKENDS`.

`AUTH_LDAP_ANON_DN`

  Default: `''`

  Anonymous credentials: Distinguished Name.

`AUTH_LDAP_ANON_PASS`

  Default: `''`

  Anonymous credentials: password.

`AUTH_LDAP_BASE_DN`

  Default: `''`

  Base DN to search

`AUTH_LDAP_FIELDS`

  Default: `{'dn': 'dn'}`

  A mapping of Pootle field names to LDAP fields. The key is Pootle’s name, the value should be your LDAP field name. If you don’t use the field or don’t want to automatically retrieve these fields from LDAP comment them out. The only required field is `dn`.

`AUTH_LDAP_FILTER`

  Default: `''`

  What are we filtering on? %s will be the username, for example `'sn=%s'`, or `'uid=%s'`.

`AUTH_LDAP_SERVER`

  Default: `''`

  The LDAP server. Format: `protocol://hostname:port`

### 60-translation.conf

Translation environment configuration settings.

`AMAGAMA_URL`

  Default: `http://amagama.locamotion.org/tmserver/`

  URL to an amaGama Translation Memory server. The default service should work fine, but if you have a custom server set it here.

  This URL must point to the public API URL which returns JSON. Don’t forget the trailing slash.

  Setting it to blank string disables retrieving translation memory results.

`EXPORTED_DIRECTORY_MODE`

  Default: `0755`

  On POSIX systems, exported directories will be assigned this permission. Use `0755` for publically-readable directories or `0700` if you want only the Pootle user to be able to read them.

`EXPORTED_FILE_MODE`

  Default: `0644`

  On POSIX systems, exported files will be assigned this permission. Use `0644` for publically-readable files or `0600` if you want only the Pootle user to be able to read them.

`LOOKUP_BACKENDS`

  Default: `['wikipedia']` (Wikipedia enabled)

  Enables backends for web-based lookups.

  Available options: `wikipedia`.

`MT_BACKENDS`

  Default: `[]` (empty list)

  This setting enables translation suggestions through several online services.

  The elements for the list are two-element tuples containing the name of the service and an optional API key.

  Available options are:

  `APERTIUM`: Apertium service.
    For this service you need to set the API key. Get your key at http://api.apertium.org/register.jsp
  `GOOGLE_TRANSLATE`: Google Translate service.
    For this service you need to set the API key. Note that Google Translate API is a paid service. See more at https://developers.google.com/translate/v2/pricing

`PARSE_POOL_CULL_FREQUENCY`

  Default: `4`

  When the pool fills up, 1/PARSE_POOL_CULL_FREQUENCY number of files will be removed from the pool.

`PARSE_POOL_SIZE`

  Default: `40`

  To avoid rereading and reparsing translation files from disk on every request, Pootle keeps a pool of already parsed files in memory.

  Larger pools will offer better performance, but higher memory usage (per server process).

`PODIRECTORY`

  Default: `working_path('po')`

  The directory where the translation files are kept.

`VCS_DIRECTORY`

  Default: `working_path('repos')`

  New in version 2.5.

  The directory where version control clones/checkouts are kept.

## Deprecated Settings

`ENABLE_ALT_SRC`

  Default: `True`

  Deprecated since version 2.5: Alternate source languages are now on by default. This ensures that translators have access to as much useful information as possible when translating.

  Display alternate source languages in the translation interface.