Package: 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 forPlone 4 only.
For Plone 5, useplone.app.multilingualdirectly.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
thebehaviorsproperty in your type’s profile:<property name="behaviors">
    <element value="plone.multilingualbehavior.interfaces.IDexterityTranslatable" />
</property>plone.multilingualbehaviorimplements 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
thetestsfolder.tests/schemata.pyshows how to make fields language
independent when using the Grok framework;tests/samplecontent_type.xmlshows
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 ofplone.schemaeditor.For more information, please visit:https://github.com/plone/plone.app.multilingualPlease report any bugs or feature requests to ourissue tracker.Dependenciesplone.multilingual(Core and base implementation)plone.app.multilingual(Multilingual configlet, menu and global views)ContributorsRamon Navarro  [bloodbare]  (ramon.nb@gmail.com)Víctor Fernández de Alba  [sneridagh]  (sneridagh@gmail.com)Daniel Widerin  [saily]Changelog1.2.3 (2019-12-27)Made the__name__method of the handler a property.
Otherwise you get a very weird name with ‘bound method’ in it.
[maurits]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-24Check propertybypass_languageindependent_field_permission_checkexists
in registry to allow usage with lrf-branch.  [saily]Rewritehandle_modifiedsubscriber 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-19Minor PEP8 errors
[ramon]1.0 - 2013-04-16Removing ITG usage to ITranslationManager
[pysailor]Added a test for adding multilingual behavior through the web
[pysailor]1.0rc1 - 2013-01-26Adding relationfield to test profile
[ramon]PEP8 cleanup
[saily]Correct import and add new dependency forplone.supermodel.modelbecauseplone.directives.form2.0 does no longer depend on grok.
[saily]1.0b3 - 2012-10-04Added tests [sneridagh]Cleaning subscribers [ramon]1.0b2 - 2012-7-9Enable 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-3Schema 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]