簡體   English   中英

從HTML標頭中獲取Django中正確的語言代碼

[英]Get correct language code in Django from HTML header

我正在嘗試從HTML頭ACCEPT-LANGUAGE標頭中獲得語言選擇。 我已經為此使用parse_accept_lang_header()模塊。 但是它以小寫字母的形式返回了我所有的語言代碼。 像這樣[('pt-pt', 1.0), ('pt-br', 0.8), ('en-us', 0.5), ('en', 0.3)]但我想成為第一個小字符,大寫校正器的第二部分。 像這樣[('pt-PT', 1.0), ('pt-BR', 0.8), ('en-US', 0.5), ('en', 0.3)] 那我該怎么辦呢?

我的代碼如下:

from django.utils.translation.trans_real import parse_accept_lang_header
header_locales =parse_accept_lang_header(
                                  request.META.get('HTTP_ACCEPT_LANGUAGE', None))

header_locales以小字符header_locales返回我的語言環境名稱。

django似乎為您提供了小寫的語言代碼(thx dgel)。 您是否需要大寫版本的原因? 我猜您總是可以自己拆分代碼並將其大寫。 或者,您可以復制parse_accept_lang_header代碼的功能而無需使用小寫字母。 我不確定用例是什么。

如果您需要查詢數據庫,則可以始終使用類似於以下內容(從此處原始文檔 ):

MyClass.objects.filter(name__iexact=my_parameter)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM