There are several layers involved in the processes that provide internationalization capabilities to Plone. Basically they are divided in the ones responsible to translate the user interface and the display of the localization particularities (dates, etc):
- Translating user interface text strings by using term:gettext, like the zope.i18n and zope.i18nmessageid packages.
- Adapting locale-specific settings (such as the time format) for the site, like the plone.i18n package.
And the ones responsible for translating the user generated content. There are several add-on products that provides multilingual support to Plone:
- Products.LinguaPlone (Archetypes content types based only)
- plone.app.multilingual (Archetypes and Dexterity content types, requires at least Plone 4.1)