【问题标题】:translation not working in Django 1.5 even after compiling message即使在编译消息后,翻译也不能在 Django 1.5 中工作
【发布时间】:2019-07-14 22:39:34
【问题描述】:

我正在使用 Django 1.5

我必须在我的应用程序中启用国际化。为此,我在 settings.py 文件中添加了一些内容

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
)

from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
    '...local context processrors...'
)

# global_settings.TEMPLATE_CONTEXT_PROCESSORS contains 
# TEMPLATE_CONTEXT_PROCESSORS = (
#     'django.contrib.auth.context_processors.auth',
#     'django.core.context_processors.debug',
#     'django.core.context_processors.i18n',
#     ...
# )

USE_I18N = True
USE_L10N = True

LANGUAGE_CODE = 'es'

# List of languages available for translation
ugettext = lambda s: s
LANGUAGES = (
    ('en', ugettext('English')),
    ('es', ugettext('Spanish'))
)
LOCALE_PATHS = (
    os.path.join(PROJECT_ROOT, 'locale/'),
)

LOCALE_PATHS 的位置输出为

('/media/path_to_project/workbench/workbench/settings/../locale/',)

但是在运行./manage.py makemessages -l es 时会生成 *.po 文件

/media/path_to_project/workbench/workbench

而不是

/media/path_to_project/workbench/workbench/locale

另外,编译后的语言没有显示在模板中。

【问题讨论】:

    标签: django django-1.5


    【解决方案1】:

    您需要检查以下事项。

    • 确保将USE_L10N = TrueUSE_I18N = True 添加到settings.py 文件中
    • 检查PROJECT_ROOTLOCALE_PATHS 并确保它是正确的
    • setting.py 中添加django.core.context_processors.i18nTEMPLATE_CONTEXT_PROCESSORS

    翻译和格式分别由 USE_I18NUSE_L10N 设置控制。但是,这两个功能都涉及国际化本地化。设置的名称是 Django 历史的不幸结果。

    【讨论】:

    • 一切配置正确。 USE_I18N=True 在 settings.py 中,django.core.context_processors.i18n 已经从 django.conf 的全局设置中导入。
    • 你能把settings.py文件分享给我吗?
    • 在 settings.py 文件中更新了与翻译相关的问题
    • 什么是PROJECT_ROOT
    • '/media/path_to_project/workbench/workbench/settings/../'
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    相关资源
    最近更新 更多