skip to navigation
skip to content

Not Logged In

django-statici18n 1.1

A Django app that provides helper for generating Javascript catalog to static files.

Build Status https://coveralls.io/repos/zyegfryed/django-statici18n/badge.png?branch=master

A Django app that provides helper for generating JavaScript catalog to static files.

Overview

When dealing with internationalization in JavaScript code, Django provides the javascript_catalog view which sends out a JavaScript code library with functions that mimic the gettext interface, plus an array of translation strings.

At first glance, it works well and everything is fine. But, because javascript_catalog view is generating JavaScript catalog dynamically on each request, it's adding an overhead that can be an issue with site growth.

That's what django-statici18n is for:

Collecting JavaScript catalogs from each of your Django apps (and any other place you specify) into a single location that can easily be served in production.

The main website for django-statici18n is github.com/zyegfryed/django-statici18n where you can also file tickets.

Installation

  1. Use your favorite Python packaging tool to install django-statici18n from PyPI, e.g.:

    pip install django-statici18n
    
  2. Add 'statici18n' to your INSTALLED_APPS setting:

    INSTALLED_APPS = [
        # ...
        'statici18n',
    ]
    
  3. Once you have translated and compiled your messages, use the compilejsi18n management command:

    python manage.py compilejsi18n
    
  4. Add the django.core.context_processors.i18n context processor to your TEMPLATE_CONTEXT_PROCESSORS setting - should have already been set by Django:

    TEMPLATE_CONTEXT_PROCESSORS = (
      # ...
      'django.core.context_processors.i18n',
    )
    
  5. Edit your template(s) and replace the dynamically generated script by the statically generated one:

<script src="{{ STATIC_URL }}jsi18n/{{ LANGUAGE_CODE }}/djangojs.js"></script>

Note

By default, the generated catalogs are stored to STATIC_ROOT/jsi18n. You can modify the output path and more options by tweaking django-statici18n settings.

(Optionnal)

The following step assumes you're using django.contrib.staticfiles.

  1. Edit your template(s) and use the provided template tag:
{% load statici18n %}
<script src="{% statici18n LANGUAGE_CODE %}"></script>
  1. Or inline the JavaScript directly in your template:
{% load statici18n %}
<script>{% inlinei18n LANGUAGE_CODE %}</script>
 
File Type Py Version Uploaded on Size
django-statici18n-1.1.tar.gz (md5) Source 2014-01-12 8KB
django_statici18n-1.1-py2.py3-none-any.whl (md5) Python Wheel 2.7 2014-01-12 11KB
  • Downloads (All Versions):
  • 77 downloads in the last day
  • 652 downloads in the last week
  • 2855 downloads in the last month