Skip to main content

Translator is an app for collecting translations for specified keys in django admin.

Project description

Translator is an app for collecting translations for specified keys in django admin.

Quick start

  1. Install django-translator: pip install django-translator

  2. Add “translator, taggit, modeltranslation” to your INSTALLED_APPS setting. Please note that modeltranslation needs to be before django.contrib.admin:

    INSTALLED_APPS = (
    'modeltranslation',
    'django.contrib.admin',
    ...
    'taggit',
    'translator',
    )
  3. You have to set the migrations folder for the translator, because we have to add migrations for the set languages. Add the following to your settings file:

    MIGRATION_MODULES = {
        'translator': 'my_project.translator_migrations',
    }
  4. Create a translator_migrations python package in your project folder (where your settings.py usually is).

  5. Run python manage.py makemigrations translator to create the translator models based on the languages you specified in your settings file.

  6. Run python manage.py migrate to migrate the translator models to your database.

  7. If you intend to use it in the templates, add ‘translator.context_processors.translator’ to TEMPLATE_CONTEXT_PROCESSORS

    TEMPLATE_CONTEXT_PROCESSORS = (
           ...
       'translator.context_processors.translator',
    )
  8. Create translation keys in your templates and models.

    Examples:

    Template:

    {{ translator.a_key }}

    models.py:

    from translator.util import translator_lazy as _
    ...
    
    class Product(models.Model):
        name = models.TextField(verbose_name=_('a_key'))
  9. Visit the templates. The keys get collected lazy.

  10. Translate the keys in the admin.

  11. You can disable the translator by setting DJANGO_TRANSLATOR_ENABLED to False.

  12. Use a double underscore in your translation keys to make use of the filter in the admin (e.g. “header__title” creates a filter called “header”). If you need another separator, set it as DJANGO_TRANSLATOR_CATEGORY_SEPARATOR in your setting file.

Custom Models

If you find yourself in a situation where you need to use the features of django-translator in a second isolated model, feel free to add one:

  1. Create a new model in your app:

    from translator.models import TranslationBase
    
    class MyCustomTranslation(TranslationBase):
        pass
  2. Create a new file translation.py and register your model for modeltranslation support:

    from modeltranslation.translator import translator, TranslationOptions
    from myapp.models import MyCustomTranslation
    
    class MyCustomTranslationOptions(TranslationOptions):
        fields = ('description',)
    
    translator.register(MyCustomTranslation, MyCustomTranslationOptions)
  3. Add a django admin in admin.py:

    from django.contrib import admin
    from translator.admin import TranslationAdministration
    from myapp.models import MyCustomTranslation
    
    @admin.register(MyCustomTranslation)
    class CustomTranslationAdmin(TranslationAdministration):
        pass
  4. Add your model to your settings file:

    DJANGO_TRANSLATOR_MODELS = {
        'custom_translation': 'myapp.models.MyCustomTranslation',
    }
  5. Create translation keys in your templates and models.

    Examples:

    Template:

    {{ custom_translation.a_key }}

    models.py:

    from myapp.util import custom_translation_lazy
    ...
    
    class Product(models.Model):
        name = models.TextField(verbose_name=translator_lazy('a_key', 'custom_translation'))

Settings

Customize the translator in your settings.py file with these settings:

DJANGO_TRANSLATOR_CACHE_TIMEOUT = timeout in seconds, if not set defaults to DEFAULT_TIMEOUT, which is either the CACHES['TIMEOUT'] setting or 300 (5 minutes)

Project Home

https://github.com/dreipol/django-translator

PyPi

https://pypi.python.org/pypi/django-translator

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_translator-2.0.1.tar.gz (6.1 kB view details)

Uploaded Source

File details

Details for the file django_translator-2.0.1.tar.gz.

File metadata

  • Download URL: django_translator-2.0.1.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for django_translator-2.0.1.tar.gz
Algorithm Hash digest
SHA256 59bad454280b226d81da085fb836ab4315d4f8822812c0fcc561096659e640b6
MD5 a45b27270a588929f76ec72a5f56314a
BLAKE2b-256 7aff812348bdf7231412e7246582421d1dbd449a3ee554a61d1ad6fca7f1bb4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page