{ "info": { "author": "Andreas Kaiser", "author_email": "disko@binary-punks.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Pylons", "Framework :: Pyramid", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: User Interfaces" ], "description": "==================\nkotti_multilingual\n==================\n\nMultilingual Sites with Kotti_.\n\nKotti's data model includes a ``language`` attribute on the ``Content`` class,\nfrom which all content types inherit. However, this attribute is neither\nexposed by Kotti's UI, nor used in any other way. ``kotti_multilingual``\nprovides a generic approach to build multilingual sites.\n\nWork in Progress\n================\n\n``kotti_multilingual`` is still in an early stage of development. It is\nneither feature complete nor can be considered API stable. Things will change!\n\nFeatures\n========\n\nThe package contains a single content type ``LanguageRoot`` which is\nsupposed to be the container of all content in a specific language. All\ncontent that is created in (or moved into) such a subtree will be automatically\ntagged with the language of the root. This is done by subscribing to\nKotti's ``ObjectInsert`` and ``ObjectUpdate`` events.\n\nYou can place ``LanguageRoot`` instances wherever you want in your content\ntree, but it is considered best practice to have a tree structure like this::\n\n - / Document language neutral\n - /en LanguageRoot English\n - /de LanguageRoot German\n - /nl LanguageRoot Dutch\n - /images Document language neutral\n\nSetup\n=====\n\nTo activate the ``kotti_multilingual`` add-on in your Kotti site, you need to\nadd an entry to the ``kotti.configurators`` setting in your Paste Deploy config.\nIf you don't have a ``kotti.configurators`` option, add one. The added entry\nshould look like this::\n\n kotti.configurators = kotti_multilingual.kotti_configure\n\nYou can register an optional ``kotti_multilingual.blacklist`` with the list of the\ntype names not handled by kotti_multilingual. \n\n.. _Kotti: http://pypi.python.org/pypi/Kotti\n\nTests\n=====\n\nThe test setup requires additional steps::\n\n $ virtualenv --no-site-packages .\n $ source bin/activate\n $ pip install -r requirements.txt\n $ python setup.py develop\n $ python setup.py dev\n\nHow to launch tests::\n\n $ py.test\n\n\n\nChangelog\n=========\n\n0.2a3 (2015-04-27)\n------------------\n\n- Fixed 0.2a2 version (still wrong MANIFEST.in)\n\n0.2a2 (2015-04-27)\n------------------\n\n- Fixed MANIFEST.in file\n\n0.2a1 (2015-04-27)\n------------------\n\n- Maintain translation links between content items, with translation source\n and targets.\n\n- Add a translation dropdown UI for adding a translation of an item.\n\n- Added ``widget.i10n_widget_factory`` deferred widget.\n Turns field into readonly mode if the context is a translation.\n\n This deferred widget is also compatible with add forms, you should bind an ``addform``\n property to ``True`` and the widget will be rendered as usual in edit mode.\n You can do that adding a ``get_bind_data`` method on your add form.\n\n- Added a ``kotti_multilingual.blacklist`` setting with a list of type names\n not translatable\n\n- Changed policy for translate action. Now the translated document is automatically\n filled with the parent translation (enhanced usability since we don't have the screen\n splitted in two parts like LinguaPlone). This is possible thanks to a change in \n sqla.py since we don't set language independent attributes on translated documents\n\n- Fixed translation of objects with not nullable fields\n\n- Added support for sqlalchemy's association_proxy\n\n- Fixed intermittent problem with get_source (integrity error)\n\n0.1a3 - 2013-05-08\n------------------\n\n- Rename ``LanguageSection`` to ``LanguageRoot`` to better fit Kotti's\n ``INavigationRoot``. This implies a change in the DB schema for which no\n automatic schema migration is available; you'll have to rename the table\n ``language_sections`` to ``language_roots`` yourself.\n\n- Add some tests.\n\n0.1a2 - 2013-05-07\n------------------\n\n- Removed a lot of code that's now replaced by Kotti's ``INavigationRoot`` /\n ``TemplateAPI.navigation_root``. This greatly simplifies the setup of\n ``kotti_multilingua``.\n\n- Depend on Kotti>=0.9a3dev (needed for the above).\n\n0.1a1 - 2013-05-06\n------------------\n\n- Initial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Kotti/kotti_multilingual", "keywords": "kotti add-on", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "kotti_multilingual", "package_url": "https://pypi.org/project/kotti_multilingual/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/kotti_multilingual/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Kotti/kotti_multilingual" }, "release_url": "https://pypi.org/project/kotti_multilingual/0.2a3/", "requires_dist": null, "requires_python": null, "summary": "Multilangual sites with Kotti", "version": "0.2a3" }, "last_serial": 1522689, "releases": { "0.1a1": [ { "comment_text": "", "digests": { "md5": "6a3045f621ad9fcedd1a5d46a265ccc6", "sha256": "2aaca912d8b224d94c0754a5e797c2aeb684a5553f08f08a097632b00ec2dbc5" }, "downloads": -1, "filename": "kotti_multilingual-0.1a1.tar.gz", "has_sig": false, "md5_digest": "6a3045f621ad9fcedd1a5d46a265ccc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8844, "upload_time": "2013-05-06T13:31:28", "url": "https://files.pythonhosted.org/packages/c1/c7/0315a4109e62143a5cd0a7f902d1d32f6edf4a4174fd2a4acc788abd35e6/kotti_multilingual-0.1a1.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "16a4573176f71097ff62e6020e9e861d", "sha256": "c8f4a0380b4ad326ca848baac5728659ef230e9b082d56450759fea2d1314dd3" }, "downloads": -1, "filename": "kotti_multilingual-0.1a2.tar.gz", "has_sig": false, "md5_digest": "16a4573176f71097ff62e6020e9e861d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8436, "upload_time": "2013-05-07T16:09:11", "url": "https://files.pythonhosted.org/packages/b6/57/a8b4431bf87443f8d580ffd03f0fa5071208a86a11127a29a5a09e74a899/kotti_multilingual-0.1a2.tar.gz" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "3d467cc818c0d3a7a81b05dda9f779be", "sha256": "7a71b9736f9137f53388cf8f9acb1fa1cbff469a209037de734bd0d2da254c60" }, "downloads": -1, "filename": "kotti_multilingual-0.1a3.tar.gz", "has_sig": false, "md5_digest": "3d467cc818c0d3a7a81b05dda9f779be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8945, "upload_time": "2013-05-08T10:02:15", "url": "https://files.pythonhosted.org/packages/a7/89/f8b5626cc99ea8b7f65746c28e14214d9042c3d46190df9079e08c167318/kotti_multilingual-0.1a3.tar.gz" } ], "0.2a1": [ { "comment_text": "", "digests": { "md5": "ccb0c34d5f2899441f9cd67b01453e36", "sha256": "ed12b55eb2ff4630e07c2884b088d89ed9331a4874affce828322a93a3c54403" }, "downloads": -1, "filename": "kotti_multilingual-0.2a1.tar.gz", "has_sig": false, "md5_digest": "ccb0c34d5f2899441f9cd67b01453e36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15221, "upload_time": "2015-04-27T09:40:13", "url": "https://files.pythonhosted.org/packages/b5/07/8800f379bf38000e4f8f95152d0d604ee7d434e085e84d165d2002132d0e/kotti_multilingual-0.2a1.tar.gz" } ], "0.2a2": [ { "comment_text": "", "digests": { "md5": "423d707751b1db1ea5958d610d61207c", "sha256": "fbb8b6dfc04b7a94b93507e74cef8f31ef7731cb51bb662d26f0c2244910dc47" }, "downloads": -1, "filename": "kotti_multilingual-0.2a2.tar.gz", "has_sig": false, "md5_digest": "423d707751b1db1ea5958d610d61207c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15232, "upload_time": "2015-04-27T09:47:51", "url": "https://files.pythonhosted.org/packages/08/3d/49c71418c278db1fa221de0459ae89b98e32b2f51b45654766d12deaf944/kotti_multilingual-0.2a2.tar.gz" } ], "0.2a3": [ { "comment_text": "", "digests": { "md5": "1c29e6d7339f63769d1e3d2047091794", "sha256": "5731bcf33569b81c6f2aa0381dbb7a53455272cecf856b9d7b0a70cc07d73162" }, "downloads": -1, "filename": "kotti_multilingual-0.2a3.tar.gz", "has_sig": false, "md5_digest": "1c29e6d7339f63769d1e3d2047091794", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16098, "upload_time": "2015-04-27T13:08:59", "url": "https://files.pythonhosted.org/packages/12/78/adbb724977a3eed84d894511ca1ba8da202d13cb25900bbbb33a41f6d7cd/kotti_multilingual-0.2a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1c29e6d7339f63769d1e3d2047091794", "sha256": "5731bcf33569b81c6f2aa0381dbb7a53455272cecf856b9d7b0a70cc07d73162" }, "downloads": -1, "filename": "kotti_multilingual-0.2a3.tar.gz", "has_sig": false, "md5_digest": "1c29e6d7339f63769d1e3d2047091794", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16098, "upload_time": "2015-04-27T13:08:59", "url": "https://files.pythonhosted.org/packages/12/78/adbb724977a3eed84d894511ca1ba8da202d13cb25900bbbb33a41f6d7cd/kotti_multilingual-0.2a3.tar.gz" } ] }