This repository has been archived by the owner on Jun 6, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
60 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
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')) | ||
__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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters