Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gtoffoli/django-datatrans
https://github.com/gtoffoli/django-datatrans
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/gtoffoli/django-datatrans
- Owner: gtoffoli
- License: bsd-3-clause
- Created: 2017-11-10T09:09:00.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-21T17:50:47.000Z (over 2 years ago)
- Last Synced: 2024-04-16T04:18:35.614Z (9 months ago)
- Language: Python
- Size: 112 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
New project
===========This repository has just been born by importing from https://github.com/vikingco/django-datatrans (Latest commit e60cbf4 on Apr 27, 2016).
I plan to port datatrans to Python 3 and to include some important extensions that are already in use inside a large multi-language platform: see http://www.commonspaces.eu/it/info/i18n/.
I'm convinced that, although other good applications are available, datatrans is still a good choice for many use cases.
For now I left unchanged the remaining part of this README.Deprecated
==========Important note: this package is not maintained anymore. We recommend looking at django-parler: https://pypi.python.org/pypi/django-parler
django-datatrans
================Authors:
* Jef Geskens
* Koen Vossen
* Gert Van Gool
* Béres Botond
* Robin AllenImportant note when upgrading to version 0.1.2
----------------------------------------------
The migration script adds a new unique index, like it was before. But this can fail because duplicates might exist
in the database. The new unique index on the model KeyValue consists out of the
following fields: ('language', 'content_type', 'field', 'object_id', 'digest')You can make sure manually that you don't have duplicate entries in your database or you can use the following command
to delete duplicates:python manage.py deleteduplicates
It retains the oldest record and deletes the newest duplicates. It only works for mysql since it executes raw queries,
this is way more faster that using the south api (it lasts for hours).Features
--------
* Translate Django models without changing anything to existing applications and their underlying database.
* Uses a registration approach.
* All translations are stored in one extra lookup table. Existing database tables remain untouched.
* Recovery and cleanup of obsolete translations.
* Translation admin interface included (uses CSS from django admin).
* Transparent model API (in 99% of all cases, nothing has to be changed to original code).
* Infinite caching for all strings (based on id and hash)How to use
----------
1. Add it to INSTALLED_APPS
2. Syncdb
3. Register models (example for FlatPage model):from datatrans.utils import register
class FlatPageTranslation(object):
fields = ('title', 'content')register(FlatPage, FlatPageTranslation)
4. Include the datatrans.urls in your urlconf somewhere, and point your browser to it!
5. Translate away!Note: you can also search through your objects using translated query strings with the
`datatrans_filter` on your manager. For example:FlatPageTranslation.objects.datatrans_filter(title__icontains='zoek dit', language='nl')
will return a QuerySet containing those objects whose dutch title contains the
string 'zoek dit'. Note that this filter API is not identical to Django's, read the docstring
for more info.