plone.app.multilingual

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

Author: Ramon Navarro, Victor Fernandez de Alba, awello et al

Download: https://pypi.python.org/packages/source/p/plone.app.multilingual/plone.app.multilingual-2.0a2.zip

        .. image:: http://jenkins.plone.org/view/PLIPS/job/job-plone.app.multilingual/badge/icon
    :target: http://jenkins.plone.org/view/All/job/job-plone.app.multilingual/

.. image:: https://travis-ci.org/plone/plone.app.multilingual.png?branch=master
    :target: http://travis-ci.org/plone/plone.app.multilingual

.. contents::

Alert
=====

Master branch is in heavy development and for Plone 5 (pam 2.0). There is a 1.x 
branch for maintenance and compatibility with earlier Plone versions.

plone.app.multilingual 2.x is on devel folder

archetypes.multilingual 2.x is on extras folder

In order to test in plone 4 with dx contenttypes use buildout.cfg

In order to test in plone 5 use test-plone-5.x.cfg

Introduction
============

Talking about multi-language support in Plone is talk about
Products.LinguaPlone. It has been the *defacto* standard for managing
translations of Archetypes-based content types in Plone through the years.
Somehow its functionality never made its way into the Plone core and today it is
in legacy status. Nowadays, Plone faces the rising of Dexterity content types
and its incoming adoption into the Plone core in the near future (4.3) and
complete the transition to Plone as default content types in Plone 5.

plone.app.multilingual was designed originally to provide Plone a whole
multilingual story. Using ZCA technologies, enables translations to Dexterity
and Archetypes content types as well managed via an unified UI.

This module provides the user interface for managing content translations. It's
the app package of the next generation Plone multilingual engine. It's designed
to work with Dexterity content types and the *old fashioned* Archetypes based
content types as well. It only works with Plone 4.1 and above due to the use of
UUIDs for referencing the translations.

After more than 7 years, a GSOC, redesigns, reimplementations due to deprecated
libraries, two major Plone versions finally we are able to say that
plone.app.multilingual is finally here.

Components
==========

PAM is composed of four packages, two are mandatory:

    * plone.app.multilingual (UI)
    * plone.multilingual (core)

and two optionals (at least one should be installed):

    * plone.multilingualbehavior (enables Dexterity support via a behavior)
    * archetypes.multilingual (enables Archetypes support)

Usage
=====

To use this package with both Dexterity and Archetypes based content types you
should add the following line to your *eggs* buildout section::

    eggs =
        plone.app.multilingual[archetypes, dexterity]

If you need to use this package only with Archetypes based content types you
only need the following line::

    eggs =
        plone.app.multilingual[archetypes]

While archetypes is default in Plone for now, you can strip ``[archetypes]``.
This may change in future so we recommend adding an appendix as shown above.


Setup
=====

After re-running your buildout and installing the newly available add-ons, you
should go to the *Languages* section of your site's control panel and select
at least two or more languages for your site. You will now be able to create
translations of Plone's default content types, or to link existing content as
translations.

Features
========

These are the most important features PAM provides.

Root Language folders
---------------------

After the setup, PAM will create root folders for each of your site's
languages and put translated content into the appropriate folders. A language
folder implements INavigationRoot, so from the user's point of view, each
language is "jailed" inside its correspondent language folder. There are event
subscribers in place to capture user interaction with content and update the
language in contents accordingly, for example when user moves or copy content
between language folders.


Babel view
----------

An evolution of the LP *translate* view, unified for either Archetypes and
Dexterity content types. It features an already translated content viewer for
the current content being edited via an ajaxified dynamic selector that shows
them on the fly