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?