1
我們需要一個國際化的API,在其查詢中支持許多語言。使用「Accept-Languages」標題密鑰的最佳方式是什麼?我正在考慮爲每種語言設置一個集合,並在相應的集合上進行透明查詢。或者你認爲在uri中對語言進行硬編碼更好嗎?透明的國際化API與Python EVE
我們需要一個國際化的API,在其查詢中支持許多語言。使用「Accept-Languages」標題密鑰的最佳方式是什麼?我正在考慮爲每種語言設置一個集合,並在相應的集合上進行透明查詢。或者你認爲在uri中對語言進行硬編碼更好嗎?透明的國際化API與Python EVE
你可以試試這個瓶子片段:http://flask.pocoo.org/snippets/128/ 無論如何,使用Accept-Language頭文件對此並不好,並且更好地使用cookie,但是如果cookie不存在,您可以使該頭文件的信息備用可以使用flask.request.headers.get('Accept-Language')
,但請記住,此標頭可能不包含單一語言,但例如如下所示:da, en-gb;q=0.8, en;q=0.7
您可以使用before_request修飾符在請求之前識別語言。像這樣的東西:
@app.before_request
def before_request():
flask.request.lang = flask.request.cookies.get('lang')
if lang is None:
flask.request.lang = flask.request.headers.get('Accept-Language', 'en').split(' ')[0]
而且你可以在任何地方使用flask.request.lang
你需要這個。
謝謝,尤金。爲什麼它是一個餅乾更好?我知道如何檢測語言,但問題是我認爲我們需要不同的集合(一種用於語言,因此我可以使用文本索引),所以如果客戶端接受'en',則操作必須轉到英文集合,if if它接受'es',它必須以西班牙文集合爲例。如果沒有,客戶必須明確地處理英文,西班牙文和法文。 –