2015-02-24 42 views
1

iOS 8爲西班牙語提供兩種語言選擇。 Español和Español(墨西哥)。使用es-xl獲得django本地化(拉丁美洲西班牙語)

如果我切換到Español和瀏覽器發送HTTP_ACCEPT_LANGUAGE: es-es一切正常。

將我的iPad切換到Español(墨西哥)本地化默認返回英文。在看標題時,我可以看到HTTP_ACCEPT_LANGUAGE: es-xl

我已經嘗試在我的語言環境目錄中添加es_XL和ex_MX翻譯文件,但沒有運氣。

任何幫助,將不勝感激。

+0

如果您使用espanol本地化電腦瀏覽您的網站,您的網站是否能正常工作? – Tarik 2015-02-24 05:04:10

+0

如果我在我的MacBook上使用Chrome並將語言更改爲西班牙語,它可以正常工作並翻譯該文件。 – Noah 2015-02-24 05:27:42

+0

這表明問題與iPad有關。您可以使用Wireshark捕獲所有回傳和返回的數據,並確定發現。 – Tarik 2015-02-24 07:44:16

回答

1

所以這個問題最終導致django或python都不支持語言代碼es-xl。將系統語言設置爲Español(墨西哥)時iOS發送的語言代碼。所以我的解決方案是創建中間件,當es-xl出現時,我激活es-mx作爲當前的語言。

class LanguageCodeVerification(object):        
    def process_request(self, request):        
     #iOS sends unsupported language code es-xl     
     if request.META.get('HTTP_ACCEPT_LANGUAGE','')[0:5] == 'es-xl': 
      user_language = 'es-mx'          
      translation.activate(user_language)      
      request.session['django_language'] = user_language  
0

另一種解決方案,完美地工作對我來說是添加缺少的語言代碼es_XL,假設當你的設備設置爲語言它被稱爲:西班牙語(墨西哥)。

/Zend/Locale.php文件添加的語言環境日期:

$_localeData = array(
'es_XL' => true, ... 

然後,在分配領域:

$_territoryData = array(
    'XL' => 'es_XL', ... 

最後,在/Zend公司/地點/數據/您需要複製文件es_MX.xml並將其重命名爲es_XL.xml

問題消失了!

相關問題