Metadata-Version: 1.2
Name: django-statici18n
Version: 2.3.1
Summary: A Django app that compiles i18n JavaScript catalogs to static files.
Home-page: http://django-statici18n.readthedocs.org/
Author: Sebastien Fievet
Author-email: zyegfryed@gmail.com
License: BSD
Project-URL: Source, https://github.com/zyegfryed/django-statici18n
Description: django-statici18n
        =================
        
        .. image:: https://github.com/zyegfryed/django-statici18n/actions/workflows/build.yml/badge.svg?branch=main
           :alt: Build Status
           :target: https://github.com/zyegfryed/django-statici18n/actions
        
        .. image:: https://codecov.io/gh/zyegfryed/django-statici18n/branch/main/graph/badge.svg?token=xiaDYAr30F
           :target: https://codecov.io/gh/zyegfryed/django-statici18n
        
        Overview
        --------
        
        When dealing with internationalization in JavaScript code, Django provides
        the `JSONCatalog 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
        `JSONCatalog view`_ is generating JavaScript catalog dynamically on each
        and every 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.
        
        .. _JSONCatalog view: https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#the-jsoncatalog-view
        .. _adding an overhead: https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#note-on-performance
        .. _github.com/zyegfryed/django-statici18n: https://github.com/zyegfryed/django-statici18n
        
        Supported Django Versions
        -------------------------
        
        ``django-statici18n`` works with all the Django versions officially
        supported by the Django project. At this time of writing, these are the
        3.2 (LTS), 4.0 and 4.1 series.
        
        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 the
           ``context_processors`` section for your backend in the ``TEMPLATES``
           setting - it should have already been set by Django::
        
            TEMPLATES = [
              {
                # ...
                'OPTIONS': {
                  'context_processors': {
                    # ...
                    'django.template.context_processors.i18n',
                  },
                },
              },
            ]
        
        5. Edit your template(s) and replace the `dynamically generated script`_ by the
           statically generated one:
        
          .. code-block:: html+django
        
            <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.
        
        **(Optional)**
        
        The following step assumes you're using `django.contrib.staticfiles`_.
        
        5. Edit your template(s) and use the provided template tag:
        
          .. code-block:: html+django
        
            {% load statici18n %}
            <script src="{% statici18n LANGUAGE_CODE %}"></script>
        
        6. Or inline the JavaScript directly in your template:
        
          .. code-block:: html+django
        
            {% load statici18n %}
            <script>{% inlinei18n LANGUAGE_CODE %}</script>
        
        .. _PyPI: http://pypi.python.org/pypi/django-statici18n
        .. _translated: https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#message-files
        .. _compiled: https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#compiling-message-files
        .. _django.core.context_processors.i18n: https://docs.djangoproject.com/en/2.2/ref/templates/api/#django-template-context-processors-i18n
        .. _Upgrading templates to Django 1.8: https://docs.djangoproject.com/en/2.2/ref/templates/upgrading/
        .. _dynamically generated script: https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#using-the-javascript-translation-catalog
        .. _django.contrib.staticfiles: https://docs.djangoproject.com/en/2.2/ref/contrib/staticfiles/
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
