I18N integration for Bottle.
Project description
The bottle-i18n plugin integrates the multilingual internationalization services gettext from Python with your Bottle application.
Usage Example:
#!/usr/bin/python import bottle, os from bottle.ext.i18n import I18NPlugin, I18NMiddleware, i18n_defaults, i18n_view, i18n_template i18n_defaults(bottle.SimpleTemplate, bottle.request) def get(): app = bottle.Bottle() @app.route('/') def index(): return bottle.template("<b>{{_('hello')}} I18N<b/>?") @app.route('/world') def variable(): return bottle.template("<b>{{_('hello %(variable)s', {'variable': world})}}<b/>?", {'world': app._('world')}) @app.route('/view') @i18n_view('hello', function="i18n_view") def tmpl_app_hello(): return {} @app.route('/tmpl') def tmpl_app_hello(): return i18n_template('hello', function="i18n_template") lang_app = bottle.Bottle() @lang_app.route('/') def sub(): return bottle.template("current language is {{lang()}}") app.mount(app = lang_app, prefix = '/lang', skip = None) return I18NMiddleware(app, I18NPlugin(domain='messages', default='en', locale_dir='./locale')) if __name__ == '__main__': bottle.run(app=get(), host='localhost', port='8000', quiet=False, reloader=True, debug=True)
Running the above example it automatically loads the default language en if in the URL the langauge code or the HTTP_ACCEPT_LANGUAGE sent from the browser is missing.
The URL structure is as follow
http://localhost:8000/<language-code>/<route>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bottle-i18n-0.1.5.tar.gz
(3.3 kB
view details)
File details
Details for the file bottle-i18n-0.1.5.tar.gz
.
File metadata
- Download URL: bottle-i18n-0.1.5.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f9d343ae30b18a9676cbe612a8be2e99d4741aa4aa6a1b875ea232ba94c7678 |
|
MD5 | f0942f05fec0f4a3c45765623863cb68 |
|
BLAKE2b-256 | eeb54de84a2039bcdceff803fae6ba306bd2713191a7d26f01b4affc55f67049 |