0

我将我的应用程序配置为支持 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 好的,这可能是与“奇怪的浏览器配置”有关的个人问题,但出现这样的结果是不可接受的……我怎样才能避免这个问题并获得连贯的翻译?

4

1 回答 1

0

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

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

最后,如果在 Chrome 中您在意大利网站上要求翻译英文,它是否会为您提供所有英文内容,反之亦然?

于 2013-02-20T14:38:23.877 回答