[Product-Developers] Announcing collective.multilingual

Ramon Navarro Bosch ramon.nb at gmail.com
Wed Oct 3 09:51:15 UTC 2012


*Today evening we're releasing the package plone.app.multilingual 1.0
beta3. This is a major update as it includes the features we've planned for
a 1.0 version. Now we are going to push hard to solve bugs with the main
idea to release a 1.0 just after the sprint at the Arnhem Plone Conference.

You can find the code on GitHub:

    https://github.com/plone/plone.app.multilingual

The actual test situation on pam is :
*

   - *plone.multilingual 90%*
   - *plone.multilingualbehavior 92%*
   - *archetypes.multilingual 97%*
   - *plone.app.multilingual 70%*

*
Maybe you’ve noticed Malthe has committed the code of a new package to the
collective: collective.multilingual. After some discussion and interchanges
of points of view, he decided to abandon the line we’ve set with PAM and
wanted to make his own implementation.

I think it’s a great work, after all, he is one of the few guys that
understands 100% z3c.form, so great work. I can't hide my sadness to see
that Malthe decided that this smart code is not going to be included on DX
plone.app.multilingual stuff. We will try to learn more about how
schema/z3c.form works with this example.

I want to explain our point of view on this matter.
**About the code design *

*(I'm not going to talk about AT as collective.multilingual doesn't support
it):*

*
The core idea is the same as on plone.multilingual, instead of querying
every time you need to know the languages at which is translated on the
catalog on plone.multilingual we implemented a direct access on a BTree. We
evaluated this option and, maybe because I come from teaching computer
science at university, I thought it must be faster to access a hash instead
of looking at the big catalog for the object with that translation. It's
almost the same. IMHO I don’t think that including all the Plone
information on the catalog is a good idea, maybe we can get rid of the
content itself and just use the catalog for everything.

As we are dealing with different kind of objects we created a ILanguage
interface to get the language on AT and DX

About the content distribution, it is the same on both, language root
folders and forcing the content language on each branch.

About Language Independent solution, as collective.multilingual is for DX
only and someday will have an implementation, we used the IObjectModified
event to copy the elements that are independent to all the translated
languages. We pay a bit of time on edit but it's faster on read. We also
used a martian directive, an importer for model xml and a interface that
can be applied ( so whatever is your way you can set a field as independent
). Or if you are interested you can do it TTW also.

About DAG, on plone.multilingual there is a star implementation because of
efficiency. But it's easy to implement a DAG on a star, we just found a
problem with that: if we allow to choose the original translation on edit
form, from which you want to translate, the "DAG" idea is not 100% clear,
maybe some day you translate a document to english from catalan, but then
the spanish version is better and you want to translate from spanish… So we
thought about forgetting a bit about that by now.

About neutral content, we implemented a neutral shared folder on top where
content language is always independent and you can browse the folder
without any problem. I can't see any solutions to this problem on
collective.multilingual.

About the UI

The menus are the same, the same ideas (we also allow to edit directly the
already created language). We also added the “universal link” concept (a
link to the content for press publication -> it redirects to the browser
language content if exists or to a choose which language you prefer on your
browser).

The viewlets are a great idea, we were thinking about where to add the
parent not translated and supported languages. We are gonna integrate them
from collective.multilingual :)

We added a lot of UI cool features that are our main goal for user
experience, with some images:

* A control panel with the option to see on a graph the translations for
each language, which translations are missing and enable to create them

* A integration with neutral content folder, you can have a neutral
image/file/page and point it from tinyMCE or just create a first level
folder on all the languages at the same time.

* Migration procedures from LinguaPlone.

* Different options for setting up the site.

* Policies about language selector viewlet (closest translation or
not_translated view).

* Change/set the language of a content or tree option with copy/paste
support (to a different language root tree) too.

* Google Translation Service to aid on text field translations

We tried to maintain as much as possible the UX from LinguaPlone, the users
are important and our experience is that changing the UI to much is bad :)
However, we benefits from the experience of lots of non-technical users
using LinguaPlone on more than 500 sites deployed to the date. We tried to
put that knowledge into account when thought about PAM UI and UX. We know
we have a lot of work on UI yet, however we think we are in the right path.

Missing features on 1.0, but on roadmap:

* XLIFF export/import: we are gonna push the draft we have to a branch,
needs some work to make it work perfect on AT/DX. ( as an external module )

* Iterate: we know there are some needs about iterate integration, I hope
that we can work on that at ploneconf!

* LinguaPlus/linguatools viewlets - tools, some useful tools like changing
the workflow on all translations ( as an external module )

* Outdated translations alerts

Finally say that I'm really happy about PAM development, it has involved a
lot of people, awello, sneridagh, ereal, mauritsvanrees, tmassman,
do3cc**and mizio and is the result of a team of people with different
skills!!
*
*
*

On 3 October 2012 11:43, Malthe Borch <mborch at gmail.com> wrote:

> I have uploaded the source code for a new Plone add-on that provides
> support for content in multiple languages:
>
>    https://github.com/collective/collective.multilingual
>
> It's an alternative to plone.multilingual and its related packages and
> basically provides the same functionality.
>
> The main motivation was to have a simple architecture that benefits
> from Plone's new content type framework. It's a maintainable, tested,
> easy to understand codebase.
>
> For instance, we use Dexterity's built-in add- and edit forms, without
> any customization. This is possible because of the pluggable
> architecture of the underlying forms library, z3c.form. It made it
> trivial to implement a feature such as language-independent values.
>
> Note that we don't – and can't – provide support for Archetypes.
>
> Finally, the add-on does not currently provide any translation aids
> such as integration with Google translate or the like. I'd like to see
> such features added, but it's also important that there's a reasonable
> control on what the add-on should provide out of the box.
>
> Thanks,
>
> \malthe
>



-- 
Ramon a.k.a bloodbare
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.plone.org/pipermail/plone-product-developers/attachments/20121003/ca1898f9/attachment-0001.html>


More information about the Product-Developers mailing list