r321 - in zope-plonearticle/branches/upstream/current: . CMFEditionsModifier CMFEditionsModifier/www Extensions doc i18n interfaces migration skins/PloneArticle skins/plonearticle_plone21 tests www

Jérémy Bobbio lunar-guest at costa.debian.org
Sat Oct 21 20:56:23 UTC 2006


Author: lunar-guest
Date: 2006-10-21 20:56:22 +0000 (Sat, 21 Oct 2006)
New Revision: 321

Added:
   zope-plonearticle/branches/upstream/current/CMFEditionsModifier/
   zope-plonearticle/branches/upstream/current/CMFEditionsModifier/PloneArticleV3CMFEModifier.py
   zope-plonearticle/branches/upstream/current/CMFEditionsModifier/__init__.py
   zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/
   zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/PloneArticleV3ModifierAddForm.pt
   zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/modifier.gif
   zope-plonearticle/branches/upstream/current/PloneFilesZipSupport.py
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_sv.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_sv.po
   zope-plonearticle/branches/upstream/current/tests/__init__.py
   zope-plonearticle/branches/upstream/current/tests/testCMFEditions.py
Modified:
   zope-plonearticle/branches/upstream/current/.cvsignore
   zope-plonearticle/branches/upstream/current/ABOUT
   zope-plonearticle/branches/upstream/current/ATContentType.py
   zope-plonearticle/branches/upstream/current/AttachmentMixin.py
   zope-plonearticle/branches/upstream/current/CHANGES
   zope-plonearticle/branches/upstream/current/Extensions/.cvsignore
   zope-plonearticle/branches/upstream/current/Extensions/__init__.py
   zope-plonearticle/branches/upstream/current/Extensions/toolbox.py
   zope-plonearticle/branches/upstream/current/LockMixin.py
   zope-plonearticle/branches/upstream/current/Log.py
   zope-plonearticle/branches/upstream/current/Permissions.py
   zope-plonearticle/branches/upstream/current/PloneArticle.py
   zope-plonearticle/branches/upstream/current/PloneArticleMultiPage.py
   zope-plonearticle/branches/upstream/current/PloneArticleTool.py
   zope-plonearticle/branches/upstream/current/README.txt
   zope-plonearticle/branches/upstream/current/TESTED_WITH
   zope-plonearticle/branches/upstream/current/TypelessPloneArticleProperties.py
   zope-plonearticle/branches/upstream/current/__init__.py
   zope-plonearticle/branches/upstream/current/config.py
   zope-plonearticle/branches/upstream/current/doc/FAQ
   zope-plonearticle/branches/upstream/current/doc/SCREENSHOTS
   zope-plonearticle/branches/upstream/current/doc/icon.png
   zope-plonearticle/branches/upstream/current/doc/plonearticle_uml.odm
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle.pot
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_da.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_de.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_en.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_fr.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_it.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone.pot
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_da.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_de.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_en.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_fr.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_it.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_ja.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_pt-br.po
   zope-plonearticle/branches/upstream/current/i18n/PloneArticle_pt-br.po
   zope-plonearticle/branches/upstream/current/i18n/build.bat
   zope-plonearticle/branches/upstream/current/i18n/build.sh
   zope-plonearticle/branches/upstream/current/interfaces/.cvsignore
   zope-plonearticle/branches/upstream/current/interfaces/IArticle.py
   zope-plonearticle/branches/upstream/current/interfaces/IAttachment.py
   zope-plonearticle/branches/upstream/current/interfaces/__init__.py
   zope-plonearticle/branches/upstream/current/migration/.cvsignore
   zope-plonearticle/branches/upstream/current/migration/Migrator.py
   zope-plonearticle/branches/upstream/current/migration/__init__.py
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticle.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel1.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel2.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel3.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel4.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel5.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel6.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel7.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel8.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModels.png.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/down.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/lock.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_add.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_add.cpy.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_copy.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_copy.cpy.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_delete.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_delete.cpy.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_edit.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_edit.cpy.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_form.cpt
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_form.cpt.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_paste.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_paste.cpy.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_macros.pt
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_edit.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_edit.cpy.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_form.cpt
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_form.cpt.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_preview_popup.pt
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_reference_browser_popup.pt
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_uid_reference.cpy
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticlemultipage_view.pt
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/reference_icon.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/unlock.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/up.gif.metadata
   zope-plonearticle/branches/upstream/current/skins/PloneArticle/validate_plonearticle_prefs.vpy
   zope-plonearticle/branches/upstream/current/skins/plonearticle_plone21/plonearticle_macros.pt
   zope-plonearticle/branches/upstream/current/skins/plonearticle_plone21/plonearticle_preview_popup.pt
   zope-plonearticle/branches/upstream/current/skins/plonearticle_plone21/plonearticlemultipage_view.pt
   zope-plonearticle/branches/upstream/current/tests/.cvsignore
   zope-plonearticle/branches/upstream/current/tests/PloneArticleTestCase.py
   zope-plonearticle/branches/upstream/current/tests/articlev2.zexp
   zope-plonearticle/branches/upstream/current/tests/common.py
   zope-plonearticle/branches/upstream/current/tests/runtests.sh.example
   zope-plonearticle/branches/upstream/current/tests/testMigration.py
   zope-plonearticle/branches/upstream/current/tests/testPloneArticle.py
   zope-plonearticle/branches/upstream/current/tests/testSecurity.py
   zope-plonearticle/branches/upstream/current/version.txt
   zope-plonearticle/branches/upstream/current/www/manage_migration.zpt
   zope-plonearticle/branches/upstream/current/www/manage_overview.zpt
Log:
Load /tmp/tmp.gLTlW12227/zope-plonearticle-3.2.3 into
zope-plonearticle/branches/upstream/current.



Property changes on: zope-plonearticle/branches/upstream/current/.cvsignore
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/ABOUT
===================================================================
--- zope-plonearticle/branches/upstream/current/ABOUT	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/ABOUT	2006-10-21 20:56:22 UTC (rev 321)
@@ -1 +1 @@
-A Plone document incorporating images and attachments, which a free choice of layout.
+A Plone document incorporating images, attachments and links, whith a free choice of layout.


Property changes on: zope-plonearticle/branches/upstream/current/ATContentType.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/AttachmentMixin.py
===================================================================
--- zope-plonearticle/branches/upstream/current/AttachmentMixin.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/AttachmentMixin.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -10,7 +10,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """Attachment mixin.
-$Id: AttachmentMixin.py,v 1.9 2006/07/20 10:01:37 glenfant Exp $
+$Id: AttachmentMixin.py,v 1.10 2006/09/12 10:17:15 encolpe Exp $
 """
 
 __author__ = ''
@@ -45,68 +45,68 @@
 class methodGenerator:
     """Method generator
     """
-    
+
     def make(self, from_klass, to_klass, from_method, to_method, permission):
         method = None
-        
+
         def new_method(self, *args, **kwargs):
             field = from_klass
             return getattr(field, from_method)(self, *args, **kwargs)
-        
+
         method = new_method
         method_name = to_method
-        
+
         method = function(method.func_code,
                           method.func_globals,
                           method_name,
                           method.func_defaults,
                           method.func_closure,
                          )
-        
+
         # Add function
         setattr(to_klass, method_name, method)
-        
+
         # Use security
         if not to_klass.__dict__.has_key('security'):
             security = to_klass.security = ClassSecurityInfo()
         else:
             security = to_klass.security
-        
+
         security.declareProtected(permission, method_name)
 
 class AttachmentReferenceBrain(SimpleItem):
-    
+
     # Standard security settings
     security = ClassSecurityInfo()
-    
+
     __implements__ = (IAttachmentReferenceBrain,)
-    
+
     security.declarePrivate('__init__')
     def __init__(self, title='', description=''):
         """
         """
-        
+
         self.title = title
         self.description = description
-    
+
     security.declarePublic('Title')
     def Title(self):
         """
         Get title.
         STORED IN REFERENCE.
         """
-        
+
         return self.title
-    
+
     security.declarePublic('Description')
     def Description(self):
         """
         Get description.
         STORED IN REFERENCE.
         """
-        
+
         return self.description
-    
+
     security.declarePublic('getObject')
     def getObject(self):
         """
@@ -114,32 +114,32 @@
         """
 
         return self.getTargetObject()
-    
+
     security.declarePrivate('setTitle')
     def setTitle(self, title):
         """
         Set title.
         STORED IN REFERENCE.
         """
-        
+
         self.title = title
-    
+
     security.declarePrivate('setDescription')
     def setDescription(self, description):
         """
         Set description.
         STORED IN REFERENCE.
         """
-        
+
         self.description = description
-        
+
 InitializeClass(AttachmentReferenceBrain)
 
 class OrderedList(SimpleItem):
     """Ordered list with unique elements"""
-    
+
     security = ClassSecurityInfo()
-    
+
     security.declarePrivate('__init__')
     def __init__(self):
         """Initialize list"""
@@ -150,26 +150,26 @@
         """Add new items"""
         for item in items:
             self.olist.append(item)
-        
+
         self.olist = self.olist
-    
+
     security.declarePrivate('remove')
     def remove(self, items):
         """Remove items"""
         for item in items:
             self.olist.remove(item)
-            
+
         self.olist = self.olist
-    
+
     security.declarePrivate('moveByDelta')
     def moveByDelta(self, items, delta):
         """Move items by delta"""
-      
+
         for item in items:
             index = self.olist.index(item) - delta
             self.olist.remove(item)
             self.olist.insert(index, item)
-            
+
         self.olist = self.olist
 
     security.declarePrivate('getItems')
@@ -178,62 +178,62 @@
         return self.olist
 
 InitializeClass(OrderedList)
-    
+
 class AttachmentContents:
     """
     Base class for attachment features
     """
-    
+
     # Standard security settings
     security = ClassSecurityInfo()
-    
+
     __implements__ = (IAttachmentContents,)
-    
+
     _content_brain_id = '__attachment_brain__'
     _ordered_refs_list_id = '__ordered_%s_refs__'
     _relationship_id = 'attachment_%s'
     _brain_klass = AttachmentReferenceBrain
     _view_permission = CMFCorePermissions.View
     _write_permission = CMFCorePermissions.ModifyPortalContent
-    
+
     security.declarePrivate('__init__')
     def __init__(self, name):
         """
         initialize attachments
         """
-    
+
         self.name = name
-    
+
     security.declarePrivate('getContentType')
-    def getContentType(self, instance): 
+    def getContentType(self, instance):
         """
         Returns portal type to add
         """
         raise NotImplementedError('AttachmentContents: getContentType')
-        
+
     security.declarePrivate('getAllowedContentTypes')
-    def getAllowedContentTypes(self, instance): 
+    def getAllowedContentTypes(self, instance):
         """
         Returns portal types you can paste as reference
         """
         return [self.getContentType(instance)]
 
     security.declarePrivate('getRelationShip')
-    def getRelationShip(self): 
+    def getRelationShip(self):
         """
         Returns relationship name used in references
         """
         return self._relationship_id % self.name
-    
+
     security.declarePrivate('getOrderedRefsList')
     def getOrderedRefsList(self, instance):
         """Returns ordered references list
         """
         name = self._ordered_refs_list_id % self.name
-        
+
         if not hasattr(instance, name):
             setattr(instance, name, OrderedList())
-            
+
         return getattr(instance, name)
 
     security.declarePrivate('moveContentsByDelta')
@@ -241,337 +241,336 @@
         """
         Move contents by delta
         """
-        
+
         refs = self.getContentReferences(instance)
         ref_UIDs = []
-        
+
         # Get references UIDs
         for ref in refs:
             if ref.targetUID in UIDs:
                 ref_UIDs.append(ref.UID())
-        
+
         self.getOrderedRefsList(instance).moveByDelta(ref_UIDs, delta)
-    
+
     security.declarePrivate('getContent')
     def getContent(self, instance, UID):
         """
         Parameters
             UID -> UID of content
-            
+
         Returns a content object
         """
-        
+
         at_tool = getToolByName(instance, 'archetype_tool')
-        
+
         # Get object from UID and add content reference
-        content = at_tool.getObject(UID)
-        return content
-    
+        return at_tool.getObject(UID)
+
     security.declarePrivate('getReference')
     def getReference(self, instance, UID):
         """
         Get reference from object having UID
         """
-        
+
         ref_tool = getToolByName(instance, 'reference_catalog')
         refs = ref_tool.searchResults(sourceUID=instance.UID(), targetUID=UID, relationship=self.getRelationShip())
-        
+
         if refs:
             return refs[0].getObject()
         else:
             return None
-    
+
     security.declarePrivate('getContentBrain')
     def getContentBrain(self, instance, UID):
         """
         Parameters
             UID -> UID of content
-            
+
         Returns a brain of content
         """
-        
+
         ref = self.getReference(instance, UID)
-        
+
         if ref:
             return getattr(ref, self._content_brain_id, None)
         else:
             return None
-    
+
     security.declarePrivate('editContent')
     def editContent(self, instance, UID, title='', description=''):
         """
         Edit a content brain
         """
-        
+
         # Modify brain
         brain = self.getContentBrain(instance, UID)
         brain.setTitle(title)
         brain.setDescription(description)
-        
+
         # Modify object if in content
         content = self.getContent(instance, UID)
         parent = content.getParentNode()
-        
+
         if hasattr(parent, 'UID') and parent.UID() == instance.UID():
             content.setTitle(title)
-            content.setDescription(description)        
-            
+            content.setDescription(description)
+
         # Reindex content
         instance.reindexObject()
-        
+
     security.declarePrivate('editContents')
     def editContents(self, instance, content_infos):
         """
         Edit content brains
         infos is a dictionnary : uid -> (title, description)
         """
-        
+
         for content_info in content_infos:
             UID = content_info['UID']
             title = content_info.get('title', '')
             description = content_info.get('description', '')
             self.editContent(instance, UID, title, description)
-    
+
     security.declarePrivate('addContent')
     def addContent(self, instance, *args, **kwargs):
         """
         Attach a content to instance. Add content in instance.
-        
+
         Parameters
             title -> title of content
             description -> description of content
         """
-        
+
         # Create attachment in instance
         content_id = instance.generateUniqueId()
         instance.invokeFactory(self.getContentType(instance), \
                            id=content_id, \
                            **kwargs)
-        
+
         # Get new attachment and add attachment reference
         content = getattr(instance, content_id)
-        
+
         # Unindex contents in instance
         cat_tool = getToolByName(instance, 'portal_catalog')
         cat_tool.unindexObject(content)
-        
+
         self.addContentFromObject(instance, content)
-    
+
     security.declarePrivate('addContentFromObject')
     def addContentFromObject(self, instance, content):
         """
         Attach a content to instance. Just add a reference between content and
         instance.
-        
+
         Parameters
             attachment -> content object to attach
         """
-        
+
         content_type = content.portal_type
         allowed_content_type = self.getAllowedContentTypes(instance)
-        
+
         if content_type not in allowed_content_type:
             Log(LOG_NOTICE, "Wrong attachment type. Expected : %s, given %s." % (allowed_content_type, content_type))
             raise TypeError, "%s cannot be added as %s. Use %s type" % (content_type, self.name, allowed_content_type)
-        
+
         # Create brain
         brain = self._brain_klass(content.Title(), content.Description())
-        
+
         # Add reference
         ref = instance.addReference(content, self.getRelationShip())
         setattr(ref, self._content_brain_id, brain)
         brain.__of__(ref)
-        
+
         # Append ref UID to an ordered list
         self.getOrderedRefsList(instance).add([ref.UID()])
-        
+
         # Reindex instance
         instance.reindexObject()
-    
+
     security.declarePrivate('addContentFromUID')
     def addContentFromUID(self, instance, UID):
         """
         Attach a content to instance. Just add a reference between content and
         instance.
-        
+
         Parameters
             UID -> UID of a content to attach
         """
-        
+
         # Get object from UID and add content reference
         content = self.getContent(instance, UID)
         self.addContentFromObject(instance, content)
-    
+
     security.declarePrivate('removeContent')
     def removeContent(self, instance, UID):
         """
         Remove an attachment from instance
-        
+
         Parameters
             UID -> UID of content
         """
-        
+
         # Get object from UID and add content reference
         content = self.getContent(instance, UID)
         content_id = content.getId()
-        
+
         # Remove object if in instance
         # Just delete reference if not
         parent = content.getParentNode()
         ref = self.getReference(instance, UID)
-        
+
         # Delete ref UID from the ordered list
         self.getOrderedRefsList(instance).remove([ref.UID()])
-        
+
         if hasattr(parent, 'UID') and parent.UID() == instance.UID():
             instance.manage_delObjects([content_id])
         else:
             instance.deleteReference(UID, self.getRelationShip())
-            
+
         # Reindex instance
         instance.reindexObject()
-    
+
     security.declarePrivate('removeContents')
     def removeContents(self, instance, UIDs):
         """
         Remove list of contents
-        
+
         Parameters
             UIDs -> List of UIDs
         """
-        
+
         for UID in UIDs:
             self.removeContent(instance, UID)
-    
+
     security.declarePrivate('getContentReferences')
     def getContentReferences(self, instance):
         """
         Returns all content references from instance
         """
-        
+
         refs = instance.getReferenceImpl(self.getRelationShip())
         ref_UIDs = dict([(x.UID(), x) for x in refs])
         refs_list = []
         ordered_refs_list = self.getOrderedRefsList(instance)
         mtool = getToolByName(instance, 'portal_membership')
         request = instance.REQUEST
-        
+
         # Update ordered list
         for ref_UID in ref_UIDs:
             if ref_UID not in ordered_refs_list.getItems():
                 ordered_refs_list.add([ref_UID])
-                
+
         for ref_UID in ordered_refs_list.getItems():
             if ref_UID not in ref_UIDs:
                 ordered_refs_list.remove([ref_UID])
             else:
-                # Check permission and avoid private contents 
+                # Check permission and avoid private contents
                 ref = ref_UIDs[ref_UID]
                 content = ref.getTargetObject()
-                
+
                 if content is None:
                     continue
-                
+
                 parent = content.getParentNode()
                 has_permission = mtool.checkPermission(CMFCorePermissions.View, content) \
                     and mtool.checkPermission(CMFCorePermissions.AccessContentsInformation, content)
                 in_instance = hasattr(parent, 'UID') and parent.UID() == instance.UID()
-                
+
                 if in_instance and not has_permission:
                     # Add acquisition on Access Contents information and View permission
                     # Use manager role to change permissions
                     current_user = getSecurityManager().getUser()
                     newSecurityManager(request, emergency_user)
-                    
+
                     # Add acquisition on View and Access content information
                     permissions = [CMFCorePermissions.AccessContentsInformation, CMFCorePermissions.View]
                     for permission in permissions:
                         roles = [x['name'] for x in content.rolesOfPermission(permission) if x['selected']]
                         content.manage_permission(permission, roles, 1)
-                    
+
                     # Restore current user permission
                     newSecurityManager(request, current_user)
-                
+
                 if has_permission or in_instance:
                     refs_list.append(ref)
-        
+
         return refs_list
-    
+
     security.declarePrivate('copyContentsToClipboard')
     def copyContentsToClipboard(self, instance, UIDs):
         """Copy objects referenced by UIDs in clipboard
         """
-        
+
         at_tool = getToolByName(instance, 'archetype_tool')
         oblist=[]
         request = instance.REQUEST
-        
+
         for UID in UIDs:
             # Get object from UID and add content reference
             ob = at_tool.getObject(UID)
-            
+
             if not ob.cb_isCopyable():
                 Log(LOG_NOTICE, "Object in clipboard is not copyable.")
                 raise CopyError, 'Copy Error from : ' % str(UID)
             m = Moniker.Moniker(ob)
             oblist.append(m.dump())
-        
+
         cp = (0, oblist)
         cp = _cb_encode(cp)
-        
+
         if request is not None:
             response = request.RESPONSE
             response.setCookie('__cp', cp, path='%s' % cookie_path(request))
-            
+
         return cp
-    
+
     security.declarePrivate('getContents')
     def getContents(self, instance):
         """
         Returns all content objects referenced in instance
         """
-        
+
         return [x.getTargetObject() for x in self.getContentReferences(instance)]
-    
+
     security.declarePrivate('getContentBrains')
     def getContentBrains(self, instance):
         """
         Returns all content brains referenced in instance
         """
-        
+
         return [getattr(x, self._content_brain_id) for x in self.getContentReferences(instance) if hasattr(x, self._content_brain_id)]
-    
+
     security.declarePrivate('getContentUIDs')
     def getContentUIDs(self, instance):
         """
         Returns all content uids referenced in instance
         """
-        
+
         return [x.targetUID for x in self.getContentReferences(instance)]
-    
+
     security.declarePrivate('isContentContained')
     def isContentContained(self, instance, UID):
         """
         Return true if content is stored in instance else return false.
         """
-        
+
         content = self.getContent(instance, UID)
         parent = content.getParentNode()
-        
+
         if hasattr(parent, 'UID') and parent.UID() == instance.UID():
             return True
         else:
             return False
-        
-        
+
+
     security.declarePrivate('generateMethods')
     def generateMethods(self, klass):
         """
         Generates dynamic methods
         """
-        
+
         name = self.name.capitalize()
-        
+
         gen_methods = (
             ('get%sUIDs', 'getContentUIDs', self._view_permission),
             ('get%sBrains', 'getContentBrains', self._view_permission),
@@ -590,10 +589,10 @@
             ('move%ssByDelta', 'moveContentsByDelta', self._write_permission),
             ('copy%ssToClipboard', 'copyContentsToClipboard', self._write_permission),
             )
-    
+
         for gen_method in gen_methods:
             to_method = gen_method[0] % name
             from_method = gen_method[1]
             permission = gen_method[2]
             methodGenerator().make(self, klass, from_method, to_method, permission)
-        
+


Property changes on: zope-plonearticle/branches/upstream/current/AttachmentMixin.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/CHANGES
===================================================================
--- zope-plonearticle/branches/upstream/current/CHANGES	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/CHANGES	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,7 +1,17 @@
+3.2.3 - 2006-09-16
+
+   * (In doc/FAQ) Explains about potential lost subobjects when
+     copying/pasting articles (glenfant)
+
+   * Added adapter for PloneFilesZip (glenfant)
+
+   * Added adapter for CMFEdition (encolpe)
+
 3.2.2 - 2006-07-19
 
    * LinguaPlone 0.9 compatibility required some changes due to
-     undocumented LP new features. http://plone.org/products/linguaplone/issues/46
+     undocumented LP new
+     features. http://plone.org/products/linguaplone/issues/46
      (glenfant)
 
 3.2.1 - 2006-07-19 


Property changes on: zope-plonearticle/branches/upstream/current/CHANGES
___________________________________________________________________
Name: svn:executable
   - 
   + *

Added: zope-plonearticle/branches/upstream/current/CMFEditionsModifier/PloneArticleV3CMFEModifier.py
===================================================================
--- zope-plonearticle/branches/upstream/current/CMFEditionsModifier/PloneArticleV3CMFEModifier.py	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/CMFEditionsModifier/PloneArticleV3CMFEModifier.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,180 @@
+# -*- coding: utf-8 -*-
+## PloneArticle
+## Copyright (C)2006 Ingeniweb
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; see the file COPYING. If not, write to the
+## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"""This is the CMFEditions modifier for Plone Article Version 3.
+
+PA stands for PloneArticle
+"""
+__version__ = "$Revision: 1.4 $"
+# $Source: /cvsroot/ingeniweb/PloneArticle/CMFEditionsModifier/PloneArticleV3CMFEModifier.py,v $
+# $Id: PloneArticleV3CMFEModifier.py,v 1.4 2006/09/22 01:32:29 encolpe Exp $
+__docformat__ = 'restructuredtext'
+
+
+# More details in the ``LICENSE`` file included in this package.
+
+from Globals import InitializeClass
+from Acquisition import aq_base
+
+from Products.PageTemplates.PageTemplateFile import PageTemplateFile
+
+from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.CMFCorePermissions import ManagePortal
+
+from Products.CMFEditions.interfaces.IModifier import IAttributeModifier
+from Products.CMFEditions.interfaces.IModifier import ICloneModifier
+from Products.CMFEditions.interfaces.IModifier import ISaveRetrieveModifier
+from Products.CMFEditions.interfaces.IModifier import IConditionalTalesModifier
+
+from Products.CMFEditions.Modifiers import ConditionalTalesModifier
+
+from Products.CMFEditions.StandardModifiers import OMInsideChildrensModifier, OMSubObjectAdapter
+
+from Products.PloneArticle.config import Log, LOG_DEBUG
+from Products.PloneArticle.AttachmentMixin import OrderedList
+
+
+ORDEREDLIST_ATTRIBUTES = (
+    '__ordered_attachment_refs__',
+    '__ordered_image_refs__',
+    '__ordered_link_refs__',
+    )
+
+LOCK_ATTRIBUTES = (
+    '_locked_by',
+    '_locked_date',
+    '_unlocked_by',
+    '_unlocked_date',
+)
+
+def initialize(context):
+    """Registers modifiers with zope (on zope startup).
+    """
+    for m in modifiers:
+        context.registerClass(
+            m['wrapper'], m['id'],
+            permission = ManagePortal,
+            constructors = (m['form'], m['factory']),
+            icon = m['icon'],
+        )
+
+def install(portal_modifier):
+    """Registers modifiers in the modifier registry (at tool install time).
+    """
+    for m in modifiers:
+        id = m['id']
+        if id in portal_modifier.objectIds():
+            continue
+        title = m['title']
+        modifier = m['modifier']()
+        wrapper = m['wrapper'](id, modifier, title)
+        enabled = m['enabled']
+        if IConditionalTalesModifier.isImplementedBy(wrapper):
+            wrapper.edit(enabled, m['condition'])
+        else:
+            wrapper.edit(enabled)
+
+        portal_modifier.register(m['id'], wrapper)
+
+class PloneArticleV3Modifier(OMInsideChildrensModifier):
+    """ObjectManager modifier treating all childrens as inside refs
+
+    Treats all inside contents references of PA (the repository layer
+    knows what to do with that fact).
+    """
+
+    __implements__ = (ICloneModifier, ISaveRetrieveModifier, IAttributeModifier)
+
+    #
+    # ICloneModifier and ISaveRetrieveModifier implemented in inherited class
+    #
+
+    #
+    # IAttributeModifier implementation
+    #
+
+    def getReferencedAttributes(self, obj):
+        """Returns attributes which should be passe dto the storage by reference.
+        
+        Returns a dict of the format ``name:attribute``. 
+        """
+        aq_obj = aq_base(obj)
+        result = {}
+
+        for attribute_id in ORDEREDLIST_ATTRIBUTES:
+            attribute = getattr(aq_obj, attribute_id, None)
+            if attribute:
+                result[attribute_id] = attribute.getItems()
+            else:
+                result[attribute_id] = None
+
+        for attribute_id in LOCK_ATTRIBUTES:
+            result[attribute_id] = getattr(aq_obj, attribute_id, None)
+
+        return result
+
+    def reattachReferencedAttributes(self, obj, attrs_dict):
+        """Giving an obj and and an attribute dict composed by
+           attribute names and values, reattach them to the obj.
+        """
+        aq_obj = aq_base(obj)
+
+        for name, attr_value in attrs_dict.items():
+            if name in ORDEREDLIST_ATTRIBUTES:
+                orderedlist = OrderedList()
+                orderedlist.add(attr_value)
+                setattr(aq_obj, name, orderedlist)
+            else:
+                setattr(aq_obj, name, attr_value)
+
+
+InitializeClass(PloneArticleV3Modifier)
+
+
+manage_PloneArticleV3ModifierAddForm = PageTemplateFile('www/PloneArticleV3ModifierAddForm.pt',
+                                          globals(),
+                                          __name__='manage_PloneArticleV3ModifierAddForm')
+
+def manage_addPloneArticleV3Modifier(self, id, title=None,
+                                        REQUEST=None):
+    """Add an object manager modifier treating children as inside refs
+    """
+    modifier = PloneArticleV3Modifier()
+    self._setObject(id, ConditionalTalesModifier(id, modifier, title))
+
+    if REQUEST is not None:
+        REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main')
+
+
+
+#----------------------------------------------------------------------
+# Standard modifier configuration
+#----------------------------------------------------------------------
+
+modifiers = (
+    {
+        'id': 'PloneArticleV3Modifier',
+        'title': "Modifier for object managers treating children as inside objects.",
+        'enabled': False,
+        'condition': 'python: False',
+        'wrapper': ConditionalTalesModifier,
+        'modifier': PloneArticleV3Modifier,
+        'form': manage_PloneArticleV3ModifierAddForm,
+        'factory': manage_addPloneArticleV3Modifier,
+        'icon': 'CMFEditionsModifier/www/modifier.gif',
+    },
+)

Added: zope-plonearticle/branches/upstream/current/CMFEditionsModifier/__init__.py
===================================================================
--- zope-plonearticle/branches/upstream/current/CMFEditionsModifier/__init__.py	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/CMFEditionsModifier/__init__.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+## PloneArticle
+## Copyright (C)2006 Ingeniweb
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; see the file COPYING. If not, write to the
+## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"""
+Import specific PloneArticle CMFEdition Modifier
+"""
+__version__ = "$Revision: 1.1 $"
+# $Source: /cvsroot/ingeniweb/PloneArticle/CMFEditionsModifier/__init__.py,v $
+# $Id: __init__.py,v 1.1 2006/09/12 15:13:59 encolpe Exp $
+__docformat__ = 'restructuredtext'

Added: zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/PloneArticleV3ModifierAddForm.pt
===================================================================
--- zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/PloneArticleV3ModifierAddForm.pt	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/PloneArticleV3ModifierAddForm.pt	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,39 @@
+<p tal:replace="structure here/manage_page_header" omit-tag="">Header</p>
+<p tal:replace="structure here/manage_tabs" omit-tag="">tabs</p>
+
+
+<h2>Add PloneArticleV3 Modifier</h2>
+
+<form action="manage_addPloneArticleV3Modifier" method="post">
+
+  <table border="0">
+
+    <tr>
+      <th>
+        Id
+      </th>
+      <td>
+        <input type="text" name="id" value="" size="40">
+        </td>
+    </tr>
+
+    <tr>
+      <th>
+        Title
+      </th>
+      <td>
+        <input type="text" name="title" value="" size="40">
+        </td>
+    </tr>
+
+    <tr>
+      <td colspan="2">
+        <input type="submit" name="submit" value="Add">
+        </td>
+    </tr>
+
+  </table>
+
+</form>
+
+<p tal:replace="structure here/manage_page_footer" omit-tag="">Footer</p>
\ No newline at end of file

Added: zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/modifier.gif
===================================================================
(Binary files differ)


Property changes on: zope-plonearticle/branches/upstream/current/CMFEditionsModifier/www/modifier.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream


Property changes on: zope-plonearticle/branches/upstream/current/Extensions/.cvsignore
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/Extensions/__init__.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/Extensions/toolbox.py
===================================================================
--- zope-plonearticle/branches/upstream/current/Extensions/toolbox.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/Extensions/toolbox.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -10,7 +10,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """
-$Id: toolbox.py,v 1.6 2006/07/20 10:01:38 glenfant Exp $
+$Id: toolbox.py,v 1.8 2006/08/11 21:09:30 glenfant Exp $
 """
 
 __author__  = ''
@@ -23,6 +23,7 @@
 from Products.CMFCore.utils import getToolByName
 
 # Products imports
+from Products.PloneArticle.PloneArticle import PloneArticle
 from Products.PloneArticle.migration.Migrator import change_text_mimetype
 
 def unindex_plonearticle_contents(self, portal_types=None):
@@ -31,19 +32,68 @@
     cat_tool = getToolByName(self, 'portal_catalog')
     
     if portal_types is None:
-        portal_types = 'PloneArticle'
-    
-    article_brains = cat_tool(portal_type=portal_types)
-    
+        pa_meta_types = paBasedMetaTypes(self)
+        article_brains = portal_catalog(meta_type=pa_meta_types)
+    else:
+        article_brains = cat_tool(portal_type=portal_types)
+
+    count = 0
     for article_brain in article_brains:
         article = article_brain.getObject()
         
         for obj in article.objectValues():
+            count += 1
             # Add acquisitions on all permissions
             permissions = [x[0] for x in obj.ac_inherited_permissions(1)]
             obj.manage_acquiredPermissions(permissions)
             # Unindex content
             cat_tool.unindexObject(obj)
-        
-    out.write('Catalog rebuilt.\n')
+
+    print >> out, "%d PloneArticle subobjects have been removed from portal_catalog\n" % count
     return out.getvalue()
+
+def fixAttachmentsSecurity(self):
+    """Fix security matrix for all included attachments and images The
+    "update security settings" from portal_workflow breaks the
+    PloneArticle specific policy."""
+
+    out = StringIO()
+    portal_catalog = getToolByName(self, 'portal_catalog')
+
+    # Finding  PloneArticle based types
+    pa_meta_types = paBasedMetaTypes(self)
+    article_brains = portal_catalog(meta_type=pa_meta_types)
+
+    # Let's fix the security
+    count = 0
+    for brain in article_brains:
+        article = brain.getObject()
+        if article is None:
+            # Eeek: ghost object
+            continue
+        count += 1
+        atts = article.objectValues()
+        for att in atts:
+            permissions = att.permission_settings()
+            permissions = [p['name'] for p in att.permission_settings()]
+            for permission in permissions:
+                att.manage_permission(permission, acquire=1)
+    print >> out, "Security fixed for %d PloneArticle content attachments\n" % count
+    return out.getvalue()
+
+def paBasedMetaTypes(self):
+    """Meta-types of all PA based types"""
+
+    portal_types = getToolByName(self, 'portal_types')
+    archetype_tool = getToolByName(self, 'archetype_tool')
+
+    # Finding  PloneArticle based types
+    factory_meta_type = 'Factory-based Type Information'
+    all_meta_types = [factory.Metatype()
+                      for factory in portal_types.objectValues(spec=factory_meta_type)]
+    at_registered = archetype_tool.listRegisteredTypes()
+    pa_meta_types = [t['meta_type'] for t in at_registered
+                     if (issubclass(t['klass'], PloneArticle)
+                         and
+                         t['meta_type'] in all_meta_types)]
+    return pa_meta_types


Property changes on: zope-plonearticle/branches/upstream/current/Extensions/toolbox.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/LockMixin.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/Log.py
===================================================================
--- zope-plonearticle/branches/upstream/current/Log.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/Log.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,14 +1,22 @@
-# Copyright (c) 2003-2006 Ingeniweb SAS
+# -*- coding: utf-8 -*-
+## CMFPlacefulWorkflow
+## A CMF/Plone product for locally changing the workflow of content types
+## Copyright (C)2006 Ingeniweb
 
-# This software is subject to the provisions of the GNU General Public
-# License, Version 2.0 (GPL).  A copy of the GPL should accompany this
-# distribution.  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL
-# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
-# AGAINST INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
 
-# More details in the ``LICENSE`` file included in this package.
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
 
+## You should have received a copy of the GNU General Public License
+## along with this program; see the file COPYING. If not, write to the
+## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
 # ****************************
 # ****** LOG FACILITIES ******
 # ****************************


Property changes on: zope-plonearticle/branches/upstream/current/Permissions.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/PloneArticle.py
===================================================================
--- zope-plonearticle/branches/upstream/current/PloneArticle.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/PloneArticle.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -56,14 +56,14 @@
 
 class PloneArticle(ArticleLock, ArticleModel, DocumentContent, BaseFolderMixin):
     """PloneArticle class"""
-    
+
     schema = PloneArticleSchema.copy()
-    
+
     article_contents = (
-        ArticleContents('attachment'), 
-        ArticleContents('image'), 
+        ArticleContents('attachment'),
+        ArticleContents('image'),
         ArticleContents('link'), )
-    
+
     content_icon   = 'PloneArticle.gif'
     meta_type      = 'PloneArticle'
     archetype_name = 'Article'
@@ -77,12 +77,12 @@
     assocFileExt   = ()
 
     _at_rename_after_creation = True
-    
+
     use_folder_tabs = 0
     filter_content_types  = 0
     allowed_content_types = ()
     include_default_actions = 0
-    
+
     actions = (
          {
           'id'          : 'view',
@@ -155,20 +155,20 @@
           'permissions' : (Permissions.EditPloneArticle,),
           'visible'     : 1,
          },
-         { 'id'         : 'references', 	 
-           'name'       : 'References', 	 
-           'action'     : 'string:${object_url}/reference_graph', 	 
-           'condition'  : 'object/archetype_tool/has_graphviz', 	 
-           'permissions': (CMFCorePermissions.ModifyPortalContent, 	 
-                           CMFCorePermissions.ReviewPortalContent,), 	 
-           'visible'    : True, 	 
-           }, 	 
-         { 	 
-           'id'          : 'local_roles', 	 
-           'name'        : 'Sharing', 	 
-           'action'      : 'string:${object_url}/folder_localrole_form', 	 
-           'condition'   : 'python:not object.hasLockSupport() or object.canToggleLock()', 	 
-           'permissions' : (CMFCorePermissions.ManageProperties,), 	 
+         { 'id'         : 'references',
+           'name'       : 'References',
+           'action'     : 'string:${object_url}/reference_graph',
+           'condition'  : 'object/archetype_tool/has_graphviz',
+           'permissions': (CMFCorePermissions.ModifyPortalContent,
+                           CMFCorePermissions.ReviewPortalContent,),
+           'visible'    : True,
+           },
+         {
+           'id'          : 'local_roles',
+           'name'        : 'Sharing',
+           'action'      : 'string:${object_url}/folder_localrole_form',
+           'condition'   : 'python:not object.hasLockSupport() or object.canToggleLock()',
+           'permissions' : (CMFCorePermissions.ManageProperties,),
            'visible'     : True,
            },
          )
@@ -180,40 +180,40 @@
                      ) + _plone_2_1_implements
 
     security = ClassSecurityInfo()
-    
+
     # backward compat
     text_format = 'text/html'
-    
+
     # Use folder methods for objectValues, objectItems, objectIds
     objectValues = BaseFolderMixin.objectValues
     objectIds = BaseFolderMixin.objectIds
     objectItems = BaseFolderMixin.objectItems
-    
+
     # Init method
     def __init__(self, oid, **kwargs):
         """__init__(self, oid, **kwargs)"""
-        
+
         ArticleLock.__init__(self)
         BaseFolderMixin.__init__(self, oid, **kwargs)
         DocumentContent.__init__(self, oid, **kwargs)
-    
+
     security.declarePrivate('manage_afterAdd')
     def manage_afterAdd(self, item, container):
         """Copy references from source to dest. We must keep attachment references."""
-        
+
         is_copy = getattr(item, '_v_is_cp', None)
         at_tool = getToolByName(self, 'archetype_tool')
-        
+
         # Get source and destination objects
         src_UID = self.UID()
-        
+
         DocumentContent.manage_afterAdd(self, item, container)
         BaseFolderMixin.manage_afterAdd(self, item, container)
-        
+
         src_obj = at_tool.getObject(src_UID)
         dst_UID = self.UID()
         dst_obj = self
-        
+
         if is_copy and src_obj is not None and dst_UID != src_UID:
             # Copy references from source Article
             # Compute new references for contents in Article
@@ -225,21 +225,21 @@
                         content_uid = ref.targetUID
                         content_title = brain.Title()
                         content_description = brain.Description()
-                        
+
                         if article_content.isContentContained(src_obj, content_uid):
                             # Get content in new article
                             content_obj = at_tool.getObject(content_uid)
-                            
+
                             # Get id and get new content with new article with this ID
                             content_id = content_obj.getId()
-                            
+
                             new_obj = getattr(dst_obj, content_id)
                             content_uid = new_obj.UID()
-                        
+
                         article_content.addContentFromUID(dst_obj, content_uid)
                         article_content.editContent(dst_obj, content_uid, title=content_title, description=content_description)
 
-    
+
     security.declareProtected(CMFCorePermissions.View, 'Description')
     def Description(self, **kwargs):
         """We have to override Description here to handle arbitrary
@@ -251,49 +251,49 @@
         """We have to override setDescription here to handle arbitrary
         arguments since PortalFolder defines it."""
         self.getField('description').set(self, value, **kwargs)
-    
+
     security.declareProtected(Permissions.EditPloneArticle, 'setText')
     def setText(self, value, **kwargs):
         """Body text mutator
         """
         allowable_content_types = TEXT_ALLOWABLE_CONTENT_TYPES
         mimetype = kwargs.get('mimetype', None)
-        
+
         if mimetype is None:
             # Select the good mimetype
             if len(allowable_content_types) == 1:
                 kwargs['mimetype'] = allowable_content_types[0]
             elif len(allowable_content_types) == 0:
                 kwargs['mimetype'] = 'text/html'
-            
+
         # Set text field
         DocumentContent.setText(self, value, **kwargs)
-    
+
     security.declareProtected(CMFCorePermissions.View, 'SearchableText')
     def SearchableText(self):
         """Returns a concatination of all searchable text
         """
-        
+
         attach_index_values = []
-        
+
         for attach in self.getAttachmentBrains():
             # Append title
             attach_index_values.append(attach.Title())
-            
+
             # Check if attach use AttachmentField
             attach_obj = attach.getObject()
             attach_field = attach_obj.getField('file')
-            
+
             if hasattr(attach_field, 'isIndexed') and attach_field.isIndexed(attach_obj):
                 # Append attach index value
                 attach_index_values.append(attach_field.getIndexableValue(attach_obj))
-            
+
         ret = "%s %s %s" % (
             DocumentContent.SearchableText(self),
             ' '.join(attach_index_values),
-            ' '.join([x.Title() for x in self.getImageBrains()]) 
+            ' '.join([x.Title() for x in self.getImageBrains()])
             )
-            
+
         return ret
 
 
@@ -354,8 +354,8 @@
         """ Call allowedContentTypes in parent context """
         return aq_parent(self).allowedContentTypes()
 
-    
-        
+
+
 # Register class
 registerPloneArticle(PloneArticle, PROJECTNAME)
 

Modified: zope-plonearticle/branches/upstream/current/PloneArticleMultiPage.py
===================================================================
--- zope-plonearticle/branches/upstream/current/PloneArticleMultiPage.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/PloneArticleMultiPage.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -11,7 +11,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """
-$Id: PloneArticleMultiPage.py,v 1.8 2006/07/20 10:01:38 glenfant Exp $
+$Id: PloneArticleMultiPage.py,v 1.9 2006/09/29 07:42:00 macadames Exp $
 """
 __author__  = ''
 __docformat__ = 'restructuredtext'
@@ -141,7 +141,7 @@
     def getPages(self):
         """Returns pages. All pages are PloneArticle"""
         
-        return self.contentValues(filter={'portal_type' : 'PloneArticle'})
+        return self.getFolderContents(contentFilter={'portal_type' : 'PloneArticle'},full_objects=True)
     
     security.declareProtected(CMFCorePermissions.View, 'getPageIndex')
     def getPageIndex(self, page):


Property changes on: zope-plonearticle/branches/upstream/current/PloneArticleMultiPage.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/PloneArticleTool.py
===================================================================
--- zope-plonearticle/branches/upstream/current/PloneArticleTool.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/PloneArticleTool.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -10,7 +10,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """PloneArticleTool main class
-$Id: PloneArticleTool.py,v 1.24 2006/07/20 10:01:38 glenfant Exp $
+$Id: PloneArticleTool.py,v 1.26 2006/10/05 14:08:27 encolpe Exp $
 """
 
 # Python imports
@@ -39,6 +39,10 @@
 from Products.PloneArticle.migration.Migrator import Migrator
 from config import *
 
+# CMFEditions
+if HAS_CMFEDITIONS:
+    from Products.PloneArticle.CMFEditionsModifier import PloneArticleV3CMFEModifier
+
 import TypelessPloneArticleProperties
 
 _www = os.path.join(os.path.dirname(__file__), 'www')
@@ -111,11 +115,12 @@
 
     security.declareProtected(CMFCorePermissions.ManagePortal, "setPreferences")
     def setPreferences(self, data):
-        """
-        setPreferences(self, data) => set preferences
+        """setPreferences(self, data) => set preferences
+
         Data is a dictionary. We use the archetypes stuff to set things,
         by calling each mutator method.
         """
+        self.updateCMFEditionsSupport(data.get('cmfeditions_support'))
         return TypelessPloneArticleProperties.updateTypelessPloneArticleProperties(
             self,
             data,
@@ -169,9 +174,8 @@
 
     security.declarePublic("hasLockSupport")
     def hasLockSupport(self,):
+        """Return the lock support availability
         """
-        Return the lock support availability
-        """
         ret = getattr(self, "lock_support", 0)
         return ret
 
@@ -183,6 +187,45 @@
 ##        self.lock_support = not not int(value)
 ##        Log(LOG_DEBUG, "lock support set to:", self.hasLockSupport())
 
+    security.declarePublic("hasLockSupport")
+    def hasCMFEditionsSupport(self,):
+        """Return the CMFEditions support availability
+        """
+        ret = getattr(self, 'cmfeditions_support', 0)
+        return ret
+
+    security.declareProtected(CMFCorePermissions.ManagePortal, 'updateCMFEditionsSupport')
+    def updateCMFEditionsSupport(self, value, **kwargs):
+        """Update CMFEditions configuration for PloneArticle
+
+        'on_edit' version policy don't have sense for plonearticle since
+        attachments, images and links modifications don't go through edit method.
+        """
+        if not HAS_CMFEDITIONS:
+            Log(LOG_ERROR, "CMFEditions cannot be imported")
+            return
+
+        rep_tool = getToolByName(self, 'portal_repository')
+        mod_tool = getToolByName(self, 'portal_modifier')
+        if value != getattr(self, 'cmfeditions_support', None):
+            if value:
+                # Instanciate and configure PloneArticle modifier
+                PloneArticleV3CMFEModifier.install(mod_tool)
+                modifier = mod_tool.get('PloneArticleV3Modifier')
+                modifier.edit(enabled=True,
+                              condition="python: hasattr(object, 'portal_type') and object.portal_type in ('PloneArticle', 'PloneArticleMultiPage')",
+                          )
+
+                # Enable PloneArticle versioning
+                rep_tool.setVersionableContentTypes(['PloneArticle', 'PloneArticleMultiPage'])
+                rep_tool.manage_setTypePolicies({
+                    'PloneArticle': ['version_on_revert'],
+                    'PloneArticleMultiPage': ['version_on_revert'],
+                })
+
+        # finally we set value
+        setattr(self, 'cmfeditions_support', value)
+
     security.declarePublic("getMaxAttachmentSize")
     def getMaxAttachmentSize(self):
         """ Return the max size of attachments"""

Added: zope-plonearticle/branches/upstream/current/PloneFilesZipSupport.py
===================================================================
--- zope-plonearticle/branches/upstream/current/PloneFilesZipSupport.py	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/PloneFilesZipSupport.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,70 @@
+# -*- coding: iso-8859-15 -*-
+# Copyright (c) 2003-2006 Ingeniweb SAS
+
+# This software is subject to the provisions of the GNU General Public
+# License, Version 2.0 (GPL).  A copy of the GPL should accompany this
+# distribution.  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL
+# EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
+# AGAINST INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE
+
+# More details in the ``LICENSE`` file included in this package.
+# Copyright (c) 2003-2006 Ingeniweb SAS
+
+"""
+Provides type retriever for PloneFilesZip
+$Id: PloneFilesZipSupport.py,v 1.1 2006/09/18 16:53:26 glenfant Exp $
+"""
+
+# Note about PloneArticle subclassing.
+# ###################################
+#
+# When repurposing a PloneArticle, you might want to have support for
+# PloneFilesZip too. In that case, you should register your own retriever
+# class too like this (minimal example):
+#
+# from Products.PloneArticle.PloneFilesZipSupport import ArticleRetriever
+# from Products.PloneFilesZip.registry import GlobalRegistry
+# ...
+# class MyArticleRetriever(PloneArticleRetriever):
+#     meta_type = 'myarticle' # Your content meta_type
+#
+# GlobalRegistry.register(MyArticleRetriever)
+
+from Products.CMFCore.utils import getToolByName
+from Products.PloneFilesZip.interfaces import ITypeRetriever
+from Products.PloneFilesZip.registry import GlobalRegistry
+from PloneArticle import PloneArticle
+
+class PloneArticleRetriever(object):
+    """Please read PloneFilesZip/interfaces.py to understand the what/how of this class"""
+
+    __implements__ = ITypeRetriever
+    
+    meta_type = PloneArticle.meta_type
+
+    def __init__(self, article):
+        """article is a PloneArticle compatible content"""
+
+        self.article = article
+        return
+
+    def getFieldRetrievers(self):
+        """Retriever objects for all relevant fields"""
+
+        portal_fileszip = getToolByName(self.article, 'portal_fileszip')
+        zippablePortalTypes = portal_fileszip.zippablePortalTypes
+        
+        retrievers = []
+
+        # Note that there's no security check because a user who has read permission
+        # on a PloneArticle is supposed to have the same permissions on its attachments.
+        for attachment in self.article.getAttachments():
+            if attachment.portal_type in zippablePortalTypes:
+                retrievers.extend(GlobalRegistry.getRetrieversFor(attachment))
+        for image in self.article.getImages():
+            if image.portal_type in zippablePortalTypes:
+                retrievers.extend(GlobalRegistry.getRetrieversFor(image))
+        return retrievers
+
+GlobalRegistry.register(PloneArticleRetriever)


Property changes on: zope-plonearticle/branches/upstream/current/PloneFilesZipSupport.py
___________________________________________________________________
Name: svn:executable
   + *

Modified: zope-plonearticle/branches/upstream/current/README.txt
===================================================================
--- zope-plonearticle/branches/upstream/current/README.txt	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/README.txt	2006-10-21 20:56:22 UTC (rev 321)
@@ -99,19 +99,9 @@
 Installation
 ############
   
-Installing ATContentTypes (Plone 2.0.5 only)
-============================================
-
-This step is useless (and a nonsense) on Plone 2.1 and up
-
-* Unpack it into your Zope Products Folder
-* Restart
-* Transform CMF content with switchCMF2ATCT (Set ATCT as default
-  content types)
-
 Installing PloneArticle
 -----------------------
-    
+
 * Unpack it into your Zope Products Folder
 * Restart Zope
 * Use Plone Setup -> Plone Configuration -> Add/Remove Products
@@ -121,9 +111,29 @@
 * You may tweak the site wide PloneArticle behaviour through the
   PloneArticle configuration panel (configlet)
 
+Install CMFEditions support (optional)
+--------------------------------------
+
+From version 3.23, PloneArticle provides a modifier for CMFEditions
+(tested with CMFEditions 1.0b1). This means that included attachments
+and images are versionned along with their PloneArticle parent.
+
+* Go in ZMI to .../your_plone/portal_modifier.
+* Add a PloneArticleV3Modifier (any id you want), edit it.
+* Check "Enabled"
+* Condition = python:getattr(object.aq_explicit, 'portal_type', None) and object.portal_type in ('PloneArticle', 'PloneArticleMultiPage')
+
+You might change the condition if you subclassed the PloneArticle.
+
+Install PloneFilesZip support (optional)
+----------------------------------------
+
+Just go to the PloneFilesZip config panel and add PloneArticle to the
+selected types.
+
 Migration
 ---------
-  
+
 We provide a migration script for PloneArticle 2.05 (or -) under plone 2.
   
 * Install PloneArticle
@@ -187,19 +197,38 @@
 RAMCacheManager, for the plonearticle_get_thumb_tag() PythonScript
 with 'image_id' as variable parameter.
 
-    
-Addition for new content types developers
------------------------------------------
+Utilities for site maintenance
+------------------------------
 
-There is an external method to unindex content types contained in
-PloneArticle.  This external method is called :
-`unindex_plonearticle_contents` You can find this script in
-Extensions/toolbox.py
-  
+Some external methods are provided for site maintenance in
+Extensions/toolbox.py:
+
+unindex_plonearticle_contents
+.............................
+
+Rebuilding the portal_catalog will index attachments and images as
+standalone objects. You should run this external method after
+rebuilding the portal_catalog if you don't want this.
+
+Install this external method in your Plone instance root.
+
+fixAttachmentsSecurity
+......................
+
+When you update the security settings from portal_workflows,
+PloneArticle attachments loose their specific security policy. As a
+consequence, authors could not delete attachments, or visitors
+couldn't see attachments or images.
+
+If this kind of problem occurs, please run this external method before
+asking for support ;)
+
+Install this external method in your Plone instance root.
+
 Credits
 #######
 
-PloneExFile is an Ingeniweb_ product.
+PloneArticle is an `Ingeniweb <http://www.ingeniweb.com/>`_ product.
 
 License
 #######
@@ -217,7 +246,7 @@
 CVS repository
 ##############
 
-Stay in tune with the freshest (unstable) versions:
+Stay in tune with the freshest (maybe unstable) versions:
 
 ::
 

Modified: zope-plonearticle/branches/upstream/current/TESTED_WITH
===================================================================
--- zope-plonearticle/branches/upstream/current/TESTED_WITH	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/TESTED_WITH	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,13 +1,7 @@
-  * ExternalSiteCatalog 1.0
-  * FileSystemStorage 2.5RC1 CVS/SVN (UNRELEASED)
-  * PloneFilesZip 1.0 CVS/Unreleased
-  * rotatezlogs 1.0-RC1 CVS/SVN (UNRELEASED)
-
-
-
 This release of PloneArticle has been tested with :
 
-* Zope 2.8.6
-* Plone 2.1.2
-* Plone 2.1.3
+* Zope 2.8.6 -> 2.8.8
+* Plone 2.1.2 -> 2.1.4
+* CMFEditions 1.0beta1
+* PloneFilesZip 1.0RC1
 * LinguaPlone 0.9


Property changes on: zope-plonearticle/branches/upstream/current/TESTED_WITH
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/TypelessPloneArticleProperties.py
===================================================================
--- zope-plonearticle/branches/upstream/current/TypelessPloneArticleProperties.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/TypelessPloneArticleProperties.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -10,7 +10,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """PloneArticle properties
-$Id: TypelessPloneArticleProperties.py,v 1.5 2006/07/20 10:01:38 glenfant Exp $
+$Id: TypelessPloneArticleProperties.py,v 1.6 2006/09/18 20:49:59 encolpe Exp $
 """
 
 # Python imports
@@ -128,7 +128,7 @@
     archetype_name = "TypelessPloneArticleProperties"
     meta_type = "TypelessPloneArticleProperties"
     isPrincipiaFolderish = 0
- 
+
     def getAvailableTextFormatsVocabulary(self,):
         """vocabulary for text formats"""
         at = getToolByName(self, "portal_article")
@@ -200,6 +200,16 @@
                 i18n_domain = "plonearticle",
                 ),
             ),
+        BooleanField(
+            'cmfeditions_support',
+            group = "general",
+            accessor = "hasCMFEditionsSupport",
+            widget = BooleanWidget(
+                label_msgid = "label_cmfeditions_support",
+                description_msgid = "help_cmfeditions_support",
+                i18n_domain = "plonearticle",
+                ),
+            ),
 
         # Attachments
         StringField(
@@ -211,8 +221,8 @@
             vocabulary = "getAvailableAttachmentTypesVocabulary",
             widget = MultiSelectionWidget(
                 label_msgid = "label_referenceable_attachment_content_types_prefs",
+                description_msgid = "help_referenceable_attachment_content_types_prefs",
                 i18n_domain = "plonearticle",
-                description_msgid = "help_referenceable_attachment_content_types_prefs",
                 ),
             ),
         StringField(
@@ -223,8 +233,8 @@
             vocabulary = "getAvailableAttachmentTypesWithUndefinedVocabulary",
             widget = SelectionWidget(
                 label_msgid = "label_attachment_content_type_prefs",
+                description_msgid = "help_attachment_content_type_prefs",
                 i18n_domain = "plonearticle",
-                description_msgid = "help_attachment_content_type_prefs",
                 ),
             ),
         IntegerField(
@@ -259,8 +269,8 @@
             vocabulary = "getAvailableImageTypesVocabulary",
             widget = MultiSelectionWidget(
                 label_msgid = "label_referenceable_image_content_types_prefs",
+                description_msgid = "help_referenceable_image_content_types_prefs",
                 i18n_domain = "plonearticle",
-                description_msgid = "help_referenceable_image_content_types_prefs",
                 ),
             ),
         StringField(
@@ -271,8 +281,8 @@
             vocabulary = "getAvailableImageTypesWithUndefinedVocabulary",
             widget = SelectionWidget(
                 label_msgid = "label_image_content_type_prefs",
+                description_msgid = "help_image_content_type_prefs",
                 i18n_domain = "plonearticle",
-                description_msgid = "help_image_content_type_prefs",
                 ),
             ),
         IntegerField(
@@ -297,8 +307,8 @@
             vocabulary = "getAvailableLinkTypesVocabulary",
             widget = MultiSelectionWidget(
                 label_msgid = "label_referenceable_link_content_types_prefs",
+                description_msgid = "help_referenceable_link_content_types_prefs",
                 i18n_domain = "plonearticle",
-                description_msgid = "help_referenceable_link_content_types_prefs",
                 ),
             ),
         StringField(
@@ -309,8 +319,8 @@
             vocabulary = "getAvailableLinkTypesWithUndefinedVocabulary",
             widget = SelectionWidget(
                 label_msgid = "label_link_content_type_prefs",
+                description_msgid = "help_link_content_type_prefs",
                 i18n_domain = "plonearticle",
-                description_msgid = "help_link_content_type_prefs",
                 ),
             ),
         ),

Modified: zope-plonearticle/branches/upstream/current/__init__.py
===================================================================
--- zope-plonearticle/branches/upstream/current/__init__.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/__init__.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -10,7 +10,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """
-$Id: __init__.py,v 1.12 2006/07/21 13:24:46 glenfant Exp $
+$Id: __init__.py,v 1.15 2006/09/18 16:53:26 glenfant Exp $
 """
 
 __author__  = ''
@@ -26,6 +26,9 @@
 from Products.PloneArticle.config import *
 from Products.PloneArticle import Permissions
 
+if HAS_PLONE_FILES_ZIP:
+    import PloneFilesZipSupport
+
 if HAS_LINGUA_PLONE:
     from Products.LinguaPlone.public import process_types
     from Products.LinguaPlone.public import listTypes
@@ -58,3 +61,11 @@
         PROJECTNAME + ' Tool',
         tools=(PloneArticleTool,),
         icon='tool.gif').initialize(context)
+
+    # try to initialize CMFEditions context if available
+    try:
+        from Products import CMFEditions
+        from Products.PloneArticle.CMFEditionsModifier import PloneArticleV3CMFEModifier
+        PloneArticleV3CMFEModifier.initialize(context)
+    except ImportError:
+        pass

Modified: zope-plonearticle/branches/upstream/current/config.py
===================================================================
--- zope-plonearticle/branches/upstream/current/config.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/config.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -10,7 +10,7 @@
 # More details in the ``LICENSE`` file included in this package.
 
 """
-$Id: config.py,v 1.9 2006/07/21 13:24:46 glenfant Exp $
+$Id: config.py,v 1.11 2006/09/18 16:53:26 glenfant Exp $
 """
 
 __author__  = ''
@@ -53,6 +53,20 @@
     HAS_LINGUA_PLONE = True
     del registerType
 
+# Detect CMFEditions
+HAS_CMFEDITIONS = False
+try:
+    from Products.CMFEditions import ArchivistTool
+    HAS_CMFEDITIONS = True
+except ImportError:
+    pass
+
+# Detect PloneFilesZip
+try:
+    from Products.PloneFilesZip import HAS_PLONE_FILES_ZIP
+except ImportError, e:
+    HAS_PLONE_FILES_ZIP = False
+
 TEXT_ALLOWABLE_CONTENT_TYPES = (
     'text/structured',
     'text/restructured',


Property changes on: zope-plonearticle/branches/upstream/current/config.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/doc/FAQ
===================================================================
--- zope-plonearticle/branches/upstream/current/doc/FAQ	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/doc/FAQ	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,3 +1,16 @@
+Huh, after a copy/paste of an article, files and images are lost, when
+cutting/pasting an article keeps files and images. What's going on ?
+
+    We're sorry for this but this is not - technically speaking - a
+    PloneArticle bug, but an Archetypes **feature** that clears all
+    ReferenceField on copy/paste and there's no easy way to work
+    around this as long as Archetypes doesn't provide support to keep
+    the references on copy/paste.
+    Please read following guru discussions about this issue :
+
+    * http://thread.gmane.org/gmane.comp.web.zope.plone.archetypes.devel/3557
+    * http://thread.gmane.org/gmane.comp.web.zope.plone.archetypes.general/2121
+
 Why did the choice of allowable content types for the main text
 disappear from the configlet in the 3.2.1 version ?
 
@@ -18,10 +31,14 @@
     to migrate from PloneArticle v2.x
 
 Why do I have to install PloneExFile and AttachmentField ?
-    ...
 
+    Instaling PloneExFile and AttachmentField are not strictly
+    required, but those products add great features to the
+    PloneArticle.
+
 How can I make my attachments indexed and previewable by my website ?
-    ...
+    
+    Have a look at the PloneArticle configuration panel. All's there.
 
 How can i add a PloneArticle ?
 
@@ -29,7 +46,6 @@
     have the rights. Select PloneArticle in the list of item
     and click 'add item'.
 
-
 Why does the wysiwyg editor not appear ?
 
     Depending on the wysiwyg editor you have installed, it can only be
@@ -38,12 +54,10 @@
     If you are using it, check your personnal setting to see which
     default kind of editor you have chosen (text or editor).</li>
 
-
 Can I edit my article after writing it ?
 
     Yes, just as with any another Plone document.
 
-
 Why after a copy paste from a Microsoft Word file, is the rendering of
 my article unordered ?
 
@@ -77,3 +91,4 @@
 
     Don't forget that css for Plone 1 and Plone 2 are different.
     Enable user to choose this model by selecting it in the portal_article.
+


Property changes on: zope-plonearticle/branches/upstream/current/doc/FAQ
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/doc/SCREENSHOTS
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/doc/icon.png
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/doc/plonearticle_uml.odm
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle.pot
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle.pot	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle.pot	2006-10-21 20:56:22 UTC (rev 321)
@@ -3,19 +3,20 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PloneArticle\n"
-"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
-"PO-Revision-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
-"Last-Translator:  <>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
+"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"PO-Revision-Date: 2006-09-12 19:58+0200\n"
+"Last-Translator: Encolpe Degoute <encolpe.degoute at ingeniweb.com>\n"
+"Language-Team:  <support at ingeniweb.com>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Language-code: en\n"
 "Language-name: English\n"
-"Preferred-encodings: latin1 utf-8\n"
+"Preferred-Encodings: utf-8 latin1\n"
 "Domain: plonearticle\n"
-"X-Is-Fallback-For:\n"
+"X-Is-Fallback-For: en\n"
+"X-Generator: KBabel 1.11.4\n"
 
 msgid "label_view_table_of_contents_first"
 msgstr ""
@@ -241,9 +242,6 @@
 msgid "Paste as reference"
 msgstr ""
 
-msgid "Copy"
-msgstr ""
-
 msgid "Browse"
 msgstr ""
 
@@ -445,10 +443,10 @@
 msgid "help_attachment_content_type_prefs"
 msgstr ""
 
-msgid "label_attachment_content_types_prefs"
+msgid "label_referenceable_attachment_content_types_prefs"
 msgstr ""
 
-msgid "help_attachment_content_types_prefs"
+msgid "help_referenceable_attachment_content_types_prefs"
 msgstr ""
 
 msgid "legend_image_prefs_details"
@@ -460,10 +458,10 @@
 msgid "help_image_content_type_prefs"
 msgstr ""
 
-msgid "label_image_content_types_prefs"
+msgid "label_referenceable_image_content_types_prefs"
 msgstr ""
 
-msgid "help_image_content_types_prefs"
+msgid "help_referenceable_image_content_types_prefs"
 msgstr ""
 
 msgid "legend_link_prefs_details"
@@ -475,10 +473,10 @@
 msgid "help_link_content_type_prefs"
 msgstr ""
 
-msgid "label_link_content_types_prefs"
+msgid "label_referenceable_link_content_types_prefs"
 msgstr ""
 
-msgid "help_link_content_types_prefs"
+msgid "help_referenceable_link_content_types_prefs"
 msgstr ""
 
 msgid "Input is required."
@@ -490,6 +488,12 @@
 msgid "help_lock_support"
 msgstr ""
 
+msgid "label_cmfeditions_support"
+msgstr ""
+
+msgid "help_cmfeditions_support"
+msgstr ""
+
 msgid "label_max_attachment_size"
 msgstr ""
 

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_da.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_da.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_da.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,187 +1,631 @@
 # Gettext Message File for PloneArticle.
-# Maik Röder <maik.roeder at ingeniweb.com>, 2003
-msgid ""
-msgstr ""
-"Project-Id-Version: PloneArticle 2.0\n"
-"POT-Creation-Date: 2003-05-06 09:05+0100\n"
-"PO-Revision-Date: 2004-03-23 17:25+0100\n"
-"Last-Translator: Anton Stonor <stonor at giraffen.dk>\n"
-"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Language-code: da\n"
-"Language-name: Danish\n"
-"Preferred-encodings: latin1 utf-8\n"
-"Domain: plonearticle\n"
-"X-Is-Fallback-For:\n"
-
-msgid "A Plone Article is a document with images and attachments."
-msgstr "En Plone-artikel er et dokument med vedhæftede billeder og filer."
-
-msgid "Attachment"
-msgstr "Vedhæftninger"
-
-msgid "Choose Model"
-msgstr "Vælg layout"
-
-msgid "Delete"
-msgstr "Slet"
-
-msgid "Enter a brief description of the article."
-msgstr "Skriv en kort beskrivelse af artiklen."
-
-msgid "Enter the Name of the article. This is the part that will show up as part of the web address. This should be short, descriptive and preferrably not contain spaces, underscores or mixed case. Example: \"new-products-2002\""
-msgstr ""
-
-msgid "Fill in the details of this Plone Article."
-msgstr "Udfyld detaljerne om denne artikel."
-
-msgid "Here you can add an attachment to the article:<br />"
-msgstr "Her kan du vedhæfte filer til artiklen:<br />"
-
-msgid "Here you can add an image to the article:<br />"
-msgstr "Her kan du tilføje et billede til artiklen:<br />"
-
-msgid "Image"
-msgstr "Billede"
-
-msgid "Model"
-msgstr "Layout"
-
-msgid "models"
-msgstr "Layout"
-
-msgid "Ok"
-msgstr "OK"
-
-msgid "Plone Article Details"
-msgstr "Artikel-detaljer"
-
-msgid "PloneArticle"
-msgstr "Artikel"
-
-msgid "Save"
-msgstr "Gem"
-
-msgid "Specifies the layout model that the PloneArticle should be rendered with."
-msgstr "Vælger hvilket layout, artiklen skal vises med."
-
-msgid "You can add multiple attachments to the article"
-msgstr "Du kan godt vedhæftede flere filer til artiklen."
-
-msgid "You can add multiple images to the article.<br />"
-msgstr "Du kan godt tilknytte flere billeder til artiklen.<br />"
-
-msgid "You can choose a layout for the Plone Article."
-msgstr "Du kan vælge, hvordan artiklen skal layoutes."
-
-msgid "description_edit_plonearticle"
-msgstr "Udfyld felterne."
-
-msgid "description_plonearticle_attachments"
-msgstr "Du kan vedhæfte flere filer til artiklen."
-
-msgid "description_plonearticle_images"
-msgstr "Du kan tilknytte flere billeder til artiklen."
-
-msgid "heading_edit_item"
-msgstr "Rediger ${itemtype}"
-
-msgid "help_body_text"
-msgstr "Artiklens brødtekst."
-
-msgid "help_description"
-msgstr "Skriv en kort beskrivelse af artiklen."
-
-msgid "help_name"
-msgstr "Indtast en kort ID. ID'en bliver en del af indholdsobjektets web-adressen og bør være kort, beskrivende og ikke indeholde mellemrum, danske eller STORE bogstaver. Eksempel: »aars-rapport-2002«"
-
-msgid "help_title"
-msgstr "Skriv en overskrift for artiklen."
-
-msgid "help_upload_file"
-msgstr "Her kan du uploade en fil fra din computer til artiklen."
-
-msgid "label_body_text"
-msgstr "Brødtekst"
-
-msgid "label_description"
-msgstr "Beskrivelse"
-
-msgid "label_name"
-msgstr "Navn"
-
-msgid "label_title"
-msgstr "Titel"
-
-msgid "label_upload_file"
-msgstr "Upload fil"
-
-msgid "legend_attachments"
-msgstr "Vedhæftede filer"
-
-msgid "legend_document_details"
-msgstr "Artikel-detaljer"
-
-msgid "legend_images"
-msgstr "Billeder"
-
-msgid "Up"
-msgstr "Op"
-
-msgid "Down"
-msgstr "Ned"
-
-msgid "choose_layout"
-msgstr "Du kan her vælge et layout for artiklen."
-
-msgid "help_choose_model"
-msgstr "Du kan her vælge, hvordan tekst, billeder og vedhæftede filer skal placeres på siden."
-
-msgid "choose_model"
-msgstr "Vælg layout"
-
-msgid "This attachment is not indexed."
-msgstr "Denne fil er ikke søgbar."
-
-msgid "help_file_title"
-msgstr "Skriv en titel på den nye, vedhæftede fil."
-
-msgid "txt_not_locked"
-msgstr "Denne artikel er ikke låst."
-
-msgid "text_lock_to_edit"
-msgstr "Du skal låse artiklen, hvis du vil redigere den."
-
-msgid "txt_locked_by"
-msgstr "Denne artikel er låst af:"
-
-msgid "model1_description"
-msgstr "Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer i bunden af siden.<br />"
-
-msgid "model2_description"
-msgstr "Det første billede bliver vist sammen med overskriften, mens de øvrige bliver vist i højre side. Vedhæftede filer bliver vist i bunden af siden.<br />"
-
-msgid "help_image_title"
-msgstr "Skriv en titel på det nye billede."
-
-msgid "Model layout"
-msgstr "Layout"
-
-msgid "preview"
-msgstr "smugkig"
-
-msgid "label_upload_image"
-msgstr "Upload billede"
-
-msgid "help_upload_image"
-msgstr "Her kan du uploade et billede i jpg- eller gif-format fra din computer til artiklen."
-
-msgid "Documentation model"
-msgstr "Enkelt layout"
-
-msgid "Newspaper article model"
-msgstr "Artikellayout"
-
+# Maik Röder <maik.roeder at ingeniweb.com>, 2003
+msgid ""
+msgstr ""
+"Project-Id-Version: PloneArticle 2.0\n"
+"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"PO-Revision-Date: 2004-03-23 17:25+0100\n"
+"Last-Translator: Anton Stonor <stonor at giraffen.dk>\n"
+"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: da\n"
+"Language-name: Danish\n"
+"Preferred-encodings: latin1 utf-8\n"
+"Domain: plonearticle\n"
+"X-Is-Fallback-For:\n"
+
+msgid "label_view_table_of_contents_first"
+msgstr ""
+
+msgid "label_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+msgid "description_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+#, fuzzy
+msgid "label_table_of_contents"
+msgstr "Brødtekst"
+
+msgid "label_previous"
+msgstr ""
+
+#, fuzzy
+msgid "label_next"
+msgstr "Navn"
+
+#, fuzzy
+msgid "Article"
+msgstr "Artikel"
+
+#, fuzzy
+msgid "legend_models"
+msgstr "Billeder"
+
+msgid "description_edit_plonearticle"
+msgstr "Udfyld felterne."
+
+msgid "description_plonearticle_attachments"
+msgstr "Du kan vedhæfte flere filer til artiklen."
+
+msgid "description_plonearticle_images"
+msgstr "Du kan tilknytte flere billeder til artiklen."
+
+#, fuzzy
+msgid "description_plonearticle_links"
+msgstr "Du kan tilknytte flere billeder til artiklen."
+
+msgid "heading_edit_item"
+msgstr "Rediger ${itemtype}"
+
+msgid "help_body_text"
+msgstr "Artiklens brødtekst."
+
+msgid "help_description"
+msgstr "Skriv en kort beskrivelse af artiklen."
+
+msgid "help_name"
+msgstr ""
+"Indtast en kort ID. ID'en bliver en del af indholdsobjektets web-adressen og "
+"bør være kort, beskrivende og ikke indeholde mellemrum, danske eller STORE "
+"bogstaver. Eksempel: »aars-rapport-2002«"
+
+msgid "help_title"
+msgstr "Skriv en overskrift for artiklen."
+
+#, fuzzy
+msgid "help_upload_attachment"
+msgstr ""
+"Her kan du uploade et billede i jpg- eller gif-format fra din computer til "
+"artiklen."
+
+msgid "label_body_text"
+msgstr "Brødtekst"
+
+msgid "label_description"
+msgstr "Beskrivelse"
+
+msgid "label_name"
+msgstr "Navn"
+
+msgid "label_title"
+msgstr "Titel"
+
+#, fuzzy
+msgid "label_upload_attachment"
+msgstr "Upload billede"
+
+msgid "legend_attachments"
+msgstr "Vedhæftede filer"
+
+msgid "legend_document_details"
+msgstr "Artikel-detaljer"
+
+msgid "legend_images"
+msgstr "Billeder"
+
+#, fuzzy
+msgid "legend_links"
+msgstr "Billeder"
+
+#, fuzzy
+msgid "plonearticle_add_attachment"
+msgstr "Du kan vedhæfte flere filer til artiklen."
+
+#, fuzzy
+msgid "help_attachment_paste"
+msgstr "Vedhæftede filer"
+
+#, fuzzy
+msgid "help_image_paste"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "help_link_paste"
+msgstr ""
+"Indtast en kort ID. ID'en bliver en del af indholdsobjektets web-adressen og "
+"bør være kort, beskrivende og ikke indeholde mellemrum, danske eller STORE "
+"bogstaver. Eksempel: »aars-rapport-2002«"
+
+#, fuzzy
+msgid "plonearticle_add_image"
+msgstr "Du kan tilknytte flere billeder til artiklen."
+
+msgid "Up"
+msgstr "Op"
+
+msgid "Down"
+msgstr "Ned"
+
+msgid "choose_layout"
+msgstr "Du kan her vælge et layout for artiklen."
+
+msgid "help_choose_model"
+msgstr ""
+"Du kan her vælge, hvordan tekst, billeder og vedhæftede filer skal placeres "
+"på siden."
+
+#, fuzzy
+msgid "label_choose_model"
+msgstr ""
+"Du kan her vælge, hvordan tekst, billeder og vedhæftede filer skal placeres "
+"på siden."
+
+msgid "This attachment is not indexed."
+msgstr "Denne fil er ikke søgbar."
+
+#, fuzzy
+msgid "help_attachment_title"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "text_not_locked"
+msgstr "Denne artikel er ikke låst."
+
+msgid "text_lock_to_edit"
+msgstr "Du skal låse artiklen, hvis du vil redigere den."
+
+msgid "txt_locked_by"
+msgstr "Denne artikel er låst af:"
+
+msgid "model1_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+msgid "model2_description"
+msgstr ""
+"Det første billede bliver vist sammen med overskriften, mens de øvrige "
+"bliver vist i højre side. Vedhæftede filer bliver vist i bunden af siden."
+"<br />"
+
+#, fuzzy
+msgid "model3_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+#, fuzzy
+msgid "model4_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+#, fuzzy
+msgid "model5_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+#, fuzzy
+msgid "model6_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+#, fuzzy
+msgid "model7_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+#, fuzzy
+msgid "model8_description"
+msgstr ""
+"Et enkelt layout.<br />Billeder bliver vist i højre side og vedhæftede filer "
+"i bunden af siden.<br />"
+
+msgid "help_image_title"
+msgstr "Skriv en titel på det nye billede."
+
+msgid "Model layout"
+msgstr "Layout"
+
+msgid "preview"
+msgstr "smugkig"
+
+msgid "label_upload_image"
+msgstr "Upload billede"
+
+msgid "help_upload_image"
+msgstr ""
+"Her kan du uploade et billede i jpg- eller gif-format fra din computer til "
+"artiklen."
+
+msgid "Documentation model"
+msgstr "Enkelt layout"
+
+msgid "Newspaper article model"
+msgstr "Artikellayout"
+
+msgid "Small images"
+msgstr ""
+
+#, fuzzy
+msgid "Big images"
+msgstr "Billeder"
+
+msgid "Small images separated by text"
+msgstr ""
+
+msgid "Big images separated by text"
+msgstr ""
+
+msgid "One big image and a lot of small"
+msgstr ""
+
+msgid "One big image and lots of small and side attachments"
+msgstr ""
+
+#, fuzzy
+msgid "legend_upload_attachment"
+msgstr "Vedhæftede filer"
+
+#, fuzzy
+msgid "legend_upload_image"
+msgstr "Upload billede"
+
+msgid "legend_add_link"
+msgstr ""
+
+#, fuzzy
+msgid "label_add_link"
+msgstr "Upload fil"
+
+#, fuzzy
+msgid "help_add_link"
+msgstr "Her kan du uploade en fil fra din computer til artiklen."
+
+#, fuzzy
+msgid "help_link_title"
+msgstr "Skriv en overskrift for artiklen."
+
+msgid "Delete"
+msgstr "Slet"
+
+msgid "Save"
+msgstr "Gem"
+
+msgid "Copy"
+msgstr ""
+
+msgid "Paste as reference"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+#
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+#
+msgid "This is an external reference"
+msgstr ""
+
+#
+# Portal Status Messages :
+#
+#
+# saveAttachmentsChanges.cpy
+#
+msgid "message_attachments_changes_saved"
+msgstr ""
+
+#
+# saveImageChanges.cpy
+#
+msgid "message_images_changes_saved"
+msgstr ""
+
+#
+# plonearticle_link_edit.cpy
+#
+msgid "message_links_changes_saved"
+msgstr ""
+
+#
+# deleteAttachments.cpy
+#
+msgid "message_delete_attachment_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_deleted"
+msgstr "Vedhæftede filer"
+
+#, fuzzy
+msgid "message_attachments_deleted"
+msgstr "Vedhæftede filer"
+
+#
+# plonearticle_link_delete.cpy
+#
+msgid "message_delete_link_none_selected"
+msgstr ""
+
+msgid "message_link_deleted"
+msgstr ""
+
+# ${link_count}
+msgid "message_links_deleted"
+msgstr ""
+
+#
+# image_copy.cpy
+#
+msgid "message_copy_items_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_pasted"
+msgstr "Billeder"
+
+msgid "message_image_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_image_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_pasted"
+msgstr "Vedhæftede filer"
+
+msgid "message_attachment_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_attachment_error"
+msgstr ""
+
+#
+# plonearticle_link_paste.cpy
+#
+msgid "message_link_pasted"
+msgstr ""
+
+msgid "message_link_clipboard_error"
+msgstr ""
+
+# ${link_count}, ${link_count}
+msgid "message_paste_link_error"
+msgstr ""
+
+# deleteImages.cpy
+msgid "message_delete_image_none_selected"
+msgstr ""
+
+msgid "message_image_deleted"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_added"
+msgstr "Vedhæftede filer"
+
+#, fuzzy
+msgid "message_max_attachment_size"
+msgstr "Vedhæftede filer"
+
+# plonearticle_link_edit.cpy
+#
+msgid "message_link_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_max_image_size"
+msgstr ""
+
+msgid "message_image_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_model_selected"
+msgstr ""
+
+#
+# toggleArticleLock.py
+#
+msgid "message_article_unlocked"
+msgstr ""
+
+msgid "message_article_locked"
+msgstr ""
+
+#, fuzzy
+msgid "text_locked_by"
+msgstr "Denne artikel er låst af:"
+
+#, fuzzy
+msgid "heading_plonearticle_prefs"
+msgstr "Du kan tilknytte flere billeder til artiklen."
+
+msgid "option_undefined"
+msgstr ""
+
+#, fuzzy
+msgid "legend_default_prefs_details"
+msgstr "Artikel-detaljer"
+
+msgid "label_text_formats_prefs"
+msgstr ""
+
+msgid "help_text_formats_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_models_prefs"
+msgstr "Brødtekst"
+
+msgid "help_models_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "legend_attachment_prefs_details"
+msgstr "Artikel-detaljer"
+
+msgid "label_attachment_content_type_prefs"
+msgstr ""
+
+msgid "help_attachment_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_attachment_content_types_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "help_referenceable_attachment_content_types_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "legend_image_prefs_details"
+msgstr "Artikel-detaljer"
+
+msgid "label_image_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_image_content_type_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "label_referenceable_image_content_types_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "help_referenceable_image_content_types_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "legend_link_prefs_details"
+msgstr "Artikel-detaljer"
+
+msgid "label_link_content_type_prefs"
+msgstr ""
+
+msgid "help_link_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_link_content_types_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+#, fuzzy
+msgid "help_referenceable_link_content_types_prefs"
+msgstr "Skriv en titel på det nye billede."
+
+msgid "Input is required."
+msgstr ""
+
+msgid "label_lock_support"
+msgstr ""
+
+msgid "help_lock_support"
+msgstr ""
+
+msgid "label_cmfeditions_support"
+msgstr ""
+
+msgid "help_cmfeditions_support"
+msgstr ""
+
+#, fuzzy
+msgid "label_max_attachment_size"
+msgstr "Vedhæftede filer"
+
+#, fuzzy
+msgid "help_max_attachment_size"
+msgstr "Vedhæftede filer"
+
+#, fuzzy
+msgid "label_max_image_size"
+msgstr "Upload billede"
+
+#, fuzzy
+msgid "help_max_image_size"
+msgstr "Skriv en titel på det nye billede."
+
+msgid "label_preview_activated"
+msgstr ""
+
+#, fuzzy
+msgid "help_preview_activated"
+msgstr "Skriv en titel på den nye, vedhæftede fil."
+
+#, fuzzy
+msgid "text_no_articles"
+msgstr "Denne artikel er ikke låst."
+
+#, fuzzy
+msgid "Download"
+msgstr "Ned"
+
+msgid "Gb"
+msgstr ""
+
+msgid "Mb"
+msgstr ""
+
+msgid "Kb"
+msgstr ""
+
+msgid "Bytes"
+msgstr ""
+
+#~ msgid "A Plone Article is a document with images and attachments."
+#~ msgstr "En Plone-artikel er et dokument med vedhæftede billeder og filer."
+
+#~ msgid "Attachment"
+#~ msgstr "Vedhæftninger"
+
+#~ msgid "Choose Model"
+#~ msgstr "Vælg layout"
+
+#~ msgid "Enter a brief description of the article."
+#~ msgstr "Skriv en kort beskrivelse af artiklen."
+
+#~ msgid "Fill in the details of this Plone Article."
+#~ msgstr "Udfyld detaljerne om denne artikel."
+
+#~ msgid "Here you can add an attachment to the article:<br />"
+#~ msgstr "Her kan du vedhæfte filer til artiklen:<br />"
+
+#~ msgid "Here you can add an image to the article:<br />"
+#~ msgstr "Her kan du tilføje et billede til artiklen:<br />"
+
+#~ msgid "Image"
+#~ msgstr "Billede"
+
+#~ msgid "Model"
+#~ msgstr "Layout"
+
+#~ msgid "models"
+#~ msgstr "Layout"
+
+#~ msgid "Ok"
+#~ msgstr "OK"
+
+#~ msgid "Plone Article Details"
+#~ msgstr "Artikel-detaljer"
+
+#~ msgid ""
+#~ "Specifies the layout model that the PloneArticle should be rendered with."
+#~ msgstr "Vælger hvilket layout, artiklen skal vises med."
+
+#~ msgid "You can add multiple attachments to the article"
+#~ msgstr "Du kan godt vedhæftede flere filer til artiklen."
+
+#~ msgid "You can add multiple images to the article.<br />"
+#~ msgstr "Du kan godt tilknytte flere billeder til artiklen.<br />"
+
+#~ msgid "You can choose a layout for the Plone Article."
+#~ msgstr "Du kan vælge, hvordan artiklen skal layoutes."
+
+#~ msgid "choose_model"
+#~ msgstr "Vælg layout"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_de.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_de.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_de.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,219 +1,619 @@
 # Gettext Message File for PloneArticle.
 # German translation team <support at ingeniweb.com>
-msgid ""
-msgstr "Project-Id-Version: Plone Article Message Catalog\n"
-"POT-Creation-Date: 2003-02-27 17:02+Westeuropäische Normalzeit\n"
-"PO-Revision-Date: 2003-02-27 17:02+Westeuropäische Normalzeit\n"
-"Last-Translator: Maik Roeder <maik.roeder at ingeniweb.com>\n"
-"Language-Team: de <maik.roeder at ingeniweb.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Language-code: de\n"
-"Language-name: German\n"
-"Preferred-encodings: latin1 utf-8\n"
-"Domain: plonearticle\n"
-"X-Is-Fallback-For: de\n"
-
-msgid "A Plone Article is a document with images and attachments."
-msgstr "Ein Artikel ist ein Dokument mit Bildern und Anhängen."
-
-msgid "Attachment"
-msgstr "Anhang"
-
-msgid "Choose Model"
-msgstr "Modell auswählen"
-
-msgid "Delete"
-msgstr "Löschen"
-
-msgid "Here you can add an attachment to the article:<br />"
-msgstr "Sie können einen Anhang zum Artikel hinzufügen:<br />"
-
-msgid "Here you can add an image to the article:<br />"
-msgstr "Sie können ein Bild zum Artikel hinzufügen:<br />"
-
-msgid "Image"
-msgstr "Bild"
-
-msgid "Model"
-msgstr "Modell"
-
-msgid "models"
-msgstr "Modelle"
-
-msgid "Ok"
-msgstr "OK"
-
-msgid "Plone Article Details"
-msgstr "Einzelheiten zum Artikel"
-
-msgid "PloneArticle"
-msgstr "Artikel"
-
-msgid "Save"
-msgstr "Speichern"
-
-msgid "Specifies the layout model that the PloneArticle should be rendered with."
-msgstr "Wählen Sie ein Modell für das Layout des Artikels aus."
-
-msgid "You can add multiple attachments to the article"
-msgstr "Sie können mehrere Anhänge zum Artikel hinzufügen."
-
-msgid "You can add multiple images to the article.<br />"
-msgstr "Sie können mehrere Bilder zum Artikel hinzufügen.<br />"
-
-msgid "You can choose a layout for the Plone Article."
-msgstr "Sie können ein Modell für das Layout des Artikels auswählen."
-
-msgid "description_edit_plonearticle"
-msgstr "Tragen Sie hier alle Einzelheiten zum Artikel ein."
-
-msgid "description_plonearticle_attachments"
-msgstr "Sie können mehrere Anhänge zum Artikel hinzufügen."
-
-msgid "description_plonearticle_images"
-msgstr "Sie können mehrere Bilder zum Artikel hinzufügen."
-
-msgid "heading_edit_item"
-msgstr "${itemtype} bearbeiten"
-
-msgid "help_body_text"
-msgstr "Der Haupttext des Artikels."
-
-msgid "help_description"
-msgstr "Geben Sie eine kurze Beschreibung des Artikels ein."
-
-msgid "help_name"
-msgstr "Tragen Sie den Namen des Artikels ein. Er wird als Teil der Webadresse auftauchen. Er sollte kurz und prägnant sein\r\nund sollte keine Leerzeichen oder Unterstriche enthalten. Beispiel: Kosten-Uebersicht-2002\r\n"
-
-msgid "help_title"
-msgstr "Geben Sie den Titel des Artikels ein."
-
-msgid "help_upload_file"
-msgstr "Mit dieser Funktion können Sie eine Datei von Ihrem\r\nDateisystem hochladen"
-
-msgid "label_body_text"
-msgstr "Haupttext"
-
-msgid "label_description"
-msgstr "Beschreibung"
-
-msgid "label_name"
-msgstr "Name"
-
-msgid "label_title"
-msgstr "Titel"
-
-msgid "label_upload_file"
-msgstr "Datei hochladen"
-
-msgid "legend_attachments"
-msgstr "Anhänge des Artikels"
-
-msgid "legend_document_details"
-msgstr "Details des Artikels"
-
-msgid "legend_images"
-msgstr "Bilder"
-
-msgid "plonearticle_add_attachment"
-msgstr "Anhang (optional)"
-
-msgid "plonearticle_add_image"
-msgstr "Sie können ein Bild zum Artikel hochladen"
-
-msgid "Up"
-msgstr "Hoch"
-
-msgid "Down"
-msgstr "Runter"
-
-msgid "choose_layout"
-msgstr "Aus den folgenden Modellen können ein Layout auswählen."
-
-msgid "help_choose_model"
-msgstr "Bestimmen Sie das Layout mit dem der Artikel angezeigt werden soll."
-
-msgid "choose_model"
-msgstr "Modell auswählen"
-
-msgid "This attachment is not indexed."
-msgstr "Dieser Anhang wird nicht in die integrierten Suchmaschine aufgenommen."
-
-msgid "help_file_title"
-msgstr "Geben Sie den Titel der Datei an."
-
-msgid "txt_not_locked"
-msgstr "Dieser Artikel ist nicht gesperrt."
-
-msgid "text_lock_to_edit"
-msgstr "Sie müssen den Artikel entriegeln bevor Sie ihn ändern können."
-
-msgid "txt_locked_by"
-msgstr "Dieser Artikel wurde gesperrt von :"
-
-msgid "model1_description"
-msgstr "Einfaches Modell.<br />Die Bilder befinden sich auf der rechten Seite, und die Anhänge unterhalb des Textes.<br />Diese Darstellung ist für Dokumentionszwecke verwendbar.<br />"
-
-msgid "model2_description"
-msgstr "Modell eines Zeitungsartikels.<br />Ein Bild ist links oben zu sehen.<br />Weitere Bilder werden rechts angezeigt.<br />Die Leser des Artikels dürften mit dieser Darstellung vertraut sein.<br />"
-
-msgid "model3_description"
-msgstr "Kleine Bilder.<br />Dem Text sind pro Zeile jeweils zwei kleine Bilder nachgestellt."
-
-msgid "model4_description"
-msgstr "Große Bilder.<br />Die Beschreibung sowie der Text kommen zuerst. Bilder werden anschließend groß dargestellt."
-
-msgid "model5_description"
-msgstr "Kleine Bilder zwischen dem Text.<br /> Die ersten beiden Bilder befinden sich in kleinem Format auf einer Linie. <br /> Darauf folgt der Text und die restlichen Bilder in kleinem Format, jeweils zwei pro Zeile."
-
-msgid "model6_description"
-msgstr "Große Bilder zwischen dem Text.<br />Das erste Bild wird groß dargestellt. Die anderen Bilder werden nach dem Text groß dargestellt."
-
-msgid "model7_description"
-msgstr "Ein großes Bild, die restlichen in kleinem Format.<br /> Dieses Modell zeigt das erste Bild großformatig an, und die restlichen nach dem Text in kleinem Format und jeweils zu zweit auf einer Zeile."
-
-msgid "model8_description"
-msgstr "Ein Bild gefolgt von kleinen Bildern und den Anhängen an der Seite.<br /> Dieses Modell zeigt ein Bild in normaler Größe gefolgt vom Text. Die anderen Bilder sind klein dargestellt, jeweils zwei pro Zeile. <br /> Die Anhänge sind links dargestellt."
-
-msgid "help_image_title"
-msgstr "Geben Sie den Titel des Bildes an."
-
-msgid "Model layout"
-msgstr "Layout"
-
-msgid "preview"
-msgstr "Vorschau"
-
-msgid "label_upload_image"
-msgstr "Bild hochladen"
-
-msgid "help_upload_image"
-msgstr "Diese Funktion erlaubt Ihnen, ein Bild zum Artikel hinzuzufügen."
-
-msgid "Documentation model"
-msgstr "Einfaches Modell"
-
-msgid "Newspaper article model"
-msgstr "Modell eines Zeitungsartikels"
-
-msgid "Small images"
-msgstr "Kleine Bilder"
-
-msgid "Big images"
-msgstr "Große Bilder"
-
-msgid "Small images separated by text"
-msgstr "Kleine Bilder von Text getrennt."
-
-msgid "Big images separated by text"
-msgstr "Große Bilder aufgeteilt"
-
-msgid "One big image and a lot of small"
-msgstr "Ein großes Bild und weitere Bilder in kleinem Format"
-
-msgid "One big image and lots of small and side attachments"
-msgstr "Ein großes Bild, und darauffolgend kleine Bilder, mit die Anhänge auf der Seite."
-
+msgid ""
+msgstr ""
+"Project-Id-Version: Plone Article Message Catalog\n"
+"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"PO-Revision-Date: 2003-02-27 17:02+Westeuropäische Normalzeit\n"
+"Last-Translator: Maik Roeder <maik.roeder at ingeniweb.com>\n"
+"Language-Team: de <maik.roeder at ingeniweb.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: de\n"
+"Language-name: German\n"
+"Preferred-encodings: latin1 utf-8\n"
+"Domain: plonearticle\n"
+"X-Is-Fallback-For: de\n"
+
+msgid "label_view_table_of_contents_first"
+msgstr ""
+
+msgid "label_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+msgid "description_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+#, fuzzy
+msgid "label_table_of_contents"
+msgstr "Haupttext"
+
+msgid "label_previous"
+msgstr ""
+
+#, fuzzy
+msgid "label_next"
+msgstr "Name"
+
+#, fuzzy
+msgid "Article"
+msgstr "Artikel"
+
+#, fuzzy
+msgid "legend_models"
+msgstr "Bilder"
+
+msgid "description_edit_plonearticle"
+msgstr "Tragen Sie hier alle Einzelheiten zum Artikel ein."
+
+msgid "description_plonearticle_attachments"
+msgstr "Sie können mehrere Anhänge zum Artikel hinzufügen."
+
+msgid "description_plonearticle_images"
+msgstr "Sie können mehrere Bilder zum Artikel hinzufügen."
+
+#, fuzzy
+msgid "description_plonearticle_links"
+msgstr "Sie können mehrere Bilder zum Artikel hinzufügen."
+
+msgid "heading_edit_item"
+msgstr "${itemtype} bearbeiten"
+
+msgid "help_body_text"
+msgstr "Der Haupttext des Artikels."
+
+msgid "help_description"
+msgstr "Geben Sie eine kurze Beschreibung des Artikels ein."
+
+msgid "help_name"
+msgstr ""
+"Tragen Sie den Namen des Artikels ein. Er wird als Teil der Webadresse "
+"auftauchen. Er sollte kurz und prägnant sein\r\n"
+"und sollte keine Leerzeichen oder Unterstriche enthalten. Beispiel: Kosten-"
+"Uebersicht-2002"
+
+msgid "help_title"
+msgstr "Geben Sie den Titel des Artikels ein."
+
+#, fuzzy
+msgid "help_upload_attachment"
+msgstr "Diese Funktion erlaubt Ihnen, ein Bild zum Artikel hinzuzufügen."
+
+msgid "label_body_text"
+msgstr "Haupttext"
+
+msgid "label_description"
+msgstr "Beschreibung"
+
+msgid "label_name"
+msgstr "Name"
+
+msgid "label_title"
+msgstr "Titel"
+
+#, fuzzy
+msgid "label_upload_attachment"
+msgstr "Bild hochladen"
+
+msgid "legend_attachments"
+msgstr "Anhänge des Artikels"
+
+msgid "legend_document_details"
+msgstr "Details des Artikels"
+
+msgid "legend_images"
+msgstr "Bilder"
+
+#, fuzzy
+msgid "legend_links"
+msgstr "Bilder"
+
+msgid "plonearticle_add_attachment"
+msgstr "Anhang (optional)"
+
+#, fuzzy
+msgid "help_attachment_paste"
+msgstr "Anhänge des Artikels"
+
+#, fuzzy
+msgid "help_image_paste"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "help_link_paste"
+msgstr ""
+"Tragen Sie den Namen des Artikels ein. Er wird als Teil der Webadresse "
+"auftauchen. Er sollte kurz und prägnant sein\r\n"
+"und sollte keine Leerzeichen oder Unterstriche enthalten. Beispiel: Kosten-"
+"Uebersicht-2002"
+
+msgid "plonearticle_add_image"
+msgstr "Sie können ein Bild zum Artikel hochladen"
+
+msgid "Up"
+msgstr "Hoch"
+
+msgid "Down"
+msgstr "Runter"
+
+msgid "choose_layout"
+msgstr "Aus den folgenden Modellen können ein Layout auswählen."
+
+msgid "help_choose_model"
+msgstr "Bestimmen Sie das Layout mit dem der Artikel angezeigt werden soll."
+
+#, fuzzy
+msgid "label_choose_model"
+msgstr "Bestimmen Sie das Layout mit dem der Artikel angezeigt werden soll."
+
+msgid "This attachment is not indexed."
+msgstr "Dieser Anhang wird nicht in die integrierten Suchmaschine aufgenommen."
+
+#, fuzzy
+msgid "help_attachment_title"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "text_not_locked"
+msgstr "Dieser Artikel ist nicht gesperrt."
+
+msgid "text_lock_to_edit"
+msgstr "Sie müssen den Artikel entriegeln bevor Sie ihn ändern können."
+
+msgid "txt_locked_by"
+msgstr "Dieser Artikel wurde gesperrt von :"
+
+msgid "model1_description"
+msgstr ""
+"Einfaches Modell.<br />Die Bilder befinden sich auf der rechten Seite, und "
+"die Anhänge unterhalb des Textes.<br />Diese Darstellung ist für "
+"Dokumentionszwecke verwendbar.<br />"
+
+msgid "model2_description"
+msgstr ""
+"Modell eines Zeitungsartikels.<br />Ein Bild ist links oben zu sehen.<br /"
+">Weitere Bilder werden rechts angezeigt.<br />Die Leser des Artikels dürften "
+"mit dieser Darstellung vertraut sein.<br />"
+
+msgid "model3_description"
+msgstr ""
+"Kleine Bilder.<br />Dem Text sind pro Zeile jeweils zwei kleine Bilder "
+"nachgestellt."
+
+msgid "model4_description"
+msgstr ""
+"Große Bilder.<br />Die Beschreibung sowie der Text kommen zuerst. Bilder "
+"werden anschließend groß dargestellt."
+
+msgid "model5_description"
+msgstr ""
+"Kleine Bilder zwischen dem Text.<br /> Die ersten beiden Bilder befinden "
+"sich in kleinem Format auf einer Linie. <br /> Darauf folgt der Text und die "
+"restlichen Bilder in kleinem Format, jeweils zwei pro Zeile."
+
+msgid "model6_description"
+msgstr ""
+"Große Bilder zwischen dem Text.<br />Das erste Bild wird groß dargestellt. "
+"Die anderen Bilder werden nach dem Text groß dargestellt."
+
+msgid "model7_description"
+msgstr ""
+"Ein großes Bild, die restlichen in kleinem Format.<br /> Dieses Modell zeigt "
+"das erste Bild großformatig an, und die restlichen nach dem Text in kleinem "
+"Format und jeweils zu zweit auf einer Zeile."
+
+msgid "model8_description"
+msgstr ""
+"Ein Bild gefolgt von kleinen Bildern und den Anhängen an der Seite.<br /> "
+"Dieses Modell zeigt ein Bild in normaler Größe gefolgt vom Text. Die anderen "
+"Bilder sind klein dargestellt, jeweils zwei pro Zeile. <br /> Die Anhänge "
+"sind links dargestellt."
+
+msgid "help_image_title"
+msgstr "Geben Sie den Titel des Bildes an."
+
+msgid "Model layout"
+msgstr "Layout"
+
+msgid "preview"
+msgstr "Vorschau"
+
+msgid "label_upload_image"
+msgstr "Bild hochladen"
+
+msgid "help_upload_image"
+msgstr "Diese Funktion erlaubt Ihnen, ein Bild zum Artikel hinzuzufügen."
+
+msgid "Documentation model"
+msgstr "Einfaches Modell"
+
+msgid "Newspaper article model"
+msgstr "Modell eines Zeitungsartikels"
+
+msgid "Small images"
+msgstr "Kleine Bilder"
+
+msgid "Big images"
+msgstr "Große Bilder"
+
+msgid "Small images separated by text"
+msgstr "Kleine Bilder von Text getrennt."
+
+msgid "Big images separated by text"
+msgstr "Große Bilder aufgeteilt"
+
+msgid "One big image and a lot of small"
+msgstr "Ein großes Bild und weitere Bilder in kleinem Format"
+
+msgid "One big image and lots of small and side attachments"
+msgstr ""
+"Ein großes Bild, und darauffolgend kleine Bilder, mit die Anhänge auf der "
+"Seite."
+
+#, fuzzy
+msgid "legend_upload_attachment"
+msgstr "Anhänge des Artikels"
+
+#, fuzzy
+msgid "legend_upload_image"
+msgstr "Bild hochladen"
+
+msgid "legend_add_link"
+msgstr ""
+
+#, fuzzy
+msgid "label_add_link"
+msgstr "Datei hochladen"
+
+#, fuzzy
+msgid "help_add_link"
+msgstr ""
+"Mit dieser Funktion können Sie eine Datei von Ihrem\r\n"
+"Dateisystem hochladen"
+
+#, fuzzy
+msgid "help_link_title"
+msgstr "Geben Sie den Titel des Artikels ein."
+
+msgid "Delete"
+msgstr "Löschen"
+
+msgid "Save"
+msgstr "Speichern"
+
+msgid "Copy"
+msgstr ""
+
+msgid "Paste as reference"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+#
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+#
+msgid "This is an external reference"
+msgstr ""
+
+#
+# Portal Status Messages :
+#
+#
+# saveAttachmentsChanges.cpy
+#
+msgid "message_attachments_changes_saved"
+msgstr ""
+
+#
+# saveImageChanges.cpy
+#
+msgid "message_images_changes_saved"
+msgstr ""
+
+#
+# plonearticle_link_edit.cpy
+#
+msgid "message_links_changes_saved"
+msgstr ""
+
+#
+# deleteAttachments.cpy
+#
+msgid "message_delete_attachment_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_deleted"
+msgstr "Anhänge des Artikels"
+
+#, fuzzy
+msgid "message_attachments_deleted"
+msgstr "Anhänge des Artikels"
+
+#
+# plonearticle_link_delete.cpy
+#
+msgid "message_delete_link_none_selected"
+msgstr ""
+
+msgid "message_link_deleted"
+msgstr ""
+
+# ${link_count}
+msgid "message_links_deleted"
+msgstr ""
+
+#
+# image_copy.cpy
+#
+msgid "message_copy_items_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_pasted"
+msgstr "Bilder"
+
+msgid "message_image_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_image_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_pasted"
+msgstr "Anhänge des Artikels"
+
+msgid "message_attachment_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_attachment_error"
+msgstr ""
+
+#
+# plonearticle_link_paste.cpy
+#
+msgid "message_link_pasted"
+msgstr ""
+
+msgid "message_link_clipboard_error"
+msgstr ""
+
+# ${link_count}, ${link_count}
+msgid "message_paste_link_error"
+msgstr ""
+
+# deleteImages.cpy
+msgid "message_delete_image_none_selected"
+msgstr ""
+
+msgid "message_image_deleted"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_added"
+msgstr "Anhänge des Artikels"
+
+#, fuzzy
+msgid "message_max_attachment_size"
+msgstr "Anhänge des Artikels"
+
+# plonearticle_link_edit.cpy
+#
+msgid "message_link_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_max_image_size"
+msgstr ""
+
+msgid "message_image_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_model_selected"
+msgstr ""
+
+#
+# toggleArticleLock.py
+#
+msgid "message_article_unlocked"
+msgstr ""
+
+msgid "message_article_locked"
+msgstr ""
+
+#, fuzzy
+msgid "text_locked_by"
+msgstr "Dieser Artikel wurde gesperrt von :"
+
+#, fuzzy
+msgid "heading_plonearticle_prefs"
+msgstr "Sie können mehrere Bilder zum Artikel hinzufügen."
+
+msgid "option_undefined"
+msgstr ""
+
+#, fuzzy
+msgid "legend_default_prefs_details"
+msgstr "Details des Artikels"
+
+msgid "label_text_formats_prefs"
+msgstr ""
+
+msgid "help_text_formats_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_models_prefs"
+msgstr "Haupttext"
+
+msgid "help_models_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "legend_attachment_prefs_details"
+msgstr "Details des Artikels"
+
+msgid "label_attachment_content_type_prefs"
+msgstr ""
+
+msgid "help_attachment_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_attachment_content_types_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "help_referenceable_attachment_content_types_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "legend_image_prefs_details"
+msgstr "Details des Artikels"
+
+msgid "label_image_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_image_content_type_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "label_referenceable_image_content_types_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "help_referenceable_image_content_types_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "legend_link_prefs_details"
+msgstr "Details des Artikels"
+
+msgid "label_link_content_type_prefs"
+msgstr ""
+
+msgid "help_link_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_link_content_types_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+#, fuzzy
+msgid "help_referenceable_link_content_types_prefs"
+msgstr "Geben Sie den Titel des Bildes an."
+
+msgid "Input is required."
+msgstr ""
+
+msgid "label_lock_support"
+msgstr ""
+
+msgid "help_lock_support"
+msgstr ""
+
+msgid "label_cmfeditions_support"
+msgstr ""
+
+msgid "help_cmfeditions_support"
+msgstr ""
+
+#, fuzzy
+msgid "label_max_attachment_size"
+msgstr "Anhänge des Artikels"
+
+#, fuzzy
+msgid "help_max_attachment_size"
+msgstr "Anhänge des Artikels"
+
+#, fuzzy
+msgid "label_max_image_size"
+msgstr "Bild hochladen"
+
+#, fuzzy
+msgid "help_max_image_size"
+msgstr "Geben Sie den Titel des Bildes an."
+
+msgid "label_preview_activated"
+msgstr ""
+
+#, fuzzy
+msgid "help_preview_activated"
+msgstr "Geben Sie den Titel der Datei an."
+
+#, fuzzy
+msgid "text_no_articles"
+msgstr "Dieser Artikel ist nicht gesperrt."
+
+#, fuzzy
+msgid "Download"
+msgstr "Runter"
+
+msgid "Gb"
+msgstr ""
+
+msgid "Mb"
+msgstr ""
+
+msgid "Kb"
+msgstr ""
+
+msgid "Bytes"
+msgstr ""
+
+#~ msgid "A Plone Article is a document with images and attachments."
+#~ msgstr "Ein Artikel ist ein Dokument mit Bildern und Anhängen."
+
+#~ msgid "Attachment"
+#~ msgstr "Anhang"
+
+#~ msgid "Choose Model"
+#~ msgstr "Modell auswählen"
+
+#~ msgid "Here you can add an attachment to the article:<br />"
+#~ msgstr "Sie können einen Anhang zum Artikel hinzufügen:<br />"
+
+#~ msgid "Here you can add an image to the article:<br />"
+#~ msgstr "Sie können ein Bild zum Artikel hinzufügen:<br />"
+
+#~ msgid "Image"
+#~ msgstr "Bild"
+
+#~ msgid "Model"
+#~ msgstr "Modell"
+
+#~ msgid "models"
+#~ msgstr "Modelle"
+
+#~ msgid "Ok"
+#~ msgstr "OK"
+
+#~ msgid "Plone Article Details"
+#~ msgstr "Einzelheiten zum Artikel"
+
+#~ msgid ""
+#~ "Specifies the layout model that the PloneArticle should be rendered with."
+#~ msgstr "Wählen Sie ein Modell für das Layout des Artikels aus."
+
+#~ msgid "You can add multiple attachments to the article"
+#~ msgstr "Sie können mehrere Anhänge zum Artikel hinzufügen."
+
+#~ msgid "You can add multiple images to the article.<br />"
+#~ msgstr "Sie können mehrere Bilder zum Artikel hinzufügen.<br />"
+
+#~ msgid "You can choose a layout for the Plone Article."
+#~ msgstr "Sie können ein Modell für das Layout des Artikels auswählen."
+
+#~ msgid "choose_model"
+#~ msgstr "Modell auswählen"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_en.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_en.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_en.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,79 +1,55 @@
+# translation of PloneArticle_en.po to
+# Maik Röder <maik.roeder at ingeniweb.com>, 2003.
+# Encolpe Degoute <encolpe.degoute at ingeniweb.com>, 2006.
 # Gettext Message File for PloneArticle.
-# Maik Röder <maik.roeder at ingeniweb.com>, 2003
 msgid ""
 msgstr ""
-"Project-Id-Version: PloneArticle 2.0\n"
+"Project-Id-Version: PloneArticle_en\n"
 "POT-Creation-Date: 2003-05-06 09:05+0100\n"
-"PO-Revision-Date: 2003-05-06 09:05+0100\n"
-"Last-Translator: Maik Roeder <maik.roeder at ingeniweb.com>\n"
-"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
+"PO-Revision-Date: 2006-09-12 20:15+0200\n"
+"Last-Translator: Encolpe Degoute <encolpe.degoute at ingeniweb.com>\n"
+"Language-Team:  <support at ingeniweb.com>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
 "Language-code: en\n"
-"X-Is-Fallback-For: en-au en-bz en-ca en-ie en-jm en-nz en-ph en-za en-tt en-gb en-us en-zw\n"
+"X-Is-Fallback-For: en-au en-bz en-ca en-ie en-jm en-nz en-ph en-za en-tt en-"
+"gb en-us en-zw\n"
 "Language-name: English\n"
 "Preferred-encodings: latin1\n"
 "Domain: plonearticle\n"
+"X-Generator: KBabel 1.11.4\n"
 
-msgid "Attachment"
-msgstr "Attachment"
+msgid "label_view_table_of_contents_first"
+msgstr ""
 
-msgid "choose_model"
-msgstr "Choose Model"
+msgid "label_view_table_of_contents_in_dropdown_list"
+msgstr ""
 
-msgid "choose_layout"
-msgstr "You can choose a model for the Article."
+msgid "description_view_table_of_contents_in_dropdown_list"
+msgstr ""
 
-msgid "help_choose_model"
-msgstr "Specifies the layout model that the PloneArticle should be rendered with."
+#, fuzzy
+msgid "label_table_of_contents"
+msgstr "Body Text"
 
-msgid "Delete"
-msgstr "Delete"
+#, fuzzy
+msgid "label_previous"
+msgstr "(Required)"
 
-msgid "Image"
-msgstr "Image"
+#, fuzzy
+msgid "label_next"
+msgstr "Name"
 
-msgid "Model"
-msgstr "Model"
-
-msgid "Models"
-msgstr "Models"
-
-msgid "PloneArticle"
+#, fuzzy
+msgid "Article"
 msgstr "Article"
 
-msgid "Save"
-msgstr "Save"
+#, fuzzy
+msgid "legend_models"
+msgstr "Images"
 
-msgid "help_shortname"
-msgstr "Should not contain spaces, underscores or mixed case. This will be part of the web address to this item."
-
-msgid "label_required"
-msgstr "(Required)"
-
-msgid "label_short_name"
-msgstr "Short Name"
-
-msgid "plain_text"
-msgstr "Plain Text"
-
-msgid "label_format"
-msgstr "Format"
-
-msgid "popup_close"
-msgstr "Close"
-
-msgid "html"
-msgstr "HTML"
-
-msgid "help_format"
-msgstr "If you are unsure of which format to use, just select Plain Text and type the document as you usually do."
-
-msgid "structured_text"
-msgstr "Structured Text"
-
 msgid "description_edit_plonearticle"
 msgstr "Fill in the details of this Article."
 
@@ -96,13 +72,19 @@
 msgstr "Enter a brief description of the document."
 
 msgid "help_name"
-msgstr "Enter the Short Name of the Article. This is the part that will show up as part\r\nof the web address. This should be short, descriptive\r\nand preferrably not contain spaces, underscores or mixed case. Example:\"expense-report-2002\""
+msgstr ""
+"Enter the Short Name of the Article. This is the part that will show up as "
+"part\r\n"
+"of the web address. This should be short, descriptive\r\n"
+"and preferrably not contain spaces, underscores or mixed case. Example:"
+"\"expense-report-2002\""
 
 msgid "help_title"
 msgstr "Enter the title of the Article."
 
 msgid "help_upload_attachment"
-msgstr "This feature can be used to add a file on your computer to the Attachments."
+msgstr ""
+"This feature can be used to add a file on your computer to the Attachments."
 
 msgid "label_body_text"
 msgstr "Body Text"
@@ -119,96 +101,493 @@
 msgid "label_upload_attachment"
 msgstr "Upload File"
 
-msgid "legend_plonearticle_details"
+msgid "legend_attachments"
+msgstr "Attachments"
+
+#, fuzzy
+msgid "legend_document_details"
 msgstr "Article Details"
 
 msgid "legend_images"
 msgstr "Images"
 
+msgid "legend_links"
+msgstr "Links"
+
+#, fuzzy
+msgid "plonearticle_add_attachment"
+msgstr "You can add multiple attachments to the Article"
+
 msgid "help_attachment_paste"
-msgstr "There is no attachment in this article. You may paste your clipboard here after copying a File."
+msgstr ""
+"There is no attachment in this article. You may paste your clipboard here "
+"after copying a File."
 
 msgid "help_image_paste"
-msgstr "There is no image in this article. You may paste your clipboard here after copying an Image."
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
 
 msgid "help_link_paste"
-msgstr "There is no link in this article. You may paste your clipboard here to make a link to the copied content."
+msgstr ""
+"There is no link in this article. You may paste your clipboard here to make "
+"a link to the copied content."
 
-msgid "legend_attachments"
-msgstr "Attachments"
+#, fuzzy
+msgid "plonearticle_add_image"
+msgstr "You can add multiple images to the Article."
 
-msgid "legend_links"
-msgstr "Links"
+msgid "Up"
+msgstr ""
 
-msgid "preview"
-msgstr "Preview"
+msgid "Down"
+msgstr ""
 
-msgid "models"
-msgstr "Models"
+msgid "choose_layout"
+msgstr "You can choose a model for the Article."
 
-msgid "Please correct the indicated errors."
-msgstr "Please correct the indicated errors."
+msgid "help_choose_model"
+msgstr ""
+"Specifies the layout model that the PloneArticle should be rendered with."
 
-msgid "Your document changes have been saved."
-msgstr "Your document changes have been saved."
+#, fuzzy
+msgid "label_choose_model"
+msgstr ""
+"Specifies the layout model that the PloneArticle should be rendered with."
 
-msgid "Model does not exist."
-msgstr "Model does not exist."
+#, fuzzy
+msgid "This attachment is not indexed."
+msgstr "Attachments deleted"
 
-msgid "Document changes saved."
-msgstr "Document changes saved."
+msgid "help_attachment_title"
+msgstr ""
+"Choose the title of your attachment. If you leave this field empty, the "
+"filename will be used as its title."
 
-msgid "Selected model for layout."
-msgstr "Selected model for layout."
+msgid "text_not_locked"
+msgstr ""
 
-msgid "Image added"
-msgstr "Image added"
+msgid "text_lock_to_edit"
+msgstr ""
 
-msgid "Image exceeds allowed maximum size"
-msgstr "Image exceeds allowed maximum size"
+msgid "txt_locked_by"
+msgstr ""
 
-msgid "Images deleted"
-msgstr "Images deleted"
+#, fuzzy
+msgid "model1_description"
+msgstr "Enter a brief description of the document."
 
-msgid "Image deleted"
-msgstr "Image deleted"
+#, fuzzy
+msgid "model2_description"
+msgstr "Enter a brief description of the document."
 
-msgid "No image selected for deletion"
-msgstr "No image selected for deletion"
+#, fuzzy
+msgid "model3_description"
+msgstr "Enter a brief description of the document."
 
-msgid "Attachment added"
-msgstr "Attachment added"
+#, fuzzy
+msgid "model4_description"
+msgstr "Enter a brief description of the document."
 
-msgid "Attachment exceeds allowed maximum size"
-msgstr "Attachment exceeds allowed maximum size"
+#, fuzzy
+msgid "model5_description"
+msgstr "Enter a brief description of the document."
 
-msgid "Attachments deleted"
-msgstr "Attachments deleted"
+#, fuzzy
+msgid "model6_description"
+msgstr "Enter a brief description of the document."
 
-msgid "Attachment deleted"
-msgstr "Attachment deleted"
+#, fuzzy
+msgid "model7_description"
+msgstr "Enter a brief description of the document."
 
-msgid "No attachments selected for deletion."
-msgstr "No attachments selected for deletion."
+#, fuzzy
+msgid "model8_description"
+msgstr "Enter a brief description of the document."
 
+msgid "help_image_title"
+msgstr ""
+"Choose the title of your image. If you leave this field empty, the image's "
+"filename will be used as its title."
+
+#, fuzzy
+msgid "Model layout"
+msgstr "You can choose a model for the Article."
+
+msgid "preview"
+msgstr "Preview"
+
+msgid "label_upload_image"
+msgstr "Upload image"
+
+msgid "help_upload_image"
+msgstr "This feature can be used to add a file on your computer to the images."
+
+msgid "Documentation model"
+msgstr ""
+
+msgid "Newspaper article model"
+msgstr ""
+
+msgid "Small images"
+msgstr ""
+
+#, fuzzy
+msgid "Big images"
+msgstr "Images"
+
+msgid "Small images separated by text"
+msgstr ""
+
+msgid "Big images separated by text"
+msgstr ""
+
+msgid "One big image and a lot of small"
+msgstr ""
+
+msgid "One big image and lots of small and side attachments"
+msgstr ""
+
 msgid "legend_upload_attachment"
 msgstr "Upload an attachment"
 
 msgid "legend_upload_image"
 msgstr "Upload an image"
 
-msgid "label_upload_image"
+#, fuzzy
+msgid "legend_add_link"
+msgstr "Links"
+
+#, fuzzy
+msgid "label_add_link"
 msgstr "Upload image"
 
-msgid "help_upload_image"
-msgstr "This feature can be used to add a file on your computer to the images."
+#, fuzzy
+msgid "help_add_link"
+msgstr ""
+"There is no link in this article. You may paste your clipboard here to make "
+"a link to the copied content."
 
-msgid "help_image_title"
-msgstr "Choose the title of your image. If you leave this field empty, the image's filename will be used as its title."
+#, fuzzy
+msgid "help_link_title"
+msgstr "Enter the title of the Article."
 
-msgid "help_attachment_title"
-msgstr "Choose the title of your attachment. If you leave this field empty, the filename will be used as its title."
+msgid "Delete"
+msgstr "Delete"
 
+msgid "Save"
+msgstr "Save"
+
+msgid "Copy"
+msgstr ""
+
+msgid "Paste as reference"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+#
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+#
+msgid "This is an external reference"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachments_changes_saved"
+msgstr "Document changes saved."
+
+#
+# saveImageChanges.cpy
+#
+msgid "message_images_changes_saved"
+msgstr ""
+
+#, fuzzy
+msgid "message_links_changes_saved"
+msgstr "Document changes saved."
+
+#
+# deleteAttachments.cpy
+#
+msgid "message_delete_attachment_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_deleted"
+msgstr "Attachment deleted"
+
+#, fuzzy
+msgid "message_attachments_deleted"
+msgstr "Attachments deleted"
+
+#
+# plonearticle_link_delete.cpy
+#
+msgid "message_delete_link_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_link_deleted"
+msgstr "Image deleted"
+
+#, fuzzy
+msgid "message_links_deleted"
+msgstr "Images deleted"
+
+#
+# image_copy.cpy
+#
+msgid "message_copy_items_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_pasted"
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
+
+msgid "message_image_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_image_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_pasted"
+msgstr ""
+"There is no attachment in this article. You may paste your clipboard here "
+"after copying a File."
+
+msgid "message_attachment_clipboard_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_paste_attachment_error"
+msgstr "Upload an attachment"
+
+#, fuzzy
+msgid "message_link_pasted"
+msgstr ""
+"There is no link in this article. You may paste your clipboard here to make "
+"a link to the copied content."
+
+msgid "message_link_clipboard_error"
+msgstr ""
+
+# ${link_count}, ${link_count}
+msgid "message_paste_link_error"
+msgstr ""
+
+# deleteImages.cpy
+msgid "message_delete_image_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_deleted"
+msgstr "Image deleted"
+
+#, fuzzy
+msgid "message_attachment_added"
+msgstr "Attachment added"
+
+#, fuzzy
+msgid "message_max_attachment_size"
+msgstr "Attachments"
+
+#, fuzzy
+msgid "message_link_added"
+msgstr "Image added"
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_max_image_size"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_added"
+msgstr "Image added"
+
+#, fuzzy
+msgid "message_model_selected"
+msgstr "Image deleted"
+
+#
+# toggleArticleLock.py
+#
+msgid "message_article_unlocked"
+msgstr ""
+
+msgid "message_article_locked"
+msgstr ""
+
+#
+# in body macros
+#
+msgid "text_locked_by"
+msgstr ""
+
+#, fuzzy
+msgid "heading_plonearticle_prefs"
+msgstr "Article Details"
+
+msgid "option_undefined"
+msgstr ""
+
+#, fuzzy
+msgid "legend_default_prefs_details"
+msgstr "Article Details"
+
+#, fuzzy
+msgid "label_text_formats_prefs"
+msgstr "Format"
+
+#, fuzzy
+msgid "help_text_formats_prefs"
+msgstr ""
+"If you are unsure of which format to use, just select Plain Text and type "
+"the document as you usually do."
+
+#, fuzzy
+msgid "label_models_prefs"
+msgstr "Body Text"
+
+#, fuzzy
+msgid "help_models_prefs"
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
+
+#, fuzzy
+msgid "legend_attachment_prefs_details"
+msgstr "Attachments"
+
+#, fuzzy
+msgid "label_attachment_content_type_prefs"
+msgstr ""
+"Choose the title of your attachment. If you leave this field empty, the "
+"filename will be used as its title."
+
+#, fuzzy
+msgid "help_attachment_content_type_prefs"
+msgstr ""
+"Choose the title of your attachment. If you leave this field empty, the "
+"filename will be used as its title."
+
+#, fuzzy
+msgid "label_referenceable_attachment_content_types_prefs"
+msgstr ""
+"Choose the title of your attachment. If you leave this field empty, the "
+"filename will be used as its title."
+
+#, fuzzy
+msgid "help_referenceable_attachment_content_types_prefs"
+msgstr ""
+"There is no attachment in this article. You may paste your clipboard here "
+"after copying a File."
+
+#, fuzzy
+msgid "legend_image_prefs_details"
+msgstr "Article Details"
+
+msgid "label_image_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_image_content_type_prefs"
+msgstr ""
+"Choose the title of your image. If you leave this field empty, the image's "
+"filename will be used as its title."
+
+#, fuzzy
+msgid "label_referenceable_image_content_types_prefs"
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
+
+#, fuzzy
+msgid "help_referenceable_image_content_types_prefs"
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
+
+#, fuzzy
+msgid "legend_link_prefs_details"
+msgstr "Article Details"
+
+msgid "label_link_content_type_prefs"
+msgstr ""
+
+msgid "help_link_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_link_content_types_prefs"
+msgstr ""
+"Choose the title of your attachment. If you leave this field empty, the "
+"filename will be used as its title."
+
+#, fuzzy
+msgid "help_referenceable_link_content_types_prefs"
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
+
+msgid "Input is required."
+msgstr "Input is required."
+
+msgid "label_lock_support"
+msgstr "Lock support"
+
+msgid "help_lock_support"
+msgstr ""
+"Check this option to enable articles lock support. This functionality is a "
+"'check-in/check-out' on articles."
+
+msgid "label_cmfeditions_support"
+msgstr "CMFEditions support"
+
+msgid "help_cmfeditions_support"
+msgstr ""
+"Check this option to enable CMFEditions support. This functionality add "
+"parameters on CMFEditions tools. This action doesn't desactivate other "
+"modifiers. You have to go in 'portal_modifier' to configure them."
+
+msgid "label_max_attachment_size"
+msgstr "Max attachment size"
+
+#, fuzzy
+msgid "help_max_attachment_size"
+msgstr ""
+"There is no attachment in this article. You may paste your clipboard here "
+"after copying a File."
+
+msgid "label_max_image_size"
+msgstr "Max image size"
+
+#, fuzzy
+msgid "help_max_image_size"
+msgstr ""
+"There is no image in this article. You may paste your clipboard here after "
+"copying an Image."
+
+msgid "label_preview_activated"
+msgstr "Preview activated"
+
+#, fuzzy
+msgid "help_preview_activated"
+msgstr ""
+"Choose the title of your image. If you leave this field empty, the image's "
+"filename will be used as its title."
+
+msgid "text_no_articles"
+msgstr ""
+
+msgid "Download"
+msgstr "Download"
+
 msgid "Gb"
 msgstr "Gb"
 

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_fr.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_fr.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_fr.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,91 +1,87 @@
+# translation of PloneArticle_fr.po to
+# Maik Röder <maik.roeder at ingeniweb.com>, 2003.
+# Encolpe Degoute <encolpe.degoute at ingeniweb.com>, 2006.
 # Gettext Message File for PloneArticle.
-# Maik Röder <maik.roeder at ingeniweb.com>, 2003
 msgid ""
 msgstr ""
-"Project-Id-Version: PloneArticle 3\n"
+"Project-Id-Version: PloneArticle_fr\n"
 "POT-Creation-Date: 2003-05-06 09:05+0100\n"
-"PO-Revision-Date: 2005-03-14 19:04+0100\n"
-"Last-Translator: Nicolas Geissel <nicolas.geissel at ingeniweb.com>\n"
-"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
+"PO-Revision-Date: 2006-09-12 20:13+0200\n"
+"Last-Translator: Encolpe Degoute <encolpe.degoute at ingeniweb.com>\n"
+"Language-Team:  <support at ingeniweb.com>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
 "Language-code: fr\n"
-"Language-name: Français\n"
-"Preferred-Encodings: latin1 utf-8\n"
+"Language-name: Français\n"
+"Preferred-Encodings: utf-8 latin1\n"
 "Domain: plonearticle\n"
 "X-Is-Fallback-For: fr-be fr-ca fr-lu fr-mc fr-ch fr-fr\n"
+"X-Generator: KBabel 1.11.4\n"
 
 msgid "label_view_table_of_contents_first"
-msgstr "Visualiser la table des matières comme première page"
+msgstr "Visualiser la table des matières comme première page"
 
 msgid "label_view_table_of_contents_in_dropdown_list"
-msgstr "Autoriser l'accès à la table des matières"
+msgstr "Autoriser l'accès à la table des matières"
 
 msgid "description_view_table_of_contents_in_dropdown_list"
-msgstr "Si vous avez coché l'option de visualisation de la table des matières comme première page, cette option sera ignorée."
+msgstr ""
+"Si vous avez coché l'option de visualisation de la table des matières comme "
+"première page, cette option sera ignorée."
 
 msgid "label_table_of_contents"
-msgstr "Table des matières"
+msgstr "Table des matières"
 
 msgid "label_previous"
-msgstr "Précédent"
+msgstr "Précédent"
 
 msgid "label_next"
 msgstr "Suivant"
 
-#portal_type
+# portal_type
 msgid "Article"
 msgstr "Article"
 
 msgid "legend_models"
-msgstr "Modèles"
+msgstr "Modèles"
 
-msgid "heading_models"
-msgstr "Modèles"
-
 msgid "description_edit_plonearticle"
 msgstr "Veuillez fournir les informations concernant l'article."
 
 msgid "description_plonearticle_attachments"
-msgstr "Vous pouvez ajouter plusieurs fichiers attachés à l'article."
+msgstr "Vous pouvez ajouter plusieurs fichiers attachés à l'article."
 
 msgid "description_plonearticle_images"
-msgstr "Vous pouvez ajouter plusieurs images à l'article."
+msgstr "Vous pouvez ajouter plusieurs images à l'article."
 
 msgid "description_plonearticle_links"
-msgstr "Vous pouvez ajouter plusieurs liens à l'article."
+msgstr "Vous pouvez ajouter plusieurs liens à l'article."
 
 msgid "heading_edit_item"
-msgstr "Modifier l'élément de type ${itemtype}"
+msgstr "Modifier l'élément de type ${itemtype}"
 
-msgid "heading_edit_attachments"
-msgstr "Associer des pièces-jointes"
-
-msgid "heading_edit_images"
-msgstr "Associer des images"
-
-msgid "heading_edit_links"
-msgstr "Associer des liens"
-
-msgid "heading_edit_models"
-msgstr "Changer le modèle"
-
 msgid "help_body_text"
 msgstr "Le corps du texte de l'article."
 
 msgid "help_description"
-msgstr "Saisissez une brève description de l'élément."
+msgstr "Saisissez une brève description de l'élément."
 
 msgid "help_name"
-msgstr "Indiquez un <strong>nom court</strong> pour cet élément. C'est ce nom qui apparaîtra dans son adresse web (URL). Il devra être bref, descriptif et de préférence en minuscules, sans espaces ni accents. Par exemple&nbsp;: «&nbsp;rapport-depenses-2002&nbsp;»."
+msgstr ""
+"Indiquez un <strong>nom court</strong> pour cet élément. C'est ce nom qui "
+"apparaîtra dans son adresse web (URL). Il devra être bref, descriptif et de "
+"préférence en minuscules, sans espaces ni accents. Par exemple&nbsp;: «&nbsp;"
+"rapport-depenses-2002&nbsp;»."
 
 msgid "help_title"
 msgstr "Saisissez le titre de l'article."
 
 msgid "help_upload_attachment"
-msgstr "Cette fonctionalité peut être utilisée pour ajouter un fichier existant sur votre ordinateur."
+msgstr ""
+"Cette fonctionalité peut être utilisée pour ajouter un fichier existant sur "
+"votre ordinateur."
 
 msgid "label_body_text"
 msgstr "Corps du texte"
@@ -103,31 +99,39 @@
 msgstr "Transmettre le fichier"
 
 msgid "legend_attachments"
-msgstr "Fichiers attachés"
+msgstr "Fichiers attachés"
 
-msgid "legend_links"
-msgstr "Liens"
-
 msgid "legend_document_details"
-msgstr "Détails de l'article"
+msgstr "Détails de l'article"
 
 msgid "legend_images"
 msgstr "Images"
 
+msgid "legend_links"
+msgstr "Liens"
+
 msgid "plonearticle_add_attachment"
-msgstr "Fichier attaché (facultatif)"
+msgstr "Fichier attaché (facultatif)"
 
 msgid "help_attachment_paste"
-msgstr "Il n'y a pas de fichiers joints dans cet article. Vous pouvez coller le contenu de votre presse papiers ici."
+msgstr ""
+"Il n'y a pas de fichiers joints dans cet article. Vous pouvez coller le "
+"contenu de votre presse papiers ici."
 
 msgid "help_image_paste"
-msgstr "Il n'y a pas d'image dans cet article. Vous pouvez coller le contenu de votre presse papiers ici."
+msgstr ""
+"Il n'y a pas d'image dans cet article. Vous pouvez coller le contenu de "
+"votre presse papiers ici."
 
 msgid "help_link_paste"
-msgstr "Il n'y a pas de liens dans cet article. Vous pouvez coller le contenu de votre presse papiers ici."
+msgstr ""
+"Il n'y a pas de liens dans cet article. Vous pouvez coller le contenu de "
+"votre presse papiers ici."
 
 msgid "plonearticle_add_image"
-msgstr "À l'aide de ce formulaire, vous pouvez modifier les informations concernant l'image et transmettre le fichier correspondant."
+msgstr ""
+"À l'aide de ce formulaire, vous pouvez modifier les informations concernant "
+"l'image et transmettre le fichier correspondant."
 
 msgid "Up"
 msgstr "Monter"
@@ -136,80 +140,99 @@
 msgstr "Descendre"
 
 msgid "choose_layout"
-msgstr "Vous pouvez choisir un de ces modèles pour la mise en page."
+msgstr "Vous pouvez choisir un de ces modèles pour la mise en page."
 
 msgid "help_choose_model"
-msgstr "Déterminez la mise en page que va utiliser PloneArticle."
+msgstr "Déterminez la mise en page que va utiliser PloneArticle."
 
 msgid "label_choose_model"
-msgstr "Choisir le modèle"
+msgstr "Choisir le modèle"
 
 msgid "This attachment is not indexed."
-msgstr "Cette pièce jointe n'est pas indexée par le moteur de recherche."
+msgstr "Cette pièce jointe n'est pas indexée par le moteur de recherche."
 
-msgid "This attachment is indexed."
-msgstr "Cette pièce jointe est indexée par le moteur de recherche."
-
 msgid "help_attachment_title"
-msgstr "Indiquez le titre de votre fichier. Si vous laissez cette zone vide, le nom du fichier sera utilisé à la place."
+msgstr ""
+"Indiquez le titre de votre fichier. Si vous laissez cette zone vide, le nom "
+"du fichier sera utilisé à la place."
 
-msgid "help_link_title"
-msgstr "Indiquez le nom de votre lien. Si vous laissez cette zone vide, son URL sera utilisée."
-
 msgid "text_not_locked"
-msgstr "Cet article n'est pas verrouillé."
+msgstr "Cet article n'est pas verrouillé."
 
 msgid "text_lock_to_edit"
-msgstr "Vous devez verrouiller l'article si vous voulez l'éditer."
+msgstr "Vous devez verrouiller l'article si vous voulez l'éditer."
 
 msgid "txt_locked_by"
-msgstr "Cet article est verrouillé par :"
+msgstr "Cet article est verrouillé par :"
 
 msgid "model1_description"
-msgstr "Les images sont disposées à droite et les pièces jointes au bas du document.<br />C'est une disposition de base qui peut être utilisé pour de la documentation.<br />"
+msgstr ""
+"Les images sont disposées à droite et les pièces jointes au bas du document."
+"<br />C'est une disposition de base qui peut être utilisé pour de la "
+"documentation.<br />"
 
 msgid "model2_description"
-msgstr "La première image est disposée dans l'entête du texte.<br />Les autres images sont placées à droite et les pièces jointes au bas du document.<br />C'est un modèle qui peut être utilisé pour les articles à destination des lecteurs.<br />"
+msgstr ""
+"La première image est disposée dans l'entête du texte.<br />Les autres "
+"images sont placées à droite et les pièces jointes au bas du document.<br /"
+">C'est un modèle qui peut être utilisé pour les articles à destination des "
+"lecteurs.<br />"
 
 msgid "model3_description"
-msgstr "Les images sont de petite taille, par ligne de 2 et placées après le texte."
+msgstr ""
+"Les images sont de petite taille, par ligne de 2 et placées après le texte."
 
 msgid "model4_description"
-msgstr "La description et le texte sont affichés en premiers. <br /> Les images sont affichées en grande taille après le texte."
+msgstr ""
+"La description et le texte sont affichés en premiers. <br /> Les images sont "
+"affichées en grande taille après le texte."
 
 msgid "model5_description"
-msgstr "Les deux premières images sont affichées en ligne et petite taille. <br /> Vient ensuite le texte de l'article ainsi que tout le reste des images par ligne de 2 et en petite taille."
+msgstr ""
+"Les deux premières images sont affichées en ligne et petite taille. <br /> "
+"Vient ensuite le texte de l'article ainsi que tout le reste des images par "
+"ligne de 2 et en petite taille."
 
 msgid "model6_description"
-msgstr "La première image est grande et affichée en premier. <br /> Les autres images sont grandes et affichées après le texte de l'article."
+msgstr ""
+"La première image est grande et affichée en premier. <br /> Les autres "
+"images sont grandes et affichées après le texte de l'article."
 
-
 msgid "model7_description"
-msgstr "Ce modèle vous propose d'afficher la première image en grande taille, puis le reste des images en petite taille et par ligne de 2, après le texte."
+msgstr ""
+"Ce modèle vous propose d'afficher la première image en grande taille, puis "
+"le reste des images en petite taille et par ligne de 2, après le texte."
 
 msgid "model8_description"
-msgstr "Une image suivi de petites et des pièces jointes visibles sur le côté.<br /> Ce modèle affiche une image à sa taille normale suivi du texte de l'article. Les autres images sont en petite taille et par ligne de 2. <br /> Les pièces jointes sont visibles à gauche."
+msgstr ""
+"Une image suivi de petites et des pièces jointes visibles sur le côté.<br /> "
+"Ce modèle affiche une image à sa taille normale suivi du texte de l'article. "
+"Les autres images sont en petite taille et par ligne de 2. <br /> Les pièces "
+"jointes sont visibles à gauche."
 
 msgid "help_image_title"
-msgstr "Entrez le titre de l'image. Si vous laissez cette zone vide, son nom de fichier sera utilisé."
+msgstr ""
+"Entrez le titre de l'image. Si vous laissez cette zone vide, son nom de "
+"fichier sera utilisé."
 
 msgid "Model layout"
 msgstr "Mise en page"
 
 msgid "preview"
-msgstr "Aperçu"
+msgstr "Aperçu"
 
 msgid "label_upload_image"
 msgstr "Transmettre le fichier"
 
 msgid "help_upload_image"
-msgstr "Cette fonctionalité peut être utilisée pour ajouter une image à l'article."
+msgstr ""
+"Cette fonctionalité peut être utilisée pour ajouter une image à l'article."
 
 msgid "Documentation model"
-msgstr "Modèle simple"
+msgstr "Modèle simple"
 
 msgid "Newspaper article model"
-msgstr "Modèle d'article de journal"
+msgstr "Modèle d'article de journal"
 
 msgid "Small images"
 msgstr "Petites images"
@@ -218,22 +241,22 @@
 msgstr "Grandes images"
 
 msgid "Small images separated by text"
-msgstr "Petites images séparées"
+msgstr "Petites images séparées"
 
 msgid "Big images separated by text"
-msgstr "Grandes images séparées"
+msgstr "Grandes images séparées"
 
 msgid "One big image and a lot of small"
 msgstr "Une grande image et des petites"
 
 msgid "One big image and lots of small and side attachments"
-msgstr "Une grande image, des petites et les pièces-jointes sur le côté"
+msgstr "Une grande image, des petites et les pièces-jointes sur le côté"
 
 msgid "legend_upload_attachment"
-msgstr "Télécharger une pièce-jointe"
+msgstr "Télécharger une pièce-jointe"
 
 msgid "legend_upload_image"
-msgstr "Télécharger une image"
+msgstr "Télécharger une image"
 
 msgid "legend_add_link"
 msgstr "Ajouter un lien"
@@ -244,6 +267,11 @@
 msgid "help_add_link"
 msgstr "Entrez une url."
 
+msgid "help_link_title"
+msgstr ""
+"Indiquez le nom de votre lien. Si vous laissez cette zone vide, son URL sera "
+"utilisée."
+
 msgid "Delete"
 msgstr "Supprimer"
 
@@ -254,192 +282,185 @@
 msgstr "Copier"
 
 msgid "Paste as reference"
-msgstr "Référencer"
+msgstr "Référencer"
 
+msgid "Browse"
+msgstr "Parcourir"
+
 #
-#PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
 #
 msgid "This is an external reference"
 msgstr "Ceci est un lien vers un autre objet de votre site."
 
-
 #
-#Portal Status Messages :
+# Portal Status Messages :
 #
-
-
 #
-#saveAttachmentsChanges.cpy
+# saveAttachmentsChanges.cpy
 #
 msgid "message_attachments_changes_saved"
-msgstr "Les changements de vos fichiers joints ont été sauvés."
+msgstr "Les changements de vos fichiers joints ont été sauvés."
 
-
 #
-#saveImageChanges.cpy
+# saveImageChanges.cpy
 #
 msgid "message_images_changes_saved"
-msgstr "Les changements de vos images ont été sauvés."
+msgstr "Les changements de vos images ont été sauvés."
 
 #
-#plonearticle_link_edit.cpy
+# plonearticle_link_edit.cpy
 #
 msgid "message_links_changes_saved"
-msgstr "Les changements de vos liens ont été sauvés."
+msgstr "Les changements de vos liens ont été sauvés."
 
 #
-#deleteAttachments.cpy
+# deleteAttachments.cpy
 #
 msgid "message_delete_attachment_none_selected"
-msgstr "Veuillez sélectionner une ou plusieurs pièces jointes à supprimer."
+msgstr "Veuillez sélectionner une ou plusieurs pièces jointes à supprimer."
 
-
 msgid "message_attachment_deleted"
-msgstr "La pièce jointe a été supprimée."
+msgstr "La pièce jointe a été supprimée."
 
-#${attach_count}
+# ${attach_count}
 msgid "message_attachments_deleted"
-msgstr "${attach_count} pièces jointes ont été éffacées."
+msgstr "${attach_count} pièces jointes ont été éffacées."
 
 #
-#plonearticle_link_delete.cpy
+# plonearticle_link_delete.cpy
 #
-
 msgid "message_delete_link_none_selected"
-msgstr "Veuillez sélectionner un ou plusieurs liens à supprimer."
+msgstr "Veuillez sélectionner un ou plusieurs liens à supprimer."
 
 msgid "message_link_deleted"
-msgstr "Le lien a été supprimé."
+msgstr "Le lien a été supprimé."
 
-#${link_count}
+# ${link_count}
 msgid "message_links_deleted"
-msgstr "${link_count} liens ont été éffacées."
+msgstr "${link_count} liens ont été éffacées."
 
-
 #
-#image_copy.cpy
+# image_copy.cpy
 #
-
 msgid "message_copy_items_none_selected"
-msgstr "Veuillez sélectionner un ou plusieurs éléments à copier."
+msgstr "Veuillez sélectionner un ou plusieurs éléments à copier."
 
-
 #
-#image_paste.cpy
+# image_paste.cpy
 #
 msgid "message_image_pasted"
-msgstr "Images collées dans l'article."
+msgstr "Images collées dans l'article."
 
 msgid "message_image_clipboard_error"
-msgstr "Le contenu du presse papier n'a pas été retrouvé."
+msgstr "Le contenu du presse papier n'a pas été retrouvé."
 
-#${image_count}, ${error_count}
+# ${image_count}, ${error_count}
 msgid "message_paste_image_error"
-msgstr "Vous avez tenté de coller ${image_count} image(s). Type de contenu interdit pour ${error_count} image(s)."
+msgstr ""
+"Vous avez tenté de coller ${image_count} image(s). Type de contenu interdit "
+"pour ${error_count} image(s)."
 
-
 #
-#attachment_paste.cpy
+# attachment_paste.cpy
 #
 msgid "message_attachment_pasted"
-msgstr "Pièces-jointes collées."
+msgstr "Pièces-jointes collées."
 
 msgid "message_attachment_clipboard_error"
-msgstr "Le contenu du presse papier n'a pas été retrouvé."
+msgstr "Le contenu du presse papier n'a pas été retrouvé."
 
-#plonearticle_link_paste.cpy
+# ${attachment_count}, ${error_count}
+msgid "message_paste_attachment_error"
+msgstr ""
+"Vous avez tenté de coller ${attachment_count} pièce(s) jointe(s). Type de "
+"contenu interdit pour ${error_count} pièce(s) jointe(s)."
+
+# plonearticle_link_paste.cpy
 #
 msgid "message_link_pasted"
-msgstr "Liens collés."
+msgstr "Liens collés."
 
 msgid "message_link_clipboard_error"
-msgstr "Le contenu du presse papier n'a pas été retrouvé."
+msgstr "Le contenu du presse papier n'a pas été retrouvé."
 
-#${attachment_count}, ${error_count}
-msgid "message_paste_attachment_error"
-msgstr "Vous avez tenté de coller ${attachment_count} pièce(s) jointe(s). Type de contenu interdit pour ${error_count} pièce(s) jointe(s)."
-
-#${link_count}, ${link_count}
+# ${link_count}, ${link_count}
 msgid "message_paste_link_error"
-msgstr "Vous avez tenté de coller ${link_count} lien(s). Type de contenu interdit pour ${error_count} lien(s)."
+msgstr ""
+"Vous avez tenté de coller ${link_count} lien(s). Type de contenu interdit "
+"pour ${error_count} lien(s)."
 
-#deleteImages.cpy
+# deleteImages.cpy
 msgid "message_delete_image_none_selected"
-msgstr "Aucune image à effacer sélectionnée."
+msgstr "Aucune image à effacer sélectionnée."
 
 msgid "message_image_deleted"
-msgstr "Image supprimée."
+msgstr "Image supprimée."
 
-
 #
 # PloneArticle_editAttachment.cpy
 #
 msgid "message_attachment_added"
-msgstr "Pièces-jointes ajoutées."
+msgstr "Pièces-jointes ajoutées."
 
 msgid "message_max_attachment_size"
-msgstr "La pièce-jointe dépasse la taille maximale autorisée."
+msgstr "La pièce-jointe dépasse la taille maximale autorisée."
 
 # plonearticle_link_edit.cpy
 #
 msgid "message_link_added"
-msgstr "Liens ajoutés."
+msgstr "Liens ajoutés."
 
 #
 # PloneArticle_editImage.cpy
 #
 msgid "message_max_image_size"
-msgstr "L'image dépasse la taille maximale autorisée."
+msgstr "L'image dépasse la taille maximale autorisée."
 
 msgid "message_image_added"
-msgstr "Image ajoutée."
+msgstr "Image ajoutée."
 
-
 #
 # PloneArticle_editImage.cpy
 #
 msgid "message_model_selected"
-msgstr "Le modèle a été choisi pour la mise en page."
+msgstr "Le modèle a été choisi pour la mise en page."
 
-
 #
 # toggleArticleLock.py
 #
 msgid "message_article_unlocked"
-msgstr "L'article a été déverrouillé"
+msgstr "L'article a été déverrouillé"
 
 msgid "message_article_locked"
-msgstr "L'article a été verrouillé"
+msgstr "L'article a été verrouillé"
 
 #
 # in body macros
 #
 msgid "text_locked_by"
-msgstr "L'article a été verrouillé par "
+msgstr "L'article a été verrouillé par "
 
 msgid "heading_plonearticle_prefs"
 msgstr "Configuration de PloneArticle"
 
-msgid "legend_attachment_prefs_details"
-msgstr "Attachements"
-
 msgid "option_undefined"
-msgstr "Non défini"
+msgstr "Non défini"
 
 msgid "legend_default_prefs_details"
-msgstr "Général"
+msgstr "Général"
 
 msgid "label_text_formats_prefs"
 msgstr "Formats de texte"
 
 msgid "help_text_formats_prefs"
-msgstr "Sélectionnez les formats de texte à utiliser dans un PloneArticle."
+msgstr "Sélectionnez les formats de texte à utiliser dans un PloneArticle."
 
 msgid "label_models_prefs"
-msgstr "Modèles"
+msgstr "Modèles"
 
 msgid "help_models_prefs"
-msgstr "Sélectionnez les modèles à utiliser dans un PloneArticle."
+msgstr "Sélectionnez les modèles à utiliser dans un PloneArticle."
 
 msgid "legend_attachment_prefs_details"
 msgstr "Attachements"
@@ -448,13 +469,17 @@
 msgstr "Type de contenu attachement"
 
 msgid "help_attachment_content_type_prefs"
-msgstr "Sélectionnez dans la liste ci-dessous le type de contenu qui sera utilisé lors de l'ajout d'un fichier."
+msgstr ""
+"Sélectionnez dans la liste ci-dessous le type de contenu qui sera utilisé "
+"lors de l'ajout d'un fichier."
 
 msgid "label_referenceable_attachment_content_types_prefs"
-msgstr "Types de contenus attachements référençables"
+msgstr "Types de contenus attachements référençables"
 
 msgid "help_referenceable_attachment_content_types_prefs"
-msgstr "Sélectionnez dans la liste ci-dessous les types de contenus attachements qui peuvent être référencés par un PloneArticle."
+msgstr ""
+"Sélectionnez dans la liste ci-dessous les types de contenus attachements "
+"qui peuvent être référencés par un PloneArticle."
 
 msgid "legend_image_prefs_details"
 msgstr "Images"
@@ -463,13 +488,17 @@
 msgstr "Type de contenu image"
 
 msgid "help_image_content_type_prefs"
-msgstr "Sélectionnez dans la liste ci-dessous le type de contenu qui sera utilisé lors de l'ajout d'une image."
+msgstr ""
+"Sélectionnez dans la liste ci-dessous le type de contenu qui sera utilisé "
+"lors de l'ajout d'une image."
 
 msgid "label_referenceable_image_content_types_prefs"
-msgstr "Types de contenus images référençables"
+msgstr "Types de contenus images référençables"
 
 msgid "help_referenceable_image_content_types_prefs"
-msgstr "Sélectionnez dans la liste ci-dessous les types de contenus images qui peuvent être référencés par un PloneArticle."
+msgstr ""
+"Sélectionnez dans la liste ci-dessous les types de contenus images qui "
+"peuvent être référencés par un PloneArticle."
 
 msgid "legend_link_prefs_details"
 msgstr "Liens"
@@ -478,13 +507,17 @@
 msgstr "Type de contenu lien"
 
 msgid "help_link_content_type_prefs"
-msgstr "Sélectionnez dans la liste ci-dessous le type de contenu qui sera utilisé lors de l'ajout d'un lien."
+msgstr ""
+"Sélectionnez dans la liste ci-dessous le type de contenu qui sera utilisé "
+"lors de l'ajout d'un lien."
 
 msgid "label_referenceable_link_content_types_prefs"
-msgstr "Types de contenus liens référençables"
+msgstr "Types de contenus liens référençables"
 
 msgid "help_referenceable_link_content_types_prefs"
-msgstr "Sélectionnez dans la liste ci-dessous les types de contenus liens qui peuvent être référencés par un PloneArticle."
+msgstr ""
+"Sélectionnez dans la liste ci-dessous les types de contenus liens qui "
+"peuvent être référencés par un PloneArticle."
 
 msgid "Input is required."
 msgstr "Ce champ est obligatoire"
@@ -493,46 +526,49 @@
 msgstr "Support du verrouillage d'articles"
 
 msgid "help_lock_support"
-msgstr "Cochez cette case pour activer le support du verrouillage d'articles. Cette fonctionnalité correspond à un 'check-in/check-out' sur un article."
+msgstr ""
+"Cochez cette case pour activer le support du verrouillage d'articles. Cette "
+"fonctionnalité correspond à un 'check-in/check-out' sur un article."
 
+msgid "label_cmfeditions_support"
+msgstr "Support de CMFEditions"
+
+msgid "help_cmfeditions_support"
+msgstr ""
+"Cochez cette case pour activer le support de CMFEditions. Cette "
+"fonctionnalité rajoutera des paramètres dans les outils utilisés par "
+"CMFEditions . Cela ne modifiera pas la configuration des « modifier » déjà"
+"installés. Vous devez aller dans 'portal_modifier' pour ceci."
+
 msgid "label_max_attachment_size"
 msgstr "Taille maximale des attachments"
 
 msgid "help_max_attachment_size"
-msgstr "Indiquez la taille maximale des attachments (en kilo-octets). Entrez 0 pour n'imposer aucune limite."
+msgstr ""
+"Indiquez la taille maximale des attachments (en kilo-octets). Entrez 0 pour "
+"n'imposer aucune limite."
 
 msgid "label_max_image_size"
 msgstr "Taille maximale des images"
 
 msgid "help_max_image_size"
-msgstr "Indiquez la taille maximale des images (en kilo-octets). Entrez 0 pour n'imposer aucune limite."
+msgstr ""
+"Indiquez la taille maximale des images (en kilo-octets). Entrez 0 pour "
+"n'imposer aucune limite."
 
 msgid "label_preview_activated"
-msgstr "Activation de l'aperçu"
+msgstr "Activation de l'aperçu"
 
 msgid "help_preview_activated"
-msgstr "Cochez cette case pour activer l'aperçu des fichiers attachés. Cette fonctionnalité n'est disponible qu'avec les attachements de type ExFile."
+msgstr ""
+"Cochez cette case pour activer l'aperçu des fichiers attachés. Cette "
+"fonctionnalité n'est disponible qu'avec les attachements de type ExFile."
 
-msgid "Input is required."
-msgstr "Ce champ est obligatoire"
-
-msgid "description_no_preview"
-msgstr "Aperçu non disponible"
-
-msgid "popup_close"
-msgstr "Fermer"
-
-msgid "Browse"
-msgstr "Parcourir"
-
-msgid "Cancel"
-msgstr "Annuler"
-
 msgid "text_no_articles"
-msgstr "Aucun article n'a été publié pour l'instant."
+msgstr "Aucun article n'a été publié pour l'instant."
 
 msgid "Download"
-msgstr "Télécharger"
+msgstr "Télécharger"
 
 msgid "Gb"
 msgstr "Go"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_it.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_it.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_it.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,196 +1,645 @@
 # Gettext Message File for PloneArticle.
-# Maik Röder <maik.roeder at ingeniweb.com>, 2003
-msgid ""
-msgstr ""
-"Project-Id-Version: PloneArticle 2.0\n"
-"POT-Creation-Date: 2004-02-09 09:05+0100\n"
-"PO-Revision-Date: 2004-04-07 20:26+0100\n"
-"Last-Translator: Enzo Cesanelli <enzo at noiza.com>\n"
-"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Language-code: it\n"
-"X-Is-Fallback-For: it-ch\n"
-"Language-name: Italian\n"
-"Preferred-encodings: latin1\n"
-"Domain: plonearticle\n"
-"X-Is-Fallback-For:\n"
-
-msgid "A Plone Article is a document with images and attachments."
-msgstr "Un Plone Article &egrave; un documento con immagini e allegati."
-
-msgid "Attachment"
-msgstr "Allegato"
-
-msgid "choose_model"
-msgstr "Scegli il modello"
-
-msgid "Delete"
-msgstr "Elimina"
-
-msgid "Enter a brief description of the article."
-msgstr "Inserisci una breve descrizione dell'articolo."
-
-msgid "Enter the Name of the article. This is the part that will show up as part of the web address. This should be short, descriptive and preferrably not contain spaces, underscores or mixed case. Example: \"new-products-2002\""
-msgstr "Inserisci il nome dell'articolo. Questo &egrave; il nome che appare nel suo indirizzo web (URL). Non dovrebbe contenere spazi, sottolineati o un mix di maiuscole e minuscole. Esempio: \"nuovi-prodotti-2002\""
-
-msgid "Fill in the details of this Plone Article."
-msgstr "Riempi i dettagli di questo Plone Article"
-
-msgid "Here you can add an attachment to the article:<br />"
-msgstr "Qui puoi aggiungere un allegato all'articolo:<br />"
-
-msgid "Here you can add an image to the article:<br />"
-msgstr "Qui puoi aggiungere un'immagine all'articolo:<br />"
-
-msgid "Image"
-msgstr "Immagine"
-
-msgid "Model"
-msgstr "Modello"
-
-msgid "models"
-msgstr "Modelli"
-
-msgid "Ok"
-msgstr "OK"
-
-msgid "Plone Article Details"
-msgstr "Dettagli del Plone Article"
-
-msgid "PloneArticle"
-msgstr "Articolo"
-
-msgid "Save"
-msgstr "Registra"
-
-msgid "Specifies the layout model that the PloneArticle should be rendered with."
-msgstr "Specifica come vuoi che PloneArticle sia impaginato."
-
-msgid "You can add multiple attachments to the article"
-msgstr "Puoi aggiungere pi&ugrave; allegati all'articolo"
-
-msgid "You can add multiple images to the article.<br />"
-msgstr "Puoi aggiungere pi&ugrave; immagini all'articolo.<br />"
-
-msgid "You can choose a layout for the Plone Article."
-msgstr "Puoi scegliere una impaginazione per Plone Article."
-
-msgid "description_edit_plonearticle"
-msgstr "Fornite le informazioni concernenti l'articolo."
-
-msgid "description_plonearticle_attachments"
-msgstr "Puoi aggiungere pi&ugrave; allegati all'articolo."
-
-msgid "description_plonearticle_images"
-msgstr "Puoi aggiungere pi&ugrave; immagini all'articolo."
-
-msgid "heading_edit_item"
-msgstr "Modifica l'elemento di tipo ${itemtype}"
-
-msgid "help_body_text"
-msgstr "Il corpo del testo dell'articolo."
-
-msgid "help_description"
-msgstr "Scegli una breve descrizione dell'elemento."
-
-msgid "help_name"
-msgstr "Indica un <strong>nome breve</strong> per questo elemento. Questo &egrave; il nome che appare nel suo indirizzo web (URL). Non dovrebbe contenere spazi, sottolineati o un mix di maiuscole e minuscole. Per esempio: \"&nbsp;rapporto-spese-2002&nbsp;\""
-
-msgid "help_title"
-msgstr "Scegli il titolo dell'articolo."
-
-msgid "help_upload_file"
-msgstr "Con questa funzione puoi allegare un file che risiede sul tuo computer."
-
-msgid "label_body_text"
-msgstr "Corpo del testo"
-
-msgid "label_description"
-msgstr "Descrizione"
-
-msgid "label_name"
-msgstr "Nome"
-
-msgid "label_title"
-msgstr "Titolo"
-
-msgid "label_upload_file"
-msgstr "Carica il file"
-
-msgid "legend_attachments"
-msgstr "File allegati"
-
-msgid "legend_document_details"
-msgstr "Dettagli dell'articolo"
-
-msgid "legend_images"
-msgstr "Immagini"
-
-#, fuzzy
-msgid "plonearticle_add_attachment"
-msgstr "File allegato (facoltativo)"
-
-#, fuzzy
-msgid "plonearticle_add_image"
-msgstr "Puoi modificare le informazioni concernenti l'immagine e caricare il file corrispondente."
-
-msgid "Up"
-msgstr "Su"
-
-msgid "Down"
-msgstr "Gi&ugrave;"
-
-msgid "choose_layout"
-msgstr "Scegli un modello per impaginare l'articolo."
-
-msgid "help_choose_model"
-msgstr "Scegli come vuoi che PloneArticle sia impaginato."
-
-msgid "choose_model"
-msgstr "Scegli il modello"
-
-msgid "This attachment is not indexed."
-msgstr "Questo allegato non &egrave; catalogato nel motore di ricerca."
-
-msgid "help_file_title"
-msgstr "Indica il titolo del file."
-
-msgid "txt_not_locked"
-msgstr "Questo articolo non &egrave; bloccato."
-
-msgid "text_lock_to_edit"
-msgstr "Devi bloccare questo articolo se desideri editarlo."
-
-msgid "txt_locked_by"
-msgstr "Questo articolo &egrave; bloccato da:"
-
-msgid "model1_description"
-msgstr "Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in fondo al documento.<br />Questa &egrave; una disposizione di base che pu&ograve; essere utilizzata pe la documentazione.<br />"
-
-msgid "model2_description"
-msgstr "Modello articolo di giornale.<br />La prima immagine &egrave; posizionata all'interno del testo.<br />Le altre immagini sono disposte a destra e gli allegati in fondo al documento..<br />Questo &egrave; un modello che pu&ograve; essere utilizzato per gli articoli destinati alla lettura.<br />"
-
-msgid "help_image_title"
-msgstr "Inserisci la didascalia dell'immagine."
-
-msgid "Model layout"
-msgstr "Modello d'impaginazione"
-
-msgid "preview"
-msgstr "Anteprima"
-
-msgid "label_upload_image"
-msgstr "Carica il file"
-
-msgid "help_upload_image"
-msgstr "Puoi utilzzare questa funzione per aggiungere un'immagine all'articolo."
-
-msgid "Documentation model"
-msgstr "Modello semplice"
-
-msgid "Newspaper article model"
-msgstr "Modello articolo di giornale"
-
+# Maik Röder <maik.roeder at ingeniweb.com>, 2003
+msgid ""
+msgstr ""
+"Project-Id-Version: PloneArticle 2.0\n"
+"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"PO-Revision-Date: 2004-04-07 20:26+0100\n"
+"Last-Translator: Enzo Cesanelli <enzo at noiza.com>\n"
+"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: it\n"
+"X-Is-Fallback-For: it-ch\n"
+"Language-name: Italian\n"
+"Preferred-encodings: latin1\n"
+"Domain: plonearticle\n"
+"X-Is-Fallback-For:\n"
+
+msgid "label_view_table_of_contents_first"
+msgstr ""
+
+msgid "label_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+msgid "description_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+#, fuzzy
+msgid "label_table_of_contents"
+msgstr "Corpo del testo"
+
+msgid "label_previous"
+msgstr ""
+
+#, fuzzy
+msgid "label_next"
+msgstr "Nome"
+
+#, fuzzy
+msgid "Article"
+msgstr "Articolo"
+
+#, fuzzy
+msgid "legend_models"
+msgstr "Immagini"
+
+msgid "description_edit_plonearticle"
+msgstr "Fornite le informazioni concernenti l'articolo."
+
+msgid "description_plonearticle_attachments"
+msgstr "Puoi aggiungere pi&ugrave; allegati all'articolo."
+
+msgid "description_plonearticle_images"
+msgstr "Puoi aggiungere pi&ugrave; immagini all'articolo."
+
+#, fuzzy
+msgid "description_plonearticle_links"
+msgstr "Puoi aggiungere pi&ugrave; immagini all'articolo."
+
+msgid "heading_edit_item"
+msgstr "Modifica l'elemento di tipo ${itemtype}"
+
+msgid "help_body_text"
+msgstr "Il corpo del testo dell'articolo."
+
+msgid "help_description"
+msgstr "Scegli una breve descrizione dell'elemento."
+
+msgid "help_name"
+msgstr ""
+"Indica un <strong>nome breve</strong> per questo elemento. Questo &egrave; "
+"il nome che appare nel suo indirizzo web (URL). Non dovrebbe contenere "
+"spazi, sottolineati o un mix di maiuscole e minuscole. Per esempio: \"&nbsp;"
+"rapporto-spese-2002&nbsp;\""
+
+msgid "help_title"
+msgstr "Scegli il titolo dell'articolo."
+
+#, fuzzy
+msgid "help_upload_attachment"
+msgstr ""
+"Puoi utilzzare questa funzione per aggiungere un'immagine all'articolo."
+
+msgid "label_body_text"
+msgstr "Corpo del testo"
+
+msgid "label_description"
+msgstr "Descrizione"
+
+msgid "label_name"
+msgstr "Nome"
+
+msgid "label_title"
+msgstr "Titolo"
+
+#, fuzzy
+msgid "label_upload_attachment"
+msgstr "Carica il file"
+
+msgid "legend_attachments"
+msgstr "File allegati"
+
+msgid "legend_document_details"
+msgstr "Dettagli dell'articolo"
+
+msgid "legend_images"
+msgstr "Immagini"
+
+#, fuzzy
+msgid "legend_links"
+msgstr "Immagini"
+
+#, fuzzy
+msgid "plonearticle_add_attachment"
+msgstr "File allegato (facoltativo)"
+
+#, fuzzy
+msgid "help_attachment_paste"
+msgstr "File allegati"
+
+#, fuzzy
+msgid "help_image_paste"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "help_link_paste"
+msgstr ""
+"Indica un <strong>nome breve</strong> per questo elemento. Questo &egrave; "
+"il nome che appare nel suo indirizzo web (URL). Non dovrebbe contenere "
+"spazi, sottolineati o un mix di maiuscole e minuscole. Per esempio: \"&nbsp;"
+"rapporto-spese-2002&nbsp;\""
+
+#, fuzzy
+msgid "plonearticle_add_image"
+msgstr ""
+"Puoi modificare le informazioni concernenti l'immagine e caricare il file "
+"corrispondente."
+
+msgid "Up"
+msgstr "Su"
+
+msgid "Down"
+msgstr "Gi&ugrave;"
+
+msgid "choose_layout"
+msgstr "Scegli un modello per impaginare l'articolo."
+
+msgid "help_choose_model"
+msgstr "Scegli come vuoi che PloneArticle sia impaginato."
+
+#, fuzzy
+msgid "label_choose_model"
+msgstr "Scegli come vuoi che PloneArticle sia impaginato."
+
+msgid "This attachment is not indexed."
+msgstr "Questo allegato non &egrave; catalogato nel motore di ricerca."
+
+#, fuzzy
+msgid "help_attachment_title"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "text_not_locked"
+msgstr "Questo articolo non &egrave; bloccato."
+
+msgid "text_lock_to_edit"
+msgstr "Devi bloccare questo articolo se desideri editarlo."
+
+msgid "txt_locked_by"
+msgstr "Questo articolo &egrave; bloccato da:"
+
+msgid "model1_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+msgid "model2_description"
+msgstr ""
+"Modello articolo di giornale.<br />La prima immagine &egrave; posizionata "
+"all'interno del testo.<br />Le altre immagini sono disposte a destra e gli "
+"allegati in fondo al documento..<br />Questo &egrave; un modello che "
+"pu&ograve; essere utilizzato per gli articoli destinati alla lettura.<br />"
+
+#, fuzzy
+msgid "model3_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+#, fuzzy
+msgid "model4_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+#, fuzzy
+msgid "model5_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+#, fuzzy
+msgid "model6_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+#, fuzzy
+msgid "model7_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+#, fuzzy
+msgid "model8_description"
+msgstr ""
+"Modello semplice.<br />Le immagini sono disposte a destra e gli allegati in "
+"fondo al documento.<br />Questa &egrave; una disposizione di base che "
+"pu&ograve; essere utilizzata pe la documentazione.<br />"
+
+msgid "help_image_title"
+msgstr "Inserisci la didascalia dell'immagine."
+
+msgid "Model layout"
+msgstr "Modello d'impaginazione"
+
+msgid "preview"
+msgstr "Anteprima"
+
+msgid "label_upload_image"
+msgstr "Carica il file"
+
+msgid "help_upload_image"
+msgstr ""
+"Puoi utilzzare questa funzione per aggiungere un'immagine all'articolo."
+
+msgid "Documentation model"
+msgstr "Modello semplice"
+
+msgid "Newspaper article model"
+msgstr "Modello articolo di giornale"
+
+msgid "Small images"
+msgstr ""
+
+#, fuzzy
+msgid "Big images"
+msgstr "Immagini"
+
+msgid "Small images separated by text"
+msgstr ""
+
+msgid "Big images separated by text"
+msgstr ""
+
+msgid "One big image and a lot of small"
+msgstr ""
+
+msgid "One big image and lots of small and side attachments"
+msgstr ""
+
+#, fuzzy
+msgid "legend_upload_attachment"
+msgstr "File allegati"
+
+#, fuzzy
+msgid "legend_upload_image"
+msgstr "Carica il file"
+
+msgid "legend_add_link"
+msgstr ""
+
+#, fuzzy
+msgid "label_add_link"
+msgstr "Carica il file"
+
+#, fuzzy
+msgid "help_add_link"
+msgstr ""
+"Con questa funzione puoi allegare un file che risiede sul tuo computer."
+
+#, fuzzy
+msgid "help_link_title"
+msgstr "Scegli il titolo dell'articolo."
+
+msgid "Delete"
+msgstr "Elimina"
+
+msgid "Save"
+msgstr "Registra"
+
+msgid "Copy"
+msgstr ""
+
+msgid "Paste as reference"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+#
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+#
+msgid "This is an external reference"
+msgstr ""
+
+#
+# Portal Status Messages :
+#
+#
+# saveAttachmentsChanges.cpy
+#
+msgid "message_attachments_changes_saved"
+msgstr ""
+
+#
+# saveImageChanges.cpy
+#
+msgid "message_images_changes_saved"
+msgstr ""
+
+#
+# plonearticle_link_edit.cpy
+#
+msgid "message_links_changes_saved"
+msgstr ""
+
+#
+# deleteAttachments.cpy
+#
+msgid "message_delete_attachment_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_deleted"
+msgstr "File allegati"
+
+#, fuzzy
+msgid "message_attachments_deleted"
+msgstr "File allegati"
+
+#
+# plonearticle_link_delete.cpy
+#
+msgid "message_delete_link_none_selected"
+msgstr ""
+
+msgid "message_link_deleted"
+msgstr ""
+
+# ${link_count}
+msgid "message_links_deleted"
+msgstr ""
+
+#
+# image_copy.cpy
+#
+msgid "message_copy_items_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_pasted"
+msgstr "Immagini"
+
+msgid "message_image_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_image_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_pasted"
+msgstr "File allegati"
+
+msgid "message_attachment_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_attachment_error"
+msgstr ""
+
+#
+# plonearticle_link_paste.cpy
+#
+msgid "message_link_pasted"
+msgstr ""
+
+msgid "message_link_clipboard_error"
+msgstr ""
+
+# ${link_count}, ${link_count}
+msgid "message_paste_link_error"
+msgstr ""
+
+# deleteImages.cpy
+msgid "message_delete_image_none_selected"
+msgstr ""
+
+msgid "message_image_deleted"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_added"
+msgstr "File allegati"
+
+#, fuzzy
+msgid "message_max_attachment_size"
+msgstr "File allegati"
+
+# plonearticle_link_edit.cpy
+#
+msgid "message_link_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_max_image_size"
+msgstr ""
+
+msgid "message_image_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_model_selected"
+msgstr ""
+
+#
+# toggleArticleLock.py
+#
+msgid "message_article_unlocked"
+msgstr ""
+
+msgid "message_article_locked"
+msgstr ""
+
+#, fuzzy
+msgid "text_locked_by"
+msgstr "Questo articolo &egrave; bloccato da:"
+
+#, fuzzy
+msgid "heading_plonearticle_prefs"
+msgstr "Puoi aggiungere pi&ugrave; immagini all'articolo."
+
+msgid "option_undefined"
+msgstr ""
+
+#, fuzzy
+msgid "legend_default_prefs_details"
+msgstr "Dettagli dell'articolo"
+
+msgid "label_text_formats_prefs"
+msgstr ""
+
+msgid "help_text_formats_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_models_prefs"
+msgstr "Corpo del testo"
+
+msgid "help_models_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "legend_attachment_prefs_details"
+msgstr "Dettagli dell'articolo"
+
+msgid "label_attachment_content_type_prefs"
+msgstr ""
+
+msgid "help_attachment_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_attachment_content_types_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "help_referenceable_attachment_content_types_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "legend_image_prefs_details"
+msgstr "Dettagli dell'articolo"
+
+msgid "label_image_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_image_content_type_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "label_referenceable_image_content_types_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "help_referenceable_image_content_types_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "legend_link_prefs_details"
+msgstr "Dettagli dell'articolo"
+
+msgid "label_link_content_type_prefs"
+msgstr ""
+
+msgid "help_link_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_link_content_types_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+#, fuzzy
+msgid "help_referenceable_link_content_types_prefs"
+msgstr "Inserisci la didascalia dell'immagine."
+
+msgid "Input is required."
+msgstr ""
+
+msgid "label_lock_support"
+msgstr ""
+
+msgid "help_lock_support"
+msgstr ""
+
+msgid "label_cmfeditions_support"
+msgstr ""
+
+msgid "help_cmfeditions_support"
+msgstr ""
+
+#, fuzzy
+msgid "label_max_attachment_size"
+msgstr "File allegati"
+
+#, fuzzy
+msgid "help_max_attachment_size"
+msgstr "File allegati"
+
+#, fuzzy
+msgid "label_max_image_size"
+msgstr "Carica il file"
+
+#, fuzzy
+msgid "help_max_image_size"
+msgstr "Inserisci la didascalia dell'immagine."
+
+msgid "label_preview_activated"
+msgstr ""
+
+#, fuzzy
+msgid "help_preview_activated"
+msgstr "Indica il titolo del file."
+
+#, fuzzy
+msgid "text_no_articles"
+msgstr "Questo articolo non &egrave; bloccato."
+
+#, fuzzy
+msgid "Download"
+msgstr "Gi&ugrave;"
+
+msgid "Gb"
+msgstr ""
+
+msgid "Mb"
+msgstr ""
+
+msgid "Kb"
+msgstr ""
+
+msgid "Bytes"
+msgstr ""
+
+#~ msgid "A Plone Article is a document with images and attachments."
+#~ msgstr "Un Plone Article &egrave; un documento con immagini e allegati."
+
+#~ msgid "Attachment"
+#~ msgstr "Allegato"
+
+#~ msgid "choose_model"
+#~ msgstr "Scegli il modello"
+
+#~ msgid "Enter a brief description of the article."
+#~ msgstr "Inserisci una breve descrizione dell'articolo."
+
+#~ msgid ""
+#~ "Enter the Name of the article. This is the part that will show up as part "
+#~ "of the web address. This should be short, descriptive and preferrably not "
+#~ "contain spaces, underscores or mixed case. Example: \"new-products-2002\""
+#~ msgstr ""
+#~ "Inserisci il nome dell'articolo. Questo &egrave; il nome che appare nel "
+#~ "suo indirizzo web (URL). Non dovrebbe contenere spazi, sottolineati o un "
+#~ "mix di maiuscole e minuscole. Esempio: \"nuovi-prodotti-2002\""
+
+#~ msgid "Fill in the details of this Plone Article."
+#~ msgstr "Riempi i dettagli di questo Plone Article"
+
+#~ msgid "Here you can add an attachment to the article:<br />"
+#~ msgstr "Qui puoi aggiungere un allegato all'articolo:<br />"
+
+#~ msgid "Here you can add an image to the article:<br />"
+#~ msgstr "Qui puoi aggiungere un'immagine all'articolo:<br />"
+
+#~ msgid "Image"
+#~ msgstr "Immagine"
+
+#~ msgid "Model"
+#~ msgstr "Modello"
+
+#~ msgid "models"
+#~ msgstr "Modelli"
+
+#~ msgid "Ok"
+#~ msgstr "OK"
+
+#~ msgid "Plone Article Details"
+#~ msgstr "Dettagli del Plone Article"
+
+#~ msgid ""
+#~ "Specifies the layout model that the PloneArticle should be rendered with."
+#~ msgstr "Specifica come vuoi che PloneArticle sia impaginato."
+
+#~ msgid "You can add multiple attachments to the article"
+#~ msgstr "Puoi aggiungere pi&ugrave; allegati all'articolo"
+
+#~ msgid "You can add multiple images to the article.<br />"
+#~ msgstr "Puoi aggiungere pi&ugrave; immagini all'articolo.<br />"
+
+#~ msgid "You can choose a layout for the Plone Article."
+#~ msgstr "Puoi scegliere una impaginazione per Plone Article."

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone.pot
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone.pot	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone.pot	2006-10-21 20:56:22 UTC (rev 321)
@@ -3,17 +3,17 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PloneArticle\n"
-"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
-"PO-Revision-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
+"POT-Creation-Date: 2003-05-06 09:05\n"
+"PO-Revision-Date: 2003-05-06 09:05\n"
 "Last-Translator:  <>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf8\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Language-code: en\n"
 "Language-name: English\n"
-"Preferred-encodings: latin1 utf-8\n"
+"Preferred-encodings: utf-8 latin1\n"
 "Domain: plone\n"
 "X-Is-Fallback-For: en\n"
 
@@ -23,10 +23,10 @@
 #edit form legend
 #${type}
 msgid "legend_type_details"
-msgstr "Détails ${type}"
+msgstr "Détails ${type}"
 
 msgid "Attachments"
-msgstr "pièces-jointes"
+msgstr "pièces-jointes"
 
 msgid "Images"
 msgstr "images"
@@ -36,7 +36,7 @@
 
 #quick action
 msgid "Toggle Lock"
-msgstr "Verrouiller / Déverrouiller"
+msgstr "Verrouiller / Déverrouiller"
 
 msgid "PloneArticle Preferences"
 msgstr ""

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_da.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_da.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_da.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PloneArticle 2.0\n"
-"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
 "PO-Revision-Date: 2004-03-23 17:25+0100\n"
 "Last-Translator: Anton Stonor <stonor at giraffen.dk>\n"
 "Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
@@ -17,53 +17,70 @@
 "Domain: plone\n"
 "X-Is-Fallback-For:\n"
 
-
 msgid "PloneArticle has been created."
 msgstr "Artiklen er oprettet."
 
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Détails ${type}"
 
-msgid "Model"
-msgstr "Layout"
-
 msgid "Attachments"
 msgstr "Filer"
 
 msgid "Images"
 msgstr "Billeder"
 
-msgid "Changes have been saved."
-msgstr "Ændringerne er gemt."
+msgid "Links"
+msgstr "links"
 
-msgid "No attachments selected for deletion."
-msgstr "Ingen vedhæftede filer er valgt til at blive slettet."
+# quick action
+msgid "Toggle Lock"
+msgstr "Verrouiller / Déverrouiller"
 
-msgid "Attachment deleted"
-msgstr "De(n) vedhæftede fil(er) er slettet."
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "Artiklen er oprettet."
 
-msgid "No image selected for deletion"
-msgstr "Ingen billeder valgt til at blive slettet."
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "Artiklen er oprettet."
 
-msgid "Image deleted"
-msgstr "Billeder slettet."
+#~ msgid "Model"
+#~ msgstr "Layout"
 
-msgid "Attachment added"
-msgstr "Filen er nu vedhæftet."
+#~ msgid "Changes have been saved."
+#~ msgstr "Ændringerne er gemt."
 
-msgid "Attachment exceeds allowed maximum size"
-msgstr "Filen fylder mere end den må."
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "Ingen vedhæftede filer er valgt til at blive slettet."
 
-msgid "Image exceeds allowed maximum size"
-msgstr "Billedet fylder mere end det må."
+#~ msgid "Attachment deleted"
+#~ msgstr "De(n) vedhæftede fil(er) er slettet."
 
-msgid "Image added"
-msgstr "Billede tilknyttet."
+#~ msgid "No image selected for deletion"
+#~ msgstr "Ingen billeder valgt til at blive slettet."
 
-msgid "Selected model for layout."
-msgstr "Vælg et layout."
+#~ msgid "Image deleted"
+#~ msgstr "Billeder slettet."
 
-msgid "Article has been locked"
-msgstr "Artiklen er låst"
+#~ msgid "Attachment added"
+#~ msgstr "Filen er nu vedhæftet."
 
-msgid "Article has been unlocked"
-msgstr "Låsen er fjernet fra artiklen"
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "Filen fylder mere end den må."
 
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "Billedet fylder mere end det må."
+
+#~ msgid "Image added"
+#~ msgstr "Billede tilknyttet."
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Vælg et layout."
+
+#~ msgid "Article has been locked"
+#~ msgstr "Artiklen er låst"
+
+#~ msgid "Article has been unlocked"
+#~ msgstr "Låsen er fjernet fra artiklen"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_de.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_de.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_de.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,8 +1,9 @@
 # Gettext Message File for PloneArticle.
 # German translation team <support at ingeniweb.com>
 msgid ""
-msgstr "Project-Id-Version: Plone Article Message Catalog\n"
-"POT-Creation-Date: 2003-02-27 17:02+Westeuropäische Normalzeit\n"
+msgstr ""
+"Project-Id-Version: Plone Article Message Catalog\n"
+"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
 "PO-Revision-Date: 2003-02-27 17:02+Westeuropäische Normalzeit\n"
 "Last-Translator: Maik Roeder <maik.roeder at ingeniweb.com>\n"
 "Language-Team: de <maik.roeder at ingeniweb.com>\n"
@@ -19,8 +20,10 @@
 msgid "PloneArticle has been created."
 msgstr "Artikel wurde erstellt."
 
-msgid "Model"
-msgstr "Modell"
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Détails ${type}"
 
 msgid "Attachments"
 msgstr "Anhänge"
@@ -28,45 +31,55 @@
 msgid "Images"
 msgstr "Bilder"
 
-msgid "Changes have been saved."
-msgstr "Ihre Änderungen wurden gespeichert."
+msgid "Links"
+msgstr "links"
 
-msgid "No attachments selected for deletion."
-msgstr "Kein Anhang zum Löschen ausgewählt."
+msgid "Toggle Lock"
+msgstr "Sperren / Entriegeln"
 
-msgid "Attachment deleted"
-msgstr "Anhang gelöscht."
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "Artikel wurde erstellt."
 
-msgid "No image selected for deletion"
-msgstr "Kein Bild zum Löschen ausgewählt."
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "Artikel wurde erstellt."
 
-msgid "Image deleted"
-msgstr "Bild gelöscht."
+#~ msgid "Model"
+#~ msgstr "Modell"
 
-#Warning already translate in plone
-msgid "Document changes saved."
-msgstr ""
+#~ msgid "Changes have been saved."
+#~ msgstr "Ihre Änderungen wurden gespeichert."
 
-msgid "Attachment added"
-msgstr "Anhang hinzugefügt."
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "Kein Anhang zum Löschen ausgewählt."
 
-msgid "Attachment exceeds allowed maximum size"
-msgstr "Der Anhang ist größer als erlaubt."
+#~ msgid "Attachment deleted"
+#~ msgstr "Anhang gelöscht."
 
-msgid "Image exceeds allowed maximum size"
-msgstr "Das Bild ist größer als erlaubt."
+#~ msgid "No image selected for deletion"
+#~ msgstr "Kein Bild zum Löschen ausgewählt."
 
-msgid "Image added"
-msgstr "Bild hinzugefügt."
+#~ msgid "Image deleted"
+#~ msgstr "Bild gelöscht."
 
-msgid "Selected model for layout."
-msgstr "Das Modell wurde als Layout ausgewählt."
+#~ msgid "Attachment added"
+#~ msgstr "Anhang hinzugefügt."
 
-msgid "Article has been locked"
-msgstr "Der Artikel wurde gesperrt."
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "Der Anhang ist größer als erlaubt."
 
-msgid "Article has been unlocked"
-msgstr "Der Artikel wurde entriegelt."
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "Das Bild ist größer als erlaubt."
 
-msgid "Toggle Lock"
-msgstr "Sperren / Entriegeln"
+#~ msgid "Image added"
+#~ msgstr "Bild hinzugefügt."
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Das Modell wurde als Layout ausgewählt."
+
+#~ msgid "Article has been locked"
+#~ msgstr "Der Artikel wurde gesperrt."
+
+#~ msgid "Article has been unlocked"
+#~ msgstr "Der Artikel wurde entriegelt."

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_en.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_en.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_en.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PloneArticle 2.0\n"
-"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
 "PO-Revision-Date: 2004-02-23 17:25+0100\n"
 "Last-Translator: Nicolas Geissel <nicolas.geissel at ingeniweb.com>\n"
 "Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
@@ -15,16 +15,16 @@
 "Language-name: English\n"
 "Preferred-encodings: latin1\n"
 "Domain: plone\n"
-"X-Is-Fallback-For: en-au en-bz en-ca en-ie en-jm en-nz en-ph en-za en-tt en-gb en-us en-zw\n"
+"X-Is-Fallback-For: en-au en-bz en-ca en-ie en-jm en-nz en-ph en-za en-tt en-"
+"gb en-us en-zw\n"
 
-msgid "PloneArticle"
-msgstr "Article"
-
 msgid "PloneArticle has been created."
 msgstr "Article has been created."
 
-msgid "Model"
-msgstr "model"
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Détails ${type}"
 
 msgid "Attachments"
 msgstr "Attachments"
@@ -32,41 +32,55 @@
 msgid "Images"
 msgstr "Images"
 
-msgid "Changes have been saved."
-msgstr "Changes have been saved."
+msgid "Links"
+msgstr "links"
 
-msgid "No attachments selected for deletion."
-msgstr "No attachments selected for deletion."
+msgid "Toggle Lock"
+msgstr "Toggle Lock"
 
-msgid "Attachment deleted"
-msgstr "Attachment deleted"
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "Article"
 
-msgid "No image selected for deletion"
-msgstr "No image selected for deletion"
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "Article has been created."
 
-msgid "Image deleted"
-msgstr "Image deleted"
+#~ msgid "Model"
+#~ msgstr "model"
 
-msgid "Attachment added"
-msgstr "Attachment added"
+#~ msgid "Changes have been saved."
+#~ msgstr "Changes have been saved."
 
-msgid "Attachment exceeds allowed maximum size"
-msgstr "Attachment exceeds allowed maximum size"
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "No attachments selected for deletion."
 
-msgid "Image exceeds allowed maximum size"
-msgstr "Image exceeds allowed maximum size"
+#~ msgid "Attachment deleted"
+#~ msgstr "Attachment deleted"
 
-msgid "Image added"
-msgstr "Image added"
+#~ msgid "No image selected for deletion"
+#~ msgstr "No image selected for deletion"
 
-msgid "Selected model for layout."
-msgstr "Selected model for layout."
+#~ msgid "Image deleted"
+#~ msgstr "Image deleted"
 
-msgid "Article has been locked"
-msgstr "Article has been locked"
+#~ msgid "Attachment added"
+#~ msgstr "Attachment added"
 
-msgid "Article has been unlocked"
-msgstr "Article has been unlocked"
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "Attachment exceeds allowed maximum size"
 
-msgid "Toggle Lock"
-msgstr "Toggle Lock"
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "Image exceeds allowed maximum size"
+
+#~ msgid "Image added"
+#~ msgstr "Image added"
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Selected model for layout."
+
+#~ msgid "Article has been locked"
+#~ msgstr "Article has been locked"
+
+#~ msgid "Article has been unlocked"
+#~ msgstr "Article has been unlocked"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_fr.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_fr.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_fr.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,50 +1,50 @@
+# translation of PloneArticle_plone_fr.po to
+# Maik Röder <maik.roeder at ingeniweb.com>, 2003.
+# Encolpe Degoute <encolpe.degoute at ingeniweb.com>, 2006.
 # Gettext Message File for PloneArticle.
-# Maik Röder <maik.roeder at ingeniweb.com>, 2003
 msgid ""
 msgstr ""
-"Project-Id-Version: PloneArticle 3\n"
-"POT-Creation-Date: 2003-05-06 09:05+0100\n"
-"PO-Revision-Date: 2005-08-19 10:18+0200\n"
-"Last-Translator: Nicolas Geissel <nicolas.geissel at ingeniweb.com>\n"
-"Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
+"Project-Id-Version: PloneArticle_plone_fr\n"
+"POT-Creation-Date: 2003-05-06 09:05\n"
+"PO-Revision-Date: 2006-09-12 20:16+0200\n"
+"Last-Translator: Encolpe Degoute <encolpe.degoute at ingeniweb.com>\n"
+"Language-Team:  <support at ingeniweb.com>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
 "Language-code: fr\n"
-"Language-name: Français\n"
+"Language-name: Français\n"
 "Preferred-encodings: latin1 utf-8\n"
 "Domain: plone\n"
 "X-Is-Fallback-For: fr-be fr-ca fr-lu fr-mc fr-ch fr-fr\n"
+"X-Generator: KBabel 1.11.4\n"
 
 msgid "PloneArticle has been created."
-msgstr "L'article a été créé."
+msgstr "L'article a été créé."
 
-#edit form legend
-#${type}
+# edit form legend
+# ${type}
 msgid "legend_type_details"
-msgstr "Détails ${type}"
+msgstr "Détails ${type}"
 
-msgid "Model"
-msgstr "modèle"
-
 msgid "Attachments"
-msgstr "pièces-jointes"
+msgstr "Pièces-jointes"
 
 msgid "Images"
-msgstr "images"
+msgstr "Images"
 
 msgid "Links"
-msgstr "liens"
+msgstr "Liens"
 
 msgid "Toggle Lock"
-msgstr "Verrouiller / Déverrouiller"
+msgstr "Verrouiller / Déverrouiller"
 
 msgid "PloneArticle Preferences"
 msgstr "Configuration de PloneArticle"
 
 msgid "PloneArticle properties changes saved."
-msgstr "Les changements effectués sur les propriétés de PloneArticle ont été enregistrés."
+msgstr ""
+"Les changements effectués sur les propriétés de PloneArticle ont été "
+"enregistrés."
 
-msgid "Multipage article"
-msgstr "MultiArticle"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_it.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_it.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_it.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PloneArticle 2.0\n"
-"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
 "PO-Revision-Date: 2004-04-07 12:41+0100\n"
 "Last-Translator: Enzo Cesanelli <enzo at noiza.com>\n"
 "Language-Team: Maik Roeder <maik.roeder at ingeniweb.com>\n"
@@ -17,57 +17,74 @@
 "Domain: plone\n"
 "X-Is-Fallback-For:\n"
 
-
 msgid "PloneArticle has been created."
 msgstr "PloneArticle &egrave; stato creato."
 
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Détails ${type}"
 
-msgid "Model"
-msgstr "Modello"
-
 msgid "Attachments"
 msgstr "Allegati"
 
 msgid "Images"
 msgstr "Immagini"
 
-msgid "Changes have been saved."
-msgstr "Le modifiche sono state registrate."
+msgid "Links"
+msgstr "links"
 
-msgid "No attachments selected for deletion."
-msgstr "Non &egrave; stato selezionato alcun allegato da eliminare."
+# quick action
+msgid "Toggle Lock"
+msgstr "Verrouiller / Déverrouiller"
 
-msgid "Attachment deleted"
-msgstr "L'allegato &egrave; stato eliminato."
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "PloneArticle &egrave; stato creato."
 
-msgid "No image selected for deletion"
-msgstr "Non &egrave; stata selezionata alcuna immagine da eliminare."
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "PloneArticle &egrave; stato creato."
 
-msgid "Image deleted"
-msgstr "L'immagine &egrave; stata eliminata."
+#~ msgid "Model"
+#~ msgstr "Modello"
 
-#Warning already translate in plone
-msgid "Document changes saved."
-msgstr "Le modifiche al documento sono state registrate"
+#~ msgid "Changes have been saved."
+#~ msgstr "Le modifiche sono state registrate."
 
-msgid "Attachment added"
-msgstr "L'allegato &egrave; stato aggiunto."
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "Non &egrave; stato selezionato alcun allegato da eliminare."
 
-msgid "Attachment exceeds allowed maximum size"
-msgstr "L'allegato eccede la dimensione massima consentita"
+#~ msgid "Attachment deleted"
+#~ msgstr "L'allegato &egrave; stato eliminato."
 
-msgid "Image exceeds allowed maximum size"
-msgstr "L'immagine eccede la dimensione massima consentita"
+#~ msgid "No image selected for deletion"
+#~ msgstr "Non &egrave; stata selezionata alcuna immagine da eliminare."
 
-msgid "Image added"
-msgstr "L'immagine &egrave; stata aggiunta."
+#~ msgid "Image deleted"
+#~ msgstr "L'immagine &egrave; stata eliminata."
 
-msgid "Selected model for layout."
-msgstr "Il modello per l'impaginazione &egrave; stato selezionato."
+# Warning already translate in plone
+#~ msgid "Document changes saved."
+#~ msgstr "Le modifiche al documento sono state registrate"
 
-msgid "Article has been locked"
-msgstr "L'articolo &egrave; stato bloccato"
+#~ msgid "Attachment added"
+#~ msgstr "L'allegato &egrave; stato aggiunto."
 
-msgid "Article has been unlocked"
-msgstr "L'articolo &egrave; stato sbloccato"
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "L'allegato eccede la dimensione massima consentita"
 
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "L'immagine eccede la dimensione massima consentita"
+
+#~ msgid "Image added"
+#~ msgstr "L'immagine &egrave; stata aggiunta."
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Il modello per l'impaginazione &egrave; stato selezionato."
+
+#~ msgid "Article has been locked"
+#~ msgstr "L'articolo &egrave; stato bloccato"
+
+#~ msgid "Article has been unlocked"
+#~ msgstr "L'articolo &egrave; stato sbloccato"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_ja.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_ja.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_ja.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PloneArticle\n"
-"POT-Creation-Date: 2003-05-06 09:05+Westeurop䩳che Normalzeit\n"
+"POT-Creation-Date: 2003-05-06 09:05+Westeuropische Normalzeit\n"
 "PO-Revision-Date: 2004-06-17 16:56+0900\n"
 "Last-Translator: Tamakoshi Hiroki <tamakoshi at planetcomp.com>\n"
 "Language-Team: Tamakoshi Hiroki <tamakoshi at planetcomp.com>\n"
@@ -17,12 +17,13 @@
 "Domain: plone\n"
 "X-Is-Fallback-For:\n"
 
-
 msgid "PloneArticle has been created."
 msgstr "PloneArticleを作りました。"
 
-msgid "Model"
-msgstr "表示方法"
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Dtails ${type}"
 
 msgid "Attachments"
 msgstr "添付ファイル"
@@ -30,37 +31,50 @@
 msgid "Images"
 msgstr "画像"
 
-msgid "Changes have been saved."
-msgstr "変更しました。"
+msgid "Links"
+msgstr "links"
 
-msgid "No attachments selected for deletion."
-msgstr "削除するファイルを選んでください。"
+# quick action
+msgid "Toggle Lock"
+msgstr "Verrouiller / Dverrouiller"
 
-msgid "Attachment deleted"
-msgstr "ファイルを削除しました。"
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "PloneArticleを作りました。"
 
-msgid "No image selected for deletion"
-msgstr "削除する画像を選んで下さい。"
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "PloneArticleを作りました。"
 
-msgid "Image deleted"
-msgstr "画像を削除しました。"
+#~ msgid "Model"
+#~ msgstr "表示方法"
 
-msgid "Attachment added"
-msgstr "添付ファイルを追加しました。"
+#~ msgid "Changes have been saved."
+#~ msgstr "変更しました。"
 
-msgid "Attachment exceeds allowed maximum size"
-msgstr "添付ファイルの大きさが許容量を超えています。"
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "削除するファイルを選んでください。"
 
-msgid "Image exceeds allowed maximum size"
-msgstr "画像の大きさが許容量を超えています。"
+#~ msgid "Attachment deleted"
+#~ msgstr "ファイルを削除しました。"
 
-msgid "Image added"
-msgstr "画像を追加しました。"
+#~ msgid "No image selected for deletion"
+#~ msgstr "削除する画像を選んで下さい。"
 
-msgid "Selected model for layout."
-msgstr "表示方法を設定しました。"
+#~ msgid "Image deleted"
+#~ msgstr "画像を削除しました。"
 
-msgid "Article has been unlocked"
-msgstr ""
+#~ msgid "Attachment added"
+#~ msgstr "添付ファイルを追加しました。"
 
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "添付ファイルの大きさが許容量を超えています。"
 
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "画像の大きさが許容量を超えています。"
+
+#~ msgid "Image added"
+#~ msgstr "画像を追加しました。"
+
+#~ msgid "Selected model for layout."
+#~ msgstr "表示方法を設定しました。"

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_pt-br.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_pt-br.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_pt-br.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,66 +1,86 @@
 # translation of PloneArticle_plone_pt-br.po to Português do Brasil
 # Gettext Message File for PloneArticle.
 # Português do Brasil translation team <tchezope at yahoogroups.com>
-msgid ""
-msgstr ""
-"Project-Id-Version: PloneArticle 2.03\n"
-"POT-Creation-Date: 2003-05-06 09:05+0300\n"
-"PO-Revision-Date: 2004-09-11 18:50-0200\n"
-"Last-Translator: Rafahela Garcia Bazzanella <rafabazzanella at yahoo.com.br>\n"
-"Language-Team: Português do Brasil <tchezope at yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Language-code: pt-br\n"
-"Language-name: Português do Brasil\n"
-"Preferred-encodings: latin1 utf-8\n"
-"Domain: plonearticle\n"
-
-msgid "PloneArticle has been created."
-msgstr "O artigo foi criado."
-
-msgid "Model"
-msgstr "Modelo"
-
-msgid "Attachments"
-msgstr "Anexos"
-
-msgid "Images"
-msgstr "Imagens"
-
-msgid "Changes have been saved."
-msgstr "As alterações foram salvas."
-
-msgid "No attachments selected for deletion."
-msgstr "Nenhum anexo foi selecionado para ser excluído."
-
-msgid "Attachment deleted"
-msgstr "Anexo deletado."
-
-msgid "No image selected for deletion"
-msgstr "Nenhuma imagem foi selecionada para ser excluída."
-
-msgid "Image deleted"
-msgstr "Warning already translate in plone"
-
-msgid "Document changes saved."
-msgstr "As alterações do documento foram salvas."
-
-msgid "Attachment added"
-msgstr "Anexo adicionado"
-
-msgid "Attachment exceeds allowed maximum size"
-msgstr "Anexo excede o tamanho máximo permitido"
-
-msgid "Image exceeds allowed maximum size"
-msgstr "Imagem excede o tamanho máximo permitido"
-
-msgid "Image added"
-msgstr "Imagem adicionada"
-
-msgid "Selected model for layout."
-msgstr "Modelo selecionado para o layout."
-
-msgid "Article has been unlocked"
-msgstr "O artigo foi aberto"
\ No newline at end of file
+msgid ""
+msgstr ""
+"Project-Id-Version: PloneArticle 2.03\n"
+"POT-Creation-Date: 2003-05-06 09:05+Westeuropäische Normalzeit\n"
+"PO-Revision-Date: 2004-09-11 18:50-0200\n"
+"Last-Translator: Rafahela Garcia Bazzanella <rafabazzanella at yahoo.com.br>\n"
+"Language-Team: Português do Brasil <tchezope at yahoogroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: pt-br\n"
+"Language-name: Português do Brasil\n"
+"Preferred-encodings: latin1 utf-8\n"
+"Domain: plonearticle\n"
+
+msgid "PloneArticle has been created."
+msgstr "O artigo foi criado."
+
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Détails ${type}"
+
+msgid "Attachments"
+msgstr "Anexos"
+
+msgid "Images"
+msgstr "Imagens"
+
+msgid "Links"
+msgstr "links"
+
+# quick action
+msgid "Toggle Lock"
+msgstr "Verrouiller / Déverrouiller"
+
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "O artigo foi criado."
+
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "O artigo foi criado."
+
+#~ msgid "Model"
+#~ msgstr "Modelo"
+
+#~ msgid "Changes have been saved."
+#~ msgstr "As alterações foram salvas."
+
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "Nenhum anexo foi selecionado para ser excluído."
+
+#~ msgid "Attachment deleted"
+#~ msgstr "Anexo deletado."
+
+#~ msgid "No image selected for deletion"
+#~ msgstr "Nenhuma imagem foi selecionada para ser excluída."
+
+#~ msgid "Image deleted"
+#~ msgstr "Warning already translate in plone"
+
+#~ msgid "Document changes saved."
+#~ msgstr "As alterações do documento foram salvas."
+
+#~ msgid "Attachment added"
+#~ msgstr "Anexo adicionado"
+
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "Anexo excede o tamanho máximo permitido"
+
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "Imagem excede o tamanho máximo permitido"
+
+#~ msgid "Image added"
+#~ msgstr "Imagem adicionada"
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Modelo selecionado para o layout."
+
+#~ msgid "Article has been unlocked"
+#~ msgstr "O artigo foi aberto"

Added: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_sv.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_sv.po	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_plone_sv.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,87 @@
+# Gettext Message File for PloneArticle.
+# Swedish - Jens Hellqvist <jens at spiro.se>, 2006
+msgid ""
+msgstr ""
+"Project-Id-Version: PloneArticle 3.1\n"
+"POT-Creation-Date: 2003-05-06 09:05\n"
+"PO-Revision-Date: 2006-09-14 09:51+0100\n"
+"Last-Translator: Jens Hellqvist <jens at spiro.se>\n"
+"Language-Team: Jens Hellqvist <jens at spiro.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: sv\n"
+"Language-name: Svenska\n"
+"Preferred-encodings: latin1 utf-8\n"
+"Domain: plone\n"
+
+msgid "PloneArticle has been created."
+msgstr "PloneArticle har skapats."
+
+# edit form legend
+# ${type}
+msgid "legend_type_details"
+msgstr "Détails ${type}"
+
+msgid "Attachments"
+msgstr "Filer"
+
+msgid "Images"
+msgstr "Bilder"
+
+msgid "Links"
+msgstr "Länkar"
+
+msgid "Toggle Lock"
+msgstr "Toggle Lock"
+
+#, fuzzy
+msgid "PloneArticle Preferences"
+msgstr "PloneArticle har skapats."
+
+#, fuzzy
+msgid "PloneArticle properties changes saved."
+msgstr "PloneArticle har skapats."
+
+#~ msgid "PloneArticle"
+#~ msgstr "PloneArticle"
+
+#~ msgid "Model"
+#~ msgstr "Modell"
+
+#~ msgid "Changes have been saved."
+#~ msgstr "Ändringarna har sparats."
+
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "Inga filer valda för radering."
+
+#~ msgid "Attachment deleted"
+#~ msgstr "Filen raderad."
+
+#~ msgid "No image selected for deletion"
+#~ msgstr "Inga bilder valda för radering."
+
+#~ msgid "Image deleted"
+#~ msgstr "Bilden raderad."
+
+#~ msgid "Attachment added"
+#~ msgstr "Fil tillagd."
+
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "Filen är för stor."
+
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "Bilden är för stor."
+
+#~ msgid "Image added"
+#~ msgstr "Bild tillagd."
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Välj en modell för artikeln."
+
+#~ msgid "Article has been locked"
+#~ msgstr "Artikeln är låst."
+
+#~ msgid "Article has been unlocked"
+#~ msgstr "Artikeln är upplåst."

Modified: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_pt-br.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_pt-br.po	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_pt-br.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,228 +1,635 @@
-# translation of PloneArticle_pt-br.po to Português do Brasil
+# translation of PloneArticle_pt-br.po to Português do Brasil
 # Gettext Message File for PloneArticle.
-# Português do Brasil translation team <tchezope at yahoogroups.com>
-msgid ""
-msgstr ""
-"Project-Id-Version: PloneArticle 2.03\n"
-"POT-Creation-Date: 2003-05-06 09:05+0300\n"
-"PO-Revision-Date: 2004-09-11 18:43-0200\n"
-"Last-Translator: Rafahela Garcia Bazzanella <rafabazzanella at yahoo.com.br>\n"
-"Language-Team: Português do Brasil <tchezope at yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Language-code: pt-br\n"
-"Language-name: Português do Brasil\n"
-"Preferred-encodings: latin1 utf-8\n"
-"Domain: plonearticle\n"
-
-msgid "A Plone Article is a document with images and attachments."
-msgstr "Um Artigo do Plone é um documento com imagens e arquivos anexados."
-
-msgid "Attachment"
-msgstr "Anexo"
-
-msgid "Choose Model"
-msgstr "Escolha o Modelo"
-
-msgid "Delete"
-msgstr "Excluir"
-
-msgid "Enter a brief description of the article."
-msgstr "Informe uma breve descrição sobre o artigo."
-
-msgid "Enter the Name of the article. This is the part that will show up as part of the web address. This should be short, descriptive and preferrably not contain spaces, underscores or mixed case. Example: \"new-products-2002\""
-msgstr "Informe o Nome do artigo. Esta é a parte que será mostrada como endereço da web. Ele deve ser curto, descritivo e preferencialmente não conter espaços, sublinhas ou maiúsculas e minúsculas. Exemplo: new-products-2002"
-
-msgid "Fill in the details of this Plone Article."
-msgstr "Preencha os detalhes para este Artigo."
-
-msgid "Here you can add an attachment to the article:<br />"
-msgstr "Aqui você pode adicionar um anexo para o artigo: "
-
-msgid "Here you can add an image to the article:<br />"
-msgstr "Aqui você pode adicionar uma imagem para o artigo: "
-
-msgid "Image"
-msgstr "Image"
-
-msgid "Model"
-msgstr "Modelo"
-
-msgid "models"
-msgstr "Modelos"
-
-msgid "Ok"
-msgstr "Ok"
-
-msgid "Plone Article Details"
-msgstr "Detalhes do Artigo"
-
-msgid "PloneArticle"
-msgstr "Artigo"
-
-msgid "Save"
-msgstr "Salvar"
-
-msgid "Specifies the layout model that the PloneArticle should be rendered with."
-msgstr "Especifique o modelo do layout em que o artigo será renderizado."
-
-msgid "You can add multiple attachments to the article"
-msgstr "Você pode adicionar vários anexos no artigo."
-
-msgid "You can add multiple images to the article.<br />"
-msgstr "Você pode adicionar várias imagens no artigo."
-
-msgid "You can choose a layout for the Plone Article."
-msgstr "Você pode escolher um layout para o Artigo."
-
-msgid "description_edit_plonearticle"
-msgstr "Preencha os detalhes deste documento."
-
-msgid "description_plonearticle_attachments"
-msgstr "Você pode adicionar vários anexos ao artigo."
-
-msgid "description_plonearticle_images"
-msgstr "Você pode adicionar várias imagens no artigo."
-
-msgid "heading_edit_item"
-msgstr "Editar"
-
-msgid "help_body_text"
-msgstr "O corpo do texto do documento."
-
-msgid "help_description"
-msgstr "Informe uma breve descrição do documento."
-
-msgid "help_name"
-msgstr "Informe o Nome do documento. Esta é a parte que aparecerá no endereço web. Ele deve ser curto, descritivo e preferencialmente não deve conter espaços, sublinhas e maiúsculas e minúsculas. Exemplo: expense-report-2002."
-
-msgid "help_title"
-msgstr "Informe o título"
-
-msgid "help_upload_file"
-msgstr "Esta característica pode ser usada para adicionar um arquivo do seu computador para os anexos."
-
-msgid "label_body_text"
-msgstr "Corpo do Texto"
-
-msgid "label_description"
-msgstr "Descrição"
-
-msgid "label_name"
-msgstr "Nome"
-
-msgid "label_title"
-msgstr "Título"
-
-msgid "label_upload_file"
-msgstr "Carregar arquivo"
-
-msgid "legend_attachments"
-msgstr "Anexos"
-
-msgid "legend_document_details"
-msgstr "Detalhes do documento"
-
-msgid "legend_images"
-msgstr "Imagens"
-
-msgid "plonearticle_add_attachment"
-msgstr ""
-
-msgid "plonearticle_add_image"
-msgstr ""
-
-msgid "Up"
-msgstr "Acima"
-
-msgid "Down"
-msgstr "Abaixo"
-
-msgid "choose_layout"
-msgstr "Você pode escolher um layout para o Artigo."
-
-msgid "help_choose_model"
-msgstr "Especifique o modelo do layout que o Artigo deverá ser renderizado."
-
-msgid "choose_model"
-msgstr "Especifique o modelo do layout que o Artigo deverá ser renderizado."
-
-msgid "This attachment is not indexed."
-msgstr "Este anexo não está indexado."
-
-msgid "help_file_title"
-msgstr "Informe o título do Anexo."
-
-msgid "txt_not_locked"
-msgstr "Este artigo não está fechado."
-
-msgid "text_lock_to_edit"
-msgstr "Você deve fechar este artigo se quiser editá-lo."
-
-msgid "txt_locked_by"
-msgstr "Este artigo foi fechado por: "
-
-msgid "model1_description"
-msgstr "Um modelo de layout simples. Imagens são mostradas na direita, enquanto os anexos estão no rodapé do documento. Este é um layout simples que pode ser usado para documentação, por exemplo."
-
-msgid "model2_description"
-msgstr "Um modelo de layout de artigo. A primeira imagem é mostrada no cabeçalho do texto. Outras imagens são mostradas na direita, enquanto os anexos estão no rodapé do documento. Este é um layout simples que pode ser usado para artigos dos usuários finais, por exemplo."
-
-msgid "model3_description"
-msgstr "Imagens pequenas. Imagens reduzidas são colocadas depois da descrição e do texto."
-
-msgid "model4_description"
-msgstr "Imagens grandes. A descrição e o texto são mostrados primeiro. Imagens grandes são mostradas depois do texto."
-
-msgid "model5_description"
-msgstr "Imagens pequenas separadas por texto. As primeiras duas imagens são mostradas na primeira linha. Depois vem o corpo do artigo. Todas as outras imagens que ilustram o artigo vão depois e são mostradas de duas em duas linhas."
-
-msgid "model6_description"
-msgstr "Separados com imagens grandes. A primeira imagem é grande e é mostrada primeiro. Outras imagens são mostradas depois do texto do artigo."
-
-msgid "model7_description"
-msgstr "Uma imagem grande e várias pequenas. A primeira imagem é grande e é seguida pelo corpo do artigo. Todas as outras imagens vão depois em tamanho reduzido."
-
-msgid "model8_description"
-msgstr "Uma Imagem, várias imagens pequenas e anexos ao lado. Este modelo mostra primeiro uma imagem (no seu tamanho normal), seguida do corpo do artigo. Todas as outras imagens são reduzidas e vão depois do texto. Os anexos são mostrados na esquerda do artigo."
-
-msgid "help_image_title"
-msgstr "Informe o título para a imagem."
-
-msgid "Model layout"
-msgstr "Modelo do layout"
-
-msgid "preview"
-msgstr "Pré visualização"
-
-msgid "label_upload_image"
-msgstr "Carregar Imgem"
-
-msgid "help_upload_image"
-msgstr "Esta característica pode ser usada para adicionar uma imagem do seu compytador às Imagens do Artigo."
-
-msgid "Documentation model"
-msgstr "Modelo da documentação"
-
-msgid "Newspaper article model"
-msgstr "Modelo de artigo de jornal"
-
-msgid "Small images"
-msgstr "Imagens pequenas"
-
-msgid "Big images"
-msgstr "Imagens grandes"
-
-msgid "Small images separated by text"
-msgstr "Imagens pequenas separadas por texto"
-
-msgid "Big images separated by text"
-msgstr "Imagens grandes separadas por texto"
-
-msgid "One big image and a lot of small"
-msgstr "Uma imagem grande e várias pequenas"
-
-msgid "One big image and lots of small and side attachments"
-msgstr "Uma imagem grande e várias pequenas e ao lado anexos"
+# Português do Brasil translation team <tchezope at yahoogroups.com>
+msgid ""
+msgstr ""
+"Project-Id-Version: PloneArticle 2.03\n"
+"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"PO-Revision-Date: 2004-09-11 18:43-0200\n"
+"Last-Translator: Rafahela Garcia Bazzanella <rafabazzanella at yahoo.com.br>\n"
+"Language-Team: Português do Brasil <tchezope at yahoogroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: pt-br\n"
+"Language-name: Português do Brasil\n"
+"Preferred-encodings: latin1 utf-8\n"
+"Domain: plonearticle\n"
+
+msgid "label_view_table_of_contents_first"
+msgstr ""
+
+msgid "label_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+msgid "description_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+#, fuzzy
+msgid "label_table_of_contents"
+msgstr "Corpo do Texto"
+
+msgid "label_previous"
+msgstr ""
+
+#, fuzzy
+msgid "label_next"
+msgstr "Nome"
+
+#, fuzzy
+msgid "Article"
+msgstr "Artigo"
+
+#, fuzzy
+msgid "legend_models"
+msgstr "Imagens"
+
+msgid "description_edit_plonearticle"
+msgstr "Preencha os detalhes deste documento."
+
+msgid "description_plonearticle_attachments"
+msgstr "Você pode adicionar vários anexos ao artigo."
+
+msgid "description_plonearticle_images"
+msgstr "Você pode adicionar várias imagens no artigo."
+
+#, fuzzy
+msgid "description_plonearticle_links"
+msgstr "Você pode adicionar várias imagens no artigo."
+
+msgid "heading_edit_item"
+msgstr "Editar"
+
+msgid "help_body_text"
+msgstr "O corpo do texto do documento."
+
+msgid "help_description"
+msgstr "Informe uma breve descrição do documento."
+
+msgid "help_name"
+msgstr ""
+"Informe o Nome do documento. Esta é a parte que aparecerá no endereço web. "
+"Ele deve ser curto, descritivo e preferencialmente não deve conter espaços, "
+"sublinhas e maiúsculas e minúsculas. Exemplo: expense-report-2002."
+
+msgid "help_title"
+msgstr "Informe o título"
+
+#, fuzzy
+msgid "help_upload_attachment"
+msgstr ""
+"Esta característica pode ser usada para adicionar uma imagem do seu "
+"compytador às Imagens do Artigo."
+
+msgid "label_body_text"
+msgstr "Corpo do Texto"
+
+msgid "label_description"
+msgstr "Descrição"
+
+msgid "label_name"
+msgstr "Nome"
+
+msgid "label_title"
+msgstr "Título"
+
+#, fuzzy
+msgid "label_upload_attachment"
+msgstr "Carregar Imgem"
+
+msgid "legend_attachments"
+msgstr "Anexos"
+
+msgid "legend_document_details"
+msgstr "Detalhes do documento"
+
+msgid "legend_images"
+msgstr "Imagens"
+
+#, fuzzy
+msgid "legend_links"
+msgstr "Imagens"
+
+msgid "plonearticle_add_attachment"
+msgstr ""
+
+#, fuzzy
+msgid "help_attachment_paste"
+msgstr "Anexos"
+
+#, fuzzy
+msgid "help_image_paste"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "help_link_paste"
+msgstr ""
+"Informe o Nome do documento. Esta é a parte que aparecerá no endereço web. "
+"Ele deve ser curto, descritivo e preferencialmente não deve conter espaços, "
+"sublinhas e maiúsculas e minúsculas. Exemplo: expense-report-2002."
+
+msgid "plonearticle_add_image"
+msgstr ""
+
+msgid "Up"
+msgstr "Acima"
+
+msgid "Down"
+msgstr "Abaixo"
+
+msgid "choose_layout"
+msgstr "Você pode escolher um layout para o Artigo."
+
+msgid "help_choose_model"
+msgstr "Especifique o modelo do layout que o Artigo deverá ser renderizado."
+
+#, fuzzy
+msgid "label_choose_model"
+msgstr "Especifique o modelo do layout que o Artigo deverá ser renderizado."
+
+msgid "This attachment is not indexed."
+msgstr "Este anexo não está indexado."
+
+#, fuzzy
+msgid "help_attachment_title"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "text_not_locked"
+msgstr "Este artigo não está fechado."
+
+msgid "text_lock_to_edit"
+msgstr "Você deve fechar este artigo se quiser editá-lo."
+
+msgid "txt_locked_by"
+msgstr "Este artigo foi fechado por: "
+
+msgid "model1_description"
+msgstr ""
+"Um modelo de layout simples. Imagens são mostradas na direita, enquanto os "
+"anexos estão no rodapé do documento. Este é um layout simples que pode ser "
+"usado para documentação, por exemplo."
+
+msgid "model2_description"
+msgstr ""
+"Um modelo de layout de artigo. A primeira imagem é mostrada no cabeçalho do "
+"texto. Outras imagens são mostradas na direita, enquanto os anexos estão no "
+"rodapé do documento. Este é um layout simples que pode ser usado para "
+"artigos dos usuários finais, por exemplo."
+
+msgid "model3_description"
+msgstr ""
+"Imagens pequenas. Imagens reduzidas são colocadas depois da descrição e do "
+"texto."
+
+msgid "model4_description"
+msgstr ""
+"Imagens grandes. A descrição e o texto são mostrados primeiro. Imagens "
+"grandes são mostradas depois do texto."
+
+msgid "model5_description"
+msgstr ""
+"Imagens pequenas separadas por texto. As primeiras duas imagens são "
+"mostradas na primeira linha. Depois vem o corpo do artigo. Todas as outras "
+"imagens que ilustram o artigo vão depois e são mostradas de duas em duas "
+"linhas."
+
+msgid "model6_description"
+msgstr ""
+"Separados com imagens grandes. A primeira imagem é grande e é mostrada "
+"primeiro. Outras imagens são mostradas depois do texto do artigo."
+
+msgid "model7_description"
+msgstr ""
+"Uma imagem grande e várias pequenas. A primeira imagem é grande e é seguida "
+"pelo corpo do artigo. Todas as outras imagens vão depois em tamanho reduzido."
+
+msgid "model8_description"
+msgstr ""
+"Uma Imagem, várias imagens pequenas e anexos ao lado. Este modelo mostra "
+"primeiro uma imagem (no seu tamanho normal), seguida do corpo do artigo. "
+"Todas as outras imagens são reduzidas e vão depois do texto. Os anexos são "
+"mostrados na esquerda do artigo."
+
+msgid "help_image_title"
+msgstr "Informe o título para a imagem."
+
+msgid "Model layout"
+msgstr "Modelo do layout"
+
+msgid "preview"
+msgstr "Pré visualização"
+
+msgid "label_upload_image"
+msgstr "Carregar Imgem"
+
+msgid "help_upload_image"
+msgstr ""
+"Esta característica pode ser usada para adicionar uma imagem do seu "
+"compytador às Imagens do Artigo."
+
+msgid "Documentation model"
+msgstr "Modelo da documentação"
+
+msgid "Newspaper article model"
+msgstr "Modelo de artigo de jornal"
+
+msgid "Small images"
+msgstr "Imagens pequenas"
+
+msgid "Big images"
+msgstr "Imagens grandes"
+
+msgid "Small images separated by text"
+msgstr "Imagens pequenas separadas por texto"
+
+msgid "Big images separated by text"
+msgstr "Imagens grandes separadas por texto"
+
+msgid "One big image and a lot of small"
+msgstr "Uma imagem grande e várias pequenas"
+
+msgid "One big image and lots of small and side attachments"
+msgstr "Uma imagem grande e várias pequenas e ao lado anexos"
+
+#, fuzzy
+msgid "legend_upload_attachment"
+msgstr "Anexos"
+
+#, fuzzy
+msgid "legend_upload_image"
+msgstr "Carregar Imgem"
+
+msgid "legend_add_link"
+msgstr ""
+
+#, fuzzy
+msgid "label_add_link"
+msgstr "Carregar arquivo"
+
+#, fuzzy
+msgid "help_add_link"
+msgstr ""
+"Esta característica pode ser usada para adicionar um arquivo do seu "
+"computador para os anexos."
+
+#, fuzzy
+msgid "help_link_title"
+msgstr "Informe o título"
+
+msgid "Delete"
+msgstr "Excluir"
+
+msgid "Save"
+msgstr "Salvar"
+
+msgid "Copy"
+msgstr ""
+
+msgid "Paste as reference"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+#
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+#
+msgid "This is an external reference"
+msgstr ""
+
+#
+# Portal Status Messages :
+#
+#
+# saveAttachmentsChanges.cpy
+#
+msgid "message_attachments_changes_saved"
+msgstr ""
+
+#
+# saveImageChanges.cpy
+#
+msgid "message_images_changes_saved"
+msgstr ""
+
+#
+# plonearticle_link_edit.cpy
+#
+msgid "message_links_changes_saved"
+msgstr ""
+
+#
+# deleteAttachments.cpy
+#
+msgid "message_delete_attachment_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_deleted"
+msgstr "Anexos"
+
+#, fuzzy
+msgid "message_attachments_deleted"
+msgstr "Anexos"
+
+#
+# plonearticle_link_delete.cpy
+#
+msgid "message_delete_link_none_selected"
+msgstr ""
+
+msgid "message_link_deleted"
+msgstr ""
+
+# ${link_count}
+msgid "message_links_deleted"
+msgstr ""
+
+#
+# image_copy.cpy
+#
+msgid "message_copy_items_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_pasted"
+msgstr "Imagens"
+
+msgid "message_image_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_image_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_pasted"
+msgstr "Anexos"
+
+msgid "message_attachment_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_attachment_error"
+msgstr ""
+
+#
+# plonearticle_link_paste.cpy
+#
+msgid "message_link_pasted"
+msgstr ""
+
+msgid "message_link_clipboard_error"
+msgstr ""
+
+# ${link_count}, ${link_count}
+msgid "message_paste_link_error"
+msgstr ""
+
+# deleteImages.cpy
+msgid "message_delete_image_none_selected"
+msgstr ""
+
+msgid "message_image_deleted"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_added"
+msgstr "Anexos"
+
+#, fuzzy
+msgid "message_max_attachment_size"
+msgstr "Anexos"
+
+# plonearticle_link_edit.cpy
+#
+msgid "message_link_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_max_image_size"
+msgstr ""
+
+msgid "message_image_added"
+msgstr ""
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_model_selected"
+msgstr ""
+
+#
+# toggleArticleLock.py
+#
+msgid "message_article_unlocked"
+msgstr ""
+
+msgid "message_article_locked"
+msgstr ""
+
+#, fuzzy
+msgid "text_locked_by"
+msgstr "Este artigo foi fechado por: "
+
+#, fuzzy
+msgid "heading_plonearticle_prefs"
+msgstr "Você pode adicionar várias imagens no artigo."
+
+msgid "option_undefined"
+msgstr ""
+
+#, fuzzy
+msgid "legend_default_prefs_details"
+msgstr "Detalhes do documento"
+
+msgid "label_text_formats_prefs"
+msgstr ""
+
+msgid "help_text_formats_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_models_prefs"
+msgstr "Corpo do Texto"
+
+msgid "help_models_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "legend_attachment_prefs_details"
+msgstr "Detalhes do documento"
+
+msgid "label_attachment_content_type_prefs"
+msgstr ""
+
+msgid "help_attachment_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_attachment_content_types_prefs"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "help_referenceable_attachment_content_types_prefs"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "legend_image_prefs_details"
+msgstr "Detalhes do documento"
+
+msgid "label_image_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_image_content_type_prefs"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "label_referenceable_image_content_types_prefs"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "help_referenceable_image_content_types_prefs"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "legend_link_prefs_details"
+msgstr "Detalhes do documento"
+
+msgid "label_link_content_type_prefs"
+msgstr ""
+
+msgid "help_link_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "label_referenceable_link_content_types_prefs"
+msgstr "Informe o título para a imagem."
+
+#, fuzzy
+msgid "help_referenceable_link_content_types_prefs"
+msgstr "Informe o título para a imagem."
+
+msgid "Input is required."
+msgstr ""
+
+msgid "label_lock_support"
+msgstr ""
+
+msgid "help_lock_support"
+msgstr ""
+
+msgid "label_cmfeditions_support"
+msgstr ""
+
+msgid "help_cmfeditions_support"
+msgstr ""
+
+#, fuzzy
+msgid "label_max_attachment_size"
+msgstr "Anexos"
+
+#, fuzzy
+msgid "help_max_attachment_size"
+msgstr "Anexos"
+
+#, fuzzy
+msgid "label_max_image_size"
+msgstr "Carregar Imgem"
+
+#, fuzzy
+msgid "help_max_image_size"
+msgstr "Informe o título para a imagem."
+
+msgid "label_preview_activated"
+msgstr ""
+
+#, fuzzy
+msgid "help_preview_activated"
+msgstr "Informe o título do Anexo."
+
+#, fuzzy
+msgid "text_no_articles"
+msgstr "Este artigo não está fechado."
+
+#, fuzzy
+msgid "Download"
+msgstr "Abaixo"
+
+msgid "Gb"
+msgstr ""
+
+msgid "Mb"
+msgstr ""
+
+msgid "Kb"
+msgstr ""
+
+msgid "Bytes"
+msgstr ""
+
+#~ msgid "A Plone Article is a document with images and attachments."
+#~ msgstr "Um Artigo do Plone é um documento com imagens e arquivos anexados."
+
+#~ msgid "Attachment"
+#~ msgstr "Anexo"
+
+#~ msgid "Choose Model"
+#~ msgstr "Escolha o Modelo"
+
+#~ msgid "Enter a brief description of the article."
+#~ msgstr "Informe uma breve descrição sobre o artigo."
+
+#~ msgid ""
+#~ "Enter the Name of the article. This is the part that will show up as part "
+#~ "of the web address. This should be short, descriptive and preferrably not "
+#~ "contain spaces, underscores or mixed case. Example: \"new-products-2002\""
+#~ msgstr ""
+#~ "Informe o Nome do artigo. Esta é a parte que será mostrada como endereço "
+#~ "da web. Ele deve ser curto, descritivo e preferencialmente não conter "
+#~ "espaços, sublinhas ou maiúsculas e minúsculas. Exemplo: new-products-2002"
+
+#~ msgid "Fill in the details of this Plone Article."
+#~ msgstr "Preencha os detalhes para este Artigo."
+
+#~ msgid "Here you can add an attachment to the article:<br />"
+#~ msgstr "Aqui você pode adicionar um anexo para o artigo: "
+
+#~ msgid "Here you can add an image to the article:<br />"
+#~ msgstr "Aqui você pode adicionar uma imagem para o artigo: "
+
+#~ msgid "Image"
+#~ msgstr "Image"
+
+#~ msgid "Model"
+#~ msgstr "Modelo"
+
+#~ msgid "models"
+#~ msgstr "Modelos"
+
+#~ msgid "Ok"
+#~ msgstr "Ok"
+
+#~ msgid "Plone Article Details"
+#~ msgstr "Detalhes do Artigo"
+
+#~ msgid ""
+#~ "Specifies the layout model that the PloneArticle should be rendered with."
+#~ msgstr "Especifique o modelo do layout em que o artigo será renderizado."
+
+#~ msgid "You can add multiple attachments to the article"
+#~ msgstr "Você pode adicionar vários anexos no artigo."
+
+#~ msgid "You can add multiple images to the article.<br />"
+#~ msgstr "Você pode adicionar várias imagens no artigo."
+
+#~ msgid "You can choose a layout for the Plone Article."
+#~ msgstr "Você pode escolher um layout para o Artigo."
+
+#~ msgid "choose_model"
+#~ msgstr "Especifique o modelo do layout que o Artigo deverá ser renderizado."

Added: zope-plonearticle/branches/upstream/current/i18n/PloneArticle_sv.po
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/PloneArticle_sv.po	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/i18n/PloneArticle_sv.po	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,630 @@
+# Gettext Message File for PloneArticle.
+# Swedish - Jens Hellqvist <jens at spiro.se>, 2006
+msgid ""
+msgstr ""
+"Project-Id-Version: PloneArticle 3.1\n"
+"POT-Creation-Date: 2003-05-06 09:05+0100\n"
+"PO-Revision-Date: 2006-09-14 09:50+0100\n"
+"Last-Translator: Jens Hellqvist <jens at spiro.se>\n"
+"Language-Team: Jens Hellqvist <jens at spiro.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-code: sv\n"
+"Language-name: Svenska\n"
+"Preferred-encodings: latin1 utf-8\n"
+"Domain: plonearticle\n"
+
+msgid "label_view_table_of_contents_first"
+msgstr ""
+
+msgid "label_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+msgid "description_view_table_of_contents_in_dropdown_list"
+msgstr ""
+
+#, fuzzy
+msgid "label_table_of_contents"
+msgstr "Brödtext"
+
+#, fuzzy
+msgid "label_previous"
+msgstr "(Obligatoriskt)"
+
+#, fuzzy
+msgid "label_next"
+msgstr "Namn"
+
+msgid "Article"
+msgstr "Artikel"
+
+msgid "legend_models"
+msgstr "Modeller"
+
+msgid "description_edit_plonearticle"
+msgstr "Beskrivning av artikeln. Denna text kommer att visas som ingress."
+
+msgid "description_plonearticle_attachments"
+msgstr "Bifoga en eller flera filer."
+
+msgid "description_plonearticle_images"
+msgstr "Du kan lägga till en eller flera bilder till dokumentet."
+
+msgid "description_plonearticle_links"
+msgstr "Du kan lägga till en eller flera länkar till artikeln."
+
+msgid "heading_edit_item"
+msgstr "Ändra ${itemtype}"
+
+msgid "help_body_text"
+msgstr "Artikelns brödtext."
+
+msgid "help_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+msgid "help_name"
+msgstr ""
+"Ange artikelns kortnamn. Kortnamnet komer att visas som \n"
+"En del av artikelns adress.  Bör vara kort och koncis, och ska helst inte "
+"innehålla blanksteg och understreck."
+
+msgid "help_title"
+msgstr "Artikelns Titel (Huvudrubrik)."
+
+msgid "help_upload_attachment"
+msgstr "Ladda upp en fil från din dator."
+
+msgid "label_body_text"
+msgstr "Brödtext"
+
+msgid "label_description"
+msgstr "Beskrivning (Ingress)"
+
+msgid "label_name"
+msgstr "Namn"
+
+msgid "label_title"
+msgstr "Titel"
+
+msgid "label_upload_attachment"
+msgstr "Ladda upp fil"
+
+msgid "legend_attachments"
+msgstr "Bifogade filer"
+
+#, fuzzy
+msgid "legend_document_details"
+msgstr "Inställningar för PloneArticle"
+
+msgid "legend_images"
+msgstr "Bilder"
+
+msgid "legend_links"
+msgstr "Länkar"
+
+#, fuzzy
+msgid "plonearticle_add_attachment"
+msgstr "Bifoga en eller flera filer."
+
+msgid "help_attachment_paste"
+msgstr "Det finns inga bifogade filer i denna artikeln."
+
+msgid "help_image_paste"
+msgstr "Det finns inga bilder i denna artikeln."
+
+msgid "help_link_paste"
+msgstr "Det finns inga länkar i denna artikeln."
+
+#, fuzzy
+msgid "plonearticle_add_image"
+msgstr "Du kan lägga till en eller flera bilder till dokumentet."
+
+msgid "Up"
+msgstr ""
+
+msgid "Down"
+msgstr ""
+
+msgid "choose_layout"
+msgstr "Välj en modell för artikeln."
+
+msgid "help_choose_model"
+msgstr "Bestäm vilket visningsläge artikeln ska presenteras."
+
+msgid "label_choose_model"
+msgstr "Välj visningsmodell för artikeln"
+
+#, fuzzy
+msgid "This attachment is not indexed."
+msgstr "Filer raderade."
+
+msgid "help_attachment_title"
+msgstr ""
+"Ange filens titel.  Om du lämnar titeln tom kommer filnamet att användas som "
+"titel."
+
+msgid "text_not_locked"
+msgstr ""
+
+msgid "text_lock_to_edit"
+msgstr ""
+
+msgid "txt_locked_by"
+msgstr ""
+
+msgid "model1_description"
+msgstr ""
+
+#, fuzzy
+msgid "model2_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+msgid "model3_description"
+msgstr ""
+
+#, fuzzy
+msgid "model4_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+#, fuzzy
+msgid "model5_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+#, fuzzy
+msgid "model6_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+#, fuzzy
+msgid "model7_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+#, fuzzy
+msgid "model8_description"
+msgstr "Ange en kort beskrivning för artikeln. Denna text visas som ingress."
+
+msgid "help_image_title"
+msgstr ""
+"Ange bildens titel. Om du lämnar titeln tom kommer filnamet att användas som "
+"titel."
+
+#, fuzzy
+msgid "Model layout"
+msgstr "Välj en modell för artikeln."
+
+msgid "preview"
+msgstr "Förhandsvisa"
+
+msgid "label_upload_image"
+msgstr "Ladda upp bild"
+
+msgid "help_upload_image"
+msgstr ""
+"Denna funktion används för att ladda upp en bild från din dator till "
+"artikeln."
+
+msgid "Documentation model"
+msgstr ""
+
+msgid "Newspaper article model"
+msgstr ""
+
+msgid "Small images"
+msgstr ""
+
+#, fuzzy
+msgid "Big images"
+msgstr "Bilder"
+
+msgid "Small images separated by text"
+msgstr ""
+
+msgid "Big images separated by text"
+msgstr ""
+
+msgid "One big image and a lot of small"
+msgstr ""
+
+msgid "One big image and lots of small and side attachments"
+msgstr ""
+
+msgid "legend_upload_attachment"
+msgstr "Ladda upp en fil"
+
+msgid "legend_upload_image"
+msgstr "Ladda upp bild"
+
+#, fuzzy
+msgid "legend_add_link"
+msgstr "Länkar"
+
+msgid "label_add_link"
+msgstr "Lägg till länk"
+
+msgid "help_add_link"
+msgstr "Denna funktion används för att lägga till länkar till artikeln."
+
+msgid "help_link_title"
+msgstr "Ange länkens titel."
+
+msgid "Delete"
+msgstr "Ta Bort"
+
+msgid "Save"
+msgstr "Spara"
+
+msgid "Copy"
+msgstr ""
+
+msgid "Paste as reference"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+#
+# PloneArticle_imageForm.cpt and PloneArticle_attachmentForm.cpt
+#
+msgid "This is an external reference"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachments_changes_saved"
+msgstr "Ändringarna sparades."
+
+#
+# saveImageChanges.cpy
+#
+msgid "message_images_changes_saved"
+msgstr ""
+
+#, fuzzy
+msgid "message_links_changes_saved"
+msgstr "Ändringarna sparades."
+
+#
+# deleteAttachments.cpy
+#
+msgid "message_delete_attachment_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_deleted"
+msgstr "Fil raderad."
+
+#, fuzzy
+msgid "message_attachments_deleted"
+msgstr "Filer raderade."
+
+#
+# plonearticle_link_delete.cpy
+#
+msgid "message_delete_link_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_link_deleted"
+msgstr "Bild borttagen."
+
+#, fuzzy
+msgid "message_links_deleted"
+msgstr "Bilderna borttagna."
+
+#
+# image_copy.cpy
+#
+msgid "message_copy_items_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_pasted"
+msgstr "Det finns inga bilder i denna artikeln."
+
+msgid "message_image_clipboard_error"
+msgstr ""
+
+# ${image_count}, ${error_count}
+msgid "message_paste_image_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_attachment_pasted"
+msgstr "Det finns inga bifogade filer i denna artikeln."
+
+msgid "message_attachment_clipboard_error"
+msgstr ""
+
+#, fuzzy
+msgid "message_paste_attachment_error"
+msgstr "Ladda upp en fil"
+
+#, fuzzy
+msgid "message_link_pasted"
+msgstr "Det finns inga länkar i denna artikeln."
+
+msgid "message_link_clipboard_error"
+msgstr ""
+
+# ${link_count}, ${link_count}
+msgid "message_paste_link_error"
+msgstr ""
+
+# deleteImages.cpy
+msgid "message_delete_image_none_selected"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_deleted"
+msgstr "Bild borttagen."
+
+#, fuzzy
+msgid "message_attachment_added"
+msgstr "Fil tillagd."
+
+#, fuzzy
+msgid "message_max_attachment_size"
+msgstr "Bifogade filer"
+
+#, fuzzy
+msgid "message_link_added"
+msgstr "Bild tillagd."
+
+#
+# PloneArticle_editImage.cpy
+#
+msgid "message_max_image_size"
+msgstr ""
+
+#, fuzzy
+msgid "message_image_added"
+msgstr "Bild tillagd."
+
+#, fuzzy
+msgid "message_model_selected"
+msgstr "Bild borttagen."
+
+#
+# toggleArticleLock.py
+#
+msgid "message_article_unlocked"
+msgstr ""
+
+msgid "message_article_locked"
+msgstr ""
+
+#
+# in body macros
+#
+msgid "text_locked_by"
+msgstr ""
+
+#, fuzzy
+msgid "heading_plonearticle_prefs"
+msgstr "Inställningar för PloneArticle"
+
+msgid "option_undefined"
+msgstr ""
+
+#, fuzzy
+msgid "legend_default_prefs_details"
+msgstr "Inställningar för PloneArticle"
+
+#, fuzzy
+msgid "label_text_formats_prefs"
+msgstr "Format"
+
+#, fuzzy
+msgid "help_text_formats_prefs"
+msgstr ""
+"Om du är osäker på vilket format du ska använda, välj 'Text' och skriv din "
+"artikel som vanligt."
+
+#, fuzzy
+msgid "label_models_prefs"
+msgstr "Välj visningsmodell för artikeln"
+
+#, fuzzy
+msgid "help_models_prefs"
+msgstr "Det finns inga bilder i denna artikeln."
+
+#, fuzzy
+msgid "legend_attachment_prefs_details"
+msgstr "Bifogade filer"
+
+#, fuzzy
+msgid "label_attachment_content_type_prefs"
+msgstr ""
+"Ange filens titel.  Om du lämnar titeln tom kommer filnamet att användas som "
+"titel."
+
+#, fuzzy
+msgid "help_attachment_content_type_prefs"
+msgstr ""
+"Ange filens titel.  Om du lämnar titeln tom kommer filnamet att användas som "
+"titel."
+
+msgid "label_referenceable_attachment_content_types_prefs"
+msgstr ""
+
+msgid "help_referenceable_attachment_content_types_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "legend_image_prefs_details"
+msgstr "Inställningar för PloneArticle"
+
+msgid "label_image_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_image_content_type_prefs"
+msgstr ""
+"Ange bildens titel. Om du lämnar titeln tom kommer filnamet att användas som "
+"titel."
+
+msgid "label_referenceable_image_content_types_prefs"
+msgstr ""
+
+msgid "help_referenceable_image_content_types_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "legend_link_prefs_details"
+msgstr "Inställningar för PloneArticle"
+
+msgid "label_link_content_type_prefs"
+msgstr ""
+
+#, fuzzy
+msgid "help_link_content_type_prefs"
+msgstr "Ange länkens titel."
+
+msgid "label_referenceable_link_content_types_prefs"
+msgstr ""
+
+msgid "help_referenceable_link_content_types_prefs"
+msgstr ""
+
+msgid "Input is required."
+msgstr ""
+
+#, fuzzy
+msgid "label_lock_support"
+msgstr "Format"
+
+#, fuzzy
+msgid "help_lock_support"
+msgstr "Det finns inga länkar i denna artikeln."
+
+msgid "label_cmfeditions_support"
+msgstr ""
+
+msgid "help_cmfeditions_support"
+msgstr ""
+
+#, fuzzy
+msgid "label_max_attachment_size"
+msgstr "Ladda upp fil"
+
+#, fuzzy
+msgid "help_max_attachment_size"
+msgstr "Det finns inga bifogade filer i denna artikeln."
+
+#, fuzzy
+msgid "label_max_image_size"
+msgstr "Ladda upp bild"
+
+#, fuzzy
+msgid "help_max_image_size"
+msgstr "Det finns inga bilder i denna artikeln."
+
+msgid "label_preview_activated"
+msgstr ""
+
+#, fuzzy
+msgid "help_preview_activated"
+msgstr ""
+"Ange bildens titel. Om du lämnar titeln tom kommer filnamet att användas som "
+"titel."
+
+msgid "text_no_articles"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Gb"
+msgstr "Gb"
+
+msgid "Mb"
+msgstr "Mb"
+
+msgid "Kb"
+msgstr "Kb"
+
+msgid "Bytes"
+msgstr "Bytes"
+
+#~ msgid "Attachment"
+#~ msgstr "Bifogad Fil"
+
+#~ msgid "choose_model"
+#~ msgstr "Välj Modell"
+
+#~ msgid "Image"
+#~ msgstr "Bild"
+
+#~ msgid "Model"
+#~ msgstr "Modell"
+
+#~ msgid "Models"
+#~ msgstr "Modeller"
+
+#~ msgid "PloneArticle"
+#~ msgstr "PloneArticle"
+
+#~ msgid "help_shortname"
+#~ msgstr ""
+#~ "Ska inte innehålla blanksteg, mixade gemener / versaler eller "
+#~ "understreck. Kortnamnet är en del av sidans webadress."
+
+#~ msgid "label_short_name"
+#~ msgstr "Kortnamn"
+
+#~ msgid "plain_text"
+#~ msgstr "Text"
+
+#~ msgid "popup_close"
+#~ msgstr "Stäng"
+
+#~ msgid "html"
+#~ msgstr "HTML"
+
+#~ msgid "structured_text"
+#~ msgstr "Strukturerad text"
+
+#~ msgid "models"
+#~ msgstr "Modeller"
+
+#~ msgid "Please correct the indicated errors."
+#~ msgstr "Vänligen åtgärda följande fel."
+
+#~ msgid "Your document changes have been saved."
+#~ msgstr "Dina ändringar är sparade."
+
+#~ msgid "Model does not exist."
+#~ msgstr "Modellen finns inte."
+
+#~ msgid "Selected model for layout."
+#~ msgstr "Välj en modell för hur sidan ska visas."
+
+#~ msgid "Image exceeds allowed maximum size"
+#~ msgstr "Bilden är större än tillåtet."
+
+#~ msgid "No image selected for deletion"
+#~ msgstr "Ingen bild vald för borttagning."
+
+#~ msgid "Attachment exceeds allowed maximum size"
+#~ msgstr "Filen är större än tillåtet."
+
+#~ msgid "No attachments selected for deletion."
+#~ msgstr "Inga filer valda för radering."
+
+#~ msgid "heading_edit_images"
+#~ msgstr "Redigera bilder"
+
+#~ msgid "heading_edit_links"
+#~ msgstr "Redigera Länkar"
+
+#~ msgid "heading_edit_attachments"
+#~ msgstr "Redigera Bifogade Filer"
+
+#~ msgid "heading_edit_models"
+#~ msgstr "Välj modell"
+
+#~ msgid "Attachments"
+#~ msgstr "Bifogade filer"
+
+#~ msgid "Edit"
+#~ msgstr "Ändra"

Modified: zope-plonearticle/branches/upstream/current/i18n/build.bat
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/build.bat	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/build.bat	2006-10-21 20:56:22 UTC (rev 321)
@@ -2,6 +2,7 @@
 echo converting .po files to .mo files
 echo if you experience problems with this version of msgfmt.exe try the win32.crt version from http://home.a-city.de/franco.bez/gettext/gettext_win32_en.html
 dir /B *.po > trans.txt
+echo Do not forget to run msgmerge -U pofile potfile before to run thos batch
 for /F "tokens=1,* delims=. " %%i in (trans.txt) do (
    echo Input: %%i.%%j
    echo Output: %%i.mo

Modified: zope-plonearticle/branches/upstream/current/i18n/build.sh
===================================================================
--- zope-plonearticle/branches/upstream/current/i18n/build.sh	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/i18n/build.sh	2006-10-21 20:56:22 UTC (rev 321)
@@ -1,6 +1,9 @@
 for i in `find * -type f -name "*.po"`
 do
     echo "Input: $i"
+    p=${i%_*}
+    echo "Merge: $p.pot"
+    msgmerge -U $i $p.pot
     o=${i%.*}
     echo "Output: $o.mo"
     msgfmt $i -o $o.mo


Property changes on: zope-plonearticle/branches/upstream/current/interfaces/.cvsignore
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/interfaces/IArticle.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/interfaces/IAttachment.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/interfaces/__init__.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/migration/.cvsignore
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/migration/Migrator.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/migration/__init__.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticle.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel1.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel2.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel3.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel4.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel5.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel6.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel7.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModel8.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/PloneArticleModels.png.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/down.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/lock.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_add.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_add.cpy.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_copy.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_copy.cpy.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_delete.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_delete.cpy.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_edit.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_edit.cpy.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_form.cpt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_form.cpt.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_paste.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_link_paste.cpy.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_macros.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_edit.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_edit.cpy.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_form.cpt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_prefs_form.cpt.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_preview_popup.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_reference_browser_popup.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticle_uid_reference.cpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/plonearticlemultipage_view.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/reference_icon.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/unlock.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/up.gif.metadata
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/PloneArticle/validate_plonearticle_prefs.vpy
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/plonearticle_plone21/plonearticle_macros.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/plonearticle_plone21/plonearticle_preview_popup.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/skins/plonearticle_plone21/plonearticlemultipage_view.pt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/tests/.cvsignore
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/tests/PloneArticleTestCase.py
===================================================================
--- zope-plonearticle/branches/upstream/current/tests/PloneArticleTestCase.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/tests/PloneArticleTestCase.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -11,7 +11,7 @@
 
 """PloneArticle tests
 
-$Id: PloneArticleTestCase.py,v 1.6 2006/07/20 11:55:59 glenfant Exp $
+$Id: PloneArticleTestCase.py,v 1.9 2006/09/18 20:52:55 encolpe Exp $
 """
 
 __author__ = ''
@@ -54,7 +54,7 @@
 class PloneArticleTestCase(PloneTestCase.PloneTestCase):
     """ PloneArticle test case based on a plone site"""
 
-    
+
     def afterSetUp(self):
         # Tools shortcuts
         self.type_tool = getToolByName(self.portal, 'portal_types')
@@ -66,7 +66,7 @@
         except:
             pass # Already done
         self.member_folder = self.mb_tool.getHomeFolder(portal_member)
-    
+
     def createEmptyArticle(self, container, content_id = 'article'):
         # return empty article
         container.invokeFactory(type_name='PloneArticle', id=content_id)
@@ -77,40 +77,41 @@
         self.assertEqual(len(article.getAttachments()), 0)
         self.assertEqual(len(article.getImages()), 0)
         return article
-    
+
     def createExternalFile(self, container=None, content_id='external_file'):
         container = container or self.member_folder
         container.invokeFactory(type_name=FILE_PORTAL_TYPE, id=content_id)
         self.failUnless(content_id in container.objectIds())
         return getattr(container, content_id)
-    
+
     def createArticle(self, container):
-        # Content creation
-        
+        """Create content in self.article
+        """
+
         # Add a file not in PloneArticle
         self.external_file = self.createExternalFile(container)
-        
+
         # Add an image not in PloneArticle
         content_id = 'external_image'
         container.invokeFactory(type_name=IMAGE_PORTAL_TYPE, id=content_id)
         self.failUnless(content_id in container.objectIds())
         self.external_image = getattr(container, content_id)
-        
+
         #create empty article
         self.article = self.createEmptyArticle(container)
-        
-        # Add a file in article 
+
+        # Add a file in article
         content_id = 'article_file'
         self.article.invokeFactory(type_name=FILE_PORTAL_TYPE, id=content_id)
         self.failUnless(content_id in self.article.objectIds())
         self.article_file = getattr(self.article, content_id)
-        
+
         # Add an image in article
         content_id = 'article_image'
         self.article.invokeFactory(type_name=IMAGE_PORTAL_TYPE, id=content_id)
         self.failUnless(content_id in self.article.objectIds())
         self.article_image = getattr(self.article, content_id)
-        
+
         # Add files and images as references of article
         self.article.addAttachmentFromObject(self.external_file)
         self.failUnless(self.external_file.UID() in self.article.getAttachmentUIDs())
@@ -120,17 +121,18 @@
         self.failUnless(self.article_file.UID() in self.article.getAttachmentUIDs())
         self.article.addImageFromObject(self.article_image)
         self.failUnless(self.article_image.UID() in self.article.getImageUIDs())
+        return self.article
 
     def beforeTearDown(self):
         # logout
         noSecurityManager()
-    
+
     def loginAsPortalMember(self):
         '''Use if you need to manipulate an article as member.'''
         uf = self.portal.acl_users
         user = uf.getUserById(portal_member).__of__(uf)
         newSecurityManager(None, user)
-        
+
     def loginAsPortalOwner(self):
         '''Use if you need to manipulate an article as member.'''
         uf = self.app.acl_users
@@ -141,13 +143,13 @@
     get_transaction().begin()
     _start = time.time()
     portal = app.portal
-    
+
     if not quiet: ZopeTestCase._print('Installing PloneArticle ... ')
 
     # login as manager
     user = app.acl_users.getUserById(portal_owner).__of__(app.acl_users)
     newSecurityManager(None, user)
-    
+
     # add ATCT on Plone up to 2.0
     if not pa_config.HAS_PLONE_2_1:
         if hasattr(aq_base(portal), 'switchCMF2ATCT'):
@@ -160,15 +162,30 @@
         ZopeTestCase._print('PloneArticle already installed ... ')
     else:
         installPloneArticle(portal)
-    
+
     # Configure Portal article
     article_tool = portal.portal_article
     article_tool.allowed_image_type = IMAGE_PORTAL_TYPE
     article_tool.allowed_attachment_type = FILE_PORTAL_TYPE
-    
+
     # Create portal member
     portal.portal_registration.addMember(portal_member, 'azerty', ['Member'])
-    
+
+    # If CMFEditions is there we install and configure it.
+    if pa_config.HAS_CMFEDITIONS:
+        qi_tool = getToolByName(portal, 'portal_quickinstaller', None)
+
+        ZopeTestCase.installProduct('CMFEditions', quiet=1)
+        ZopeTestCase.installProduct('CMFDiffTool', quiet=1)
+
+        qi_tool.installProduct('CMFEditions')
+        get_transaction().commit(1)
+        qi_tool.installProduct('CMFDiffTool')
+        get_transaction().commit(1)
+
+        article_tool.updateCMFEditionsSupport(value=1)
+
+
     # Log out
     noSecurityManager()
     get_transaction().commit()


Property changes on: zope-plonearticle/branches/upstream/current/tests/PloneArticleTestCase.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Added: zope-plonearticle/branches/upstream/current/tests/__init__.py
===================================================================
--- zope-plonearticle/branches/upstream/current/tests/__init__.py	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/tests/__init__.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+## PloneArticle
+## A CMF/Plone product for locally changing the workflow of content types
+## Copyright (C)2006 Ingeniweb
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; see the file COPYING. If not, write to the
+## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"""\
+Unit test package for CMFPlone
+
+To run all tests type 'python runalltests.py' or bin/zopectl test PloneArticle
+"""
+__version__ = "$Revision: 1.2 $"
+# $Source: /cvsroot/ingeniweb/PloneArticle/tests/__init__.py,v $
+# $Id: __init__.py,v 1.2 2006/09/02 21:56:10 encolpe Exp $
+__docformat__ = 'restructuredtext'


Property changes on: zope-plonearticle/branches/upstream/current/tests/articlev2.zexp
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/tests/common.py
===================================================================
--- zope-plonearticle/branches/upstream/current/tests/common.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/tests/common.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -13,7 +13,7 @@
 
 common includes a set of basic things that every test needs.
 
-$Id: common.py,v 1.6 2006/07/20 11:55:59 glenfant Exp $
+$Id: common.py,v 1.7 2006/09/04 12:58:13 encolpe Exp $
 """
 
 __author__ = ''
@@ -45,6 +45,7 @@
 
 from AccessControl.SecurityManagement import newSecurityManager
 from AccessControl.SecurityManagement import noSecurityManager
+from pprint import PrettyPrinter
 
 ###
 # general test suits including products
@@ -128,5 +129,5 @@
 # PloneArticle tests
 ###
 
-from PloneArticleTestCase import PloneArticleTestCase, FILE_PORTAL_TYPE, IMAGE_PORTAL_TYPE
+from PloneArticleTestCase import PloneArticleTestCase, FILE_PORTAL_TYPE, IMAGE_PORTAL_TYPE, pa_config
 from Products.PloneArticle.interfaces.IArticle import IArticleAttachments, IArticleImages


Property changes on: zope-plonearticle/branches/upstream/current/tests/common.py
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/tests/runtests.sh.example
___________________________________________________________________
Name: svn:executable
   - 
   + *

Added: zope-plonearticle/branches/upstream/current/tests/testCMFEditions.py
===================================================================
--- zope-plonearticle/branches/upstream/current/tests/testCMFEditions.py	                        (rev 0)
+++ zope-plonearticle/branches/upstream/current/tests/testCMFEditions.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -0,0 +1,491 @@
+# -*- coding: utf-8 -*-
+## PloneArticle
+## Copyright (C)2006 Ingeniweb
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; see the file COPYING. If not, write to the
+## Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+"""PloneArticle security tests
+
+Use this file as a skeleton for your own tests
+"""
+__version__ = "$Revision: 1.5 $"
+# $Source: /cvsroot/ingeniweb/PloneArticle/tests/testCMFEditions.py,v $
+# $Id: testCMFEditions.py,v 1.5 2006/09/22 01:29:10 encolpe Exp $
+__docformat__ = 'restructuredtext'
+
+from types import TupleType, ListType
+from copy import deepcopy
+from common import *
+from Products.CMFCore.utils import getToolByName
+
+if pa_config.HAS_PLONE_2_1:
+    FILE_PORTAL_TYPE = 'File'
+    IMAGE_PORTAL_TYPE = 'Image'
+    LINK_PORTAL_TYPE = 'Link'
+else:
+    FILE_PORTAL_TYPE = 'ATFile'
+    IMAGE_PORTAL_TYPE = 'ATImage'
+    LINK_PORTAL_TYPE = 'ATLink'
+
+ARTICLE_ATTRIBUTES = (
+    '__ordered_attachment_refs__',
+    '__ordered_image_refs__',
+    '__ordered_link_refs__',
+    '_locked_by',
+    '_locked_date',
+    '_unlocked_by',
+    '_unlocked_date',
+    '_objects',
+)
+
+# Fake upload object
+class TestFile:
+    __allow_access_to_unprotected_subobjects__ = 1
+    filename = 'afile.fil'
+    def seek(*args): pass
+    def tell(*args): return 0
+    def read(*args): return 'file_contents'
+
+tests = []
+
+class TestCFMEditions(PloneArticleTestCase):
+
+    def createEmptyArticle(self, container, content_id = 'article'):
+        # return empty article
+        container.invokeFactory(type_name='PloneArticle', id=content_id)
+        article = getattr(container, content_id)
+        return article
+
+    def createExternalFile(self, container=None, content_id='external_file'):
+        container = container or self.member_folder
+        container.invokeFactory(type_name=FILE_PORTAL_TYPE, id=content_id)
+        return getattr(container, content_id)
+
+    def createArticle(self, container):
+        """Create content in self.article
+        """
+
+        # Add a file not in PloneArticle
+        self.external_file = self.createExternalFile(container)
+
+        # Add an image not in PloneArticle
+        content_id = 'external_image'
+        container.invokeFactory(type_name=IMAGE_PORTAL_TYPE, id=content_id)
+        self.external_image = getattr(container, content_id)
+
+        #create empty article
+        self.article = self.createEmptyArticle(container)
+
+        # Add files in article
+        content_id = 'article_file1'
+        self.article.invokeFactory(type_name=FILE_PORTAL_TYPE, id=content_id)
+        self.article_file1 = getattr(self.article, content_id)
+        content_id = 'article_file2'
+        self.article.invokeFactory(type_name=FILE_PORTAL_TYPE, id=content_id)
+        self.article_file2 = getattr(self.article, content_id)
+
+        # Add images in article
+        content_id = 'article_image1'
+        self.article.invokeFactory(type_name=IMAGE_PORTAL_TYPE, id=content_id)
+        self.article_image1 = getattr(self.article, content_id)
+        content_id = 'article_image2'
+        self.article.invokeFactory(type_name=IMAGE_PORTAL_TYPE, id=content_id)
+        self.article_image2 = getattr(self.article, content_id)
+
+        # Add links in article
+        content_id = 'article_link1'
+        self.article.invokeFactory(type_name=LINK_PORTAL_TYPE, id=content_id)
+        self.article_link1 = getattr(self.article, content_id)
+        content_id = 'article_link2'
+        self.article.invokeFactory(type_name=LINK_PORTAL_TYPE, id=content_id)
+        self.article_link2 = getattr(self.article, content_id)
+
+        # Add files and images as references of article
+        self.article.addAttachmentFromObject(self.external_file)
+        self.article.addImageFromObject(self.external_image)
+        self.article.addAttachmentFromObject(self.article_file1)
+        self.article.addImageFromObject(self.article_image1)
+        self.article.addLinkFromObject(self.article_link1)
+
+
+    def testPloneArticleInterface(self):
+        self.loginAsPortalMember()
+        self.createArticle(self.member_folder)
+        self.failUnless(IArticleAttachments.isImplementedBy(self.article))
+        self.failUnless(IArticleImages.isImplementedBy(self.article))
+        self.logout()
+
+
+    def test_cmfedition_00_tool_CMFEditions_support(self,):
+        """Testing CMFEditions configuration for PloneArticle
+        """
+        portal_article = getToolByName(self.portal, 'portal_article')
+
+        #default is 0 bt we configure it to 1 in tests setup
+        self.assertEqual(portal_article.hasCMFEditionsSupport(), 1)
+
+
+        rep_tool = getToolByName(self.portal, 'portal_repository', None)
+        mod_tool = getToolByName(self.portal, 'portal_modifier', None)
+
+        self.assertEqual(rep_tool.getVersionableContentTypes(),
+                         ['PloneArticle', 'PloneArticleMultiPage'])
+        self.assertEqual(rep_tool.getPolicyMap(),
+                         {
+                             'PloneArticle': ['version_on_revert'],
+                             'PloneArticleMultiPage': ['version_on_revert'],
+                         })
+
+        # We have to check three things on modifier:
+        # 1. Does it exist
+        # 2. Does it implement TalesMoifier
+        # 3. Does the condition check every PloneArticle portal_type
+        modifier = mod_tool.get('PloneArticleV3Modifier')
+        from Products.CMFEditions.Modifiers import ConditionalTalesModifier
+        from Products.PloneArticle.CMFEditionsModifier.PloneArticleV3CMFEModifier import PloneArticleV3Modifier
+        self.failUnless(isinstance(modifier, ConditionalTalesModifier))
+        self.failUnless(isinstance(modifier.getModifier(), PloneArticleV3Modifier))
+        self.failUnless(modifier.isEnabled())
+        self.failUnless(modifier.getTalesCondition() == "python: hasattr(object, 'portal_type') and object.portal_type in ('PloneArticle', 'PloneArticleMultiPage')")
+
+        # Testing setattr misfunctions
+        portal_article.updateCMFEditionsSupport(value=0)
+        self.assertEqual(portal_article.hasCMFEditionsSupport(), 0)
+
+        portal_article.updateCMFEditionsSupport(value=1)
+        self.assertEqual(portal_article.hasCMFEditionsSupport(), 1)
+
+
+    def test_cmfedition_00_is_article_versionable(self):
+        """Versionable article content types
+
+        We verify that article is configured as versionned document.
+        It cannot be versionned 'on edit' in PloneArticle < version 4.0.
+        The option 'version_on_revert' seems to be reasonable here.
+        """
+        portal_repository = getToolByName(self.portal, 'portal_repository', None)
+        versionable_types = portal_repository.getVersionableContentTypes()
+        # Are PloneArticle content types versionable ?
+        self.failIf('PloneArticle' not in versionable_types)
+        self.failIf('PloneArticleMultiPage' not in versionable_types)
+
+        policy_map = portal_repository.getPolicyMap()
+        # Are they correctly configured ?
+        self.failUnless(policy_map['PloneArticle'] == ['version_on_revert'])
+        self.failUnless(policy_map['PloneArticleMultiPage'] == ['version_on_revert'])
+
+    def test_cmfedition_article_01_adding_a_version(self):
+        """Adding a version on a PloneArticle
+
+        We verify that the current article is not altered by the versionning.
+
+        What's the different between 'applyVersionControl' and 'save'?
+        1. They use different permissions
+        2. '_recursiveSave' autoapply parameter is always equal to True with
+           'applyVersionControl'. 'save' use self.autoapply => (on_edit ?)
+        We would only test 'applyVersionControl' in other test because on_edit
+        not occurs when we save attachments, images or links.
+        """
+        self.loginAsPortalMember()
+        self.createArticle(self.member_folder)
+
+        portal_repository = getToolByName(self.portal, 'portal_repository', None)
+        portal_archivist = getToolByName(self.portal, 'portal_archivist', None)
+
+        article_content_v0 = deepcopy(self.article.__dict__)
+
+        portal_repository.applyVersionControl(self.article, comment='save no 1')
+        # Is current version modified by the versionning API ? It does not.
+        article_content_v1 = deepcopy(self.article.__dict__)
+
+        portal_repository.save(self.article, comment='save no 2')
+        # Is current version modified by the versionning API ? It does not.
+        article_content_v2 = deepcopy(self.article.__dict__)
+
+        for key in ARTICLE_ATTRIBUTES:
+            #print key
+            value_v0 = article_content_v0[key]
+            if hasattr(value_v0, 'getItems'):
+                value_v0 = value_v0.getItems()
+            #PrettyPrinter().pprint(value_v0)
+
+            value_v1 = article_content_v1[key]
+            if hasattr(value_v1, 'getItems'):
+                value_v1 = value_v1.getItems()
+            #PrettyPrinter().pprint(value_v1)
+
+            value_v2 = article_content_v2[key]
+            if hasattr(value_v2, 'getItems'):
+                value_v2 = value_v2.getItems()
+            #PrettyPrinter().pprint(value_v2)
+
+            self.failUnless(value_v0 == value_v1)
+            self.failUnless(value_v0 == value_v2)
+
+
+        # Now verify that two versions are stored
+        history = portal_repository.getHistory(self.article, countPurged=False)
+        self.failUnless(len(history) == 2)
+ 
+        # Now we check that saved version are correct
+
+        # Version number: history give us a reversed list
+        self.failUnless(history[0].version_id == 1)
+        self.failUnless(history[1].version_id == 0)
+
+        # Version referenced object
+        self.failUnless(history[0].object.UID() == self.article.UID())
+        self.failUnless(history[1].object.UID() == self.article.UID())
+
+        self.logout()
+
+
+    def test_cmfedition_article_02_retrieve_a_version(self):
+        """Retrieve a version on a PloneArticle
+
+        We add and remove internal data and compare them with stored version
+        """
+        self.loginAsPortalMember()
+        self.createArticle(self.member_folder)
+
+        portal_repository = getToolByName(self.portal, 'portal_repository', None)
+        portal_archivist = getToolByName(self.portal, 'portal_archivist', None)
+
+        article_content_v0 = deepcopy(self.article.__dict__)
+        refs_v0 = (
+            article_content_v0['__ordered_attachment_refs__'].getItems(),
+            article_content_v0['__ordered_image_refs__'].getItems(),
+            article_content_v0['__ordered_link_refs__'].getItems(),
+        )
+
+        portal_repository.applyVersionControl(self.article, comment='save n°1: Nothing but default')
+
+        # For the first version we add contents
+        self.article.addAttachmentFromObject(self.article_file2)
+        self.article.addImageFromObject(self.article_image2)
+        self.article.addLinkFromObject(self.article_link2)
+
+        article_content_v1 = deepcopy(self.article.__dict__)
+        refs_v1 = (
+            article_content_v1['__ordered_attachment_refs__'].getItems(),
+            article_content_v1['__ordered_image_refs__'].getItems(),
+            article_content_v1['__ordered_link_refs__'].getItems(),
+        )
+
+        # We verify that modifications are saved
+        for index in range(0,3,1):
+            self.failIf(refs_v0[index] == refs_v1[index])
+
+        portal_repository.applyVersionControl(self.article, comment='save n°2: Add contents')
+
+        # We retrieve the v0 and compare it
+        clone_content_v0 = deepcopy(portal_repository.retrieve(self.article, 0).object.__dict__)
+        for key in ARTICLE_ATTRIBUTES:
+            #print key
+            value_v0 = article_content_v0[key]
+            if hasattr(value_v0, 'getItems'):
+                value_v0 = value_v0.getItems()
+            #PrettyPrinter().pprint(value_v0)
+
+            clone_v0 = clone_content_v0[key]
+            if hasattr(clone_v0, 'getItems'):
+                clone_v0 = clone_v0.getItems()
+            #PrettyPrinter().pprint(clone_v0)
+
+            self.failUnless(value_v0 == clone_v0)
+
+        # For the second version we remove contents
+        # We would verify against v0 and v1
+        attachment_uids = [e.UID() for e in self.article.getAttachments()]
+        self.article.removeAttachments(UIDs=attachment_uids[:2])
+        image_uids = [e.UID() for e in self.article.getImages()]
+        self.article.removeImages(UIDs=[image_uids[0], image_uids[2]])
+        link_uids = [e.UID() for e in self.article.getLinks()]
+        self.article.removeLink(UID=link_uids[0])
+
+        article_content_v2 = deepcopy(self.article.__dict__)
+        refs_v2 = (
+            article_content_v2['__ordered_attachment_refs__'].getItems(),
+            article_content_v2['__ordered_image_refs__'].getItems(),
+            article_content_v2['__ordered_link_refs__'].getItems(),
+        )
+
+        # We verify that modifications are saved
+        for index in range(0,3,1):
+            self.failIf(refs_v1[index] == refs_v2[index])
+
+        portal_repository.applyVersionControl(self.article, comment='save n°3: Remove some new and old contents')
+
+        # We retrieve the v0 and compare it
+        clone_content_v0 = deepcopy(portal_repository.retrieve(self.article, 0).object.__dict__)
+        for key in ARTICLE_ATTRIBUTES:
+            #print key
+            value_v0 = article_content_v0[key]
+            if hasattr(value_v0, 'getItems'):
+                value_v0 = value_v0.getItems()
+            #PrettyPrinter().pprint(value_v0)
+
+            clone_v0 = clone_content_v0[key]
+            if hasattr(clone_v0, 'getItems'):
+                clone_v0 = clone_v0.getItems()
+            #PrettyPrinter().pprint(clone_v0)
+
+            self.failUnless(value_v0 == clone_v0)
+
+        # We retrieve the v1 and compare it
+        clone_content_v1 = deepcopy(portal_repository.retrieve(self.article, 1).object.__dict__)
+        for key in ARTICLE_ATTRIBUTES:
+            #print key
+            value_v1 = article_content_v1[key]
+            if hasattr(value_v1, 'getItems'):
+                value_v1 = value_v1.getItems()
+            #PrettyPrinter().pprint(value_v1)
+
+            clone_v1 = clone_content_v1[key]
+            if hasattr(clone_v1, 'getItems'):
+                clone_v1 = clone_v1.getItems()
+            #PrettyPrinter().pprint(clone_v1)
+
+            self.failUnless(value_v1 == clone_v1)
+
+
+    def test_cmfedition_article_03_revert_version_v2_v1_v0(self):
+        """Revert a version on a PloneArticle v2 to v1 then to v0
+
+        We add and remove internal data and compare them with reverted version
+        """
+        self.loginAsPortalMember()
+        self.createArticle(self.member_folder)
+
+        portal_repository = getToolByName(self.portal, 'portal_repository', None)
+        portal_archivist = getToolByName(self.portal, 'portal_archivist', None)
+
+        article_content_v0 = deepcopy(self.article.__dict__)
+        refs_v0 = (
+            article_content_v0['__ordered_attachment_refs__'].getItems(),
+            article_content_v0['__ordered_image_refs__'].getItems(),
+            article_content_v0['__ordered_link_refs__'].getItems(),
+        )
+
+        portal_repository.applyVersionControl(self.article, comment='save n°1: Nothing but default')
+
+        # For the first version we add contents
+        self.article.addAttachmentFromObject(self.article_file2)
+        self.article.addImageFromObject(self.article_image2)
+        self.article.addLinkFromObject(self.article_link2)
+
+        article_content_v1 = deepcopy(self.article.__dict__)
+        refs_v1 = (
+            article_content_v1['__ordered_attachment_refs__'].getItems(),
+            article_content_v1['__ordered_image_refs__'].getItems(),
+            article_content_v1['__ordered_link_refs__'].getItems(),
+        )
+
+        # We verify that modifications are saved
+        for index in range(0,3,1):
+            self.failIf(refs_v0[index] == refs_v1[index])
+
+        portal_repository.applyVersionControl(self.article, comment='save n°2: Add contents')
+
+        # For the second version we remove contents
+        # We would verify against v0 and v1
+        attachment_uids = [e.UID() for e in self.article.getAttachments()]
+        self.article.removeAttachments(UIDs=attachment_uids[:2])
+        image_uids = [e.UID() for e in self.article.getImages()]
+        self.article.removeImages(UIDs=[image_uids[0], image_uids[2]])
+        link_uids = [e.UID() for e in self.article.getLinks()]
+        self.article.removeLink(UID=link_uids[0])
+
+        article_content_v2 = deepcopy(self.article.__dict__)
+        refs_v2 = (
+            article_content_v2['__ordered_attachment_refs__'].getItems(),
+            article_content_v2['__ordered_image_refs__'].getItems(),
+            article_content_v2['__ordered_link_refs__'].getItems(),
+        )
+
+        # We verify that modifications are saved
+        for index in range(0,3,1):
+            self.failIf(refs_v1[index] == refs_v2[index])
+
+        portal_repository.applyVersionControl(self.article, comment='save n°3: Remove some new and old contents')
+
+        # We revert the v1 and compare it
+        portal_repository.revert(self.article, 1)
+        clone_content_v1 = deepcopy(self.article.__dict__)
+
+        for key in ARTICLE_ATTRIBUTES:
+            print
+            print key
+            value_v1 = article_content_v1[key]
+            if hasattr(value_v1, 'getItems'):
+                value_v1 = value_v1.getItems()
+            if isinstance(value_v1, (TupleType, ListType)):
+                value_v1 = list(value_v1)
+                value_v1.sort()
+            print 'v1:'
+            PrettyPrinter().pprint(value_v1)
+
+            clone_v1 = clone_content_v1[key]
+            if hasattr(clone_v1, 'getItems'):
+                clone_v1 = clone_v1.getItems()
+            if isinstance(clone_v1, (TupleType, ListType)):
+                clone_v1 = list(clone_v1)
+                clone_v1.sort()
+            print 'clone v1:'
+            PrettyPrinter().pprint(clone_v1)
+
+            self.failUnless(value_v1 == clone_v1)
+
+        # We revert the v0 and compare it
+        portal_repository.revert(self.article, 0)
+        clone_content_v0 = deepcopy(self.article.__dict__)
+
+        for key in ARTICLE_ATTRIBUTES:
+            print
+            print key
+            value_v0 = article_content_v0[key]
+            if hasattr(value_v0, 'getItems'):
+                value_v0 = value_v0.getItems()
+            if isinstance(value_v0, (TupleType, ListType)):
+                value_v0 = list(value_v0)
+                value_v0.sort()
+            print 'v0:'
+            PrettyPrinter().pprint(value_v0)
+
+            clone_v0 = clone_content_v0[key]
+            if hasattr(clone_v0, 'getItems'):
+                clone_v0 = clone_v0.getItems()
+            if isinstance(clone_v0, (TupleType, ListType)):
+                clone_v0 = list(clone_v0)
+                clone_v0.sort()
+            print 'clone v0:'
+            PrettyPrinter().pprint(clone_v0)
+
+            self.failUnless(value_v0 == clone_v0)
+
+
+if pa_config.HAS_CMFEDITIONS:
+    tests.append(TestCFMEditions)
+
+if __name__ == '__main__':
+    framework()
+else:
+    # While framework.py provides its own test_suite()
+    # method the testrunner utility does not.
+    import unittest
+    def test_suite():
+        suite = unittest.TestSuite()
+        for test in tests:
+            suite.addTest(unittest.makeSuite(test))
+        return suite


Property changes on: zope-plonearticle/branches/upstream/current/tests/testMigration.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/tests/testPloneArticle.py
===================================================================
--- zope-plonearticle/branches/upstream/current/tests/testPloneArticle.py	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/tests/testPloneArticle.py	2006-10-21 20:56:22 UTC (rev 321)
@@ -12,7 +12,7 @@
 """
 PloneArticle base test
 
-$Id: testPloneArticle.py,v 1.13 2006/07/20 11:56:00 glenfant Exp $
+$Id: testPloneArticle.py,v 1.15 2006/09/18 20:52:55 encolpe Exp $
 """
 
 from common import *
@@ -29,13 +29,13 @@
 tests = []
 
 class TestPloneArticle(PloneArticleTestCase):
-    
+
     def testCreateArticle(self, ):
         """
         """
         self.loginAsPortalMember()
         self.article = self.createEmptyArticle(self.member_folder)
-        
+
     def testEditArticle(self, ):
         """
         Editing article
@@ -44,23 +44,23 @@
         title = "A dummy title"
         text = "<p>My dummy text</p>"
         description = "A dummy description"
-        
+
         # Edit content
         self.article.edit(text = text, title = title, description = description, text_format = 'html')
-        
+
         # test if everything is ok
         self.failUnless(self.article.Title() == title, "Value is %s" % self.article.Title())
         self.failUnless(self.article.Description() == description, "Value is %s" % self.article.Description())
         self.failUnless(self.article.getText() == text, "Value is %s" % self.article.getText())
-        
-        
+
+
     def addAttachment(self, container=None, title = 'attachment_title', description = 'attachment_description'):
         """
         """
         container = container or self.testCreateArticle()
         self.article.addAttachment(self, title, description, file=TestFile())
-        
-    
+
+
     def testAddAttachment(self, ):
         """
         """
@@ -70,7 +70,7 @@
         attachments = contents[0].getContents(self.article)
         #the article has only one attachment
         self.assertEqual(1, len(attachments))
-        
+
         #the attachment added is an ATFile
         self.assertEqual(self.portal.portal_types.getTypeInfo(FILE_PORTAL_TYPE),
                          attachments[0].getTypeInfo())
@@ -82,20 +82,20 @@
         """
         #test content
         self.assertEqual('file_contents', str(attachments[0]))
-        
-        
-        
+
+
+
     def testGetAttachment(self, ):
         """
         """
         self.testAddAttachment()
         contents = self.article.article_contents
         attachments = contents[0].getContents(self.article)
-        
+
         #attachment uid is non existant
         uid = 'No chance it exists'
         self.assertEqual(self.article.getAttachment(uid), None)
-        
+
         #get the uid of added attachment
         uid = attachments[0].UID()
         #get attachment by uid
@@ -104,7 +104,7 @@
         #the return attachment is an ATFile
         self.assertEqual(self.portal.portal_types.getTypeInfo(FILE_PORTAL_TYPE),
                          attachment.getTypeInfo())
-    
+
     def testGetAttachmentBrain(self, ):
         """
         """
@@ -113,13 +113,13 @@
         attachments = contents[0].getContents(self.article)
         uid = attachments[0].UID()
         brain = self.article.getAttachmentBrain(uid)
-        
+
         #getAttachmentBrain return an ArticleReferenceBrain
         from Products.PloneArticle.ArticleCore import ArticleReferenceBrain
         self.failUnless(isinstance(brain, ArticleReferenceBrain),
                         'Value is %s' % type(brain))
-    
-    
+
+
     def testGetAttachments(self, ):
         """
         """
@@ -129,7 +129,7 @@
         self.addAttachment(self.article, 'title2', 'desc2')
         attachments = self.article.getAttachments()
         self.assertEqual(2, len(attachments))
-    
+
     def testGetAttachmentBrains(self,):
         """
         """
@@ -137,13 +137,13 @@
         external_file = self.createExternalFile()
         self.article.addAttachmentFromObject(external_file)
         brains = self.article.getAttachmentBrains()
-        
+
         #getAttachmentBrains return an ArticleReferenceBrain
         from Products.PloneArticle.ArticleCore import ArticleReferenceBrain
         self.failUnless(isinstance(brains[0], ArticleReferenceBrain),
                         'Value is %s' % type(brains[0]))
 
-    
+
     def testGetAttachmentUIDs(self, ):
         """
         """
@@ -157,7 +157,7 @@
         self.failUnless(external_file.UID() in self.article.getAttachmentUIDs())
         # same length
         self.assertEqual(len(uids), len(attachments))
-        
+
     def testAddAttachmentFromObject(self, ):
         """
         """
@@ -170,7 +170,7 @@
         #added object is return as reference
         ref = self.article.getAttachmentBrain(external_file.UID())
         self.assertEqual(ref.getObject(), obj)
-        
+
     def testAddAttachmentFromUID(self, ):
         """
         """
@@ -193,7 +193,7 @@
         self.article.editAttachment(uid, title, description)
         self.failUnless(attachment.Title() == title, "Value is %s" % attachment.Title())
         self.failUnless(attachment.Description() == description, "Value is %s" % attachment.Description())
-    
+
     def testEditAttachments(self, ):
         """
         Edit attachments.
@@ -206,8 +206,8 @@
         title = 'a title'
         description = 'a description'
         attachments = [
-          {'UID': attachment.UID(), 
-           'title': title, 
+          {'UID': attachment.UID(),
+           'title': title,
            'description': description
           } for attachment in self.article.getAttachments()
         ]
@@ -216,10 +216,10 @@
         attach2 = self.article.getAttachments()[1]
         self.assertEqual(attach1.Title(), title)
         self.assertEqual(attach1.Description(), description)
-    
+
     def testRemoveAttachment(self, ):
+        """ Remove one attachment
         """
-        """
         self.testAddAttachment()
         self.addAttachment(container=self.article)
         attachments = self.article.getAttachments()
@@ -227,18 +227,18 @@
         uid = uids[1]
         self.article.removeAttachment(uid)
         self.assertEqual(None, self.article.getAttachment(uid))
-    
+
     def testRemoveAttachments(self, ):
+        """ Remove all attachments
         """
-        """
         self.testAddAttachment()
         self.addAttachment(container=self.article)
         attachments = self.article.getAttachments()
         uids = [attachment.UID() for attachment in attachments]
         self.article.removeAttachments(uids)
         self.assertEqual([], self.article.getAttachments())
-    
-    
+
+
     def testMoveAttachmentsByDelta(self, ):
         """
         """
@@ -246,28 +246,28 @@
         self.addAttachment(container=self.article)
         attach1 = self.article.getAttachments()[0]
         attach2 = self.article.getAttachments()[1]
-    
+
     def testCopyAttachmentsToClipboard(self, ):
         """ TODO
         """
         pass
-    
+
     def testIsAttachmentContained(self, ):
         """ TODO
         """
         pass
-        
+
     def testCopyArticle(self,):
         """ Copy article
         """
-        
+
         self.loginAsPortalMember()
         self.createArticle(self.member_folder)
         article_id = self.article.getId()
         cb = self.member_folder.manage_copyObjects(ids=[article_id])
         self.member_folder.manage_pasteObjects(cb_copy_data=cb)
         new_article = getattr(self.member_folder, 'copy_of_%s' % article_id)
-        
+
         attachment_uids = new_article.getAttachmentUIDs()
         image_uids = new_article.getImageUIDs()
         self.assertEqual(len(attachment_uids), 2)
@@ -277,7 +277,7 @@
         self.failUnless(self.article_file.UID() not in attachment_uids)
         self.failUnless(self.article_image.UID() not in image_uids)
         self.logout()
-        
+
     def testCutArticle(self,):
         """ Cut article
         """
@@ -290,15 +290,15 @@
         new_folder_id = 'test'
         self.member_folder.invokeFactory(type_name='Folder', id=new_folder_id)
         new_folder = getattr(self.member_folder, new_folder_id)
-        
+
         # make sure we have _p_jar
         get_transaction().commit(1)
-        
+
         # Cut / Paste
         cb = self.member_folder.manage_cutObjects(ids=[article_id])
         new_folder.manage_pasteObjects(cb_copy_data=cb)
         new_article = getattr(self.member_folder, article_id)
-        
+
         article_file = getattr(new_article, 'article_file', None)
         self.failUnless(article_file is not None)
         article_image = getattr(new_article, 'article_image', None)
@@ -312,22 +312,22 @@
         self.failUnless(article_file.UID() in attachment_uids)
         self.failUnless(article_image.UID() in image_uids)
         self.logout()
-        
+
     def testRenameArticle(self,):
         """ Rename article
         """
-        
+
         self.loginAsPortalMember()
         self.createArticle(self.member_folder)
         article_id = self.article.getId()
-        
+
         # make sure we have _p_jar
         get_transaction().commit(1)
-        
+
         # Rename article
         new_article_id = 'new_article'
         self.member_folder.manage_renameObject(article_id, new_article_id)
-        
+
         # Test renamed article
         new_article = getattr(self.member_folder, new_article_id)
         article_file = getattr(new_article, 'article_file', None)
@@ -343,7 +343,7 @@
         self.failUnless(article_file.UID() in attachment_uids)
         self.failUnless(article_image.UID() in image_uids)
         self.logout()
-    
+
     #
     # TOOL TESTS
     #
@@ -357,11 +357,11 @@
         """
         Test max attachment size setting in Plone Article Tool
         """
-        
+
         portal_article = getToolByName(self.portal, 'portal_article')
         # Default should be 0: Unlimited
         self.failUnless(portal_article.getMaxAttachmentSize() == 0)
-        
+
         # Change to size
         portal_article.max_attachment_size = size
         self.failUnless(portal_article.getMaxAttachmentSize() == size)
@@ -371,7 +371,7 @@
         """
         Test max attachment size setting in Plone Article Tool
         """
-        
+
         portal_article = getToolByName(self.portal, 'portal_article')
         # Default should be 0: Unlimited
         self.failUnless(portal_article.getMaxImageSize() == 0)
@@ -383,49 +383,59 @@
     def testArticleToolLockSupport(self,):
         """
         """
-        
+
         portal_article = getToolByName(self.portal, 'portal_article')
         hasLockSupport = portal_article.hasLockSupport()
-        
+
         #default is 0
         self.assertEqual(hasLockSupport, 0)
-        
+
+    def testArticleToolCMFEditionsSupport(self,):
+        """
+        """
+
+        portal_article = getToolByName(self.portal, 'portal_article')
+        hasCMFEditionsSupport = portal_article.hasCMFEditionsSupport()
+
+        #default is 0
+        self.assertEqual(hasCMFEditionsSupport, 0)
+
     def testPloneArticleToolPreview(self,):
         """
         Test preview setting in Plone Article Tool
         """
-        
+
         portal_article = getToolByName(self.portal, 'portal_article')
-        
+
         # Default should be 1: Switched on
         self.failUnless(portal_article.isPreviewActivated() == 1)
 
         # Change to 0
         portal_article.preview_activated = 0
         self.failUnless(portal_article.isPreviewActivated() == 0)
-        
+
         # Change to 1
         portal_article.preview_activated = 1
         self.failUnless(portal_article.isPreviewActivated() == 1)
 
-        
 
+
     def TODO_testPloneArticleToolTextFormat(self,):
         """
         Test text format setting in Plone Article Tool
         """
         portal_article = getToolByName(self.portal, 'portal_article')
-        
+
         # Default should be ...
         #self.assertEqual(portal_article.getSiteTextFormats(), ('html', ))
-        
+
         # Should be html, plain and structured-text
         self.failUnless(
             portal_article.getAvailableTextFormats() == [
                 'html', 'plain', 'structured-text',
                 ],
             )
-        
+
         # Structured Text
         portal_article.setSiteTextFormats(['structured-text',])
         self.assertEqual(portal_article.getSiteTextFormats(), ('structured-text', ))
@@ -433,7 +443,7 @@
         # HTML
         portal_article.setSiteTextFormats(['html',])
         self.assertEqual(portal_article.getSiteTextFormats(), ('html', ))
-        
+
         #self.failUnless('html' in self.portal_article.getSiteTextFormats())
         #self.failIf('plain' in self.portal_article.getSiteTextFormats())
         #self.failIf('structured-text' in self.portal_article.getSiteTextFormats())
@@ -441,10 +451,10 @@
         # Plain text
         portal_article.setSiteTextFormats(['plain'])
         self.assertEqual(
-            portal_article.getSiteTextFormats(), 
+            portal_article.getSiteTextFormats(),
             ('plain', )
         )
-        
+
         #self.failUnless('plain' in self.portal_article.getSiteTextFormats())
         #self.failIf('html' in self.portal_article.getSiteTextFormats())
         #self.failIf('structured-text' in self.portal_article.getSiteTextFormats())
@@ -452,7 +462,7 @@
         # Should be plain and structured-text
         portal_article.setSiteTextFormats(['plain','structured-text'])
         self.assertEqual(
-            portal_article.getSiteTextFormats(), 
+            portal_article.getSiteTextFormats(),
             ('plain','structured-text')
         )
 
@@ -463,18 +473,18 @@
         # Should be html, plain and structured-text
         portal_article.setSiteTextFormats(['plain','html','structured-text'])
         self.assertEqual(
-            portal_article.getSiteTextFormats(), 
+            portal_article.getSiteTextFormats(),
             ('plain','html','structured-text', )
         )
-        
+
         #self.failUnless('plain' in self.portal_article.getSiteTextFormats())
         #self.failUnless('structured-text' in self.portal_article.getSiteTextFormats())
         #self.failUnless('html' in self.portal_article.getSiteTextFormats())
-        
+
         # Should be html and structured-text
         portal_article.setSiteTextFormats(['plain','structured-text'])
         self.assertEqual(
-            portal_article.getSiteTextFormats(), 
+            portal_article.getSiteTextFormats(),
             ('plain','structured-text', )
         )
 
@@ -490,17 +500,17 @@
         # Check that model exists and is default
         self.failUnless(model is not None)
         self.failUnless(model == "plonearticle_model")
-        
+
     def testSetModel(self,):
         """
         Test model changing
         """
-        
+
         portal_article = getToolByName(self.portal, 'portal_article')
         self.testCreateArticle()
         #test the default situation : only 8 model can be chosen
         self.assertEqual(len(portal_article.getSiteModels()), 8)
-        
+
         # Set a valid model
         site_models = portal_article.getAvailableModels()
         portal_article.site_models = site_models
@@ -522,8 +532,8 @@
         self.article.model = "ZORGLUB"
         model = self.article.getModel()
         self.failUnless(model == "plonearticle_model")
-        
-        
+
+
 tests.append(TestPloneArticle)
 
 if __name__ == '__main__':


Property changes on: zope-plonearticle/branches/upstream/current/tests/testSecurity.py
___________________________________________________________________
Name: svn:executable
   - 
   + *

Modified: zope-plonearticle/branches/upstream/current/version.txt
===================================================================
--- zope-plonearticle/branches/upstream/current/version.txt	2006-10-21 20:37:47 UTC (rev 320)
+++ zope-plonearticle/branches/upstream/current/version.txt	2006-10-21 20:56:22 UTC (rev 321)
@@ -1 +1 @@
-3.2.2
\ No newline at end of file
+3.2.3
\ No newline at end of file


Property changes on: zope-plonearticle/branches/upstream/current/www/manage_migration.zpt
___________________________________________________________________
Name: svn:executable
   - 
   + *


Property changes on: zope-plonearticle/branches/upstream/current/www/manage_overview.zpt
___________________________________________________________________
Name: svn:executable
   - 
   + *




More information about the pkg-zope-commits mailing list