Hi Tomas,

i'm using transmeta in my project. But in the way you are/want. Just
using it to translate some short strings (and longer in FAQ).
And there's no problem to add another language inproduction server
(see manage.py help for more info)

Radovan
http://www.yau.sk

On 8. Júl, 18:56 h., Tomáš Ehrlich <tomas.ehrl...@gmail.com> wrote:
> Hi there,
> I just want to open discussion about this topic again, because I
> didn't find any solution which 100% fits my needs.
>
> What I want:
>  - store translations in other table (1:N)
>  - storing additional info, if necessary (translation_date,
> translation_edit_date, translator_name, etc)
>  - keeping the original model API with additional methods (missing
> translations, translations count, etc)
>  - group permissions for translators
>  - per-site fallback language
>
> Before developing my own library, I was searching this mailing list
> and 
> found:http://code.google.com/p/django-transmeta/http://code.google.com/p/django-multilingual/
>
> I don't like transmeta with it's column_ln idea. Problems are:
>  - translating big columns (like text column)
>  - adding another language on production server
>
> Multiligual app looks better but it lacks documentation.
>
> Does anyone use one of these (especially multilingual app) in
> production?
>
> ========
> My idea is:
>
> # Create model as usual with specific Meta options
> class Article(model18n.Model):
>     pub_date = models.DateField()
>     category = models.ForeignField()
>     title = models.CharField()
>     slug = models.SlugField()
>     content = models.TextField()
>
>     class Meta:
>         translate = ('title', 'slug', 'content')
>         translate_with = ArticleTranslate  # optional specification of
> translation model
>
> # Specify translation model, if necessary
> class ArticleTranslate(model18n.Translations):
>     # id, foreign_id, lang, title, slug, content are created
> implicitly
>     date_translate = models.DateField()
>     translator = models.ForeignField() # user who done translation
>
> These two models will create:
> CREATE TABLE "articles_article" (
>     "id" serial NOT NULL PRIMARY KEY,
>     "pub_date" date NOT NULL,
>     "category_id" integer NOT NULL,  -- not sure about proper syntax,
> nevermind
> ) -- yes, translated field are not in primary table. This table keeps
> only structure and common data
>
> CREATE TABLE "articles_article_translate" (
>     "id" serial NOT NULL PRIMARY KEY,
>     "article_id" integer NOT NULL,
>     "title" varchar(5) NOT NULL,
>     "date_translated" date NOT NULL,
>     "translator" integer NOT NULL,
>     "title" varchar(200) NOT NULL,
>     "slug" varchar(200) NOT NULL,
>     "content" text NOT NULL,
> )
>
> And working with them is like usual:
>
> >>> article = Article(content="Dummy text", title="Dummy title", ...) # 
> >>> creates default language entry
> >>> article.save()
> >>> article.add_language("cs", content="Textovy obsah", title="Textovy 
> >>> nazev", ...)
> >>> article.save()
> ...
> >>> article = Article.objects.all() # implicitly join default language
> >>> article.content
> Dummy text
> >>> translation.activate('cs')
> >>> article.content # call another SQL query
>
> Textovy nazev
>
> Reasons for this are:
>  - usually you need select from table only one language (only in admin
> you need to select all related languages)
>  - separating data structure from translated content
>
> Problems are:
>  - language variants - you are translating for en_US, en_GB, default
> (fallback) language is cs_CZ. When US user access model entry only
> with en_GB and cs_CZ, there shoudl be fallback to en_GB, rather than
> cs_CZ. Query should respect ACCEPT_LANGUAGE preferences. For now, I
> don't have idea how to solve this with "single" query.
>
> =======
> Summary:
>
> 1. Does anyone use transmeta or multilingual (especially multilingual
> app) in production?
> 2. How are you translating models?
> 3. What do you think about my solution?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to