language_middleware 0.6

Creator: bradpython12

Last updated:

Add to Cart

Description:

language middleware 0.6

# WSGI Language Middleware## Why?This Wsgi middleware, takes the language from urls similiar to "/es/documents" or from the Accept language header.## Instalation### Prerequisites:* Python >= 2.6* Ludibrio (for the tests)### Install python setup.py install## Test python setup.py -q test## Usage### Basic from language_middleware import LanguageMiddleware application = my_wsgi_app() application = LanguageMiddleware(application, default_language = 'es', valid_languages = ('en', 'es', 'fr'))Call to the url **/fr/documents**, and my_wsgi_app will receive: environ['HTTP_ACTIVE_LANGUAGE'] = 'fr'Call to the url **/documents/1**, and my_wsgi_app will receive: environ['HTTP_ACTIVE_LANGUAGE'] = 'es'### Clean URLThe clean_url option, removes the language info from the URL. from language_middleware import LanguageMiddleware application = my_wsgi_app() application = LanguageMiddleware(application, default_language = 'es', valid_languages = ('en', 'es', 'fr'), clean_url = True)Call to the url **/fr/documents**, and my_wsgi_app will receive: environ['PATH_INFO'] = '/documents' environ['HTTP_ACTIVE_LANGUAGE'] = 'fr'Call to the url **/documents/1**, and my_wsgi_app will receive: environ['PATH_INFO'] = '/documents/1' environ['HTTP_ACTIVE_LANGUAGE'] = 'es'### With localeIf you have the following locale directory /home/user/locale/es/LC_MESSAGES/hello.po /home/user/locale/es/LC_MESSAGES/hello.mo /home/user/locale/en/LC_MESSAGES/hello.po /home/user/locale/en/LC_MESSAGES/hello.moYou can set an option to active the language, check the test from more info:+IMPORTANT: **Default language locale path must exists, if not last successfully used locale will be used (if any)** from language_middleware import LanguageMiddleware application = my_wsgi_app() application = LanguageMiddleware( application, default_language = 'es', valid_languages = ('en', 'es', 'fr') clean_url = True, locale_path = '/home/user/locale', locale_name = 'hello' )### Set Script NameStarting 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**)This 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.### Switching off global gettext translation installationIf 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()** .

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.