Metadata-Version: 2.1
Name: plone.multilingualbehavior
Version: 1.2.2
Summary: Dexterity behavior for enabling multilingual extensions
Home-page: https://github.com/plone/plone.multilingualbehavior
Author: Plone Foundation
Author-email: sneridagh@gmail.com
License: GPL
Keywords: dexterity multilingual plone
Platform: UNKNOWN
Classifier: Development Status :: 7 - Inactive
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 4.3
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Requires-Dist: setuptools
Requires-Dist: plone.directives.form
Requires-Dist: plone.directives.dexterity
Requires-Dist: plone.app.dexterity
Requires-Dist: plone.multilingual
Requires-Dist: plone.app.multilingual
Provides-Extra: test
Requires-Dist: plone.app.testing ; extra == 'test'
Requires-Dist: plone.app.dexterity[relations] ; extra == 'test'

============================
plone.multilingualbehavior
============================

plone.multilingualbehavior adds multilingual behavior to content types built
with Dexterity. It uses the next generation multilingual engine powered by
five/Zope3 technologies, plone.multilingual.

This is for **Plone 4 only**.
For Plone 5, use `plone.app.multilingual <https://github.com/plone/plone.app.multilingual>`_ directly.

The behavior provides the Dexterity-driven content with a marker interface
"ITranslatable", and makes available to that translation enabled type all the
translation UI components such as menus, views, etc...

To make your Dexterity content type translatable, add the following line to
the ``behaviors`` property in your type's profile::

    <property name="behaviors">
        <element value="plone.multilingualbehavior.interfaces.IDexterityTranslatable" />
    </property>

``plone.multilingualbehavior`` implements language independent fields. The content
of language independent fields is the same across all language versions. This
is convenient, but also a little dangerous, because editing the field on any
language version will change the content on all other language versions.

For details on how to make fields language independent, see the examples in
the ``tests`` folder.  ``tests/schemata.py`` shows how to make fields language
independent when using the Grok framework; ``tests/samplecontent_type.xml`` shows
how to achieve the same thing in an xml file. It is also possible to set a
field to be language independent through the web, given a sufficiently new
version of ``plone.schemaeditor``.

For more information, please visit:
https://github.com/plone/plone.app.multilingual

Please report any bugs or feature requests to our `issue tracker <https://github.com/plone/plone.app.multilingual/issues>`_.


Dependencies
------------
- `plone.multilingual <https://github.com/plone/plone.multilingual>`_ (Core and base implementation)
- `plone.app.multilingual <https://github.com/plone/plone.app.multilingual>`_ (Multilingual configlet, menu and global views)


Contributors
------------

- Ramon Navarro  [bloodbare]  (ramon.nb@gmail.com)
- Víctor Fernández de Alba  [sneridagh]  (sneridagh@gmail.com)
- Daniel Widerin  [saily]

Changelog
=========

1.2.2 (2019-12-24)
------------------

- Add uninstall step.
  [bsuttor]

- __name__ method is added for preventing bug when you try to go in Components
  tab into ZMI (/manage_components) or when you try to make a snapshot.
  [bsuttor]

- Add uninstall profile.
  [bsuttor]


1.2.1 (2014-05-23)
------------------

- Use the more specific IEditFinishedEvent rather than IObjectModifiedEvent
  for copying over language independent fields, since IObjectModifiedEvent
  can be thrown multiple times, causing a performace lag [pysailor]

1.2 - 2013-09-24
----------------

- Check property ``bypass_languageindependent_field_permission_check`` exists
  in registry to allow usage with lrf-branch.  [saily]

- Rewrite ``handle_modified`` subscriber to notify ObjectModifiedEvent,
  and pass canonical object as event-description. This replaces the non-working
  semaphore.  Fixes #65
  [saily]

- Switch to a cloned user with a global Editor role to allow synchronization
  of language independant fields of other object (which the current user could
  not have permission to) when modifying an object.  Fixes #66
  [saily]

- We may need to know the language from a object that is not ITranslatable
  [ramon]

1.1 - 2013-06-19
----------------

- Minor PEP8 errors
  [ramon]

1.0 - 2013-04-16
----------------

- Removing ITG usage to ITranslationManager
  [pysailor]
- Added a test for adding multilingual behavior through the web
  [pysailor]


1.0rc1 - 2013-01-26
-------------------

- Adding relationfield to test profile
  [ramon]

- PEP8 cleanup
  [saily]

- Correct import and add new dependency for ``plone.supermodel.model``
  because ``plone.directives.form`` 2.0 does no longer depend on grok.
  [saily]


1.0b3 - 2012-10-04
------------------

- Added tests [sneridagh]
- Cleaning subscribers [ramon]


1.0b2 - 2012-7-9
----------------

- Enable Realtedfields copying the correct translated item when is language independent [ramon]
- Handle case of behaviors where attributes have never been set [do3cc]


1.0b1 - 2012-4-3
----------------

- Schema editor plugin to enable language indepedent fields TTW [ramon]
- Language independent field implementation [ramon]
- Supermodel, grok and native language independent field markers [ramon]
- ILanguage implementation [awello]


