3
我開始使用燒瓶幾個星期,並試圖實現i18n和l10n到我的燒瓶應用程序。 這是我真正想要實現的行爲:燒瓶 - 我怎麼總是在url中包含語言代碼
用戶輸入
website.com
將被重定向到website.com/en/
或website.com/fr/
取決於其設置的接受語言頭或默認語言。
這是我目前實施:
# main_blueprint.py
mainBlueprint = Blueprint('main', __name__)
@mainBlueprint.route('/')
def index(lang):
return "lang: %" % lang
# application.py
app.register_blueprint(mainBlueprint, url_defaults={'lang': 'en'})
app.register_blueprint(mainBlueprint, url_prefix='/<lang>')
這樣一來,當我輸入website.com
或website.com/en/
將只website.com
迴應。除非我輸入website.com/fr
,否則會回覆/fr/
。但是,即使它是默認選項,我也希望始終包含/en/
。
我曾嘗試在瓶DOC引導URL Processors pattern,但是當我輸入website.com
它404 error
迴應。只有當我將language_code
包含到url中時,它才能正常工作 - 這不是我想要的行爲。
預先感謝您!
可能重複http://stackoverflow.com/questions/14686087/python-flask-web-application-with-multilanguages-support - by-host-and-prefix) – tbicr 2014-09-21 20:21:15
@tbicr:我也讀過你的問題和答案,並嘗試過所有的答案。問題是我總是在URL中包含'/ en /'或'/ fr /'。目前,我只能包含其他語言代碼,但不包括'en' :( – 2014-09-22 03:10:42
)看起來你只需要'app.register_blueprint(mainBlueprint,url_defaults ='/')'。如果需要,你總是可以用默認藍圖重定向到en,例如,在'before_request'中爲你的默認藍圖。 –
tbicr
2014-09-22 06:46:09