Package: django-klingon
django-klingon========================.. image:: https://coveralls.io/repos/angvp/django-klingon/badge.png?branch=master:target: https://coveralls.io/r/angvp/django-klingon?branch=master.. image:: https://travis-ci.org/angvp/django-klingon.svg?branch=master:target: http://travis-ci.org/angvp/django-klingon.. image:: https://readthedocs.org/projects/django-klingon/badge/?version=latest:target: https://readthedocs.org/projects/django-klingon/?badge=latest:alt: Documentation Status.. image:: https://codeclimate.com/github/angvp/django-klingon/badges/gpa.svg:target: https://codeclimate.com/github/angvp/django-klingon:alt: Code ClimateWelcome to the documentation for django-klingon!django-klingon is an attempt to make django model translations suckbut with no integrations pain in your app!Setup & Integration------------------------------------In your settings files:add django-klingon to INSTALLED_APPS::INSTALLED_APPS = (...'klingon',...)specify a default language if you want to use your fields to store thedefault language::KLINGON_DEFAULT_LANGUAGE = 'en'Extend you models to add API support:first add Translatable to your model Class definition. This will add theAPI functions::from klingon.models import Translatable...class Book(models.Model, Translatable):...in the same model add an attribute to indicate which fields will betranslatables::...translatable_fields = ('title', 'description')...your model should look like this::class Book(models.Model, Translatable):title = models.CharField(max_length=100)description = models.TextField()publication_date = models.DateField()translatable_fields = ('title', 'description')Add admin capabilities:______________________you can include an inline to your model admin and a custom actionto create the translations. To do this in your ModelAdmin class dothis::from klingon.admin import TranslationInline, create_translations...class BookAdmin(admin.ModelAdmin):...inlines = [TranslationInline]actions = [create_translations]* see full example in example_project folder of source code of klingonUsing Specific Widgets in the TranslationInline form of the admin:________________________________________________You can specify the widget to be use on an inline form by passing a dictionary to TranslationInlineForm.So, you might want to extend the TranslationInline with a new form that will a "widgets" dictionary,where you can specify the widget that each filds has to use, for example::class RichTranslationInlineForm(TranslationInlineForm):widgets = {'CharField': forms.TextInput(attrs={'class': 'klingon-char-field'}),'TextField': forms.Textarea(attrs={'class': 'klingon-text-field'}),}class RichTranslationInline(TranslationInline):form = RichTranslationInlineFormand then you just simply use the RichTranslationInline class on your AdminModels, for example::class BookAdmin(admin.ModelAdmin):inlines = [RichTranslationInline]* see full example in example_project folder of source code of klingonUsing the API------------------------------------To create the translation you can do the follwing:Suppose that you have and object called book::> book = Book.objects.create(title="The Raven",description="The Raven is a narrative poem",publication_date=datetime.date(1845, 1, 1))you can create translation for that instances like this::> book.set_translation('es', 'title', 'El Cuervo')> book.set_translation('es', 'description', 'El Cuervo es un poema narrativo')a translation could be access individually::> self.book.get_translation('es', 'title')'El Cuervo'> book.get_translation('es', 'description')'El Cuervo es un poema narrativo'or you can get all translations together::> self.book.translations('es'){'title': self.es_title,'description': self.es_description,}Installation:------------------------------------pip install django-klingonRunning the Tests------------------------------------You can run the tests with via::python setup.py testor::python runtests.pyHistory-------0.0.7 (2017-1-7)++++++++++++++++++* Removed support for Django 1.5 and 1.6 now klingon works from Django 1.7version in advance0.0.4 (2015-1-2)++++++++++++++++++* Add translatable_slug and a painless integration with klingon +django-autoslug.