Django本地化不起作用“DjangoCMS”

时间:2015-12-04 11:10:40

标签: django-cms

正在开发DjangoCMS项目。我已经开发了一些Django应用程序和插件。

基本上我的项目有两种语言EN,IT及其工作正常的DjangoCMS级别。但我想使用国际化和我的Django应用程序的本地化和一些静态表单标题。所以我使用了Django默认的国际化和本地化。

通过这个django在我在本地路径中创建了一个.po和.mo文件,我在settings.py中定义。 但.po msgid "BlogCategory" msgstr "BlogCategoryEN"并未在模板中进行翻译。

任何人都可以指导哪里出错了。我的代码如下:

settings.py

LANGUAGES = (
## Customize this
('en', gettext('en')),
('it', gettext('it')),
)
LOCALE_PATHS = (
os.path.join(DATA_DIR, 'locale')
)
CMS_LANGUAGES = {
## Customize this
'default': {
    'public': True,
    'hide_untranslated': True,
    'redirect_on_fallback': True,
},
1: [
    {
        'public': True,
        'code': 'en',
        'hide_untranslated': False,
        'name': gettext('en'),
        'redirect_on_fallback': True,
    },
    {
        'public': True,
        'code': 'it',
        'hide_untranslated': False,
        'name': gettext('it'),
        'redirect_on_fallback': True,
    },
],
}

/home/ranjeet/PycharmProjects/wakuseo/locale/en/LC_MESSAGES/django.po /home/ranjeet/p/project/locale/en/LC_MESSAGES/django.mo

#: easy_blog/models.py:29
msgid "Blog List Banner"
msgstr "Blog List Banner EN"

template.html

{% load cms_tags staticfiles %}
{% load l10n i18n %}
{% trans 'Blog List Banner'  %}

应打印“博客列表横幅EN”,但打印“博客列表横幅”。这意味着trans不适用于模板。

请求帮我解决这个问题。

注意:DjangoCMS中的项目并创建了一些应用程序。

2 个答案:

答案 0 :(得分:0)

只是一个疯狂的猜测,但你跑了吗??

    python manage.py compilemessages --locale=en

运行该命令后重新启动服务器了吗?

答案 1 :(得分:0)

感谢您的回答。

我得到了解决方案:在settings.py中出错了,我忘了在

中添加逗号(,)
`LOCALE_PATHS = (
os.path.join(DATA_DIR, 'locale')
)`

现在是:

`LOCALE_PATHS = (
os.path.join(DATA_DIR, 'locale'),
)`

它对我来说很好。

再次感谢你们。