iOS 8有两种西班牙语语言可供选择。西班牙和西班牙(墨西哥)。
如果我切换到Español,并且浏览器发送HTTP_ACCEPT_LANGUAGE: es-es
,则一切正常。
当我的iPad切换到Español(墨西哥)本地化默认为英语。当看标题时,我可以看到HTTP_ACCEPT_LANGUAGE: es-xl
。
我尝试在我的区域设置目录中添加es_XL和ex_MX翻译文件,但没有成功。
如有任何帮助,我们将不胜感激。
所以问题最终是django和python都不支持语言代码es-xl。iOS在将系统语言设置为Español(墨西哥)时发送的语言代码。因此,我的解决方案是创建中间件,当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
另一个对我来说非常有效的解决方案是添加缺失的语言代码es_XL,假设它是在您的设备设置为语言时调用的:Español(墨西哥)。
在/Zend/Locae.php文件中,添加区域设置日期:
$_localeData = array(
'es_XL' => true, ...
然后,在中分配区域
$_territoryData = array(
'XL' => 'es_XL', ...
最后,在/Zend/Locale/Data/中,您需要复制文件es_MX.xml并将其重命名为es_XL.xml
问题消失了!