iOS 8有西班牙语的两种语言选择。 Español和Español(墨西哥)。
如果我切换到Español,并且浏览器发送HTTP_ACCEPT_LANGUAGE: es-es
一切正常。
将iPad切换为Español(墨西哥)时,本地化默认为英语。查看标题时,我可以看到HTTP_ACCEPT_LANGUAGE: es-xl
。
我尝试在我的语言环境目录中添加es_XL和ex_MX转换文件,但没有运气。
任何帮助都将不胜感激。
答案 0 :(得分: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
答案 1 :(得分:0)
另一个适合我的解决方案是添加缺少的语言代码es_XL,假设在您的设备设置为语言时调用它:Español(墨西哥)。
在 /Zend/Locale.php 文件中添加区域设置日期:
$_localeData = array(
'es_XL' => true, ...
然后,在:
中分配区域$_territoryData = array(
'XL' => 'es_XL', ...
最后,在 / Zend / Locale / Data / 中,您需要复制文件es_MX.xml并将其重命名为es_XL.xml
问题消失了!