{ "info": { "author": "Lalo Martins", "author_email": "plone-developers@lists.sourceforge.net", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "PlacelessTranslationService\n\n Copyright (C) 2001-2007 Lalo Martins ,\n Zope Corporation and Contributors\n\n This program is free software; you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation; either version 2 of the License, or\n (at your option) any later version.\n\n See license.txt for more details.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program; if not, write to the Free Software\n Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA\n\nWhat is PlacelessTranslationService?\n\n PTS is a way of internationalizing (i18n'ing) and localizing (l10n'ing)\n software for Zope 2.\n It's based on the files supported by the GNU gettext set of\n utilities. A good source of information and background reading is\n the gettext documentation:\n \n http://www.gnu.org/software/gettext/manual/\n\nInstallation\n\n PTS is installed as a normal Zope product. This is usually done by unpacking\n the distribution into the Products directory of your INSTANCE_HOME\n and restarting Zope. More information can be found in the Zope Book:\n\n http://zope.org/Documentation/Books/ZopeBook/2_6Edition/MaintainingZope.stx\n\nUsing PlacelessTranslationService\n\n PTS is used in the following steps:\n\n 1. i18n your software\n\n 2. Prepare a translation template\n\n 3. Prepare translations of the template\n\n 4. Install translations\n\n Each of these is explained below.\n\n1. Internationalizing Your Software\n\n A good overview of this can be found at:\n http://www.upfrontsystems.co.za/Members/jean/mysite-i18n\n\n2. Preparing a Translation Template\n\n A translation template is an empty Portable Object file as defined\n by the gettext standard with a special header block. \n\n The PO format is described in detail here:\n\n http://www.gnu.org/software/gettext/manual/html_node/gettext_9.html#SEC9\n\n The header block is fairly self explanatory and can be seen in the\n sample.pot file included in this directory. All phrases in capitals,\n the language code, language name and (optionally) the content type\n and preferred encodings should be replaced with their correct\n values.\n\n There are several ways to prepare a PO template:\n\n -- By hand:\n \n This can be done by copying the blank.pot included in this\n directory, replacing the sample values as described above and and\n then manually adding msgid and empty msgstr pairs for each of the\n msgid's used in your software.\n\n -- Using i18ndude:\n\n i18ndude is a tool that is useful when all your software is in\n the form of ZPT's that are stored in files on the filesystem.\n\n It can be downloaded from:\n\n http://plone.org/products/i18ndude\n\n3. Prepare Translations of the Template\n\n Preferably, find a translation company that can handle the gettext\n standards and send them your .pot file. They should send back .po\n files for the languages you require.\n\n If you're doing it yourself, copy the .pot file to a file on the\n name of the language you're translating to and with a .po\n extension. Then go through that file and fill in the msgstr\n sections. Finally, update all the metadata fields at the top of the\n file so they are correct for the translation you have just\n completed.\n\n At this point, you should have a .pot file and a collection of .po\n files.\n\n4. Install Translations\n\n PTS will look in folders called 'i18n' for .po files to use as\n translations. These 'i18n' folders will be searched if they are in\n the INSTANCE_HOME or in the directories of any of the Products you\n have installed.\n\n Copy your .po files to a 'i18n' folder of your choice in one of\n these locations.\n\n Once that's done, restart Zope.\n\nChangelog\n=========\n\n2.0.7 (2017-02-12)\n------------------\n\nBug fixes:\n\n- Fix import from Globals that is removed in Zope4.\n [pbauer]\n\n\n2.0.6 (2016-08-11)\n------------------\n\nFixes:\n\n- Use zope.interface decorator.\n [gforcada]\n\n\n2.0.5 (2014-04-16)\n------------------\n\n- .gitignore added.\n [tisto]\n\n\n2.0.4 (2013-08-13)\n------------------\n\n- Add module security declarations. Prevent publishing of\n the translate method. (Fixes from PloneHotfix20130618.)\n [davisagli]\n\n\n2.0.3 (2011-11-24)\n------------------\n\n- Prevent exception after failing to reload a lazy catalog.\n This closes http://dev.plone.org/ticket/9726\n [davisagli]\n\n- Make sure packages that are registered with five:registerPackage are\n searched for an i18n directory, also in Zope 2.13 (Plone 4.1).\n [maurits]\n\n- Make product init compatible with Zope trunk.\n [elro]\n\n2.0.2 - 2010-10-27\n------------------\n\n- Fixed chameleon incompatibility in ``catalog_broken.pt``.\n [swampmonkey]\n\n2.0.1 - 2010-08-04\n------------------\n\n- Made initialize2 function compatible with Zope 2.13.\n [hannosch]\n\n2.0 - 2010-07-18\n----------------\n\n- No changes.\n\n2.0b6 - 2010-06-13\n------------------\n\n- Removed the ``.registration.cache`` file from i18n directories. Since the\n majority of po files in plone.app.locales moved to locales folders, this\n optimization isn't worth it anymore.\n [hannosch]\n\n- Avoid using the deprecated five:implements directive.\n [hannosch]\n\n2.0b5 - 2010-03-26\n------------------\n\n- Fixed incompatibility in ``TEMPLATE_LANGUAGE`` support if you have specified\n an explicit language list via ``zope_i18n_allowed_languages``.\n [hannosch]\n\n2.0b4 - 2010-03-01\n------------------\n\n- Made sure that the request language memoization patch doesn't throw errors\n if the request cannot be adapted to IAnnotations. This closes\n http://dev.plone.org/plone/ticket/10272.\n [hannosch, davisagli]\n\n2.0b3 - 2010-02-04\n------------------\n\n- Refactored the i18n folder discovery mechanism to be independent of the\n persistent product registry.\n [hannosch]\n\n2.0b1 - 2010-01-24\n------------------\n\n- Extend our hack of the negotiator a bit more and introduce the concept of a\n template language. This one will always be allowed no matter if there's a\n po file for it for every domain or not. This closes\n http://dev.plone.org/plone/ticket/9762.\n [hannosch]\n\n- Added missing zope.annotation dependency.\n [hannosch]\n\n2.0a2 - 2009-11-13\n------------------\n\n- Merged in the PTSLanguages class from Products.Five.i18n and enabled it in\n our overrides.zcml.\n [hannosch]\n\n- Fixed deprecation warnings for use of Globals.\n [hannosch]\n\n- Cleaned up package metadata and declare package dependencies.\n [hannosch]\n\n2.0a1 - 2008-10-16\n------------------\n\n- Finished support for handling of po files inside i18n folders in normal\n Python packages. They need to registered as a Zope2 product but don't\n need to be in the Products.* namespace anymore.\n [hannosch]\n\n- Removed the _compile_locales_dir method and patch. Compiling mo files is\n now handled by zope.i18n itself.\n [hannosch]\n\n- Added first version of a registration cache for i18n folders. We track the\n modification time, number of files and header information of the files and\n write those out to a cache file. On startup we read the cache file and use\n the information as long as it is still current, instead of reparsing the po\n files headers. The cache file is called '.registration.cache'.\n [hannosch]\n\n- Minor optimization in initialize code.\n [hannosch]\n\n- Optimized loading of po files from i18n files. We only parse the header of\n the files, when all we need is the language header. This requires a new\n version of python-gettext.\n [hannosch]\n\n- Optimized startup logging. Now we don't spam the debug level anymore.\n [hannosch]\n\n- Deprecated all translation domain and service related methods and classes.\n [hannosch]\n\n- Removed the var/pts mo file cache in favor of compiling all mo files\n inplace. Also removed registration of catalogs with PTS and register them\n as Zope3 ITranslationDomain utilities instead.\n [hannosch]\n\n- Removed our own copy of the msgfmt module and use the one from the\n python-gettext package instead.\n [hannosch]\n\n- Stopped adding BrokenMessageCatalog objects to PTS.\n [hannosch]\n\n- Removed self recreation code when updating to newer versions of PTS.\n [hannosch]\n\n- Removed deprecated methods.\n [hannosch]\n\n1.5.4 - 2010-03-01\n------------------\n\n- Fix the PTS_LANGUAGES and LazyGettextMessageCatalog optimization. A boolean\n check was inverted. This closes http://dev.plone.org/plone/ticket/9575.\n [hannosch]\n\n1.5.3 - 2009-06-11\n------------------\n\n- Fix support for merging multiple message catalogs for the same domain.\n Previously this only worked in test-land.\n [witsch]\n\n- Add test layer properly initializing the package so that the tests can\n also pass with the eggified version.\n [witsch]\n\n1.5.2 - 2009-05-13\n------------------\n\n- Create unique catalog names for translation files found in packages. This\n closes http://dev.plone.org/plone/ticket/8443.\n [hannosch]\n\n- Deferred our own initialization to the package load time, so the persistent\n product registry is populated with the product entries for all packages.\n This allows all translations to be registered at the first startup of a new\n instance and closes http://dev.plone.org/plone/ticket/8376.\n [hannosch]\n\n1.5.1 - 2009-02-22\n------------------\n\n- Uppercased the readme.txt file to README.txt. Some platforms don't seem to\n like an all lowercase name here.\n [hannosch]\n\n1.5 - 2009-02-20\n----------------\n\n- Reformatted changelog and updated package metadata.\n [hannosch]\n\n- Patched zope.i18n.zcml.registerTranslations in order to backport\n Hanno's work on merging po files from the same domain.\n [tarek]\n\n- Added some tests for the registerTranslations patch.\n [tarek]\n\n1.4.14\n------\n\n- Fixed setup.py that was referring to a non-existing file.\n [maurits]\n\n\n1.4.13 - August 18, 2008\n------------------------\n\n- Reworked the PTS loading code to not rely on the persistent product\n registry for file path anymore, since that can get out of sync too easily\n and cause problems with multiple ZEO clients on different file paths\n connected to the same database. This closes\n http://dev.plone.org/plone/ticket/8265 and\n http://dev.plone.org/plone/ticket/8317.\n [hannosch]\n\n\n1.4.12 - June 17, 2008\n----------------------\n\n- Finished support for handling of po files inside i18n folders in normal\n Python packages. They need to registered as a Zope2 product but don't\n need to be in the Products.* namespace anymore.\n [hannosch]\n\n- Added some missing ZCML statements, which allow to use PTS in a Zope-only\n environment. Thanks to Martijn Jacobs for the patch.\n [hannosch]\n\n1.4.11 - April 28, 2008\n-----------------------\n\n- Work around a bug in addCatalog that would fail on broken message catalogs.\n This closes http://dev.plone.org/plone/ticket/8084.\n [hannosch]\n\n\n1.4.10 - April 20, 2008\n-----------------------\n\n- Switched mo file cache to store files under the client home instead of\n relying on the var folder to be present inside the instance home. This\n should fix permission errors for effective-user installs. This refs\n http://dev.plone.org/plone/ticket/7786.\n [hannosch]\n\n- Do not use the lazy message catalog at all when the list of languages is\n restricted via PTS_LANGUAGES, as the advantage in memory footprint will\n no longer exist, but the tiny lookup penalty would still be there.\n [hannosch]\n\n- Added support for a new environment variable called PTS_LANGUAGES. If this\n variable is specified and contains a space separated list of language codes\n only those languages will be registered in the Zope instance. This can help\n in reducing the memory footprint and number of ZODB objects generated by\n PTS. For locales folders this also avoids compiling po files to mo files.\n [hannosch]\n\n\n1.4.9 - March 26, 2008\n----------------------\n\n- Restructured patches. Added patch to always compile po files in all locales\n folders to mo files, even when those are found in packages. This closes\n http://dev.plone.org/plone/ticket/7157. At the same time we do not longer\n load locales folders in Products if they are not registered via ZCML.\n [hannosch]\n\n- Fixed incorrect logging in MoFileCache. This closes\n http://dev.plone.org/plone/ticket/7775.\n [kaell311, hannosch]\n\n\n1.4.8 - January 5, 2008\n-----------------------\n\n- Fixed a bug in the persistent translation service creation code. It\n registered the wrapper with a _path of ('TranslationService', ) at first.\n After a restart that would be corrected to the correct one:\n ('', 'Control_Panel', 'TranslationService'). This should fix a couple of\n bugs in the Plone bug tracker.\n [hannosch]\n\n\n1.4.7 - December 24, 2007\n-------------------------\n\n- Raise a ValueError when the Zope3 translation utilities get passed in an\n invalid context argument. Translations in Zope3 work against the request\n alone and while the keyword is called context it was too easily confused\n with a contentish context.\n [hannosch]\n\n\n1.4.6 - December 2, 2007\n------------------------\n\n- Catch PoSyntaxError when loading translation files from locales folders\n and output a warning instead of preventing Zope from starting up.\n [hannosch]\n\n- Backed out handling of PTS as a global utility again. It turns out that\n registering a persistent object both as a global utility is as bad as\n registering it as a module level global. So we use the PTSWrapper again\n which stores only the physical path to the PTS and loads it on every\n access. This fixes the ConnectionStateErrors witnessed in Plone 3.0 and\n closes http://dev.plone.org/plone/ticket/7233.\n [hannosch]\n\n- Backported LazyGettextMessageCatalog from the trunk and use it instead of\n the standard zope.i18n GettextMessageCatalog. This improves startup time\n and memory footprint, as only those catalog files will be parsed and loaded\n into memory which are actually used.\n [hannosch]\n\n\n1.4.5 - October 7, 2007\n-----------------------\n\n- Guard against sporadic ConnectionStateErrors in the PTS utility\n implementation.\n [hannosch]\n\n\n1.4.4 - July 9, 2007\n--------------------\n\n- Added new memoize function, which is used to patch the Zope3 negotiator to\n store the results of the language negotiation on the request.\n [hannosch]\n\n- Various minor updates to msgfmt.py.\n [hannosch]\n\n\n1.4.3 - May 1, 2007\n-------------------\n\n- Added new mo file generation logic, which will automatically generate and\n update the mo files in all locales folders instead of in the var/pts cache,\n so these can be picked up by the Zope3 translation machinery directly. You\n need to make sure that the user running the Zope process has write\n permissions in all locales folders for this feature to work. Folders\n following the i18n folder layout will be treated the same way as before.\n [hannosch]\n\n- Removed mo files for the PTS domain.\n [hannosch]\n\n\n1.4.2b2 - March 23, 2007\n------------------------\n\n- Commented out the five:registerPackage for now, as it lead to ugly\n ConnectionStateErrors during tests, as PTS would have been set up as part\n of the ZCML layer.\n [hannosch]\n\n\n1.4.2b1 - March 5, 2007\n-----------------------\n\n- Small optimization. Check if the context passed to the translate function\n is already a request, so we don't need to acquire it from the context.\n [hannosch]\n\n- Added IPTSTranslationDomain interface and utility. These can be used to\n proxy a translation domain that is still handled by PTS to make it available\n as a Zope3 translation domain as well, so it can be used in pure Zope3 page\n templates for example.\n [hannosch, philiKON]\n\n\n1.4.1 - February 10, 2007\n-------------------------\n\n- Removed TranslateTags and dtml translation features. They weren't working\n anymore for ages and noone was able to fix or maintain those.\n See http://dev.plone.org/plone/ticket/4895 for the whole story.\n [hannosch]\n\n- Register the PlacelessTranslationService object as a global utility during\n initialization. This allows us to get rid of all the magic acquistion code\n in PTSWrapper, which traversed to the real PTS object for every translate\n method call. We can now do a simple getUtility call instead.\n [hannosch]\n\n- Removed custom cache handling and replaced it by the standard approach\n based on ideas from plone.memoize. The code can be found in memoize module.\n This results in a major speed increase again.\n [hannosch]\n\n- Removed obsolete as_unicode argument from the translate method.\n [hannosch]\n\n- Deprecated a bunch of methods, which don't serve any particular purpose\n anymore.\n [hannosch]\n\n- Removed the .missing tracking facilities. These were unmaintained and not\n tested in any way.\n [hannosch]\n\n\n1.4.0 - October 25, 2006\n------------------------\n\n- Removed the tracker functionality of automatically recording missing\n translations. This turned out to be quite resource intense.\n [hannosch]\n\n- Fixed translate method to work in an environment where the context is not\n acquisition wrapped.\n [hannosch]\n\n- Fixed one more deprecation warning in GettextMessageCatalog.\n [hannosch]\n\n- Removed PatchStringIO completely, it apparently wasn't needed anymore.\n [hannosch]\n\n- Removed the FasterStringIO module and the accompanying monkey patch. These\n are part of CMFPlone/patches now.\n [hannosch]\n\n- Clarified some doc strings on the utranslate methods, these are identical\n to the translate methods now, don't use them anymore.\n [hannosch]\n\n- Cleaned up the PatchStringIO a bit, as we require Zope 2.10 now, we always\n have the Zope3 TAL machinery around and we should suppress the annoying\n deprecation warnings.\n [hannosch]\n\n- Deprecated the RequestGetAccept language negotiation handler, as it\n interferes with forms that include a field called language. We do not\n register the handler in 1.4 anymore. This closes\n http://dev.plone.org/plone/ticket/4986.\n [hannosch]\n\n- Cleaned up tests and removed custom testrunner (framework/runalltests).\n [hannosch]\n\n- All translation domains which are registered with the Zope3 translation\n service are now ignored by PTS, as PTS wouldn't been queried for these\n anyways.\n [hannosch]\n\n- PTS's translations (for the management screens) are now set up to use the\n Zope3 translation service. Quite ironic you may think, but this emphasizes\n even more the path PTS will take.\n [hannosch]\n\n- Converted PTS's own translation to new-style locales folder layout.\n [hannosch]\n\n- Changed translate method of PTS to return Unicode by default to work better\n with Zope 2.10+, which uses the Zope3 tal and pagetemplate machinery which\n expects Unicode in all places.\n [hannosch]\n\n\n1.3.6 - April 22, 2007\n----------------------\n\n- Yet another Unicode error was fixed which was caused by non unicode\n characters in page template source (utf encoded string in page template\n source). This closes http://dev.plone.org/plone/ticket/6238.\n [naro, hannosch]\n\n\n1.3.5 - January 27, 2006\n------------------------\n\n- The recent change to return Unicode exposed another place in the TAL\n interpreter that combines text, which wasn't yet patched to allow a mixture\n of Unicode and utf-8 encoded text. A new monkey-patch has been introduced\n to fix this problem. This closes http://dev.plone.org/plone/ticket/6068.\n [hannosch]\n\n\n1.3.4 - December 13, 2006\n-------------------------\n\n- Changed translate method of PTS to return Unicode by default. This was\n needed for Plone 2.5 in order to get a sensible behaviour with the\n FiveTranslationService. This release is probably not compatible with\n Plone 2.1.\n [hannosch]\n\n\n1.3.3 - September 29, 2006\n--------------------------\n\n- Provided some more nice fallback in the interpolate function for situations\n where you mixed encoded strings or unicode in the mapping dict compared to\n the text itself. We handle utf-8 encoded strings gracefully in all cases now.\n [hannosch]\n\n\n1.3.2 - September 8, 2006\n-------------------------\n\n- Made the logging of broken message catalogs more verbose. Now both the\n filename and path are logged, so you actually have a chance of finding those\n files. Thx limi for the suggestion.\n [hannosch]\n\n- Fixed bugs in interpolate function, where mixing of Unicode and encoded\n strings failed, when the Unicode string contained only ASCII characters.\n This will work now. Nonetheless you should update your code to use Unicode\n internally, as support for translating non-Unicode strings will go away once\n we switch to a Zope3-based TranslationService.\n [hannosch]\n\n\n1.3.1 - June 1, 2006\n--------------------\n\n- Also apply our evil hack that allows mixing utf-8 encoded strings and\n Unicode to the Zope3 versions of pagetemplate and talinterpreter, so current\n Plone works under Zope 2.10. Note that PTS is slated for destruction and you\n should really start to update all your code to use Unicode internally and\n especially for output through TAL.\n [hannosch]\n\n\n1.3.0 - May 15, 2006\n--------------------\n\n- Fixed another problem in the interpolate function, where variables where not\n replaced if the string was an old-style normal string and not unicode.\n This closes http://dev.plone.org/plone/ticket/5509.\n [hannosch]\n\n- Fixed a UnicodeDecodeError bug in the interpolate function, when a mapping\n or the text was Unicode but the other one was not. The function excepts only\n Unicode as both the text and for all entries of the mapping, as it has no\n way to guess the encoding of any of them.\n [hannosch]\n\n- Sanitized the interpolate function. It had various major bugs and was just\n unbelievable slow. This closes http://dev.plone.org/plone/ticket/5421.\n [hannosch]\n\n- Removed OpenTal support in anticipation of having to support Zope3 zope.tal\n for Zope 2.10. We don't want to support three tal implementations ;)\n [hannosch]\n\n- Big general spring cleaning. Moved to logging module instead of zLOG. The\n logging module is included in Python starting with 2.3. Running an older\n version of Python is therefore not supported anymore. This goes likewise for\n Zope < 2.7.\n [hannosch]\n\n- Include the filename of the po in the missing-domain error message\n [wichert]\n\n\n1.2.7 - March 19, 2006\n----------------------\n\n- Fixed a bug in msgfmt.py noted by Andrey Lebedev. All comments starting with\n '#,' where treated as fuzzy.\n [hannosch]\n\n- Fixed a bug where the translation service would return None for a\n translation, when it could not find one and the default was None. Changed to\n use the msgid instead. This has happened for all Zope3 Messages which have\n no default text.\n [hannosch] [alecm]\n\n- Added test to show that dtml translation is broken, see\n http://dev.plone.org/plone/ticket/4895.\n [hannosch]\n\n- Do not reset the PTS_IS_RTL flag in a request if it is already set.\n http://dev.plone.org/plone/ticket/4631\n [wichert]\n\n\n1.2.6 - February 25, 2006\n-------------------------\n\n- Removed some Python 2.1 BBB and unused code.\n [hannosch]\n\n- Removed home-grown MessageID implementation. Using Zope 3 MessageID's is now\n possible with Zope 2.8 / Five 1.1 or Zope > 2.9.\n [hannosch]\n\n- Moved changes.txt from doc subfolder to main folder and renamed it to\n HISTORY.txt to comply to the standard layout.\n [hannosch]\n\n- Changed standard logging level to BLATHER instead of INFO so the startup\n process isn't bombarded with useless messages.\n [hannosch]\n\n- Added a environment variable \"DISABLE_PTS\" to entirely disable\n loading of translation files and registration of PTS as a\n translation service without removing the product from the\n 'Products' directory. HINT: One easy way to set environment\n variables is to use the 'zope.conf' directive.\n [dreamcatcher]\n\n\n1.2.5 - 2005-12-06\n------------------\n\n- Fix problems with folder layout where INSTANCE_HOME.startswith(ZOPE_HOME)\n is True, as reported in http://plone.org/collector/4983. Thanks to ymahe for\n the patch, which I have slightly modified.\n [hannosch]\n\n\n1.2.4 - 2005-11-16\n------------------\n\n- Removed some Python 2.1 compatibility code and added first very basic test\n for loading po files\n [hannosch]\n\n- Made some filesystem access code a bit more robust by additionally catching\n OSErrors. This fixes http://plone.org/collector/4824.\n [hannosch]\n\n- Increased class version again and wrote test to ensure matching class\n version and version in version.txt\n [hannosch]\n\n\n1.2.3 - 2005-10-17\n------------------\n\n- Fixed http://plone.org/collector/4799 - upgrade from 2.1 to 2.1.1 breaks all\n message catalogs. We now increment the internal class version of PTS, which\n will result in a recreation of the translation_service object in the ZODB,\n so all contained internal poFile objects get removed and freshly recreated\n [hannosch]\n\n\n1.2.2 - 2005-10-08\n------------------\n\n- Replaced storing the persistent PTS at the module level in __init__.py\n with a PTSWrapper object. Added isRTL method to PTSWrapper. Should\n fix the connection issues.\n [alecm]\n\n- Merged missing fix from the 1.0 branch. It's changelog entry was:\n \"Fixed issue with multiple ZEO clients at differen filesystem locations.\"\n This was done by longsleep on Feb 9, 2005\n [hannosch]\n\n\n1.2.1 - 2005-08-07\n------------------\n\n- Fresh tarball for Plone 2.1rc2 (without .svn directories)\n [batlogg]\n\n- Added greek translation [thx to Nikos Papagrigoriou]\n [hannosch]\n\n\n1.2.0 - 2005-07-28\n------------------\n\n- Purge mo file cache when PTS is recreated\n [tiran]\n\n\n1.2-rc3\n-------\n\n- Fixed id generation for po files located in the \"locales\" directory\n [tiran]\n\n- Added a mo file cache which is storing the compiled files in\n INSTANCE_HOME/var/pts/${catalog_id}.mo\n [tiran]\n\n\n1.2-rc2\n-------\n\n ...\n\n\n1.2-rc1 - 2004-09-08\n--------------------\n\n- New feature RTL support and RTL api for right to left languages. Po files\n may contain a header called X-Is-RTL with either yes, y, true or 1 for a\n rtl language or no, n, false, 0 for a ltr language (default value). The\n product module also contains a new method isRTL which is available TTW.\n\n\n1.1-rc1 - 2004-07-15\n--------------------\n\n- New feature msgid tracker (thanks to ingeniweb):\n\n It's tracking untranslated msgids inside the PTS. You can easily download\n them as po file. See ZMI for more informations\n\n- Set MessageCatalog isPrincipiaFolderish to false to avoid infinite recursion\n of dtml-tree inside the ZMI.\n\n\n1.0-rc8\n-------\n\n- This version is no longer a fork, but is the official version now.\n Thanks to Lalo Martins for his tireless efforts in writing the\n original product.\n\n- Disabled usage of SESSION\n\n- Re-enabled .missing logging\n\n- Added documentation section, including details of how to use\n .missing logging to generate .pot files\n\n\n1.0fork-rc7 - 2004-05-11\n------------------------\n\n- Reenabled getRequest patch to avoid some ugly problems\n\n\n1.0fork-rc6 - 2004-05-05\n------------------------\n\n- Cleaned up all python files, realigned the code and removed spaces\n\n\n1.0fork-rc5 - 2004-04-22\n------------------------\n\n- Changed logging to get use the methods and vars from utils.py\n\n- Cleaned up the imports an seperate them into python, zope and PTS imports\n\n- Removed the dependency and auto loading of the get_request patch. Now it's\n loaded only when using the MessageID module, when applying unicode to\n FasterStringIO (shouldn't happen!) or as fallback when PTS can't get a valid\n context (REQUEST).\n The last two cases will break the first time after a (re)start of zope. If\n your software depends on get_request() apply the patch manually::\n\n from Products.PlacelessTranslationService.PatchStringIO import applyRequestPatch\n applyRequestPatch()\n\n NOTE: FOR THIS RELEAE THE get_request PATCH IS ENABLED BY DEFAULT!\n\n- Better debugging message for PoSyntaxErrors\n\n\n1.0fork-rc4 - 2004-04-05\n------------------------\n\n- Changed po file id creation:\n\n - id is MyProducts.i18n-pofile or MyProducts.locales-pofile\n for po files loaded from a product directory\n - id is GlobalCatalogs-pofile for po files loaded from\n INSTANCE_HOME/i18n/\n\n- Always append fallback catalogs to the catalogs\n used for translation\n\n- Support INSTANCE_HOME/locales/\n\n- Move GlobalCatalogs from INSTANCE_HOME/i18n/ and\n INSTANCE_HOME/locales/ to the beginning of the\n catalogs used for translation\n\n- Cache catalog names in the REQUEST using the domain and language as key\n\n\n1.0fork-rc3 - 2004-03-09\n------------------------\n\n- Added a product identifier to the control panel catalog id\n to allow same po filenames in different locations:\n\n- Catalog its are now like Products.CMFPlone.i18n.plone-de.po\n Catalogs not coming from a Product (eg from INSTANCE_HOME)\n are named like before (plone-de.po)\n\n- Fixed collector issue #910529\n Thanks to Nicolas Ledez for the report and the patch\n\n\n1.0fork-rc2 - 2004-03-01\n------------------------\n\n- Fixed bug in FasterStringIO that added new lines to the output\n\n- Added zope 3 like locales directory support:\n Products/MyProduct/locales/${lang}/LC_MESSAGES/${domain}.po\n\n\n1.0fork-rc1 - 2004-02-11\n------------------------\n\n- Fixed minors problems with python 2.1 compatibility\n\n\n1.0fork-beta5 - 2004-02-03\n--------------------------\n\n- Added utranslate method\n\n- Added negotiator chains and two new easy negotiators\n\n- Added zope 3 like MessageID and MessageIDFactory\n\n- Updated API and cleaned up code:\n - added security to classes\n - moved some classes to utils.py to avoid method level imports\n - added getTranslationService() method to get the PTS instance\n in other products\n\n\n1.0fork-beta4 - 2004-01-28\n--------------------------\n\n- Read all files with \"rb\" in msgfmt.py\n\n- Display broken Message Catalogs in ControlPanel as \"broken\"\n\n- Synced with these latest PTS changes from savannah:\n - added as_unicode argument to translate\n - cleaned up msgfmt.py\n\n\n1.0fork-beta3 - 2004-01-07\n--------------------------\n\n- Added a builtin mo compiler based on the msgfmt tool from the python source\n package. No need to compile the po files to mo files. Thanks to\n Christian 'Tiran' Heimes \n\n- No longer load mo files on startup. Catalogs are automatically compiled.\n\n\n1.0fork-beta2 - 2003-11-24\n--------------------------\n\n- No longer register a persistent service to zope translation\n service registry. Instead wrap PTS with a non persistent class\n\n- Added a de (German) translation for PTS ZMI\n\n- Reimplemented hook to register own negotiaton method into\n Negotiator which was stripped out in 1.0beta1 (now works\n with PloneLanguageTool again)\n\n- Python 2.1 compatibility\n\n\n1.0beta1 - 2003-10-??\n---------------------\n\n- Internationalized our own page templates (for ZMI) and added a\n pt_BR translation\n\n- Generalized the Negotiator so that it may negotiate any header in\n the \"accept\" format\n\n\n1.0alpha2 - 2003-09-26\n----------------------\n\n- Some primitive DTML support\n\n- Fixed persistence issues that were arising from having the same\n object stored in the ZODB and in a module-level global var (thanks\n to Sidnei)\n\n\n1.0alpha1 - 2003-08-27\n----------------------\n\n- Removed dependency from PAX\n\n- Now PTS looks for an \"i18n\" subdirectory under each Product\n package, which makes it easier to package/install i18n-aware\n products. The i18n dir on INSTANCE_HOME is still kept, you can\n use it for local overrides\n\n- Improvements on the ZMI usability\n\n\n0.5 - 2003-03-31\n----------------\n\n- Now we have a ZMI (Zope Management Interface) in Zope's Control\n Panel. You can use it to refresh catalogs without restarting, and\n to test installed catalogs\n\n- Some functions at module-level are exported for use in Python\n Scripts and Page Templates (Open or Z): negotiate(), translate(),\n getLanguages(), getLanguageName()\n\n- Added a \"hotfix\" to StringIO that should make PTS work with ZPT\n without UnicodeError being raised constantly\n\n\n0.4 - 2003-02-03\n----------------\n\n- Relicensed to GPL\n\n- Now it really works with ZPT (thoroughly tested)\n\n- If used with OpenPT, it will use the output encoding negotiation hooks\n\n- Negotiator now uses a cache (stored in the request) to speed things up\n\n- Can now use multiple catalogs for the same domain (but the order\n in which they are checked is a bit randomic)\n\n- Special thanks to Magnus Heino for the ZPT support hints and patches\n\n\n0.3 - 2003-01-02\n----------------\n\n- This release marked the split of PlacelessTranslationService into\n its own package, and the initial attempts at making it compatible\n with ZPT.\n\n\n0.2 - 2002-09-22\n----------------\n\n- Updated release\n\n\n0.1 - 2002-08-24\n----------------\n\n- Initial release", "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.PlacelessTranslationService", "keywords": "Zope CMF Plone i18n l10n translation gettext", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "Products.PlacelessTranslationService", "package_url": "https://pypi.org/project/Products.PlacelessTranslationService/", "platform": "", "project_url": "https://pypi.org/project/Products.PlacelessTranslationService/", "project_urls": { "Homepage": "https://pypi.python.org/pypi/Products.PlacelessTranslationService" }, "release_url": "https://pypi.org/project/Products.PlacelessTranslationService/2.0.7/", "requires_dist": null, "requires_python": "", "summary": "PTS provides a way of internationalizing (i18n'ing) and localizing (l10n'ing) software for Zope 2.", "version": "2.0.7" }, "last_serial": 2637159, "releases": { "1.4.10": [ { "comment_text": "", "digests": { "md5": "6b22fa84dd221455668186db46d60b28", "sha256": "9fa2e1594f7b3931270dad7ec4a999b9459c471a191c3f34ce6ba9b605db308c" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.10-py2.4.egg", "has_sig": true, "md5_digest": "6b22fa84dd221455668186db46d60b28", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 82051, "upload_time": "2008-04-20T12:11:46", "url": "https://files.pythonhosted.org/packages/b8/e5/f6d50d75c0500f098ed0862b7d58082917a96cf63f3be268680d52b3d6a1/Products.PlacelessTranslationService-1.4.10-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "c743dc01df19734c77742d2470f7b2e9", "sha256": "a9ac64ac5766eafaaada739621616c93a360e354cade848c5c483f58b74f2d7b" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.10.tar.gz", "has_sig": true, "md5_digest": "c743dc01df19734c77742d2470f7b2e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48639, "upload_time": "2008-04-20T12:11:40", "url": "https://files.pythonhosted.org/packages/b7/a8/e136bbb09e2c951530da3cd8d427cacd596685e6f64df9d5208b91a058e4/Products.PlacelessTranslationService-1.4.10.tar.gz" } ], "1.4.11": [ { "comment_text": "", "digests": { "md5": "c19b8d28d6f0328503768e06fc78642f", "sha256": "5798f7ad3bf0a8e8e994542ca70093ac838c4d51632b83031d028cea94a5a7e6" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.11.tar.gz", "has_sig": true, "md5_digest": "c19b8d28d6f0328503768e06fc78642f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48697, "upload_time": "2008-04-28T11:34:01", "url": "https://files.pythonhosted.org/packages/ee/4c/87f58394ed6defd886875477930a08f80410ed7426445382b424256f86c1/Products.PlacelessTranslationService-1.4.11.tar.gz" } ], "1.4.12": [ { "comment_text": "", "digests": { "md5": "ead1a19413677160de08b59a0aada4ea", "sha256": "335b9803eab3c8cea1bfe806e3531fd74492b1e566df0b9a0ff45fa323939198" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.12.tar.gz", "has_sig": true, "md5_digest": "ead1a19413677160de08b59a0aada4ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49010, "upload_time": "2008-06-17T12:55:30", "url": "https://files.pythonhosted.org/packages/6d/3f/c3f3fc73152fffc2bcf443600d3aad2a4353367ca2eddc580c82fad037b4/Products.PlacelessTranslationService-1.4.12.tar.gz" } ], "1.4.13": [ { "comment_text": "", "digests": { "md5": "a3e3c692cc19807e3fac935c8e638fe9", "sha256": "b6b3e9c04805593e2c04fb1e78ea84b0aead0dd49dbfff848abf503fd8502174" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.13.tar.gz", "has_sig": true, "md5_digest": "a3e3c692cc19807e3fac935c8e638fe9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68285, "upload_time": "2008-08-18T20:07:19", "url": "https://files.pythonhosted.org/packages/6e/33/c751c978a180891c061f782341b33622373d7402ac67374edecf51b1c27e/Products.PlacelessTranslationService-1.4.13.tar.gz" } ], "1.4.2b1": [ { "comment_text": "", "digests": { "md5": "0278f710e8ddb79effd382dbb8655917", "sha256": "7233a92f415cdcb58ac785f3f173abe8824c07cfdede79b2843f513330b39962" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.2b1-py2.4.egg", "has_sig": true, "md5_digest": "0278f710e8ddb79effd382dbb8655917", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 69515, "upload_time": "2007-03-05T21:01:15", "url": "https://files.pythonhosted.org/packages/07/a9/1f79f4b5f7c20a206881815cc563b082ef0f2d622f957bcc64a6d954f21f/Products.PlacelessTranslationService-1.4.2b1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "a6282b1a4c3dcbdfea6bff188c67dfc5", "sha256": "253b3f6a2c1d34a091a9958d6f1018147fb04e18c436af489197724a264130c4" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.2b1.tar.gz", "has_sig": true, "md5_digest": "a6282b1a4c3dcbdfea6bff188c67dfc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45765, "upload_time": "2007-03-05T20:59:24", "url": "https://files.pythonhosted.org/packages/26/db/4786dc84f654758577ed0b923a26710792bd80e43d94f79cf10979e86f5e/Products.PlacelessTranslationService-1.4.2b1.tar.gz" } ], "1.4.2b2": [ { "comment_text": "", "digests": { "md5": "ecf55664a5eeb5c3b5df1d2825ab5230", "sha256": "ea185c64ae7390cdece63fede4933d284bd5666a6a24b81ef048be440dac2697" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.2b2-py2.4.egg", "has_sig": true, "md5_digest": "ecf55664a5eeb5c3b5df1d2825ab5230", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 69367, "upload_time": "2007-03-23T01:05:11", "url": "https://files.pythonhosted.org/packages/c8/a5/62032eebbe247f0ed6c03c8b49a755faeaaf2267893d12eb3c8fffb138c0/Products.PlacelessTranslationService-1.4.2b2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "b4c9891aa620c048ffa290dd7ffa380c", "sha256": "79629bd02ddbcb8ad292fcb2a0a8a2f2da8b9cd13ef43e67439c1e366a57cc6f" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.2b2.tar.gz", "has_sig": true, "md5_digest": "b4c9891aa620c048ffa290dd7ffa380c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45705, "upload_time": "2007-03-23T01:05:03", "url": "https://files.pythonhosted.org/packages/6a/e7/c464d1e788dddedadbeaf855390f02e182b30edb69872bc3e60ffd9718a3/Products.PlacelessTranslationService-1.4.2b2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "12c2db62c1ade465c90848d849e8b411", "sha256": "f6788d28b398800308f0b33c90751dcaaaceaa978aa9355cc2875414c4061064" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.3-py2.4.egg", "has_sig": true, "md5_digest": "12c2db62c1ade465c90848d849e8b411", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 66781, "upload_time": "2007-05-01T21:20:05", "url": "https://files.pythonhosted.org/packages/ea/12/7608385d2d59e243eab050287546aaa19cd0e2c1febe63e0b758be825be4/Products.PlacelessTranslationService-1.4.3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "7e55c6cc404ac128b79852e231db7db6", "sha256": "39f9e1d4d32ca4f28a092528d3807495d2a275f1f5fae5eed4cee5f815b1caad" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.3.tar.gz", "has_sig": true, "md5_digest": "7e55c6cc404ac128b79852e231db7db6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44784, "upload_time": "2007-05-01T21:19:56", "url": "https://files.pythonhosted.org/packages/2e/64/ebcb62d4bbb3fb01e97e159266aab082caf5d92e2ce057d5ea63fc9054e0/Products.PlacelessTranslationService-1.4.3.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "61bfef0f0b781187d14dc0c774419b31", "sha256": "6029cb93f0186dfa1bae0d25810c303f75bf5a1963e1049d7e4f8b7a7e34e913" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.4-py2.4.egg", "has_sig": true, "md5_digest": "61bfef0f0b781187d14dc0c774419b31", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 74261, "upload_time": "2007-07-09T22:07:30", "url": "https://files.pythonhosted.org/packages/ce/b4/da2b24eee83bb2f48decd8c09adcf94fcc501f9a1168a5df33dd165e55b7/Products.PlacelessTranslationService-1.4.4-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "46937b302a7a76fcaed37aa65aa59285", "sha256": "bf9ec63319eef8c8b2a55fbe02767c790537060265c93cc8de3e6d72858894f7" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.4.tar.gz", "has_sig": true, "md5_digest": "46937b302a7a76fcaed37aa65aa59285", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45520, "upload_time": "2007-07-09T22:07:23", "url": "https://files.pythonhosted.org/packages/53/34/5b64be68886fcee534792b6a6b86bb525e2d49fc418b87aeb0d6d0179d14/Products.PlacelessTranslationService-1.4.4.tar.gz" } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "27d7cab57b6dc5a2ad934f216be72eee", "sha256": "ca8f3ef765d92b05a143e0beb1a5f20e695934d453459107936cc6ce6e6a0af4" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.5-py2.4.egg", "has_sig": true, "md5_digest": "27d7cab57b6dc5a2ad934f216be72eee", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 74361, "upload_time": "2007-10-07T11:17:52", "url": "https://files.pythonhosted.org/packages/8f/93/4714dc1b43e986fc350947b1d05b1536951c55703ef3921a1723e87f5fb2/Products.PlacelessTranslationService-1.4.5-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "68aadc25226df3885138cb460f9265e4", "sha256": "e42ed6673caa2e452e26867b78c4eb76b5a2a9bcb7c94dfdd05f12ab28a67489" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.5.tar.gz", "has_sig": true, "md5_digest": "68aadc25226df3885138cb460f9265e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45593, "upload_time": "2007-10-07T11:17:45", "url": "https://files.pythonhosted.org/packages/37/ee/00f817eab315de4a9fb502290cd58902634112408e809c763e0e2846ef0e/Products.PlacelessTranslationService-1.4.5.tar.gz" } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "e856668f23b8da07ad6e229d6913a146", "sha256": "dba4fded84c0174aac483f282da343680c832b677e503a379407354dfc67206f" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.6-py2.4.egg", "has_sig": true, "md5_digest": "e856668f23b8da07ad6e229d6913a146", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 76488, "upload_time": "2007-12-02T14:09:52", "url": "https://files.pythonhosted.org/packages/03/66/a9c6ce2ddcdfa0f24da02aaa594f317cbe9bc518bd14f30cd4ce7425b7c4/Products.PlacelessTranslationService-1.4.6-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "ea9d60809e9250022fc810080d070663", "sha256": "66db096ee079916a6f0192b1842849d02f2643a76f6fb619d0394fb373ba0595" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.6.tar.gz", "has_sig": true, "md5_digest": "ea9d60809e9250022fc810080d070663", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46444, "upload_time": "2007-12-02T14:09:45", "url": "https://files.pythonhosted.org/packages/1e/94/6ac45584392a6708cf9366feca5befda831c5f27bc34fb3abfe59c355bfe/Products.PlacelessTranslationService-1.4.6.tar.gz" } ], "1.4.7": [ { "comment_text": "", "digests": { "md5": "015d0eefb704cc9ae7ee8cfe67c1d2f1", "sha256": "f4b64b353e7170375da05a4cea7e0ee38e922236ea7c3e6dc047830d5a2d7feb" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.7-py2.4.egg", "has_sig": true, "md5_digest": "015d0eefb704cc9ae7ee8cfe67c1d2f1", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 76868, "upload_time": "2007-12-24T11:30:19", "url": "https://files.pythonhosted.org/packages/bf/c7/6ef15f59aabef63e5eb49e3013781254ecaa96618a6975c3f926c79396a0/Products.PlacelessTranslationService-1.4.7-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "a4e6da30cfba29f95261df2246ea2479", "sha256": "e37d3cdd87557ea543122d14a614ca120b515c39050775f15adffbb3c004b4ed" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.7.tar.gz", "has_sig": true, "md5_digest": "a4e6da30cfba29f95261df2246ea2479", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46633, "upload_time": "2007-12-24T11:30:13", "url": "https://files.pythonhosted.org/packages/84/b0/66ed2230ba8090931e0d7513a00e68df1ee4be56b25848d0b5c6ba3c1ee6/Products.PlacelessTranslationService-1.4.7.tar.gz" } ], "1.4.8": [ { "comment_text": "", "digests": { "md5": "4a2c0b74a93ddc845abbef6d7f1ba483", "sha256": "299f1b4c3f0a732d276fa58c295430108cc16abb9d4756e653817e84de1f28f9" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.8-py2.4.egg", "has_sig": true, "md5_digest": "4a2c0b74a93ddc845abbef6d7f1ba483", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 77060, "upload_time": "2008-01-05T13:19:30", "url": "https://files.pythonhosted.org/packages/9c/92/2d29dab8df8e1cf8e89913b1232e4e7c480eb6be5e935a8bccea896c9baa/Products.PlacelessTranslationService-1.4.8-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "bac514971700561db54ed0fc45413c16", "sha256": "1b33cef0c6cec73eef51dae445f043df1b734f571a1cce2bcfe2fef4f00977de" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.8.tar.gz", "has_sig": true, "md5_digest": "bac514971700561db54ed0fc45413c16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46784, "upload_time": "2008-01-05T13:19:22", "url": "https://files.pythonhosted.org/packages/6c/ed/9e86ca4cd1f70e239cb4426e14a3f8c34b66c5063cecfc62076538b0c6e2/Products.PlacelessTranslationService-1.4.8.tar.gz" } ], "1.4.9": [ { "comment_text": "", "digests": { "md5": "5726eecccc882cccb4922102fde37108", "sha256": "af8c7487bb2497562ad7b16543f0e7114bc795edfcf874cc759b2214e3077399" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.9-py2.4.egg", "has_sig": true, "md5_digest": "5726eecccc882cccb4922102fde37108", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 80859, "upload_time": "2008-03-26T10:56:46", "url": "https://files.pythonhosted.org/packages/7e/16/518d164142a1c7b2b2c4d14bd151c7c2b0192e844f4c0f1dfa4b31917310/Products.PlacelessTranslationService-1.4.9-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "84f61336d84d6dcc1ac0dc5d922516e7", "sha256": "dd45d1341ecbd266c7c96b79b19697c099ef3fcee58c08671f4008922846924c" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.4.9.tar.gz", "has_sig": true, "md5_digest": "84f61336d84d6dcc1ac0dc5d922516e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47888, "upload_time": "2008-03-26T10:56:41", "url": "https://files.pythonhosted.org/packages/be/81/16325b1fbb85eea7bc3e7d57f04ed2c3e51c24ff0147216f098f696bafee/Products.PlacelessTranslationService-1.4.9.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "a9376de9a2daa2852b1b9627dabc9cbb", "sha256": "05b459e2900032bde9176b401b354aa49dd08d3cfb6d48edf12510c7e5e56f33" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.5.zip", "has_sig": true, "md5_digest": "a9376de9a2daa2852b1b9627dabc9cbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86715, "upload_time": "2009-02-20T18:23:51", "url": "https://files.pythonhosted.org/packages/a8/39/570afe7831daef1d8b37a0a1311007eb11a47a4ee7c5027b092057ae5d95/Products.PlacelessTranslationService-1.5.zip" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "9865061d718a22227b6c2b5885abacb1", "sha256": "bef91bbd99cf09e58976120cf82ecdb0f81db44549cf73d7ca0804c71d544e1d" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.5.1.zip", "has_sig": true, "md5_digest": "9865061d718a22227b6c2b5885abacb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87108, "upload_time": "2009-02-22T20:45:49", "url": "https://files.pythonhosted.org/packages/d1/07/0d67be0c100f660dfca80132f72c90190d9ebf983ad9cddf26d26c770539/Products.PlacelessTranslationService-1.5.1.zip" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "56fecbb8425f4ddac3d7c28bcd4b62f9", "sha256": "17fddc53fe94ee7bf640a9a46d7ca81b9971678a2259575765ed4c48cfd8cfbb" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.5.2.zip", "has_sig": true, "md5_digest": "56fecbb8425f4ddac3d7c28bcd4b62f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87555, "upload_time": "2009-05-13T11:24:44", "url": "https://files.pythonhosted.org/packages/6e/42/c6e0a0d0475a36a5109eb63fb451b8ca0cf1044fe66051f008645853eca3/Products.PlacelessTranslationService-1.5.2.zip" } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "77c72460d29a75ef8fc598645823c092", "sha256": "273d0a91c46a903a28fa12d94dac02091f65291c4a59b1d3f649da0fd1ee9bef" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.5.3.zip", "has_sig": true, "md5_digest": "77c72460d29a75ef8fc598645823c092", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88880, "upload_time": "2009-06-11T15:53:10", "url": "https://files.pythonhosted.org/packages/2a/ce/daafe968a65cfcefc1d7f5ea92bec87b5ae550b1fec4a0228bf3c216b7d3/Products.PlacelessTranslationService-1.5.3.zip" } ], "1.5.4": [ { "comment_text": "", "digests": { "md5": "82d60c5706243159a248a993330680d7", "sha256": "7c2baf174f8b2bfdd8b2c21db928ff99fa3e3485b7f8d93aedd7c7e89e93aaf5" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-1.5.4.zip", "has_sig": false, "md5_digest": "82d60c5706243159a248a993330680d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89290, "upload_time": "2010-03-01T18:27:06", "url": "https://files.pythonhosted.org/packages/d3/a8/2c57ee98149103a92b2517e0d5784498213041392bd71981869fa09ce48b/Products.PlacelessTranslationService-1.5.4.zip" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "02a087968696621af4964f38777b040d", "sha256": "e90b2c9f415a32118028bb2808776c5d35880f983837a76dcec86633dad1bc30" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.zip", "has_sig": false, "md5_digest": "02a087968696621af4964f38777b040d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83760, "upload_time": "2010-07-18T13:50:15", "url": "https://files.pythonhosted.org/packages/be/31/ce6c90d2e51aae1d2ac69ba7a2cc615d1d7ce8908a8962d19f6d91853cb2/Products.PlacelessTranslationService-2.0.zip" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "0ae9e7d7c56e31c870e096abeeff108f", "sha256": "0a6fa265253d6e33529e0560cf4337a78c34c5afc728d1856d83e38743ce3cc6" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.1.zip", "has_sig": false, "md5_digest": "0ae9e7d7c56e31c870e096abeeff108f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84006, "upload_time": "2010-08-04T22:34:14", "url": "https://files.pythonhosted.org/packages/0c/e5/0aea74fba8936ba4a398cf9fa99182015759877d653522d1d9ecc4e9a3c3/Products.PlacelessTranslationService-2.0.1.zip" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "eb957c3fa884a7f6a2c10ee6ec180dac", "sha256": "0acbdcdd1ed8981ea0f7bf2792468323b21e63a3c0e48cd4668710b86213e12f" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.2.zip", "has_sig": false, "md5_digest": "eb957c3fa884a7f6a2c10ee6ec180dac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84127, "upload_time": "2010-10-27T12:53:52", "url": "https://files.pythonhosted.org/packages/f3/5f/c18ccfdba25b8419ac73de7682b738f0148e14e757071f7355ed018a15f5/Products.PlacelessTranslationService-2.0.2.zip" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "a94635eb712563c5a002520713f5d6dc", "sha256": "2df7a531baa55927d70335182c2d6a764a0d38b65facd01d9c475b1d64d087a5" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.3.zip", "has_sig": false, "md5_digest": "a94635eb712563c5a002520713f5d6dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84629, "upload_time": "2011-11-26T14:34:49", "url": "https://files.pythonhosted.org/packages/23/fa/fe62ed323483f1133b349fbc93be8a012750f6a3c84d188df731e54af3f6/Products.PlacelessTranslationService-2.0.3.zip" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "4b5a1ddc66eeaa02d32ee4a685905c10", "sha256": "5fd4b228e7b999647cbe766f6a2c698c703d09feba07dfa3f01a6256cfb34151" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.4.zip", "has_sig": false, "md5_digest": "4b5a1ddc66eeaa02d32ee4a685905c10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89547, "upload_time": "2013-08-13T16:42:11", "url": "https://files.pythonhosted.org/packages/04/2c/a8693d738b6a99ec071aa81b3e66683ae00290f3bb95e56d2f321460af77/Products.PlacelessTranslationService-2.0.4.zip" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "f4bdc3cf5a71cbdf31d4f52542eb0337", "sha256": "acee53890c755ee10ad3f8335a7b1d534960a752f31a9939c41452c71f9c7b7c" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.5.zip", "has_sig": false, "md5_digest": "f4bdc3cf5a71cbdf31d4f52542eb0337", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89727, "upload_time": "2014-04-16T07:14:56", "url": "https://files.pythonhosted.org/packages/3d/7e/19baef4c7e8ddade2dcb46770de7013324f6a4379430650aa937e290fd62/Products.PlacelessTranslationService-2.0.5.zip" } ], "2.0.6": [ { "comment_text": "", "digests": { "md5": "86f3a73a2cd69bb574cd20f3420d33c9", "sha256": "9cfd2efea0756d0c34d0e742a0f4867403d408df884be3ade5b12a2425c72c2d" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.6.tar.gz", "has_sig": false, "md5_digest": "86f3a73a2cd69bb574cd20f3420d33c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68326, "upload_time": "2016-08-11T18:34:16", "url": "https://files.pythonhosted.org/packages/79/34/cd5cba4b273e4e5c65c148ae7a316392a2c3110a0f31acd879f4ca20f6d3/Products.PlacelessTranslationService-2.0.6.tar.gz" } ], "2.0.7": [ { "comment_text": "", "digests": { "md5": "6f7b32fd9b48512a506e81cc997f5daa", "sha256": "226a105b97ee586fe14a0c0193bc38c12ef9464c96c8dda63e6569687fcc5e1c" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.7.tar.gz", "has_sig": false, "md5_digest": "6f7b32fd9b48512a506e81cc997f5daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68633, "upload_time": "2017-02-12T21:07:00", "url": "https://files.pythonhosted.org/packages/20/40/b1e4ab971e489c074c3f3c4095f08278b7db5f1fd1c0d8d06cad1b3f6ab1/Products.PlacelessTranslationService-2.0.7.tar.gz" } ], "2.0a1": [ { "comment_text": "", "digests": { "md5": "82b7ab993326c378c3a3c7d07f8414d6", "sha256": "1fcf008a968f469e90ac98382919278a7670d7d3d4277826c15471bb28a2156e" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0a1.zip", "has_sig": true, "md5_digest": "82b7ab993326c378c3a3c7d07f8414d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80381, "upload_time": "2009-07-08T12:43:18", "url": "https://files.pythonhosted.org/packages/83/43/cb6704d8f3448c7a6aadabbecae4fde975277802b84d5452a0ce107f7c6e/Products.PlacelessTranslationService-2.0a1.zip" } ], "2.0a1-1": [ { "comment_text": "", "digests": { "md5": "146c3b1a4c5b516cedebb3cf20338cc0", "sha256": "a999a39c6d23b12aa5c202fb3959337c756f97260e02838e72479f44f34a92ea" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0a1-1.zip", "has_sig": true, "md5_digest": "146c3b1a4c5b516cedebb3cf20338cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80556, "upload_time": "2009-07-08T14:17:50", "url": "https://files.pythonhosted.org/packages/8f/e1/683ebf9b3d348e75898e036dcffd1027c50b9667af46c9ab9192976a4eb5/Products.PlacelessTranslationService-2.0a1-1.zip" } ], "2.0a2": [ { "comment_text": "", "digests": { "md5": "5ed2f3f59c5d251ac03bc2dd0a958042", "sha256": "b23d54af2c5364c1427ebea58a60601a2793d8e34ca94e5b314da9f6b8078430" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0a2.zip", "has_sig": false, "md5_digest": "5ed2f3f59c5d251ac03bc2dd0a958042", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82969, "upload_time": "2009-11-13T21:30:54", "url": "https://files.pythonhosted.org/packages/b8/91/12fd36172a1d4244fc742544e1afb2f909616470c10a38eb90ccced0b16d/Products.PlacelessTranslationService-2.0a2.zip" } ], "2.0b1": [ { "comment_text": "", "digests": { "md5": "42c6acb8bf465bc5a081e1a5ede3c456", "sha256": "ef4b2f87544f8e05e174acd7a94498971da375ff3fda66f34e5435eb1357afd1" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0b1.zip", "has_sig": false, "md5_digest": "42c6acb8bf465bc5a081e1a5ede3c456", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83782, "upload_time": "2010-01-24T18:17:10", "url": "https://files.pythonhosted.org/packages/8e/52/a432ee0f95f528840b478db125467e9ad882c6a7e9b6c046ecae2cf59cc8/Products.PlacelessTranslationService-2.0b1.zip" } ], "2.0b2": [ { "comment_text": "", "digests": { "md5": "ad29da0e41c0eaa68758959b0800b08f", "sha256": "474cbcb76e3000c5844441488c4c5518c7d73aee483d3392a21e6cf677c47a5d" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0b2.zip", "has_sig": false, "md5_digest": "ad29da0e41c0eaa68758959b0800b08f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84018, "upload_time": "2010-02-04T13:49:25", "url": "https://files.pythonhosted.org/packages/2c/49/4d51ef6b60987268cf369e1b59dd4e0e7cd3c2a1c2e78efeb39b8ae759ca/Products.PlacelessTranslationService-2.0b2.zip" } ], "2.0b4": [ { "comment_text": "", "digests": { "md5": "6cf9b98a91e127a932a45178dbe55482", "sha256": "de1f37d6d4ee6e1f3cd7151cf6d962651727442297671aa437453f922c2b7684" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0b4.zip", "has_sig": false, "md5_digest": "6cf9b98a91e127a932a45178dbe55482", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84272, "upload_time": "2010-03-01T18:39:41", "url": "https://files.pythonhosted.org/packages/5c/f6/89d00dea7e31a1f55877e9e56ef8144d2eb4337b70b584ed3f7dd7b1530f/Products.PlacelessTranslationService-2.0b4.zip" } ], "2.0b5": [ { "comment_text": "", "digests": { "md5": "a0f8300d3441daf1451a192862a6825b", "sha256": "f9ed1d58efcdeb87640a32888d4a5b2e96716aa57df2ed480b4c072aa9f8002e" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0b5.zip", "has_sig": false, "md5_digest": "a0f8300d3441daf1451a192862a6825b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84532, "upload_time": "2010-03-26T21:38:50", "url": "https://files.pythonhosted.org/packages/27/c9/9bb389de7dd7b639aa382bac5b750affdf0119dc95e77573d444760ee662/Products.PlacelessTranslationService-2.0b5.zip" } ], "2.0b6": [ { "comment_text": "", "digests": { "md5": "6acb3a34afc0bf793c091f03956dec9d", "sha256": "c17309d872a5e3d41a69a8d3160d8cac2cc9fd6441609199c2d3299570e89879" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0b6.zip", "has_sig": false, "md5_digest": "6acb3a34afc0bf793c091f03956dec9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83880, "upload_time": "2010-06-13T15:30:38", "url": "https://files.pythonhosted.org/packages/68/ff/9cce3bb4edabb9797a4a67f52f23f01039a1590ee64b19761570e9c40896/Products.PlacelessTranslationService-2.0b6.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f7b32fd9b48512a506e81cc997f5daa", "sha256": "226a105b97ee586fe14a0c0193bc38c12ef9464c96c8dda63e6569687fcc5e1c" }, "downloads": -1, "filename": "Products.PlacelessTranslationService-2.0.7.tar.gz", "has_sig": false, "md5_digest": "6f7b32fd9b48512a506e81cc997f5daa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68633, "upload_time": "2017-02-12T21:07:00", "url": "https://files.pythonhosted.org/packages/20/40/b1e4ab971e489c074c3f3c4095f08278b7db5f1fd1c0d8d06cad1b3f6ab1/Products.PlacelessTranslationService-2.0.7.tar.gz" } ] }