In my organization, editors are creating content which may have translations using p.a.multilingual. Some content may include logos and labels which themselves are available in multiple languages. This is accomplished by adding an images-[lang] folder in each language folder and mirroring its substructure across languages. In the content types, editors can select the images to include using a RelationList field such as this:
<field name="marketing_labels" type="z3c.relationfield.schema.RelationList" lingua:independent="true"> <description /> <required>False</required> <title>Marketing Labels</title> <value_type type="z3c.relationfield.schema.RelationChoice"> <title>Relation Choice</title> <portal_type> <element>Image</element> </portal_type> </value_type> </field>
This results in the same-language image becoming displayed in translations when available, and defaulting to the site-default language when not.
The actual images to select from are few and mostly remain the same. Over time, new languages may be added to Plone, and I create a basic mirrored structure. At some later point, editors will upload translated versions of the images. It has now happened multiple times that they simply add a new folder to the images-[lang] substructure, rather than translating from an existing language. To make matters worse, the images contained in such a subfolder are also uploaded rather than translated...
In a following step, editors translate existing content and select their newly added image. Helpfully, and rightfully so, Plone then replaces this image in all translations. No-one notices for a while, and after some weeks or months I receive an email that documents contain images in the wrong language...
Even after marking the folder and contained images as translations and updating the "site-language" document with the original image, its translations which used to reference the language specific version of an image will also have to be updated - a messy and tedious affair.
Now, I would like to prevent my editors from being able to score such massive own-goals in the future. My initial thoughts go towards adding a behavior to folders which are contained in a LRF. This would add a flag "allow creation" to optionally prevent the addition of completely new objects in the hierarchy.
Does this seem to be a viable approach?
edit: fixed code snippet wrapping