{ "info": { "author": "Plone Foundation", "author_email": "plone-developers@lists.sourceforge.net", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": ".. contents::\n\n.. image:: https://api.travis-ci.org/plone/Products.LinguaPlone.png\n :target: http://travis-ci.org/plone/Products.LinguaPlone\n\nIntroduction\n============\n\nLinguaPlone is *the* multilingual/translation solution for Plone, and achieves\nthis by being as transparent as possible and by minimizing the impact for\nexisting applications and Plone itself.\n\nIt utilizes the Archetypes reference engine to do the translation, and all\ncontent is left intact both on install and uninstall - thus, it will not\ndisrupt your content structure in any way.\n\nLinguaPlone doesn't require a particular hierarchy of content, and will in\ntheory work with any layout of your content space, though the default layout\nadvertised in the install instructions will make the site easier to use.\n\nSome benefits of LinguaPlone\n----------------------------\n\n- Totally transparent, install-and-go.\n\n- Each translation is a discrete object, and can be workflowed individually.\n\n- Translations are kept track of using AT references.\n\n- You can multilingual-enable your types without affecting their operation\n outside LinguaPlone.\n\n- Even if you uninstall LinguaPlone after adding multilingual content, all\n your content will be intact and will work as separate objects! The only\n thing that will be inactive is the references between the objects. If you\n re-install it, they will be back. It's very non-intrusive.\n\n- Supporting multilingual capabilities is a 4 (!) line addition to your\n Archetypes class, and does not alter the functionality of the class when\n used outside LinguaPlone.\n\n- Fully integrated with ATContentTypes, so the basic content types are\n translatable.\n\n- Supports language-independent fields (example: dates, first/last names)\n for fields you want to be the same across translations, and updated in all\n languages if one of them changes.\n\n- Uses the notion of canonical versions, so you can do interesting things\n with workflow, like invalidate all translations of a document when the\n master copy has changed.\n\n\nInstallation\n============\n\nInstall LinguaPlone into your Plone environment by adding it to the buildout or\nadding it as a dependency of your policy package and rerun buildout.\n\nNext add a new Plone site and select the `LinguaPlone` add-on. Make sure to\nspecify the primary language of your site. Continue to the language control\npanel and specify all other languages you want to support.\n\nPrepare the content structure by calling `@@language-setup-folders` on your\nPlone site root, for example::\n\n http://localhost:8080/Plone/@@language-setup-folders\n\nYou might want to clean up the default content or move it around by visiting::\n\n http://localhost:8080/Plone/folder_contents\n\nand deleting the Events, News and Users folders. \n\nIf you are migrating an existing site to use LinguaPlone, you might need\nto use special URL trick to reveal the old language content for cut-pasting \nafter performing ``@@language-setup-folders``.\n\nExample how to access mixed-language folder listing::\n\n http://localhost:8080/Plone/folder_contents?set_language=fi \n\nUse ``manage_translation_form`` direct URL to build top level folder langauge\nlinks. E.g.::\n\n http://localhost:8080/Plone//en/manage_translations_form\n\nAfter following all these steps you have a good starting point to build a\nmultilingual site. Whether or not you have the same site structure in each\nof the language folders is up to you and your requirements. By using the top\nlevel language folders every URL corresponds to exactly one language which is\ngood for search bots and makes caching a lot easier. It also means that you\ndon't have folders with mixed languages in them, which improves the usability\nfor editors a lot, since they don't have to worry about switching languages in\nthe same folder just to see if there's more content in them.\n\nThe Plone site root is the only exception here and setup with a language\nswitcher default view that does the language negotiation and redirects users\nto the right URL.\n\n\nUpgrade\n=======\n\nIf you are upgrading LinguaPlone there may be an upgrade step that you need to\ndo. Please check the 'Add-ons' control panel for this.\n\n\nUninstallation\n==============\n\nIf you no longer want to use LinguaPlone, you can remove it from your site.\n\nFirst you need to deactivate LinguaPlone in the add-ons control panel. After\nyou did this you can remove LinguaPlone from your Plone environment on the file\nsystem. If you forget to do the deactivation step, add LinguaPlone back\ntemporarily and deactivate it properly. Otherwise you'll likely not be able to\nuse their site with errors relating to the `SyncedLanguages` utility.\n\n\nFrequently asked questions\n==========================\n\nI see no language flags and switching language does not work\n------------------------------------------------------------\n\nThis happens if the cookie language negotiation scheme is not enabled. Look\nat the ``portal_languages`` tool in the ZMI and check if ``Use cookie for\nmanual override`` is enabled.\n\nIf the language selection links point to URL's containing `switchLanguage` the\nwrong language selector from core Plone is active. Go to the control panel and\ncheck if you can select multiple languages on the language control panel. If\nyou cannot, LinguaPlone isn't properly installed.\n\nIf you can select multiple languages only the language selector viewlet is\nwrong. Make sure you haven't customized the viewlet and put it into a different\nviewlet manager. The viewlet is only registered for the\n`plone.app.layout.viewlets.interfaces.IPortalHeader` manager. You need to\nregister the languageselector viewlet from `LinguaPlone/browser/configure.zcml`\nfor your new viewlet manager as well.\n\n\nDeveloper Usage\n===============\n\nYou can test it by multilingual-enabling your existing AT content types (see\ninstructions below), or by testing the simple included types. Don't forget to\nselect what languages should be available in the language control panel.\n\n\nImplementation details\n======================\n\nArchitecture\n------------\n\nLinguaPlone can only be used with Archetypes based content types.\nIt provides a I18NBaseObject class that implements a ITranslatable interface\nthat handles the translation linking. LinguaPlone provides base classes that\ninherits from I18NBaseObject and the regular AT base classes.\n\nLanguage independent fields\n---------------------------\n\nLanguage independent fields are looked up from the canonical (original)\ntranslation.\n\nThe value is also stored on each translated object so every object has every\nattribute in case it is moved out of a translation context or some attributes\n(like start and end on events) are referenced directly.\n\nLanguage independence is set in the AT schema definition. Only AT based\ncontent types can have language independent fields.\n\nLanguage lookup\n---------------\n\nThe language tool returns a list of languages to look for. If there is no\nfallback, there will be only one element in the list.\n\n\nEnable multilingual support in your content types\n-------------------------------------------------\n\nAt the top, **instead** of ``from Products.Archetypes.atapi import *``, you\nadd::\n\n try:\n from Products.LinguaPlone import atapi\n except ImportError:\n # No multilingual support\n from Products.Archetypes import atapi\n\nFor the fields that are language independent, you add\n``languageIndependent=True`` in the Archetypes schema definition.\n\nExample::\n\n atapi.StringField(\n 'myField',\n widget=atapi.StringWidget(\n ....\n ),\n languageIndependent=True\n ),\n\nLanguage independent fields are correctly shared between linked translations only if \nyour content type uses LinguaPlone imports as described above.\n\nFor more LinguaPlone related programming examples see \n`Translating content `_\nin Plone Developer Documentation.\n\n\nDeveloper information\n=====================\n\n* Home page: http://plone.org/products/linguaplone\n* Issue tracker: http://plone.org/products/linguaplone/issues\n* Code repository: https://svn.plone.org/svn/plone/Products.LinguaPlone/trunk\n* Mailing list: https://lists.sourceforge.net/lists/listinfo/plone-i18n\n\n\nLicense\n=======\n\nGNU General Public License, version 2\n\nFrequently Asked Questions\n==========================\n\nCan LinguaPlone be used to translate content?\n Yes, that's exactly the reason why it was developed.\n\nCan LinguaPlone be used to translate the Plone interface too?\n No, the translation of Plone interface is handled by Plone itself.\n\nDoes LinguaPlone supports folder translations?\n Yes, both folderish and non-folderish content types can be translated.\n\nHow LinguaPlone keep track of translations?\n It uses Archetypes references to link the items. Every translation\n has a reference pointing to the 'canonical' item.\n\nWhat's a 'canonical' item?\n It's the original content from where all translations are created. All\n translations have a reference pointing to it.\n\nCan I have items that are language independent?\n Yes, every item without a language explicitly set will be considered\n language independent (neutral), and show up in all searches and navigation.\n\nCan I have fields that are language independent?\n Yes. Look at the example types for the 'languageIndependent' schema\n definitions. Ideal for stuff like dates and names, where all translations\n should have the same text. The values that are language independent can only\n be edited in the canonical item, not in the translations.\n\nWhat's the language of newly created content?\n All content are initially created in the language you are currently in.\n If you want it to be language independent (neutral), you have to explicitly\n set this in the language control panel.\n\nWhat happens when I translate content?\n You're presented with a screen where you can select both the language for\n the original content and the language for the translation. This screen\n also shows you the content from the canonical item so you can see the\n original text for each field.\n\nWhat happens when I translate a folder?\n A new folder is created with the selected language. Also, all content\n with the same language currently in the original folder will be moved\n to the new folder, automatically.\n\nWhat happens when I translate the default view of a folder?\n The default view is the content selected to be displayed when\n directly accessing a folder. In this case, when translating it, LinguaPlone\n first creates a translation for the folder, then the content.\n\nWhy do catalog searches now only return content in the current language?\n For all language-aware items (essentially, every item with the Language\n variable set), LinguaPlone filters out the content not relevant to the\n current language. This is done to have a consistent, one-language-at-a-time\n site. Mixing languages in a site is a very bad idea, and is very\n unpredictable.\n\nSo I can't search in any of the other languages?\n Of course you can, but you have to explicitly ask for it by specifying\n 'Language=all' when doing a search.\n\nCan I change the language of content after initial creation?\n Yes, but you can only change the language to one of the untranslated\n ones. You can't have two translations with the same language for the\n same content. When changing the content language, if the parent folder\n is already translated, LinguaPlone moves the content to the folder with\n the same language.\n\nHow can I change the content language?\n Both the 'Categorization' tab and the 'Manage Translations' menu item allows\n you to change the language of an item. The difference is that the latter also\n performs some restrictions to only display sane values, while the former\n display all languages. We recommend using the 'Manage Translations' entry in\n the Translate pulldown.\n\nCan I make an already translated content be language independent again?\n Yes. You just need to change the language to 'neutral'. This only works on\n 'Categorization' tab of an item.\n\nWhat is the 'neutral' language?\n It's exactly what it means: neutral. In other words, it's a way to represent\n the content in all languages. The content becomes language independent and\n can be displayed for any language when both navigating and searching.\n\nHow LinguaPlone decides what language to use when someone access my site?\n When you access a LinguaPlone site for the first time, LinguaPlone uses the\n header 'HTTP_ACCEPT_LANGUAGE' sent by the browser to decide the language\n that should be used, then set a cookie with it. From this point, you only\n will get content on that language, except if you explicitly switch to a\n different language. In this case, the cookie value is updated to the new\n language. But if you directly access a content in a different language,\n LinguaPlone will show you that content item and adjust the UI language to\n match the language of the requested content.\n\nHow can I link an already existing content as a translation for another one?\n The 'Manage Translations' menu item has a form that allows you to select\n any content from the same type from the current one as a new translation,\n in any of the untranslated languages.\n\nChangelog\n=========\n\n4.3.0 (2018-02-23)\n------------------\n\nNew features:\n\n- The breadcrumb shown on the translation linker pop-up shows the full site\n [erral]\n\n- Translation linker pop-up is opened on the portal root\n [erral]\n\n\n4.2.1 (2017-04-03)\n------------------\n\nBug fixes:\n\n- Fix translation menu for combined language codes [fRiSi]\n\n\n4.2 (2017-03-09)\n----------------\n\nNew features:\n\n- Show the native language name on the \"Translate into...\" menu\n [erral]\n\nBug fixes:\n\n- Fix import location for Products.ATContentTypes.interfaces.\n [thet]\n\n- Don't fail while uninstalling, if LinguaPlone is already uninstalled.\n [thet]\n\n\n4.1.8 (2017-01-12)\n------------------\n\nBug fixes:\n\n- Fix Home link in the translationbrowser_popup template to point to\n navigation root, not the site root.\n [vincentfretin]\n\n- Add tests for sitemap\n [djowett]\n\n\n4.1.7 (2016-11-10)\n------------------\n\nBug fixes:\n\n- Fixed bug where even Manager could not view a folder with private default page.\n Fixes https://github.com/plone/Products.CMFPlone/issues/1822\n [maurits]\n\n- Fixed CSRF protection bug on @@language-setup-folders view.\n [syzn]\n\n\n4.1.6 (2016-11-09)\n------------------\n\nBug fixes:\n\n- Show also current language link in header hreflang links.\n [erral]\n\n\n4.1.5 (2016-08-11)\n------------------\n\nFixes:\n\n- Use zope.interface decorator.\n [gforcada]\n\n\n4.1.4 (2016-02-17)\n------------------\n\n- Language selector: add form variables\n only when method is GET\n [gotcha]\n\n- Fix handling of deleted or renamed \"default page\" items.\n [witsch]\n\n- Add uninstall profile.\n [thet]\n\n- Fixed permission for manage_translations_form, anonymous can't access the page\n anymore.\n [prospchr]\n\n- getTypeInfo : defer computation of isCanonical\n [gotcha]\n\n- Fix tests\n [jfroche]\n\n- Set default field value if nothing is given in mutator value\n [jfroche]\n\n- Add Travis buildout\n [jfroche]\n\n\n4.1.3 (2013-01-18)\n------------------\n\n- Fix regression from the plone site root change. When accessing the zope\n root using the ZMI getSite returns empty, so fall back to traversing.\n [pjstevns]\n\n- Add a better way in getting plone site root. A change in Archetypes setting\n the creation date by a subscriber breaks the old way, because traversing\n wasn't avaliable in such an early state.\n [hoka]\n\n- Add a viewlet to mark the translated content as suggested by Google at\n http://googlewebmastercentral.blogspot.com.es/2011/12/new-markup-for-multilingual-content.html\n [erral]\n\n- Update bootstrap.py for zc.buildout 1.5.0.\n [pjstevns]\n\n- Deal with broken translations, esp. when the content's language doesn't\n match the parent's language.\n [pjstevns]\n\n- Fixed getting deletable languages if a language has been disabled and content\n has been translated in this language.\n [kroman0]\n\n- Added option to disable left portlets in translation view.\n [pingviini]\n\n- Fixed translation view to actually hide portlets when configured to do so.\n [pingviini]\n\n- Display the translation of the folder default page in the current language\n if available.\n [pjstevns]\n\n- Check if the forward transition exists before taking it\n [giacomos]\n\n- Fixed preview of \"renderable\" fields that are not simply text/html (like\n text/x-rst).\n [keul]\n\n- Adjust behavior to current BaseObject by using check_auto_id=True in\n processFormto not force rename_after_creation. This fix\n plone.api.content.create use when you have linguaPlone and you dont set id\n [toutpt]\n\n4.1.2 (2012-02-07)\n------------------\n\n- Translation helper scripts (getTransaltedLanguages, getUntranslatedLanguages,\n getDeletableLanguages) are now view methods.\n [thomasdesvenain]\n\n- Display the translation of the folder default page in the current language\n when the folder is neutral.\n [thomasdesvenain]\n\n- Avoid problems when setLanguage is given a null value that is not ''.\n [thomasdesvenain]\n\n\n4.1.1 (2011-11-15)\n------------------\n\n- New translations still had no proper id.\n fix http://plone.org/products/linguaplone/issues/246\n [gotcha]\n\n\n4.1 (2011-11-14)\n----------------\n\n- New translations did not get a proper id.\n fix http://plone.org/products/linguaplone/issues/246\n [jfroche]\n\n- Check 'Add portal content' permission on parent to display translate menu items.\n Check 'Delete objects' on parent or 'Modify portal content' on content\n to display \"Manage translations\" menu itme.\n Check user has one of those permissions to display menu.\n Refs http://dev.plone.org/plone/ticket/12223.\n [thomasdesvenain]\n\n- Update to require Plone 4.1.\n [hannosch]\n\n- Notify p.a.caching to purge translations when the canonical object is purged.\n [ggozad, stefan]\n\n- Changed permission for the controlpanel to `plone.app.controlpanel.Language`.\n This allows users with the `Site Administrator` role to access it.\n [toutpt]\n\n4.0.4 - 2011-07-25\n------------------\n\n- Selector should not propose link to inaccessible content (content for which\n the user does not have View permission). If a translation exist but is\n inaccessible, follow the acquisition chain until a translated item is\n accessible. In case we get to an inaccessible INavigationRoot, do not show\n the language at all.\n [gotcha]\n\n- Removed broken icons and fix invalid XHTML in translation browser popup.\n [hannosch]\n\n- Link to translation browser popup was broken in some VirtualHost setups.\n This closes http://plone.org/products/linguaplone/issues/277.\n [tgraf, hannosch]\n\n- Use template parameter in language selector's viewlet zcml declaration. This\n makes it easier to customize in add-ons. The change requires plone.app.i18n\n 2.0.1 or greater.\n [toutpt]\n\n- Force translate menu flag icons dimensions to 14x11 px, so that it's\n consistent with language selector menu. Works with\n plone.app.contentmenu 2.0.4+.\n [thomasdesvenain]\n\n- Changed policy for preserving the view/template in the language selector. We\n only do this if the target item is a direct translation of the current\n context. Otherwise we might link to views which are not available on the\n target content type.\n [thomasdesvenain, hannosch]\n\n- translate_item form works when content has no 'default' fieldset.\n [thomasdesvenain]\n\n- Declare plone.app.iterate dependency.\n [thomasdesvenain]\n\n4.0.3 - 2011-05-27\n------------------\n\n- Changed string exceptions to ValueErrors in `translate_edit.cpy`.\n [robert]\n\n- Fix the tests to work with GenericSetup 1.6.3+.\n [hannosch]\n\n- Explicitly load the CMF permissions before using them in a `configure.zcml`.\n [hannosch]\n\n4.0.2 - 2011-01-26\n------------------\n\n- Force the user to select a language before attempting to translate\n neutral content items. One content item can be either neutral or have\n translations, but not a mix of the two.\n [witsch]\n\n- Don't create an extra folder when translating the default page of a\n language-neutral folder.\n [witsch]\n\n4.0.1 - 2011-01-10\n------------------\n\n- Changed defaultLanguage behavior in I18NBaseObject to always report the\n parent's folder language even if it is neutral.\n [ggozad]\n\n4.0 - 2010-11-25\n----------------\n\n- Fixed possible XSS security issue in the `translationbrowser_popup` caused\n by displaying unfiltered content from the `Description` string field as HTML.\n Issue reported by Andrew Nicholson.\n [hannosch]\n\n- Protect against accidentally acquiring the `getTranslations` method from a\n parent object in `utils.generatedMutator`. Thanks to Matous Hora for the\n patch. This closes http://plone.org/products/linguaplone/issues/257.\n [hannosch]\n\n4.0b1 - 2010-11-04\n------------------\n\n- Gracefully deal with multiple brains per `UID` in `translated_references`.\n [hannosch]\n\n4.0a4 - 2010-10-06\n------------------\n\n- Avoid module global imports in our top-level ``__init__``. If you have\n accidentally imported any of the contents of the ``public`` module directly\n from ``Products.LinguaPlone``, you will need to adjust those to import from\n the ``public`` module instead. This closes\n http://plone.org/products/linguaplone/issues/253.\n [hannosch, ggozad, shh42]\n\n4.0a3 - 2010-09-24\n------------------\n\n- Rewrote ``getTranslationReferences`` and ``getTranslationBackReferences``\n internals to avoid the catalog search API and make use of knowledge of its\n internals.\n [hannosch]\n\n- In the TranslatableLanguageSelector only append a question mark, if there's\n a query string to append.\n [hannosch]\n\n4.0a2 - 2010-09-08\n------------------\n\n- Make the ``set_language`` query string addition configurable via a class\n variable on the TranslatableLanguageSelector.\n [hannosch]\n\n4.0a1 - 2010-07-28\n------------------\n\n- Added test for deleting canonical folders. Added minimum version requirement\n on Products.ATContentTypes 2.0.2 for the fix to\n http://plone.org/products/linguaplone/issues/241.\n [hannosch]\n\n- Fixed language selector logic to correctly deal with all kinds of VHM rules.\n This closes http://plone.org/products/linguaplone/issues/240.\n [hannosch]\n\n- Change the language selector viewlet to be shown in the IPortalHeader manager\n to be consistent with the new default location in Plone 4. This closes\n http://plone.org/products/linguaplone/issues/248.\n [hannosch]\n\n- Require at least Zope 2.12.5 and remove the `-C` work around.\n [hannosch]\n\n- Renamed migrations module to upgrades to match current nomenclature.\n [hannosch]\n\n- Removed Archetypes uid and reference catalog GenericSetup handlers. These\n are part of Archetypes now.\n [hannosch]\n\n- Removed Plone 3.3 specific tests.\n [hannosch]\n\n- Added tests for all upgrade steps.\n [hannosch]\n\n- Removed all dependencies on zope.app packages.\n [hannosch]\n\n- Specify all package dependencies.\n [hannosch]\n\n- Added dependency on Plone 4. Please use a release from the 3.x series if\n you are using Plone 3.\n [hannosch]\n\n3.1 - 2010-07-28\n----------------\n\n- No changes.\n\n3.1b1 - 2010-07-18\n------------------\n\n- Update license to GPL version 2 only.\n [hannosch]\n\n- If catalog filter attributes contain \"Language\", and \"Language\" is\n set to all, don't add Language filters to the REQUEST object\n [do3cc]\n\n3.1a5 - 2010-06-22\n------------------\n\n- Use a normal FieldIndex in the uid_catalog and correct custom setuphandler\n to create a functional FieldIndex.\n [hannosch]\n\n3.1a4 - 2010-06-18\n------------------\n\n- Removed example types, Plone's default types are LinguaPlone aware and\n provide a good demo of the functionality.\n [hannosch]\n\n- Refactored tests and conform to PEP8 in more places.\n [hannosch]\n\n- Changed the default index used for Language to be a normal FieldIndex. For\n most sites this is sufficient and avoids the major performance hit the\n LanguageIndex brings with it.\n [hannosch]\n\n- Refactor selector code to make it easier to write unit tests for it.\n [hannosch]\n\n- Added development information to README, this closes\n http://plone.org/products/linguaplone/issues/242.\n [hannosch]\n\n- Lessen optimization in selector code, to deal with folderish objects used as\n default pages, refs http://plone.org/products/linguaplone/issues/228.\n [hannosch]\n\n- Removed iterator for tabindex for Plone 4 compatibility.\n [hpeteragitator]\n\n3.1a3 - 2010-05-25\n------------------\n\n- Small optimizations in invalidateTranslations, deletable language vocabulary\n and script - avoiding review state calculation and full object lookups.\n [hannosch]\n\n- Removed logger instance and log method from ``config.py``.\n [hannosch]\n\n- Removed unused variables from ``config.py``: ``DEBUG``, ``GLOBALS``,\n ``PKG_NAME``, ``SKIN_LAYERS``, ``SKIN_NAME``, ``INSTALL_DEMO_TYPES``.\n [hannosch]\n\n- Added a general collection criteria translation sync functionality including\n language independent criteria support. This is currently not activated\n automatically and has no UI support yet. See the ``README.txt`` in the\n criteria sub-package for more caveats.\n [hannosch]\n\n- Added tests to prove that indexing and updating reference fields works.\n [hannosch]\n\n- Also handle multiValued references given by a tuple instead of a list in\n ``utils.translated_references``.\n [thet]\n\n- Mini-optimization in language selector.\n [hannosch]\n\n3.1a2 - 2010-03-29\n------------------\n\n- Fixed isCanonical inside portal_factory which could lead to strange errors.\n Thanks to Daniel Kraft for the patch. This closes\n http://plone.org/products/linguaplone/issues/236, 237 and 239.\n [hannosch]\n\n- Links in the language selector where broken when using ``_vh_`` parts.\n This closes http://plone.org/products/linguaplone/issues/235.\n [ramon]\n\n- Expanded test coverage extensively. Going from 84% to 93%.\n [hannosch]\n\n- Removed unfinished ``new_manage_translations_form`` prototype.\n [hannosch]\n\n- Silence the ``manage_*`` warnings for the example and test types.\n [hannosch]\n\n- Convert GenericSetup steps registrations to ZCML.\n [hannosch]\n\n- Removed all BBB imports for InitializeClass. We depend on Plone 3.3 which\n comes with Zope 2 versions with the forward compatible import locations, as\n introduced in Zope 2.10.8.\n [hannosch]\n\n- Removed old type actions from example and test types.\n [hannosch]\n\n- Some PEP8 cleanup and minor documentation updates.\n [hannosch]\n\n3.1a1 - 2010-02-19\n------------------\n\n- Factor out filtering of \"Language\" parameter so it can be reused elsewhere.\n [hannosch, witsch]\n\n- Made the manage_translations_form compatible with Plone 4 by replacing a\n call to referencebrowser_startupDirectory with hardcoding the current context\n as the startup directory.\n [huub_bouma]\n\n- Added workflow transitions to the setup view to publish the language folders.\n [hannosch]\n\n- Changed the setup view to give the folders native language titles.\n [hannosch]\n\n- Added automatic setup of the language switcher to the setup view.\n [hannosch]\n\n- Added new ``language-switcher`` view usable as a default view method for the\n Plone site object to dispatch to the appropriate language root folder.\n [hannosch]\n\n- Added new ``language-setup-folders`` helper view to set up a regular structure\n of language root folders for each supported language each marked as a\n navigation root.\n [hannosch]\n\n- Added more CSS classes to the language selector making it possible to target\n each language. Inspired by http://www.thirtysomething.it/.\n [hannosch]\n\n- Only register the catalog export import handlers if they aren't already part\n of Archetypes. This avoids conflicts in Plone 4.0.\n [hannosch]\n\n3.0.1 - 2010-02-02\n------------------\n\n- Adjusted the FAQ related to changing the language of an item. This closes\n http://plone.org/products/linguaplone/issues/234.\n [hannosch]\n\n- Clarify ITranslatable interface description for the getTranslation method.\n This closes http://plone.org/products/linguaplone/issues/226.\n [hannosch]\n\n- Made language index more forgiving when dealing with broken canonical\n references. This closes http://plone.org/products/linguaplone/issues/231.\n [hannosch]\n\n- Fixed a regression introduced in 3.0b4. The title of translations wasn't\n generated from the title anymore. While we retain the ability to specify an\n explicit id, by default the new id is now generated from the title again.\n This closes http://plone.org/products/linguaplone/issues/233.\n [hannosch]\n\n- The language portlet was broken due to a prior change of the selector.\n [jensens]\n\n- Small documentation updates.\n [hannosch]\n\n3.0 - 2009-12-21\n----------------\n\n- No changes from last release candidate.\n [hannosch]\n\n3.0c4 - 2009-12-07\n------------------\n\n- Made it possible to disable the i18n aware catalog feature via an environment\n variable called ``PLONE_I18NAWARE_CATALOG``.\n [hannosch]\n\n3.0c3 - 2009-11-25\n------------------\n\n- Made the translated reference functionality more resilient against errors.\n We overwrote the target ``value`` inside the loop setting the references on\n translations. In case of an invalid target in one language, this caused all\n subsequent translations to fail with a different error.\n [hannosch]\n\n3.0c2 - 2009-11-16\n------------------\n\n- Silence reference exceptions raised inside the reference multiplexing.\n A normal user cannot do anything about them, so we log them instead.\n [hannosch]\n\n- Changed import from deprecated Products.Archetypes.public to\n Products.Archetypes.atapi.\n [maurits]\n\n- Explicitly define ``portal`` inside the style_slot.\n [maurits]\n\n- Replaced the css_slot with the style_slot, as it is deprecated.\n [maurits]\n\n- Use new shared plonetest config file.\n [hannosch]\n\n3.0c1 - 2009-11-04\n------------------\n\n- Don't fail on broken references in ``translated_references``.\n [hannosch]\n\n- Adjusted tests to new default page behavior in Plone 4.\n [hannosch]\n\n- Made use of the new getTranslations API and avoid calculating the review\n state if it is not required.\n [hannosch]\n\n- Fixed functional tests to avoid an extraneous slash in the URL.\n [hannosch]\n\n- Added a new I18NOnlyBaseBTreeFolder mix-in, which can be used in Plone 4 to\n give LinguaPlone behavior to the new plone.app.folder types.\n [hannosch]\n\n- Avoid deprecation warnings for the use of the Globals package.\n [hannosch]\n\n3.0b8 - 2009-10-22\n------------------\n\n- Adjusted the language selector to point to the nearest translation for each\n language. So far the selector only worked on items which had translations\n into all languages. Otherwise the content language negotiator would render\n the selector useless. This closes\n http://plone.org/products/linguaplone/issues/219.\n [hannosch]\n\n- Fixed the language selector to work directly on the root in a virtual hosting\n environment. This closes http://plone.org/products/linguaplone/issues/216.\n [hannosch]\n\n- Expanded the development buildout to include a simple Nginx configuration to\n make it easier to test virtual hosting issues.\n [hannosch]\n\n- Changed the language selector to use the canonical_object_url instead of the\n view_url. We preserve the /view postfix ourselves, so using view_url would\n duplicate this in certain situations. We also stopped doing the default page\n analysis ourselves and use the given feature from the context state view.\n [hannosch]\n\n3.0b7 - 2009-10-21\n------------------\n\n- Protect the LanguageIndependentFields adapter against weird fields, like\n computed fields.\n [hannosch]\n\n3.0b6 - 2009-10-20\n------------------\n\n- Avoid preserving the mysterious `-C` in the language selector.\n [hannosch]\n\n- Made sure that subclasses of fields listed in I18NAWARE_REFERENCE_FIELDS\n also get the special reference handling. Otherwise schemaextender fields\n won't get the behavior.\n [hannosch]\n\n- Let the `generatedMutatorWrapper` work directly on schemaextender fields.\n [hannosch]\n\n- Replaced `has_key` with `in` checks using the `__contains__` protocol.\n [hannosch]\n\n- Factored out generated methods from the language independent ClassGenerator\n into module scope functions to allow outside access to them.\n [hannosch]\n\n3.0b5 - 2009-10-14\n------------------\n\n- Optimized the getTranslations method by allowing the calling functions to\n pass in a hint about the canonical status of self. Often this is known by\n the caller and doesn't have to be determined inside the getTranslations call.\n Also optimized getNonCanonicalTranslations by extending the API of\n getTranslations with a include_canonical flag.\n [hannosch]\n\n- Optimized the getCanonical method to avoid two identical reference catalog\n queries and just do the query once.\n [hannosch]\n\n- Added tests for and fixed more edge cases for the reference handling.\n There's about seventeen different ways how this API can be called.\n [hannosch]\n\n- Fixed a bug in the LanguageIndependentFields adapter. It did a whole lot of\n magic to be LinguaPlone aware, just to miss the whole point. Simple is\n sometimes better. This fixes the last reference handling test failure.\n [hannosch]\n\n- Fixed the whole references handling. Prior it used the saved references for\n synchronization, with the effect of ignoring new refs. Now it uses actually\n the given new values and looks up them. It deals now with partly translated\n targets and non-translatable targets. Also I cleaned up this part of the\n code.\n [jensens]\n\n3.0b4 - 2009-10-02\n------------------\n\n- Fixed a serious bug that showed itself with multi valued reference fields and\n archetypes.referencebrowserwidget. Since we render language independent\n fields on the translate_item view in view mode, their data wasn't part of the\n request anymore. Omitting a field from the request is considered equivalent\n to \"delete all\" by processForm. We now override _processForm to ignore\n language independent fields in processForm on canonical items. This also\n gives a bit of a speed advantage.\n [hannosch]\n\n- LinguaPlone didn't allow manual editing of IDs. Thanks to David Hostetler\n for the patch. This closes http://plone.org/products/linguaplone/issues/70.\n [hannosch]\n\n- Removed dubious performance optimization in tests. Don't delete the catalog.\n [hannosch]\n\n- Removed bogus license headers from Python files. All code is owned by the\n Plone Foundation and licensed under the GPL.\n [hannosch]\n\n3.0b3 - 2009-09-26\n------------------\n\n- Update the requirement to Plone 3.3 instead of individual packages. We don't\n test this version against former Plone versions anymore. Removed no longer\n required code for pre-Plone 3.1.\n [hannosch]\n\n- If no item was selected in the link translations form, a random item was\n selected in the form handler. Thanks to Ichim Tiberiu for the patch. This\n closes http://plone.org/products/linguaplone/issues/204.\n [hannosch]\n\n- Restored the proper functionality of the change language function on the\n manage_translations_form. This closes\n http://plone.org/products/linguaplone/issues/215.\n [hannosch]\n\n- Added a simple configuration option to hide the right column on the\n translation edit form and enable it by default.\n [hannosch]\n\n- Removed the canonical and translations cache. It was never completely save\n to use. This closes http://plone.org/products/linguaplone/issues/82.\n [hannosch]\n\n- Added a new synchronized language vocabulary and use it for the content and\n metadata language availability. This restricts the languages in the common\n language widgets to the set of the supported languages of the site.\n [hannosch]\n\n- Removed the unmaintained support for using the Kupu reference browser in the\n manage_translations_form.\n [hannosch]\n\n- Fixed a deprecation warning for the isRightToLeft script, which is used in\n the translationbrower_popup.\n [hannosch]\n\n- Removed the GlobalRequestPatch - it is no longer required.\n [hannosch]\n\n- Removed the `not_available_lang` template. It wasn't used anymore.\n [hannosch]\n\n- Use request negotiation by default.\n [hannosch]\n\n- Turn on the content language negotiator by default.\n [hannosch]\n\n- Avoid a space after the language name in the selector.\n [hannosch]\n\n- Modernized the code of the language index export import handler.\n [hannosch]\n\n- Refactored common functionality of the catalog exportimport handlers. Added\n automatic reindexing for newly added indexes.\n [hannosch]\n\n- Rearranged the package documentation to the top-level of the distribution.\n [hannosch]\n\n- Added a buildout configuration to the package for stand-alone testing.\n [hannosch]\n\n- Fixed bad spelling in status message in translate view.\n [hannosch]\n\n- Make sure to use the native language name in the language selector in the\n same way Plone itself does this.\n [hannosch]\n\n- Specify an alt text on the language selector images. This closes\n http://plone.org/products/linguaplone/issues/188.\n [hannosch]\n\n- Fixed invalid code instructions in the README. This closes\n http://plone.org/products/linguaplone/issues/207.\n [hannosch]\n\n- Removed the long broken portlet_languages. This was a pre-Plone 3 old-style\n portlet. See http://plone.org/products/linguaplone/issues/209.\n [hannosch]\n\n3.0b2 - 2009-09-25\n------------------\n\n- Don't forget the rest of the formvariables, when dealing with request.form.\n [tesdal]\n\n3.0b1 - 2009-09-25\n------------------\n\n- Don't mangle request.form when allowing Unicode.\n [tesdal]\n\n- Get default language from content parent inside portal factory.\n [tesdal]\n\n- Added dynamic id attribute to in translate_item.cpt for easier styling.\n [jensens, hpeteragitator]\n\n3.0a3 - 2009-09-09\n------------------\n\n- Allow Unicode in request.form.\n [tesdal]\n\n3.0a2 - 2009-09-07\n------------------\n\n- Preserve view, template and query components when switching language\n [tesdal]\n\n- Ensure that the LinguaPlone browser layer is more specific than the default\n in the interface __iro__ so that registrations to the LinguaPlone layer win.\n [rossp]\n\n- Added undeclared dependency on Products.PloneLanguageTool >= 3.0.\n [hannosch]\n\n3.0a1 - 2009-06-03\n------------------\n\n- Removed `checkVersion` check from our init method and declare a dependency\n on Plone instead.\n [hannosch]\n\n- Changed the profile version to a simple `3`, to follow best practices of\n using simple integers for profile version numbers.\n [hannosch]\n\n- Extended multi-lingual aware reference fields to handle multi-valued fields.\n [hannosch]\n\n- Added test for language independent lines fields.\n [hannosch]\n\n- Fixed the testSelector tests to work with the new default page handling.\n [hannosch]\n\n- Cleaned up some old package metadata and converted zLOG usage to logging.\n [hannosch]\n\n- Changed the language selector to respect default pages. We now link to the\n container of the translated default page rather than the default page itself.\n [hannosch]\n\n- Added Language as an additional index to the uid catalog. This is required\n to get at least normal reference criteria to be able to restrict their\n selections based on the language.\n [hannosch]\n\n- Adjust the copyField methods of the LanguageIndependentFields adapter to\n work with fields which have no accessor methods.\n [hannosch]\n\n- Reworked the translationOf reference handling. Instead of relying on the\n normal Archetypes reference API, we digg into some of the internals to\n optimize the handling for the specific use-case we have:\n\n * We added Language as additional metadata to the reference catalog. To do\n so we needed to add a GenericSetup handler for the catalog to this package\n for now. This should be moved to Archetypes itself. An upgrade step for\n existing sites is available and needs to be run. The step is advertised in\n the add-on control panel of Plone 3.3 and later or available via the\n portal_setup tool in the ZMI.\n\n The new metadata reflects the language of the source of the reference, so\n we index the translation languages and not the canonical language. So a\n reference inside the at_references folder of a translation, stores the\n Language of that translation. It gets it via Acquisition, since neither the\n reference nor the at_references OFS.Folder has a Language function.\n\n * As a second step we use this new metadata to more efficiently query the\n reference catalog. In general we avoid getting the real objects where\n possible and rely on the catalog internal brains to get all relevant\n information. We also bypass getting the actual reference object and\n instead look up the source or target of the reference directly by their\n uid.\n\n These changes do not change external API's nor should they cause problems\n for other add-ons using the reference engine.\n [hannosch]\n\n- Split the canonical status caching of CACHE_TRANSLATIONS into its own config\n setting via CACHE_CANONICAL.\n [hannosch]\n\n- Fixed the language selector tests to pass in Plone 3.3.\n [hannosch]\n\n- Removed empty translation from translate menu description.\n [hannosch, maurits]\n\n- Added smarter handling of language independent reference fields. If a\n language independent reference field points to a target, the translations of\n that source item will point to the translations of the target and not the\n canonical target. This will only work if the translations of the target\n already exist once the reference is established. If translations of the\n target are later added, the canonical source needs to be saved again to\n adjust the references to the right translation of the target.\n [hannosch]\n\n- Added tests for language in-/dependent reference fields.\n [hannosch]\n\n- Allow the query keys which prevent the automatic addition of the language to\n catalog queries be configured through a NOFILTERKEYS list in config.\n [hannosch]\n\n2.4 - 2008-12-09\n----------------\n\n- Removed `Language settings` from the `Translate into` menu. A global action\n has no place in a context specific menu.\n [hannosch]\n\n- Remove the useless 'changeLanguage' script. In\n 'manage_translations_form', use '@@translate' instead.\n [nouri]\n\n- Allow 'id' to be passed to addTranslation/createTranslation.\n [nouri]\n\n2.3 - 2008-11-13\n----------------\n\n- Registered NoCopyReferenceAdapter for translationOf relations on\n iterate checkout to avoid the checked out object becoming the\n translation.\n [tesdal]\n\n- Fixed unneeded AlreadyTranslated exception during a schema update.\n A schema update saves the current value, sets the default language\n (at which point there can easily be two English translations if that\n is the default language) and restores the original value again. So\n really there is no reason for doing anything other than setting the\n value in that case.\n [maurits]\n\n- addTranslation now returns the newly created translation.\n [wichert]\n\n- Include the FAQ in the package description.\n [wichert]\n\n- Refactor addTranslation: introduce adapters to determine where\n a translation should be created and to create the translation.\n [wichert]\n\n- Add path filter in catalog view, like the non-LP version has.\n [mj]\n\n- Ensure that translations are reindexed when processing an edit form;\n language independent fields may have been updated.\n [mj]\n\n- Extracted ILanguageIndependentFields adapter, encapsulating the\n synchronization of language independent fields.\n [stefan]\n\n2.2 - 2008-07-22\n----------------\n\n- LanguageIndependent fields are now shown in view mode for the translations,\n so they no longer are editable from the translations, which is how it's\n documented to behave. [regebro]\n\n- Made the upgrade step also work on Plone 3 (GenericSetup 1.3).\n [maurits]\n\n- Registered GenericSetup upgrade step to get rid of an old\n linguaplone_various import step. I registered it for upgrading\n from 2.0 to 2.1 as that was when this import step was removed. It\n is always available in portal_setup/manage_upgrades in the ZMI.\n [maurits]\n\n- When going to the canonical translation, also switch to that\n language. [maurits]\n\n- On the manage_translations page do not show the form for linking to\n other content or deleting/unlinking existing translations when the\n current context is not the canonical language. Instead add a url to\n that canonical language. [maurits]\n\n- When adding a translation, do not throw an error when the language\n does not exist, but display that as info and go to that existing\n translation. I saw the 'add translation' option still for an\n already translated language, due to some caching. [maurits]\n\n- Ignore back reference when it is None. [maurits]\n\n- Made sure that an existing FieldIndex Language gets correctly\n replaced by our wanted LanguageIndex, instead of leaving an unusable\n index with an empty indexable attribute. [maurits]\n\n- Check if plone.browserlayer is installed before starting a possibly\n long reindex that would then be aborted. [maurits]\n\n- Make tests run on Plone 3.0.6 with plone.browserlayer 1.0rc3 and\n original GenericSetup (1.3) next to simply Plone 3.1. [maurits]\n\n2.1.1 - 2008-05-01\n------------------\n\n- Removed the dependency on the no longer existing plone.browserlayer\n GS profile. This closes http://dev.plone.org/plone/ticket/8083.\n [hannosch]\n\n- Add a workaround Plone bug #8028 (http://dev.plone.org/plone/ticket/8028)\n which causes site errors in contexts without a portal_type, such as\n the portlet add form.\n [wichert]\n\n2.1 - 2008-04-11\n----------------\n\n- Use our language selector viewlet for all content types instead of just\n translatable types. This makes things consistent for all types.\n [wichert]\n\n- Be more tolerant in unindexing non-existent content.\n [hannosch]\n\n- Allow languages to be unselected in the language control panel.\n [wichert]\n\n- Do not use LanguageDropdownChoiceWidget for the default language field\n in the control panel: LanguageDropdownChoiceWidget uses\n IUserPreferredLanguages, which does not use the proper vocabularies to\n find the language names.\n [wichert]\n\n2.1beta1 - 2008-04-07\n---------------------\n\n- Register the LanguageIndex with the selection widget, so you can query\n for languages in Collections.\n [hannosch]\n\n- Enable the Plone language portlet and change its rendering link\n correctly to translations if they exist and to the site root\n otherwise.\n [wichert]\n\n- Dont depend on Quickinstaller at setup time and in browsermenu.\n [jensens]\n\n- Minor GenericSetup cleanup\n [jensens]\n\n- Make LinguaPlone play nice with archetypes.schemaextender and\n similar approaches.\n [jensens]\n\n- Declare plone.browserlayer as a dependency in our GenericSetup profile.\n This will automatically install it in Plone 3.1.\n [wichert]\n\n- Better unlink handling. This fixes\n http://plone.org/products/linguaplone/issues/127\n [wichert]\n\n2.1alpha1 - 2007-12-13\n----------------------\n\n- Refuse to install LinguaPlone of plone.browserlayer is not already\n installed.\n [wichert]\n\n- Register the PloneLanguageTool GenericSetup export/import steps in\n LinguaPlone as well. Standard Plone 3 installs never applied the\n PloneLanguageTool GenericSetup context, so without this\n portal_languages.xml would be ignored.\n [wichert]\n\n- Replace the standard Plone language control panel with our own version\n which allows enabling of multiple languages.\n [wichert]\n\n- Manage translations form now uses a kupu drawer when the kupu\n reference browser is enabled. [Duncan]\n\n- Actions from the manage translations screen now stay on that\n screen so multiple translations may be linked. Existing\n translations display their path. [Duncan]\n\n2.0 - 2007-10-11\n----------------\n\n- When creating new content in a translated parent use the language of\n the parent as the default language.\n [wichert]\n\n- Try to unlock objects before moving them into a newly translated folder.\n [wichert]\n\n- Add a test in the GS various import step if the Language catalog index\n in portal_catalog has indexed any objects. If not we just (re)created\n the index and we need to reindex it. This fixes content disappearing\n after installing LinguaPlone.\n [wichert]\n\n- Remove the code to mark LinguaPlone as installed in the quickinstaller\n from the GS profile: we can install LinguaPlone through the quickinstaller\n itself so this is not needed.\n [wichert]\n\n2.0beta2 - 2007-09-24\n---------------------\n\n- Fix a syntax error in the translate_item template.\n [wichert]\n\n- Restructure the LinguaPlone product layout so it can be distributed\n as an egg.\n [wichert]\n\n2.0beta1 - 2007-09-21\n---------------------\n\n- Allow translating the default view for an untranslated container\n again: we have correct code that adds a translation of the container\n as well now.\n [wichert]\n\n- Correct creationg of translations for objects which are the default\n view of a non-translatable parent.\n [wichert]\n\n- Correct handling of the translate into-menu for content with an\n untranslatable parent.\n [wichert]\n\n2.0alpha2 - 2007-09-19\n----------------------\n\n- Only show the content menu if LinguaPlone is installed in the quick\n installer.\n [wichert]\n\n- Update functional tests to login as a member so the test can use unpublished\n content.\n [mj]\n\n- Disable the menu option to translate the default view for a folder to a\n language for which the folder has no translation.\n [wichert]\n\n2.0alpha1 - 2007-09-10\n----------------------\n\n- Use a GenericSetup profile to install LinguaPlone.\n [wichert]\n\n- Move createTranslations to a @@translate browser view.\n [wichert]\n\n- Port to Plone 3.0.1.\n [wichert]\n\n- Only allow linking to other objects of the same portal type.\n [wichert]\n\n- Add a sanity to prevent addTranslationReference from adding translations\n for languages which already have a translation.\n [wichert]\n\n- Policy change for language selector. We try to avoid disabled flags by\n looking for a translated parent.\n [fschulze]\n\n- Added UI to link translations together.\n [vlado, fschulze]\n\n- Changed to use _createObjectByType on addTranslation, bypassing possible\n conflicts with adding restrictions.\n [deo]\n\n1.0.1 - 2007-09-24\n------------------\n\n- Fix spitLanguage to return (None, None) when fed a non-string object.\n This fixes LP issue #101.\n [mj]\n\n- Fix LanguageIndex to deal better with objects where Language is either\n missing or not a callable. Fixes LP issue #99.\n [mj]\n\n- Fix LanguageIndex to run on python 2.3.\n [wichert]\n\n- Fix language selector to not go the the login screen if one of the\n translations is not accessible (i.e. in \"private\" state)\n [fschulze, godchap]\n\n1.0 - 2007-06-19\n----------------\n\n- If we are resetting the language due to a schema update do not delete the\n translation references. This fixes\n http://plone.org/products/linguaplone/issues/7\n [wichert]\n\n- Removed Plone 2.0 compatibility.\n [fschulze]\n\n- Add a utility method to link content objects as translations. This\n is useful, for example, in a GenericSetup import step to link content\n created in a GenericSetup content step.\n [wichert]\n\n- Show the 'Switch language to' text in the language selector in the\n target language instead of the current language.\n [wichert]\n\n- Fixed so rename after creation only happend on TTW creation. Not on\n first edit of a through script created object.\n [sashav]\n\n- Fixed an issue if theres no getTranslations available. This happens if\n an non-lp-enabled at-based object exists direct in portal-object.\n [jensens]\n\n- Fixed some code that spit out DeprecationWarnings.\n [hannosch]\n\n- Instead of customizing switchLanguage we now have portlet_languages\n inside LinguaPlone and use the much nicer languageSelectorData.\n [jladage]\n\n- LanguageIndex is now a specialised index that will return alternative\n translations within the main language when searching.\n [mj]\n\n0.9.0 - 2006-06-16\n------------------\n\n- Now works with Plone 2.5 out-of-the-box, and Plone 2.1.3 if using the\n included PloneLanguageTool.\n\n- Fixed unicode error on translated languages in Plone 2.1.3. It can\n contains non-ascii characters, so the default strings need to be\n declared as unicode.\n [encolpe]\n\n- Fixed actions to fallback gracefully for the action attribute 'name'\n and 'title'.\n [jladage] [encolpe]\n\n- Added the switchLanguage.py script and added support for translatable\n content.\n [jladage]\n\n- Fixed to lookup the language flag name directly from the language tool.\n Now, PloneLanguageTool 1.3 (or greater) is officially required.\n [deo]\n\n- Made tests compatible with Plone 2.5.\n [hannosch]\n\n- Some very minor i18n fixes.\n [hannosch]\n\n- Added a migration script to update language independent fields content.\n It *must* be manually run when upgrading from versions older than 0.9.\n [deo]\n\n- Removed the custom accessor/editAccessor generation. We're only using\n custom mutators and translation mutators for now. This result in a ~30%\n performance improvement over the previous versions.\n [deo]\n\n- Made sure to copy independent language fields data to all translations\n as we removed the custom accessor. This also fixed the problem when\n you try to get values direct from fields, as now the data is in the\n translations too, not only in the canonical object.\n [deo]\n\n- Forwared fix for http://dev.plone.org/plone/ticket/4939.\n [deo]\n\n- Fixed a problem when switching between translations of images/files,\n where the content was shown, instead of the view screen.\n [deo]\n\n- Fixed to highlight the 'Edit' tab from a translation when you click it.\n [deo]\n\n- Final cut on Plone 2.0 compatibility. Backported tests, handled\n migrations and patched tool with the PythonScripts content.\n [deo] [sidnei]\n\n- Added labels to language-independent fields.\n [deo] [limi]\n\n- Made the initial default language follow the PloneLanguageTool config\n policy.\n [deo]\n\n0.9-beta - 2005-10-27\n---------------------\n\n- Removed content border from Translation Unavailable template.\n [limi]\n\n- Made the test fields that are not editable render in view mode, not as\n non-editable text boxes. The reasons for this are that people tend to\n think that \"if it is a text box, it's editable\", and are then confused\n when it's not (read-only widgets confuse the heck out of users), and the\n other reason is because it messes up multiple selection lists.\n [limi]\n\n- Made language-independent items not editable in a translation.\n [limi] [deo]\n\n- Added first cut on Plone 2.0 compatibility.\n [deo]\n\n- Fixed i18n domain everywhere... :-)\n [deo]\n\n0.8.5 - 2005-09-06\n------------------\n\n- Made content be created in neutral language, now that this concept\n works as expected.\n [deo]\n\n- Made addTranslation raise an AlreadyTranslated exception when trying\n to duplicate a translation.\n [deo]\n\n- Added form to create translation when the language don't exist and\n if the user has the appropriate permissions.\n [deo]\n\n- Title on the flag switcher should say: \"Switch language to $LANGUAGE\n (content translation not available)\" - the last part if the content\n is not translated, to complement the ghosting (which is purely visual,\n and bad for accessibility).\n [deo]\n\n- Split screen should change sides (\"From\" language to the left, \"To\"\n language to the right).\n [deo]\n\n- Split screen should not show short name if turned off (like the\n default is in 2.1).\n [deo]\n\n- Flags aren't on a separate line anymore (they used to be below the\n document actions).\n [limi]\n\n- Field titles are translated, field help is not.\n [deo]\n\n- Flags should probably be removed from the field titles, since the\n pulldown might make these misleading.\n [deo]\n\n- Split-screen pulldown needs language selectors when translating.\n [deo]\n\n- Use the translate_item template when editing translatable content,\n except the canonical one.\n [deo]\n\n- PloneLanguageTool has problems without LinguaPlone installed.\n [deo]\n\n- Added norwegian translation.\n [limi]\n\n- Improved i18n markup. Updated brazilian portuguese translation.\n [deo]\n\n0.8 - 2005-08-15\n----------------\n\n- Plone __browser_default__ review.\n [deo]\n\n- Adjust LP catalog patch for Plone 2.1.\n [stefan]\n\n- Allowed changing language of content, moving content to appropriate\n place, and raising a exception when forbidden.\n [deo]\n\n- Design the policy for the New language negotiator.\n [limi]\n\n- Grayed out flags.\n [deo, limi]\n\n- Handle switching to non-existing language (a.k.a. not_available_lang).\n [deo]\n\n- Handle translation of default pages.\n [deo]\n\n- Added hasTranslation() method for grayed-out flags.\n [deo]\n\n- ID policy for translating containing folder and moving translated content.\n [limi]\n\n- Language switching: the URL on flags should be the actual URL, not\n switchLanguage?set_language=no.\n [deo]\n\n- Fixed languageswitcher in Firefox.\n [deo]\n\n- LinguaPlone should not append language code to ID, it should use\n the same Plone 2.1 policy.\n [deo]\n\n- Implemented the new language negotiator, where content and interface\n languages are always in sync.\n [deo]\n\n- Test that Images in ATCT are keeping the image LangIndependent.\n [limi]\n\n- Update dropdown menus markup.\n [deo]\n\n0.7 - 2004-09-24\n----------------\n\n- Released at Plone Conference 2004.\n [limi] [testal] [geir]\n\nTechnology Preview - 2004-06-29\n-------------------------------\n\n- First publicly available version.\n [limi] [testal] [geir]", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/Products.LinguaPlone", "keywords": "Zope Plone multilingual translation", "license": "GPL version 2", "maintainer": "", "maintainer_email": "", "name": "Products.LinguaPlone", "package_url": "https://pypi.org/project/Products.LinguaPlone/", "platform": "", "project_url": "https://pypi.org/project/Products.LinguaPlone/", "project_urls": { "Homepage": "https://pypi.python.org/pypi/Products.LinguaPlone" }, "release_url": "https://pypi.org/project/Products.LinguaPlone/4.3.0/", "requires_dist": null, "requires_python": "", "summary": "Manage and maintain multilingual content that integrates seamlessly with Plone.", "version": "4.3.0" }, "last_serial": 3607191, "releases": { "2.0": [ { "comment_text": "", "digests": { "md5": "d324043621462bc707294722675e5f36", "sha256": "45dd3785643577dc2b32590318ec127b7a7634a460266d61c403b409120dc050" }, "downloads": -1, "filename": "Products.LinguaPlone-2.0-py2.4.egg", "has_sig": false, "md5_digest": "d324043621462bc707294722675e5f36", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 193471, "upload_time": "2007-10-11T14:47:04", "url": "https://files.pythonhosted.org/packages/a5/5d/7b7745ac6272a285317df55554631db89c8f013028f697b5c906e6f10dcf/Products.LinguaPlone-2.0-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "6b18c070457a553b6b2b6f12cb94b916", "sha256": "4d4fafe1f35395bb1217bc60ac41b2bda0a5d854c6f6eeb632548ed733b2555f" }, "downloads": -1, "filename": "Products.LinguaPlone-2.0.tar.gz", "has_sig": false, "md5_digest": "6b18c070457a553b6b2b6f12cb94b916", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82474, "upload_time": "2007-10-11T14:47:04", "url": "https://files.pythonhosted.org/packages/ce/8f/8dc8ef94bc81e4712b982837c8251333a25e706ca10d27770bff09d7bee8/Products.LinguaPlone-2.0.tar.gz" } ], "2.0beta2": [ { "comment_text": "", "digests": { "md5": "01620227ffb158f35ce66196046b00cc", "sha256": "87211f4de92c91472673d742f5e114ddbacfb3d435b36c5ec3fd377c76a57ad5" }, "downloads": -1, "filename": "Products.LinguaPlone-2.0beta2-py2.4.egg", "has_sig": false, "md5_digest": "01620227ffb158f35ce66196046b00cc", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 192236, "upload_time": "2007-09-24T13:58:44", "url": "https://files.pythonhosted.org/packages/fa/85/7a78df76cd16effd6055b9d6498c0fdcaceb545c88fc56cc9a28709f1d2e/Products.LinguaPlone-2.0beta2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "b3f764f7267e74eb2ce2028dee4aeffa", "sha256": "67c0a839f2c2169e2e40ee532d84bc8a0e31468f730be481ea865e3173d681f6" }, "downloads": -1, "filename": "Products.LinguaPlone-2.0beta2.tar.gz", "has_sig": false, "md5_digest": "b3f764f7267e74eb2ce2028dee4aeffa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79148, "upload_time": "2007-09-24T13:58:40", "url": "https://files.pythonhosted.org/packages/4b/be/8742e173a6611689f9858ad82390666347c2700361183406a7042fc19568/Products.LinguaPlone-2.0beta2.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "52661a5b85c11b86125e2483967a2543", "sha256": "a4e52a248310c1a5bbe85030d08e7a23e9fcf77d70f291797efe93ed3fc30794" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1-py2.4.egg", "has_sig": false, "md5_digest": "52661a5b85c11b86125e2483967a2543", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 212717, "upload_time": "2008-04-11T20:55:27", "url": "https://files.pythonhosted.org/packages/dc/aa/899b45801f39f91dde7404f16dc39f329b7904b181de5ccd4e64f7603454/Products.LinguaPlone-2.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "7daf1dbc54dd6e7a099584f92ff2aef8", "sha256": "a3e17aec54e2ae85a92082eb0f7515b690bcd8632bfa2317261a8c7304f3dc26" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1.tar.gz", "has_sig": false, "md5_digest": "7daf1dbc54dd6e7a099584f92ff2aef8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90520, "upload_time": "2008-04-11T20:55:23", "url": "https://files.pythonhosted.org/packages/b7/73/a2654e0cc81c50f863c68c64ae97e6a1bb0ac38ba9e223cda5a99df893d9/Products.LinguaPlone-2.1.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "0186fafc1e906d0430f3a93681ff12ae", "sha256": "295d9062baa89739ede5587fc198e9c8c0ea1bc0a08ed7fa2e3500ee4dfa45b7" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1.1-py2.4.egg", "has_sig": false, "md5_digest": "0186fafc1e906d0430f3a93681ff12ae", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 212802, "upload_time": "2008-05-01T15:22:24", "url": "https://files.pythonhosted.org/packages/1b/cd/78a187a0f4edfc853604113862d904ed32e3ccb3de3cde4afa57c08b5496/Products.LinguaPlone-2.1.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "61ff34855f3a019d12829079b1720ef5", "sha256": "3c1801c5c653c7a905ecea6aabcf4d6914f324a284d1cd2b478fd0bc9bc57a84" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1.1.tar.gz", "has_sig": false, "md5_digest": "61ff34855f3a019d12829079b1720ef5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90749, "upload_time": "2008-05-01T15:22:20", "url": "https://files.pythonhosted.org/packages/92/f9/d75cde2854e508c402a50e65a1c282b86d8b6f8d67b2c73d04eda3393fb9/Products.LinguaPlone-2.1.1.tar.gz" } ], "2.1alpha1": [ { "comment_text": "", "digests": { "md5": "02100e5577f66f961cfa03aa8cd55e71", "sha256": "baf4836c6f6b030a83b26667388f0058992daa8daf5b985d48a26de7887a31f9" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1alpha1-py2.4.egg", "has_sig": false, "md5_digest": "02100e5577f66f961cfa03aa8cd55e71", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 201073, "upload_time": "2007-12-13T11:25:01", "url": "https://files.pythonhosted.org/packages/a0/33/82468cd1afde3de900e9be9bfacb855e1c7a127d02a65cc99d19c6f0b347/Products.LinguaPlone-2.1alpha1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "e9560f7db34f770130f3951de237815d", "sha256": "046919c21f3521de6888ca557f50a6610f143354ca948fab18c2d3962cdf7ecd" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1alpha1.tar.gz", "has_sig": false, "md5_digest": "e9560f7db34f770130f3951de237815d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83547, "upload_time": "2007-12-13T11:24:58", "url": "https://files.pythonhosted.org/packages/bb/74/84da78273fef6eb02d5da2acdb47d8a6cab3c7466a49f241393e294d0558/Products.LinguaPlone-2.1alpha1.tar.gz" } ], "2.1beta1": [ { "comment_text": "", "digests": { "md5": "c06291cb3c771eb2cbb38437f269d85d", "sha256": "c7f58a7e4632ce5dd13251e4c3ce2a2c372918350ad31aeecfa61c7e4ee5df44" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1beta1-py2.4.egg", "has_sig": false, "md5_digest": "c06291cb3c771eb2cbb38437f269d85d", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 211866, "upload_time": "2008-04-07T07:50:16", "url": "https://files.pythonhosted.org/packages/0f/fc/9cda3d601770effc20d9b5ef4230f9aaeda71c80133d6eeb28c5c7804d4f/Products.LinguaPlone-2.1beta1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "8f1aef01e6c097c9eec18a5f6570269e", "sha256": "d83a321c497899bfef05cb16d844653f7c93c0e6ebbd818cf7fde0fbc80979c3" }, "downloads": -1, "filename": "Products.LinguaPlone-2.1beta1.tar.gz", "has_sig": false, "md5_digest": "8f1aef01e6c097c9eec18a5f6570269e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86622, "upload_time": "2008-04-07T07:50:12", "url": "https://files.pythonhosted.org/packages/18/69/0d255e60c12d66099be1253154cdb5e1ac16efa57f64ad5672f977dbfc42/Products.LinguaPlone-2.1beta1.tar.gz" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "0526f2430c3ded74beff1175c2d83fa7", "sha256": "b71906bd5d46562f1aab8c8e0328b2f01a50924af5fde4a04bc3a54e8d7a1905" }, "downloads": -1, "filename": "Products.LinguaPlone-2.2.zip", "has_sig": false, "md5_digest": "0526f2430c3ded74beff1175c2d83fa7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 149176, "upload_time": "2008-11-13T11:56:03", "url": "https://files.pythonhosted.org/packages/ce/fc/6f3933313eab7a2084f4445e3603535ba272925a091c1630ec542da882f9/Products.LinguaPlone-2.2.zip" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "5f25c27535060db5f7768628b5479a15", "sha256": "61825c0d0e21e8ef6dd64f376ca1c911f936aef366df2dcf8245ff41b0b0332a" }, "downloads": -1, "filename": "Products.LinguaPlone-2.3.zip", "has_sig": false, "md5_digest": "5f25c27535060db5f7768628b5479a15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156687, "upload_time": "2008-11-13T13:18:23", "url": "https://files.pythonhosted.org/packages/39/c1/ac198968645f9e171f78e4235f972cc3b1ba7b4d3f1d8938a9de41013471/Products.LinguaPlone-2.3.zip" } ], "2.4": [ { "comment_text": "", "digests": { "md5": "9770af7a8689172890390a65e3785fff", "sha256": "a66bd3bc0bf19e6031e75288bb845ed40d8c169d5d7f3ef95cff93ba408086f8" }, "downloads": -1, "filename": "Products.LinguaPlone-2.4.zip", "has_sig": true, "md5_digest": "9770af7a8689172890390a65e3785fff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156088, "upload_time": "2008-12-09T14:57:38", "url": "https://files.pythonhosted.org/packages/8b/5e/d6b04cdd82ee6e69cbd53840ffdd4de64a705c9ac8748f44ed6990adc4dd/Products.LinguaPlone-2.4.zip" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "8d842ad501f3bda443c131442a393f2f", "sha256": "389fcc81d3b7317f6a72f4983812a28d963ac3fb27c6241b1d966d2da41cd792" }, "downloads": -1, "filename": "Products.LinguaPlone-2.4.1.zip", "has_sig": false, "md5_digest": "8d842ad501f3bda443c131442a393f2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 157052, "upload_time": "2010-12-01T20:18:54", "url": "https://files.pythonhosted.org/packages/9b/c4/b222885329904abbddceb777c39c09987b7acf11f20e504bcebe2908e0ab/Products.LinguaPlone-2.4.1.zip" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "a35da1c5ac8f989c151056cf68c968a7", "sha256": "be194b969fe0f900e68b9fe28e8cc0f74f30b66c3dded9c73087f0f62f343c3a" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0.zip", "has_sig": false, "md5_digest": "a35da1c5ac8f989c151056cf68c968a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169792, "upload_time": "2009-12-21T11:07:45", "url": "https://files.pythonhosted.org/packages/e9/1f/e312d0064981357f72131ae018ba70fea6fdd021ab5eac5637814b8a4748/Products.LinguaPlone-3.0.zip" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "1edf2b9310142815daca49fbdea26b82", "sha256": "1abaac311bae701dd26168874bd2041c1a321254c6dca143a311b95d6849fb8c" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0.1.zip", "has_sig": false, "md5_digest": "1edf2b9310142815daca49fbdea26b82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172056, "upload_time": "2010-02-02T16:47:19", "url": "https://files.pythonhosted.org/packages/e4/8f/a5ec5d7441cc7796e222f78b1293e394c21a24dad9334fd94705c4b86bc1/Products.LinguaPlone-3.0.1.zip" } ], "3.0a1": [ { "comment_text": "", "digests": { "md5": "5d849032e8bff45a605de516081ea98d", "sha256": "471afcc34a7042c2ccada71a44f0e849c8f0050ae02f182ebb9afa276748744b" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0a1.zip", "has_sig": true, "md5_digest": "5d849032e8bff45a605de516081ea98d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163483, "upload_time": "2009-06-03T16:10:40", "url": "https://files.pythonhosted.org/packages/8e/b0/6b0d76cb9916309b4abed0bdd636ff3ac65c450cbda9872b738f0e7fdc31/Products.LinguaPlone-3.0a1.zip" } ], "3.0a2": [ { "comment_text": "", "digests": { "md5": "7917d90c2ebfd69afdeac5e9179f1be0", "sha256": "fa890dd43d4cbdd4873961a3fe8b79949271491df1652afcca9c73e93c026205" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0a2.zip", "has_sig": true, "md5_digest": "7917d90c2ebfd69afdeac5e9179f1be0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164054, "upload_time": "2009-09-07T18:47:28", "url": "https://files.pythonhosted.org/packages/e4/51/51250a45c381381152187db3a15c543808a078f298e339450c9382b7d73d/Products.LinguaPlone-3.0a2.zip" } ], "3.0a3": [ { "comment_text": "", "digests": { "md5": "163e7a99e80869c16010ed2b5846a88a", "sha256": "e4720309a7b0c17018785c5e01143edc44fc4be2350947be4cdb9b9fb44de924" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0a3.zip", "has_sig": true, "md5_digest": "163e7a99e80869c16010ed2b5846a88a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164236, "upload_time": "2009-09-09T20:27:26", "url": "https://files.pythonhosted.org/packages/99/a0/da4aaaed8acc2a2e93edc01644ee7b6c8c75dae4baa8a8dc3c3fa0174a8e/Products.LinguaPlone-3.0a3.zip" } ], "3.0b1": [ { "comment_text": "", "digests": { "md5": "a353c3baa3605b32458dd02baa567c54", "sha256": "82ef6a73f11dbbd9ff929194be222d44b18f42a17092214222538c68a93680ed" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b1.zip", "has_sig": true, "md5_digest": "a353c3baa3605b32458dd02baa567c54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164636, "upload_time": "2009-09-25T17:05:38", "url": "https://files.pythonhosted.org/packages/a6/bf/ab5fe93e446e0049dffd23827b097326f3b66074727ef63f7c390c673ba7/Products.LinguaPlone-3.0b1.zip" } ], "3.0b2": [ { "comment_text": "", "digests": { "md5": "f8ebecab02647c5cc585eadef4c75b6a", "sha256": "3fdbdd3304b82cbdb4549a2957200cbae72f1e4742c9764034c22bdf8ae30cc2" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b2.zip", "has_sig": true, "md5_digest": "f8ebecab02647c5cc585eadef4c75b6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164716, "upload_time": "2009-09-25T17:34:43", "url": "https://files.pythonhosted.org/packages/5d/6b/e2196c56b6480abe9098ffaa84ab195c560e1d165a7b4ed5d7b9640b7793/Products.LinguaPlone-3.0b2.zip" } ], "3.0b3": [ { "comment_text": "", "digests": { "md5": "b6b6cdbc7cc4740e1d0c4e0a5425e1e7", "sha256": "8e76c66838273dd591a28341255568762131e36e3566f845618dd4f5cb3a3dfd" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b3.zip", "has_sig": true, "md5_digest": "b6b6cdbc7cc4740e1d0c4e0a5425e1e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 162908, "upload_time": "2009-09-26T22:25:34", "url": "https://files.pythonhosted.org/packages/e2/ef/cb4d91e67670bbdad9f84f3f9dc5b66ce8ef442049e2a2ad80eea8a754d4/Products.LinguaPlone-3.0b3.zip" } ], "3.0b4": [ { "comment_text": "", "digests": { "md5": "2654772ad3445027b6149c5a555350f8", "sha256": "33cde3e29a7dec23d05a38c64b6c20b1f27423281e4a5ac2f0d77d1493b302bf" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b4.zip", "has_sig": true, "md5_digest": "2654772ad3445027b6149c5a555350f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160229, "upload_time": "2009-10-02T23:12:39", "url": "https://files.pythonhosted.org/packages/43/fa/efa6cf7d0cf5ac97a4066ecad522d0fcc6d82276ce533e88320840895660/Products.LinguaPlone-3.0b4.zip" } ], "3.0b5": [ { "comment_text": "", "digests": { "md5": "05b5740dd2a579c82f824bb083845db0", "sha256": "9b4883bfdc8b30f8840175a0c96eca7025d3470355be11f438258d8f81c5f344" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b5.zip", "has_sig": true, "md5_digest": "05b5740dd2a579c82f824bb083845db0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 162995, "upload_time": "2009-10-14T19:11:34", "url": "https://files.pythonhosted.org/packages/a5/0f/d557331c34718464ae294cd3b8d4510cd0422d90c3de9226eadfa53c0d70/Products.LinguaPlone-3.0b5.zip" } ], "3.0b6": [ { "comment_text": "", "digests": { "md5": "d3730cb7ff1b7176eb927683b78700a1", "sha256": "5e9c6c2ad4465cb5e74b7cac1b6622665c79db8d15c1475f0c15cf5594b690a7" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b6.zip", "has_sig": true, "md5_digest": "d3730cb7ff1b7176eb927683b78700a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163675, "upload_time": "2009-10-20T14:59:14", "url": "https://files.pythonhosted.org/packages/bd/f2/d395d435afcabfca8ce27b6b054302338ed07f134fb84673d3de650b5f9f/Products.LinguaPlone-3.0b6.zip" } ], "3.0b7": [ { "comment_text": "", "digests": { "md5": "56ea0a4df4a98eb97482cc64fc89f455", "sha256": "a17ba37582504fc9ef4d0358eb11b256d4e6b3795cfe99febc00a55b8fbfe6db" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b7.zip", "has_sig": true, "md5_digest": "56ea0a4df4a98eb97482cc64fc89f455", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163817, "upload_time": "2009-10-21T21:34:09", "url": "https://files.pythonhosted.org/packages/f4/63/87c2fa98eaeb6726af73a4b07e5f4639e56cc5df29f7541ace25e9a106e9/Products.LinguaPlone-3.0b7.zip" } ], "3.0b8": [ { "comment_text": "", "digests": { "md5": "caacb9ca198350a9066afcf4cda057dd", "sha256": "8b4ac65e52af33bc8ba981c85d0013fcffc67d6bf55bf21d57bf5202fbe9ac71" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0b8.zip", "has_sig": false, "md5_digest": "caacb9ca198350a9066afcf4cda057dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 167054, "upload_time": "2009-10-22T22:24:03", "url": "https://files.pythonhosted.org/packages/d2/80/9ed38ca4c2de1af79f7899312b04ca81c00bdbf2adf94026eec656ed8acb/Products.LinguaPlone-3.0b8.zip" } ], "3.0c1": [ { "comment_text": "", "digests": { "md5": "a865030a37b32911437669c3225ac707", "sha256": "483fcde06112603d13341354345a53244b9050fc167fe5a985e0f5a2bb58dcd1" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0c1.zip", "has_sig": false, "md5_digest": "a865030a37b32911437669c3225ac707", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169914, "upload_time": "2009-11-04T18:55:53", "url": "https://files.pythonhosted.org/packages/57/ef/ad8d8ce9fd7c7ac5fc2bed9c62b172ee390a85b2489828cb689cbc26c52b/Products.LinguaPlone-3.0c1.zip" } ], "3.0c2": [ { "comment_text": "", "digests": { "md5": "4aa7aa06d61ecdd773e32596bc983298", "sha256": "f1b7790d4b08bc6b426399e1d71e595158679689b96817f71ceb3f6e8ca4c921" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0c2.zip", "has_sig": false, "md5_digest": "4aa7aa06d61ecdd773e32596bc983298", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 170330, "upload_time": "2009-11-16T14:52:18", "url": "https://files.pythonhosted.org/packages/59/d5/c49d287ff669abb072596293fbb5a63291deb164cf1d15cdefbf24726bd1/Products.LinguaPlone-3.0c2.zip" } ], "3.0c3": [ { "comment_text": "", "digests": { "md5": "9a51c0519bbcc57d92ef36c8b66a4f51", "sha256": "ed49c85d9fa4f3cd74c74d0429ab97ad868c01bc15b157e2827ce90213607d4b" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0c3.zip", "has_sig": false, "md5_digest": "9a51c0519bbcc57d92ef36c8b66a4f51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169972, "upload_time": "2009-11-25T13:55:59", "url": "https://files.pythonhosted.org/packages/76/4f/cc17dbcec8b3279bdcba650a51e37218e9afb30e25e980d6f0b53ec3ccaa/Products.LinguaPlone-3.0c3.zip" } ], "3.0c4": [ { "comment_text": "", "digests": { "md5": "057c1c6cf70e94154820e7800fed133d", "sha256": "1960f82a82f532fba7dd95dcec7aa1a7fe31b76f7136a7e5fc9555681a58f59b" }, "downloads": -1, "filename": "Products.LinguaPlone-3.0c4.zip", "has_sig": false, "md5_digest": "057c1c6cf70e94154820e7800fed133d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 170253, "upload_time": "2009-12-07T15:28:06", "url": "https://files.pythonhosted.org/packages/23/90/3d342f52e283354890b46c42641cb7045876628e4f2334864244f8db3188/Products.LinguaPlone-3.0c4.zip" } ], "3.1": [ { "comment_text": "", "digests": { "md5": "02ec6a632402baf0840f7f9e21f6fffa", "sha256": "961f936343228f164be0dfd12b246d533dfb848f1a0c47a6ba06fe2785e96af9" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1.zip", "has_sig": false, "md5_digest": "02ec6a632402baf0840f7f9e21f6fffa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188838, "upload_time": "2010-07-28T22:25:39", "url": "https://files.pythonhosted.org/packages/5c/31/c542ee941df4aac1f5f234fcc8bd333cd9292263a8c41ead1a2ddc82204d/Products.LinguaPlone-3.1.zip" } ], "3.1a1": [ { "comment_text": "", "digests": { "md5": "44ebef23196a73002a188ed9daf0dfd2", "sha256": "01ae64fc0cee80e12b01eac0864ec694ebd5fa30b0128c25f73aa6e039ff4f98" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1a1.zip", "has_sig": false, "md5_digest": "44ebef23196a73002a188ed9daf0dfd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 177615, "upload_time": "2010-02-19T17:18:31", "url": "https://files.pythonhosted.org/packages/51/b3/24142fe0ea405af7ea2af79f9c9eaf3a2886452dc4412eaab0450770c2fd/Products.LinguaPlone-3.1a1.zip" } ], "3.1a2": [ { "comment_text": "", "digests": { "md5": "8ae5263269e4f8894908826d7270b9ca", "sha256": "94e12a0d92c98e312cb3404b358efb55ff31957c7eacac4927d0b13aeb3c1c71" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1a2.zip", "has_sig": false, "md5_digest": "8ae5263269e4f8894908826d7270b9ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 184615, "upload_time": "2010-03-29T15:16:07", "url": "https://files.pythonhosted.org/packages/2c/2d/1a1ade29f25896413a09c704d7ab169b9cd1b48653b535aa4cbb4a0f1f6f/Products.LinguaPlone-3.1a2.zip" } ], "3.1a3": [ { "comment_text": "", "digests": { "md5": "b9ea445e0d6edc163335fdb432beb7bb", "sha256": "9a0015d511f5623fe528c6d3a15cff46ea86e8d07ecf0cd6a28dd254ea2f25f5" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1a3.zip", "has_sig": false, "md5_digest": "b9ea445e0d6edc163335fdb432beb7bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 193914, "upload_time": "2010-05-25T17:05:47", "url": "https://files.pythonhosted.org/packages/d5/51/69da9a010edccc0467d3f4da6bc3d5be9499c92678a70415826fc4c564a1/Products.LinguaPlone-3.1a3.zip" } ], "3.1a4": [ { "comment_text": "", "digests": { "md5": "87edb3ef46cfd49672d25050e26281b1", "sha256": "f19895e1b539c559c52b03640312e9af337a9e8e812c5493e1b72aab75358c70" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1a4.zip", "has_sig": false, "md5_digest": "87edb3ef46cfd49672d25050e26281b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187305, "upload_time": "2010-06-18T16:46:38", "url": "https://files.pythonhosted.org/packages/03/22/efc4dc890f8dc0d4be2632bdbb37eb5f71da1555eb5c621b4370235b6acd/Products.LinguaPlone-3.1a4.zip" } ], "3.1a5": [ { "comment_text": "", "digests": { "md5": "15c7fd1308add8e639eeade322ec9a05", "sha256": "4cb97400d592787f5f6a3df91b36578584ca32c924f3cac5da7e100e50e2f89f" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1a5.zip", "has_sig": false, "md5_digest": "15c7fd1308add8e639eeade322ec9a05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187482, "upload_time": "2010-06-22T18:52:14", "url": "https://files.pythonhosted.org/packages/ad/7a/7a0578da703325e78f3637a79769ecda0e0df070fbdc9fe90c5de851870e/Products.LinguaPlone-3.1a5.zip" } ], "3.1b1": [ { "comment_text": "", "digests": { "md5": "42bc3a4456f16ef5f6e8a9fb24c4c904", "sha256": "4849f432ed1d8338088eafcca0690bd30f11856e991bb5124eb9ec53c6417329" }, "downloads": -1, "filename": "Products.LinguaPlone-3.1b1.zip", "has_sig": false, "md5_digest": "42bc3a4456f16ef5f6e8a9fb24c4c904", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189419, "upload_time": "2010-07-18T14:05:40", "url": "https://files.pythonhosted.org/packages/1d/8e/1f151f351820751adad191d0f233605d0f5efb3e5ad40ea8a9bcff4cc0e0/Products.LinguaPlone-3.1b1.zip" } ], "3.2": [ { "comment_text": "", "digests": { "md5": "cd9e97d3b95d270669094ce7236b4ea4", "sha256": "6a1b8b8098782db37f3cd1e77f48bd743869c7e659e530ba10dceee590bf6aa0" }, "downloads": -1, "filename": "Products.LinguaPlone-3.2.zip", "has_sig": false, "md5_digest": "cd9e97d3b95d270669094ce7236b4ea4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 190063, "upload_time": "2010-12-01T20:20:19", "url": "https://files.pythonhosted.org/packages/60/46/33b60bc459cbdce6b81dfda83830caad2aebdb4b5fd4ab65ba8bd5b74e27/Products.LinguaPlone-3.2.zip" } ], "3.2a1": [ { "comment_text": "", "digests": { "md5": "0d7e9cad79d5c4870c097fe604906c97", "sha256": "088a32ad0bc849c8943525894f80563145a62674046f0c442382561aa706a195" }, "downloads": -1, "filename": "Products.LinguaPlone-3.2a1.zip", "has_sig": false, "md5_digest": "0d7e9cad79d5c4870c097fe604906c97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189649, "upload_time": "2010-09-28T10:59:09", "url": "https://files.pythonhosted.org/packages/60/9b/4399210883ee1760ff5781b9572d27e9a6dfab8aff58480e3147a7be7e46/Products.LinguaPlone-3.2a1.zip" } ], "3.2b1": [ { "comment_text": "", "digests": { "md5": "d1a42217e9fb4b05b520ab5f714d7116", "sha256": "7ee94107e7305419235531b4ec9de8ee55362c00f38a428f8c598edf1354cde8" }, "downloads": -1, "filename": "Products.LinguaPlone-3.2b1.zip", "has_sig": false, "md5_digest": "d1a42217e9fb4b05b520ab5f714d7116", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 190205, "upload_time": "2010-11-04T11:32:41", "url": "https://files.pythonhosted.org/packages/ba/70/0f1174134434405d9dfb223310aa41aca09606953cf71f3627a58e5177da/Products.LinguaPlone-3.2b1.zip" } ], "4.0": [ { "comment_text": "", "digests": { "md5": "76fe63a7ead66b024c43e25682a2805c", "sha256": "a561130e2281b2584912ab85bad95c2ad2f9b68d5602699c92f16176a538f827" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0.zip", "has_sig": false, "md5_digest": "76fe63a7ead66b024c43e25682a2805c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188089, "upload_time": "2010-12-01T20:19:38", "url": "https://files.pythonhosted.org/packages/a9/76/b712385249812d4f4a8e6305d41e41a9fee17cc7a88285040aba87637b99/Products.LinguaPlone-4.0.zip" } ], "4.0.1": [ { "comment_text": "", "digests": { "md5": "b74b22edde92c4188157a86e7071056c", "sha256": "869278c9d4736c8b425c9d7d94c85bba04b905150d8720dcda98dd75f01a4892" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0.1.zip", "has_sig": false, "md5_digest": "b74b22edde92c4188157a86e7071056c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188809, "upload_time": "2011-01-10T14:36:55", "url": "https://files.pythonhosted.org/packages/d3/1c/937c321829cca5af2c1a04acc13e7870c2a3d635b034a9d108eaa7d77482/Products.LinguaPlone-4.0.1.zip" } ], "4.0.2": [ { "comment_text": "", "digests": { "md5": "5f9399331678874e9924a5c25c27cf5c", "sha256": "1c6b6741ddfdccefe7b2e99d0e973363cc8836d65ccca83ed144a02b98227235" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0.2.zip", "has_sig": false, "md5_digest": "5f9399331678874e9924a5c25c27cf5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188506, "upload_time": "2011-01-26T15:28:20", "url": "https://files.pythonhosted.org/packages/95/df/f7def66488c8c2e244697a58e6ad6836e055b0de684d3407e2a69c8b30c3/Products.LinguaPlone-4.0.2.zip" } ], "4.0.3": [ { "comment_text": "", "digests": { "md5": "adeece442b034c0c85bf97b287bd9351", "sha256": "a8a38f3c5e06e4d14e9f64c58127f318525b698f51de8e5e8e1fe64aced0846a" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0.3.zip", "has_sig": false, "md5_digest": "adeece442b034c0c85bf97b287bd9351", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 189294, "upload_time": "2011-05-27T09:40:49", "url": "https://files.pythonhosted.org/packages/72/d2/cd566ef189b7c57696ec6caeffe3a09ec2a6320631a9645347fcfbac9d44/Products.LinguaPlone-4.0.3.zip" } ], "4.0.4": [ { "comment_text": "", "digests": { "md5": "1e81aedf6c15c4fe9cf88e79be1cba36", "sha256": "9d3501a6c7d0b8fb35e69e89b6c9959cede60b598d1ee0e5b82ff1b5898f56e5" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0.4.zip", "has_sig": false, "md5_digest": "1e81aedf6c15c4fe9cf88e79be1cba36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 193378, "upload_time": "2011-07-25T11:30:05", "url": "https://files.pythonhosted.org/packages/f6/f1/804a05d075a31c67c651d0097fa0096cd3117efed8b0d6b1368949a77c44/Products.LinguaPlone-4.0.4.zip" } ], "4.0a1": [ { "comment_text": "", "digests": { "md5": "1208fa7cd320a8170a36f3f5aa1d4988", "sha256": "14c0e5ec2c0b0d4f7653270b5992f2793fd3dc59fba00709756b6eeefe125cac" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0a1.zip", "has_sig": false, "md5_digest": "1208fa7cd320a8170a36f3f5aa1d4988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186833, "upload_time": "2010-07-29T21:37:08", "url": "https://files.pythonhosted.org/packages/e6/20/997eb562786b8a8a57dc971409b8235857056df7e9306681e37f4dac3b89/Products.LinguaPlone-4.0a1.zip" } ], "4.0a2": [ { "comment_text": "", "digests": { "md5": "35bdbc69d4d4b6dc9bc62490af127778", "sha256": "9f0aaaa87f2837b6e7c13408d09d242a062c57d1f6cd2333529ec27150a76e72" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0a2.zip", "has_sig": false, "md5_digest": "35bdbc69d4d4b6dc9bc62490af127778", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187057, "upload_time": "2010-09-08T16:34:54", "url": "https://files.pythonhosted.org/packages/79/90/6551e9a2363302af0b8bb5c9992727a124755820560bc34a4d9d73b29675/Products.LinguaPlone-4.0a2.zip" } ], "4.0a3": [ { "comment_text": "", "digests": { "md5": "e8e5c060d58d2a2f2fa17f1100efea43", "sha256": "a7a0acafbef3e547d166435fc2d706214e82a7c2c98b2b697ca90543b433e15f" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0a3.zip", "has_sig": false, "md5_digest": "e8e5c060d58d2a2f2fa17f1100efea43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187758, "upload_time": "2010-09-24T15:49:47", "url": "https://files.pythonhosted.org/packages/4e/ef/4b0aa5550e64631e8ec61be68612bcf9463e49a19b47db0bb6fb2e336666/Products.LinguaPlone-4.0a3.zip" } ], "4.0a4": [ { "comment_text": "", "digests": { "md5": "18a71b83412395e79a7e16134795eebe", "sha256": "636a6a19b63ec6a294c3782dc0003b6e8b21660c0d2f2bb23097c5ebd139f7a7" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0a4.zip", "has_sig": false, "md5_digest": "18a71b83412395e79a7e16134795eebe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188051, "upload_time": "2010-10-06T11:48:46", "url": "https://files.pythonhosted.org/packages/04/cb/6fed6dc66a9ef5b1355c19748e9be1841eaaa11102b25fa0f414e707f54c/Products.LinguaPlone-4.0a4.zip" } ], "4.0b1": [ { "comment_text": "", "digests": { "md5": "faec02a853e92515ac21d8a6c68ca0f6", "sha256": "b296402d9bede6f27a5eff6974af8ee724e684f2acdb8814afa8ec9bc800122f" }, "downloads": -1, "filename": "Products.LinguaPlone-4.0b1.zip", "has_sig": false, "md5_digest": "faec02a853e92515ac21d8a6c68ca0f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188221, "upload_time": "2010-11-04T11:24:08", "url": "https://files.pythonhosted.org/packages/19/fd/fc7cc749a0353f6c969b0722e3ec3661e7550fa54c5dc225a6bda1c867a6/Products.LinguaPlone-4.0b1.zip" } ], "4.1": [ { "comment_text": "", "digests": { "md5": "14e3d1b4e0856fe0de5adac1cebb1a72", "sha256": "1aa28dc7f1a6031843958cc6095ed161a583333be286c87c87229d35b0d53687" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.tar.gz", "has_sig": false, "md5_digest": "14e3d1b4e0856fe0de5adac1cebb1a72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139518, "upload_time": "2011-11-14T11:39:42", "url": "https://files.pythonhosted.org/packages/fc/3f/4d11bf0bb6afcee4a3174c89eb46be60096a64c9056bc51800aa0cdc2fd0/Products.LinguaPlone-4.1.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "014dd26db2295d8f5f611aac18f330a6", "sha256": "7fe97b17ab60eacd854fac16be9361575ead4fc3e683a0436d6e6c5074f250e0" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.1.tar.gz", "has_sig": false, "md5_digest": "014dd26db2295d8f5f611aac18f330a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139777, "upload_time": "2011-11-15T10:07:54", "url": "https://files.pythonhosted.org/packages/d9/a9/d05229263f49c94cdfeee0f0e0323312696b08766d4195b9c1ac0b3effee/Products.LinguaPlone-4.1.1.tar.gz" } ], "4.1.2": [ { "comment_text": "", "digests": { "md5": "fdbb667241dd9525daf7c22289692480", "sha256": "56862d45cb575be5424b43dc5c0a21b859624f0ff348128354498326d071607d" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.2.zip", "has_sig": false, "md5_digest": "fdbb667241dd9525daf7c22289692480", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 198851, "upload_time": "2012-04-12T01:52:24", "url": "https://files.pythonhosted.org/packages/55/90/48baa53b3e0e6fa6572bb3fa7493abb7e4c2500159ea2059aba04e8028fa/Products.LinguaPlone-4.1.2.zip" } ], "4.1.3": [ { "comment_text": "", "digests": { "md5": "e4773b1e14c666add81ac022376059aa", "sha256": "44491b83d1ec96e5022a154e4cc9782bc255b22e66787b4d021621e742c4b438" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.3.zip", "has_sig": false, "md5_digest": "e4773b1e14c666add81ac022376059aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 206449, "upload_time": "2013-01-18T12:06:36", "url": "https://files.pythonhosted.org/packages/be/08/5851f2105bef197114f8c75b6f85e0a1f90e559d21860076e028b5529a04/Products.LinguaPlone-4.1.3.zip" } ], "4.1.4": [ { "comment_text": "", "digests": { "md5": "015d0644ca74651eae2da31dd31fabdd", "sha256": "a603305c1a874325c3b7f924ec236ab8a023c71eb12f06d4dfad4755948c0d78" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.4.tar.gz", "has_sig": false, "md5_digest": "015d0644ca74651eae2da31dd31fabdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 150749, "upload_time": "2016-02-17T14:16:52", "url": "https://files.pythonhosted.org/packages/ee/bb/e772e0ff117e47427204896923ad0e7ccae3175a48275c54ee3a65398e67/Products.LinguaPlone-4.1.4.tar.gz" } ], "4.1.5": [ { "comment_text": "", "digests": { "md5": "47f828f69e0024faa07f3d34dfa68160", "sha256": "cb754a4fd03540594851f71b4e4db775793dd0c6d029bc58a152061bc43c67ff" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.5.tar.gz", "has_sig": false, "md5_digest": "47f828f69e0024faa07f3d34dfa68160", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146988, "upload_time": "2016-08-11T17:04:51", "url": "https://files.pythonhosted.org/packages/02/83/80d2071b70de5bedd0ceda7b2d64309ddf58d26eff1a70111528e9e1fbf4/Products.LinguaPlone-4.1.5.tar.gz" } ], "4.1.6": [ { "comment_text": "", "digests": { "md5": "e17b1b72ce3b5706578f2e2325ae30ed", "sha256": "398ce07d64a444f9cffbf078de089d04495730f5442a2c44aabdf314ed3760b7" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.6.tar.gz", "has_sig": false, "md5_digest": "e17b1b72ce3b5706578f2e2325ae30ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147108, "upload_time": "2016-11-09T16:01:01", "url": "https://files.pythonhosted.org/packages/49/96/8aa091cf532480cc5db65020417a83931c91eee8c4364998d35051c9b7e5/Products.LinguaPlone-4.1.6.tar.gz" } ], "4.1.7": [ { "comment_text": "", "digests": { "md5": "c617aeed0240ac536e192aa6e15796d1", "sha256": "53355d932e47ef4fdd404aa07b82669c122ee0cb1b757f72af81a224024faa3d" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.7.tar.gz", "has_sig": false, "md5_digest": "c617aeed0240ac536e192aa6e15796d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 148239, "upload_time": "2016-11-10T21:13:31", "url": "https://files.pythonhosted.org/packages/03/85/f7810dd378f235c4b16f66b1d44f48df3c7ab41f73893a5ecfa4c8d4570f/Products.LinguaPlone-4.1.7.tar.gz" } ], "4.1.8": [ { "comment_text": "", "digests": { "md5": "dc14c8e5bc5ec0db02d20461f2847490", "sha256": "6bfe4404c6ee2253c4af08de2b9fbfa567677da2d57d2e57356f215fd2f9eb87" }, "downloads": -1, "filename": "Products.LinguaPlone-4.1.8.tar.gz", "has_sig": false, "md5_digest": "dc14c8e5bc5ec0db02d20461f2847490", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 149441, "upload_time": "2017-01-12T17:39:31", "url": "https://files.pythonhosted.org/packages/f9/74/ce9c5eb94b7e6421bce8f3f6d54c9da68891fcea9d15a78707f2ddcbd49b/Products.LinguaPlone-4.1.8.tar.gz" } ], "4.2": [ { "comment_text": "", "digests": { "md5": "ecbc12b64d810081da8267584714bfd2", "sha256": "8c2fc765b68d169650c88444bd43b6bf9fa4f55c6023d094af4f100672055240" }, "downloads": -1, "filename": "Products.LinguaPlone-4.2.tar.gz", "has_sig": false, "md5_digest": "ecbc12b64d810081da8267584714bfd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 149745, "upload_time": "2017-03-09T20:59:23", "url": "https://files.pythonhosted.org/packages/7d/a5/c535af75a786e527ce6bb42570658b6d275f85685777d5001f64697f93f8/Products.LinguaPlone-4.2.tar.gz" } ], "4.2.1": [ { "comment_text": "", "digests": { "md5": "2606df9fe4d727eb4b0829671d64a0ed", "sha256": "33811e686c9fc01450919d9b58f1ed2697123b03cd27dc80263534c0ada8009c" }, "downloads": -1, "filename": "Products.LinguaPlone-4.2.1.tar.gz", "has_sig": false, "md5_digest": "2606df9fe4d727eb4b0829671d64a0ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 149882, "upload_time": "2017-04-03T09:48:20", "url": "https://files.pythonhosted.org/packages/f9/ed/bfe380d9bf2b5c309dc63c98218bb15e622156a3023a58226d7a3e40da64/Products.LinguaPlone-4.2.1.tar.gz" } ], "4.3.0": [ { "comment_text": "", "digests": { "md5": "6379892d5556f1cf4d50d0347865d711", "sha256": "244dd3564c2ceff29e5f966e036f1f161e5625b8012b4aa5091c7144bafc196f" }, "downloads": -1, "filename": "Products.LinguaPlone-4.3.0.tar.gz", "has_sig": false, "md5_digest": "6379892d5556f1cf4d50d0347865d711", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 151047, "upload_time": "2018-02-22T23:50:05", "url": "https://files.pythonhosted.org/packages/a2/d9/1de1d86d34e70f6ffc340f818307785df23b3881f657ebf8691f58638485/Products.LinguaPlone-4.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6379892d5556f1cf4d50d0347865d711", "sha256": "244dd3564c2ceff29e5f966e036f1f161e5625b8012b4aa5091c7144bafc196f" }, "downloads": -1, "filename": "Products.LinguaPlone-4.3.0.tar.gz", "has_sig": false, "md5_digest": "6379892d5556f1cf4d50d0347865d711", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 151047, "upload_time": "2018-02-22T23:50:05", "url": "https://files.pythonhosted.org/packages/a2/d9/1de1d86d34e70f6ffc340f818307785df23b3881f657ebf8691f58638485/Products.LinguaPlone-4.3.0.tar.gz" } ] }