Translate Toolkit & Pootle

Tools to help you make your software local

User Tools


There is some duplication of content and ideas between this page and this one. It should be unified at some stage.

Customizability

Many server owners would need the ability to customize the design of Pootle server to their standards. Tweaking CSS and Django templates means that server administrators will have hard time upgrading to newer versions of Pootle. Below is the proposed way of adding some degree of customization to Pootle while maintaining the ability to upgrade the server easily.

We also need to think of the ways to make Pootle more friendly to a corporate use.

Here are the key things that are candidates to be tweaked in Pootle:

  1. Server title (Pootle already allows to edit it on Admin > General tab)
  2. Custom first page header (this is what Pootle exposes as 'Description' field on Admin > General tab).
  3. CSS (custom color palette, custom logo, header/footer backgrounds).
  4. Custom footer (to allow to replace default Pootle links or add own links to the main corporate web site, copyright information). Custom footer code can also be used to add tracker code like Google Analytics).
  5. Custom additions to Help page. Most sites would benefit if they could edit the default Help content and add their own instructions there.
  6. An ability to add the '[x] I agree to the Terms of Service' checkbox to the Pootle's registration form with the custom link.

Proposed design

It would be great if Pootle allowed editing all these blocks from the same Admin > General page, and store these either in the database or on the file system -- whatever is more appropriate for such data, so that all that data survives the update of the main application.

A design could belike this:

Server Title:

<input> prepopulated with default title

Home page header (HTML allowed):

<texarea> prepopulated with default HTML code

Footer (HTML allowed):

<texarea> prepopulated with default HTML code

Help page (HTML allowed):

<texarea> prepopulated with default HTML code

Custom CSS:

<texarea> empty by default

[x] New users must agree to the terms of service Link code (HTML):

<input> prepopulated with HTML code

Django templates

Some pople may want to customize the look to a bigger extent. For that, Django templates can be used. We already have block placeholders in our code, something like:

      {% block extra_head %}
      <!-- extra scripts and links -->
      {% endblock %}

We can add such block placeholders on users' request if needed. Now, we can add an additional <textarea> to the Admin > General page that would serve as a custom Django template:

      {% block extra_head %}
      override stuff goes here
      {% endblock %}
      
      {% block another_block %}
      override stuff goes here
      {% endblock %}

This custom template will be included into every page.