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>
Release files for bottle-i18n 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bottle-i18n-0.1.5.tar.gz | 3.3 kB | Details |
Release files / bottle-i18n-0.1.5.tar.gz
| Download URL | bottle-i18n-0.1.5.tar.gz |
|---|---|
| Size | 3.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f9d343ae30b18a9676cbe612a8be2e99d4741aa4aa6a1b875ea232ba94c7678
|
|
BLAKE2b-256 checksum How to use checksums |
eeb54de84a2039bcdceff803fae6ba306bd2713191a7d26f01b4affc55f67049
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |