Enhance translation workflow

98 views
Skip to first unread message

Andrés Moya

unread,
May 13, 2013, 8:28:03 AM5/13/13
to django-cms...@googlegroups.com
Hi, people.

I'm evaluating django-cms for a quite big project we're starting. We have some particular needs on multilingual site functionality.

Our customer has a team of editors that will create pages, in their native language, and an external company that will do the translation to other languages. They don't want the external company to acces the whole admin site and change anything. So we are thinking to write some kind of translation backoffice, a set of restricted admin screens for the translators (something like django rosetta, but for cms contents). They should be able to:

- On enter, see all cms pages that are new and still not have a translated version, or that have changed any text and need to retranslate (but only the changed text).
- On a single page, to see all the text contents of the plugins (only text, not other data) in the original language, and a box to enter the translated text in each other language. If there are any changed texts, they must be marked.

Is there any add-on that may be useful for this? If not, do you think it would be feasible for us to program one? We would need to do this:

a) To extend the plugins to extract fields that are text contents, and to store them back once translated.
b) To create the cloned pages in the other languages programatically, when the translators "save" their translations.
c) To detect changes in attributes or plugins in already translated pages, to show them to the translators.

Do you think it's possible to do this with django-cms in a reasonable way? Thanks very much.

Andrés Moya

unread,
May 13, 2013, 9:05:15 AM5/13/13
to django-cms...@googlegroups.com
One foot note: with "changed texts", i mean editing an existing plugin of the page and modifying some field of type text, and also to add or remove plugins to the page. All those cases need to be notified to the translators.

Geoffrey Hing

unread,
May 14, 2013, 6:15:30 PM5/14/13
to django-cms...@googlegroups.com
I wonder if integrating with the Transifex API (http://help.transifex.com/features/api/api-v2.html) would be appropriate for your use case. Transifex provides a very clean interface for translating content using external translators, which both handles the issue of not giving access to the Django Admin for translators and not having to worry about implementing the UI/UX for translation.  Then your django-cms integration code would just have to push content that needed translating to Transifex and retrieve new translations. To push to Transifex seems like it would just require implementing a post_save signal handler on your plugin model.  For creating the new page translations and plugins for new languages, you'd have to set up some kind of periodic job to poll Transifex as it doesn't seem like their API supports any kind of push notification or webhook.

This is just a thought, as I've only ever used Transifex to to translate strings extracted from source code/templates using gettext, but your use case brought the tool to mind.

Best,
Geoff

Patrick Lauber

unread,
May 15, 2013, 2:58:34 AM5/15/13
to django-cms...@googlegroups.com
We had some plans for this as well but never came around implementing it… what is needed first is a way to serialize the plugins to something a translator could understand and after translation deserialize it back to plugins….
> --
> You received this message because you are subscribed to the Google Groups "django-cms-developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-cms-devel...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

Andrés Moya

unread,
May 16, 2013, 9:11:32 AM5/16/13
to django-cms...@googlegroups.com
Exact. I have found that the external company who do the translations uses a propietary software, similar to Transifex. So this is the way to go: export the texts of the plugin and title pages, and when translated, import them again.

There are some ways to do it. This one is what comes to my mind now:

- Write an abstract translation serializer class, that may serialize/unserialize the texts of a CMSPlugin.
- Subclass it for each descendant of CMSPlugin that i'm using, that knows what fields of the descendant are texts. Perhaps make up some registry mechanism to find the serializer that correspond to a given plugin instance.
- Use signals to detect page and/or plugin saves, and generate the files to export to the translation tool.

Do you think it's ok? Or have a better idea?

And another issue: for the customer, it's a problem the fact that the plugins collection is independent in each clone of the page for each language. This implies that, for example, if they add one plugin, they need to add it to all languages (the copy plugins options copies all plugins, not only the modified). But in their case, the list of plugins will always be the same on all languages, only the contents change.

Is there anybody working on the possibility of automatically syncing plugins between languages? I think this probably implies to link the matching plugins themselves, so that, for example, if i add one plugin to the base language, there is a way to automatically copy it to the others, but maintaining untouched the ones that already exist. What do you think?



2013/5/15 Patrick Lauber <di...@treepy.com>
You received this message because you are subscribed to a topic in the Google Groups "django-cms-developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-cms-developers/wyA_Aglcs4I/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to django-cms-devel...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.





--
 
Andrés Moya Velázquez  
Engineer

www.kaleidos.net

Martin Koistinen

unread,
Jan 2, 2014, 9:18:36 AM1/2/14
to django-cms...@googlegroups.com
Andrés,

Here's some thoughts I put in the django-cms group awhile ago: https://groups.google.com/forum/#!topic/django-cms/LuD4sZ9rF_w

I see a number of us all wishing for better i18n tools in django-cms, maybe we can work together to make something happen. =)


Best,
- Martin


2013/5/15 Patrick Lauber <di...@treepy.com>
> To unsubscribe from this group and stop receiving emails from it, send an email to django-cms-developers+unsub...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

--
You received this message because you are subscribed to a topic in the Google Groups "django-cms-developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-cms-developers/wyA_Aglcs4I/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to django-cms-developers+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.


Reply all
Reply to author
Forward
0 new messages