Metadata-Version: 1.1
Name: django-translation-flags
Version: 1.0.4
Summary: Internationalization with flags of main languages, It lets easy to integrate the Django i18n in yours templates
Home-page: http://github.com/silviolleite/django-translation-flags
Author: Silvio Luis Leite
Author-email: silviolleite@gmail.com
License: MIT License
Description: Django Translation Flags
        ========================
        
        |Build Status| |Maintainability| |codecov| |PyPI - Downloads| |PyPI -
        Version|
        
        This Django app provides integration for translation options in
        templates with some most common standard world languages. This is useful
        fow when you need to display language options in yours Django Apps.
        
        Requirements
        ============
        
        Django Translation Flags require Django Internationalization and
        localization properly configured. You can see more about these settings
        in https://docs.djangoproject.com/en/2.1/topics/i18n/
        
        Basically you need to:
        
        1. Define a custom ``LANGUAGES`` list on ``settings.py`` with tuples,
           i.e:
        
        .. code:: python
        
           from django.utils.translation import gettext_lazy as _
        
           LANGUAGES = [
             ('de', _('German')),
             ('en', _('English')),
             ('pt-br', _('Brazilian Portuguese'))
           ]
        
        Only languages listed in the ``LANGUAGES`` setting can be selected. This
        example restricts languages that are available for automatic selection
        to German, English and Brazilian Portuguese
        
        2. Add Middleware
        
        To use LocaleMiddleware, add ‘django.middleware.locale.LocaleMiddleware’
        to your MIDDLEWARE setting. Because middleware order matters, follow
        these guidelines:
        
        -  Make sure it’s one of the first middleware installed.
        -  It should come after SessionMiddleware, because LocaleMiddleware
           makes use of session data. And it should come before CommonMiddleware
           because CommonMiddleware needs an activated language in order to
           resolve the requested URL. If you use CacheMiddleware, put
           LocaleMiddleware after it.
        
        For example, your MIDDLEWARE might look like this:
        
        .. code:: python
        
           MIDDLEWARE = [
              'django.contrib.sessions.middleware.SessionMiddleware',
              'django.middleware.locale.LocaleMiddleware',
              'django.middleware.common.CommonMiddleware',
           ]
        
        3. Markup the text to translation:
        
        The format of ``.po`` files is straightforward. Each ``.po`` file
        contains a small bit of metadata, such as the translation maintainer’s
        contact information, but the bulk of the file is a list of messages –
        simple mappings between translation strings and the actual translated
        text for the particular language.
        
        For instance, if your Django app contained a translation string for the
        text “Welcome to my site.”, like so:
        
        .. code:: python
        
           from django.utils.translation import gettext_lazy as _
           _("Welcome to my site.")
        
        …then ``django-admin makemessages`` will have created a ``.po`` file
        containing the following snippet – a message:
        
        .. code:: text
        
           #: path/to/python/module.py:23
           msgid "Welcome to my site."
           msgstr ""
        
        4. Generate and compile it using the commands bellow:
        
        -  The first step is to create a message file for a new language:
        
        .. code:: bash
        
           django-admin makemessages -l de -l en -l pt_BR
        
        -  Compiling message files after creating your message file:
        
        .. code:: bash
        
           django-admin compilemessages
        
        For more detailed information on how to create language files it is
        suggested to read the documentation:
        https://docs.djangoproject.com/en/2.1/topics/i18n/translation/#how-to-create-language-files
        
        Install
        =======
        
        Install from PyPI:
        
        ::
        
           pip install django-translation-flags
        
        Configuration
        =============
        
        Add ``django-translation-flags`` to your list of ``INSTALLED_APPS`` in
        settings.py:
        
        .. code:: python
        
           INSTALLED_APPS = [
               ...
               'django_translation_flags',
               ...
           ]
        
        Add the Django Translation Flags URLs to ``urls.py``:
        
        .. code:: python
        
           from django.conf.urls import url, include
        
           urlpatterns = [
               ...
               path('i18n/', include('django_translation_flags.urls')),
               ...
           ]
        
        Inject the required meta tags in your ``base.html`` (or wherever your
        HTML <head> is defined):
        
        .. code:: html
        
           {% load flags %}
        
           <ul>
               {% languages %}
           </ul>
        
        By default it will show the rectangular icons, but you can change it to
        ``square``:
        
        .. code:: html
        
           {% load flags %}
        
           <ul>
               {% languages 'square' %}
           </ul>
        
        Optionally you can set your custom class for HTML tags:
        
        .. code:: html
        
           {% load flags %}
        
           <ul>
               {% languages 'square' li_class='your-li-class' a_class='your-a-class' %}
           </ul>
        
        The ``languages`` template tags accept ``**kwargs`` to configure the
        class to HTML tags. So you can set the classes to these HTML tags:
        
        **li_class**: Class to ``li`` tag (Default: empty)
        
        **a_class**: Class to ``a`` tag (Default: empty)
        
        The HTML structure is:
        
        .. code:: html
        
           <li>
               <a>
                   <span></span>
               </a>
           </li>
        
        How does it work?
        =================
        
        The Django Translation Flags has a ``CSS`` file where all the most
        important languages flags are configured.
        
        The avaliable flags are:
        
        ``af``: Afrikaans, ``ar``: Arabic, ``az``: Azerbaijani, ``de``: German,
        ``en``: English, ``en-au``: Australian English, ``es``: Spanish,
        ``es-ar``: Argentinian Spanish, ``es-mx``: Mexican Spanish, ``fr``:
        French, ``hi``: Hindi, ``hu``: Hungarian, ``id``: Indonesian, ``it``:
        Italian, ``ja``: Japanese, ``ko``: Korean, ``nl``: Dutch (Nederlands),
        ``pl``: Polish, ``pt``: Portuguese, ``pt-br``: Brazilian Portuguese,
        ``ru``: Russian, ``sv``: Swedish, ``tr``: Turkish, ``uk``: Ukrainian,
        ``zh-cn``: Simplified Chinese, ``zh-hans``: Simplified Chinese and
        ``zh-hant``: Traditional Chinese.
        
        |image5|
        
        The App get the language code from ``LANGUAGES`` on ``settings.py`` and
        then it concatenates the language codes with the name of the icon class
        and shows the correct flags..
        
        See the all Django supported languages in module
        ``django.conf.locale.LANG_INFO`` *LANG_INFO is a dictionary structure to
        provide meta information about languages.*
        
        Feedback
        ========
        
        Feedback and pull requests are strongly encouraged and kindly
        appreciated (-:
        
        Contributing
        ============
        
        Python
        ^^^^^^
        
        1. Clone the repository.
        2. Create a virtualenv with Python 3.6 or 3.7
        3. Active the virtualenv.
        4. Install the dependencies.
        5. Run the tests.
        
        .. code:: console
        
           git clone https://github.com/silviolleite/django-translation-flags
           cd django-translation-flags
           python -m venv .venv
           .venv/bin/activate
           pip install -r requirements.txt
           python runtests.py
        
        Less to CSS
        ^^^^^^^^^^^
        
        You will need of ``node`` and ``npm`` previously installed.
        
        1. Install the dependencies
        2. Run the gulp
        3. Edit the less files: ``/assets/less/``
        
        .. code:: console
        
           npm install
           npm run build
        
        Licensing
        =========
        
        All files in this repository are distributed under the MIT license.
        
        .. |Build Status| image:: https://travis-ci.org/silviolleite/django-translation-flags.svg
           :target: https://travis-ci.org/silviolleite/django-translation-flags
        .. |Maintainability| image:: https://api.codeclimate.com/v1/badges/1d00a2cbf958477ca97e/maintainability
           :target: https://codeclimate.com/github/silviolleite/django-translation-flags/maintainability
        .. |codecov| image:: https://codecov.io/gh/silviolleite/django-translation-flags/branch/master/graph/badge.svg
           :target: https://codecov.io/gh/silviolleite/django-translation-flags
        .. |PyPI - Downloads| image:: https://img.shields.io/pypi/dd/django-translation-flags.svg
           :target: https://pypi.org/project/django-pwa/
        .. |PyPI - Version| image:: https://img.shields.io/pypi/v/django-translation-flags.svg
           :target: https://pypi.org/project/django-translation-flags
        .. |image5| image:: assets/img/flags.png
        
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
