即使使用LOCALE_PATHS,Django Translation也无法正常工作

时间:2015-09-04 16:32:47

标签: python django internationalization translation

所以我使用django 1.8创建了一个必须翻译成葡萄牙语的新网站。

因此,为了使用django自己的工具,我添加到了我的中间件:

'django.middleware.locale.LocaleMiddleware',

我也加入了我的context_processors:

'django.template.context_processors.i18n',

然后我配置我的语言设置:

USE_I18N = True
gettext = lambda s: s
LANGUAGE_CODE = 'en'
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
print LOCALE_PATHS
LANGUAGES = (
    ('pt-br', gettext('Portuguese')),
    ('en', gettext('English')),
)

TIME_ZONE = 'America/Sao_Paulo'
USE_L10N = True
USE_TZ = True

我也在我的文档顶部导入:

from django.utils.translation import ugettext as _

然后我添加了标签:

{% trans "text" %}

在我的模板上附带相应的文字。之后我跑了:

python manage.py makemessages -l pt-br

然后我翻译了我的.po文件中的所有内容,最后我编译了它:

python manage.py compilemessages

但是当我运行我的网站时,它仍然是英文版。 我的浏览器在pt-br上,我也有一个工作示例,但这个特定的网站没有被翻译。 我确实添加了i18n网址。

有人可以帮帮我吗?我错过了什么?

1 个答案:

答案 0 :(得分:3)

所以显然Django必须将locale文件夹视为pt_br而不是pt-br,但设置必须与pt-br一致。那对我有用的诀窍。