{ "info": { "author": "Daniel Perez Rada", "author_email": "dperezrada at gmail", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware" ], "description": "# WSGI Language Middleware\n\n## Why?\n\nThis Wsgi middleware, takes the language from urls similiar to \"/es/documents\" or from the Accept language header.\n\n## Instalation\n\n### Prerequisites:\n\n* Python >= 2.6\n* Ludibrio (for the tests)\n\n### Install\n\n\tpython setup.py install\n\n## Test\n\n\tpython setup.py -q test\n\n## Usage\n### Basic\n from language_middleware import LanguageMiddleware\n application = my_wsgi_app()\n application = LanguageMiddleware(application, default_language = 'es', valid_languages = ('en', 'es', 'fr'))\n\nCall to the url **/fr/documents**, and my_wsgi_app will receive:\n\n environ['HTTP_ACTIVE_LANGUAGE'] = 'fr'\n\nCall to the url **/documents/1**, and my_wsgi_app will receive:\n\n environ['HTTP_ACTIVE_LANGUAGE'] = 'es'\n\n### Clean URL\nThe clean_url option, removes the language info from the URL.\n\n from language_middleware import LanguageMiddleware\n application = my_wsgi_app()\n application = LanguageMiddleware(application, default_language = 'es', valid_languages = ('en', 'es', 'fr'), clean_url = True)\n\nCall to the url **/fr/documents**, and my_wsgi_app will receive:\n\n environ['PATH_INFO'] = '/documents'\n environ['HTTP_ACTIVE_LANGUAGE'] = 'fr'\n\nCall to the url **/documents/1**, and my_wsgi_app will receive:\n\n environ['PATH_INFO'] = '/documents/1'\n environ['HTTP_ACTIVE_LANGUAGE'] = 'es'\n\n### With locale\nIf you have the following locale directory\n\n /home/user/locale/es/LC_MESSAGES/hello.po\n /home/user/locale/es/LC_MESSAGES/hello.mo\n /home/user/locale/en/LC_MESSAGES/hello.po\n /home/user/locale/en/LC_MESSAGES/hello.mo\n\nYou can set an option to active the language, check the test from more info:+\n\nIMPORTANT: **Default language locale path must exists, if not last successfully used locale will be used (if any)**\n\n from language_middleware import LanguageMiddleware\n application = my_wsgi_app()\n application = LanguageMiddleware(\n application,\n default_language = 'es',\n valid_languages = ('en', 'es', 'fr')\n clean_url = True,\n locale_path = '/home/user/locale',\n locale_name = 'hello'\n )\n\n### Set Script Name\nStarting with wsgi-language-middleware 0.4 you can pass **set_script_name** to **LanguageMiddleware**, it will set the **SCRIPT_NAME** to a slash followed by the chosen language (e.g. **/es**)\n\nThis can help you if your application uses url-creation helpers (e.g. pylons **h.url()**), which do rely on the script name and should automatically prepend links with the given locale.\n\n### Switching off global gettext translation installation\nIf you want to take care of the locale loading yourself (e.g. by inspecting environ['HTTP_ACTIVE_LANGUAGE'] later on) or do not use gettext, you can suppress the installation of the gettext translation by using **do_gettext_install=False** in **LanguageMiddleware()** .", "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/dperezrada/wsgi-language-middleware", "keywords": "wsgi middleware language i18n translation", "license": "GNU Public License v3.0", "maintainer": null, "maintainer_email": null, "name": "language_middleware", "package_url": "https://pypi.org/project/language_middleware/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/language_middleware/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/dperezrada/wsgi-language-middleware" }, "release_url": "https://pypi.org/project/language_middleware/0.6/", "requires_dist": null, "requires_python": null, "summary": "This Wsgi middleware, takes the language from urls similiar to '/es/documents' or from the Accept language header.", "version": "0.6" }, "last_serial": 1934895, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "5687386f9badbf877f30555fda22c1b0", "sha256": "27adf49a9ce88b9c1f382b2c79135413db898adb22c7354c30e1012c6025662c" }, "downloads": -1, "filename": "language_middleware-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5687386f9badbf877f30555fda22c1b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3063, "upload_time": "2011-07-16T17:41:58", "url": "https://files.pythonhosted.org/packages/ac/16/b7c4f1edba920c80c2695f1d53c248f6b6c359b0a19c6121897b90bccfc9/language_middleware-0.2.0.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "e4a14f5e46e79e8ba3ee1b1a7d9a7e4f", "sha256": "dfba0f282b378c096c36da9cc8f92298672250519b1eed704476b15b6c53a027" }, "downloads": -1, "filename": "language_middleware-0.3.tar.gz", "has_sig": false, "md5_digest": "e4a14f5e46e79e8ba3ee1b1a7d9a7e4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2866, "upload_time": "2014-07-28T19:22:36", "url": "https://files.pythonhosted.org/packages/48/db/8ddaa7ef1549104990cbdbe2d591c736a723ebbdfe67a670f5fee975df32/language_middleware-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "deb77fd569bacb92e6dadb07c83cf506", "sha256": "6a971a089211072481acc637b2d183d60d6a5ce17775cdf01d946daaf6653047" }, "downloads": -1, "filename": "language_middleware-0.4.tar.gz", "has_sig": false, "md5_digest": "deb77fd569bacb92e6dadb07c83cf506", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3104, "upload_time": "2015-07-08T15:25:09", "url": "https://files.pythonhosted.org/packages/9d/7d/5e63efe335b16f25e91f0313f8fed1ff68f9f987c018dbc3c96b6866fed1/language_middleware-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ac4589fd6043c82b36c429e1164b2370", "sha256": "025489db69e3e9c7493de3ce75cef2798291a4841a494ca67fc36920d1088d39" }, "downloads": -1, "filename": "language_middleware-0.5.tar.gz", "has_sig": false, "md5_digest": "ac4589fd6043c82b36c429e1164b2370", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3255, "upload_time": "2015-07-09T23:43:46", "url": "https://files.pythonhosted.org/packages/26/a2/82aaa7bac8ba1266d670096dd026b3492979e31f09332f1fb300b0e5e44a/language_middleware-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "7c3b4be759a3b79b3204b538c0851609", "sha256": "64da8a9761af67c479b27159a7a48a56bb3e9817f26afd4a2e3bca147037838e" }, "downloads": -1, "filename": "language_middleware-0.6.tar.gz", "has_sig": false, "md5_digest": "7c3b4be759a3b79b3204b538c0851609", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3136, "upload_time": "2016-02-02T01:57:57", "url": "https://files.pythonhosted.org/packages/7c/da/ec806ccc14255de4f0a5564775f54f1d1fa9bf8377c651922d8e3d8aa531/language_middleware-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7c3b4be759a3b79b3204b538c0851609", "sha256": "64da8a9761af67c479b27159a7a48a56bb3e9817f26afd4a2e3bca147037838e" }, "downloads": -1, "filename": "language_middleware-0.6.tar.gz", "has_sig": false, "md5_digest": "7c3b4be759a3b79b3204b538c0851609", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3136, "upload_time": "2016-02-02T01:57:57", "url": "https://files.pythonhosted.org/packages/7c/da/ec806ccc14255de4f0a5564775f54f1d1fa9bf8377c651922d8e3d8aa531/language_middleware-0.6.tar.gz" } ] }