Author: Plone Foundation


        .. contents::


LinguaPlone is *the* multilingual/translation solution for Plone, and achieves
this by being as transparent as possible and by minimizing the impact for
existing applications and Plone itself.

It utilizes the Archetypes reference engine to do the translation, and all
content is left intact both on install and uninstall - thus, it will not
disrupt your content structure in any way.

LinguaPlone doesn't require a particular hierarchy of content, and will in
theory work with any layout of your content space, though the default layout
advertised in the install instructions will make the site easier to use.

Some benefits of LinguaPlone

- Totally transparent, install-and-go.

- Each translation is a discrete object, and can be workflowed individually.

- Translations are kept track of using AT references.

- You can multilingual-enable your types without affecting their operation
  outside LinguaPlone.

- Even if you uninstall LinguaPlone after adding multilingual content, all
  your content will be intact and will work as separate objects! The only
  thing that will be inactive is the references between the objects. If you
  re-install it, they will be back. It's very non-intrusive.

- Supporting multilingual capabilities is a 4 (!) line addition to your
  Archetypes class, and does not alter the functionality of the class when
  used outside LinguaPlone.

- Fully integrated with ATContentTypes, so the basic content types are

- Supports language-independent fields (example: dates, first/last names)
  for fields you want to be the same across translations, and updated in all
  languages if one of them changes.

- Uses the notion of canonical versions, so you can do interesting things
  with workflow, like invalidate all translations of a document when the
  master copy has changed.


Install LinguaPlone into your Plone environment by adding it to the buildout or
adding it as a dependency of your policy package and rerun buildout.

Next add a new Plone site and select the `LinguaPlone` add-on. Make sure to
specify the primary language of your site. Continue to the language control
panel and specify all other languages you want to support.

Prepare the content structure by calling `@@language-setup-folders` on your
Plone site root, for example::


You might want to clean up the default content or move it around by visiting::


and deleting the Events, News and Users folders.

After following all these steps you have a good starting point to build a
multilingual site. Whether or not you have the same site structure in each
of the language folders is up to you and your requirements. By using the top
level language folders every URL corresponds to exactly one language which is
good for search bots and makes caching a lot easier. It also means that you
don't have folders with mixed languages in them, which improves the usability
for editors a lot, since they don't have to worry about switching languages in
the same folder just to see if there's more content in them.

The Plone site root is the only exception here and setup with a language
switcher default view that does the language negotiation and redirects users
to the right URL.


If you are upgrading LinguaPlone there may be an upgrade step that you need to
do. Please check the 'Add-ons' control panel for this.


If you no longer want to use LinguaPlone, you can remove it from your site.

First you need to deactivate LinguaPlone in the add-ons control panel. After
you did this you can remove LinguaPlone from your Plone environment on the file
system. If you forget to do the deactivation step, add LinguaPlone back
temporarily and deactivate it properly. Otherwise you'll likely not be able to
use their site with errors relating to the `SyncedLanguages` utility.

Frequently asked questions