Django:混合翻译问题

时间:2013-02-20 11:02:42

标签: django internationalization http-headers

我将我的应用程序配置为支持2种语言:英语和意大利语。 在我的settings.py中,我指定了与i18n相关的内容如下:

USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
    ('en', 'ENGLISH'),
    ('it', 'ITALIAN'),
)

然后我为每个应用程序创建了一个“locale”文件夹,并使用以下命令生成.po / .mo文件:

django-admin.py makemessages -l en --no-location --no-obsolete
django-admin.py makemessages -l it --no-location --no-obsolete
django-admin.py compilemessages

一切正常,但我有一个模板,其中两个翻译混淆(即:部分文本是意大利语,其他是英语)。我认为问题与我的浏览器(Chrome)如何发送语言标题(目前:Accept-Language: it,en-US;q=0.8,en;q=0.6)有关。 我的机器上的其他浏览器如Firefox正在发送:Accept-Language: en-US,en;q=0.5 好吧,这可能是与“奇怪的浏览器配置”相关的个人问题,但是不能接受这样的结果......我怎样才能避免这个问题并且有一个连贯的翻译?

1 个答案:

答案 0 :(得分:0)

是否有可能是某些内容来自数据库,因此未提供翻译?

另一方面,在.po文件或.html文件中渲染多行字段可能会出现问题(确保所有内容都被{%trans ...%}包裹。

最后,如果你在Chrome浏览器中,当你在意大利网站时,你会要求提供英文翻译,它是否为你提供所有英文内容和反面文章?