相关疑难解决方法(0)

无法在Django中切换语言环境

我有文件locale/es/LC_MESSAGES/django.mo(和.po),运行makemessages和compilemessages.绝对是所有消息都被翻译

在settings.py中有:

USE_I18N = True
LANGUAGE_CODE = 'es'
Run Code Online (Sandbox Code Playgroud)

django仍然固执地从英文.po文件中获取字符串......为什么会这样?

一定有一些问题......谢谢.

编辑这似乎是这种情况,只有当LocaleMiddleware有效.

django internationalization

9
推荐指数
1
解决办法
4077
查看次数

django翻译模板{%trans"something"%}

好吧,我一直在疯狂地寻找这个我认为简单的问题.

我使用Django 1.4

问题是django不会在我的模板中翻译简单的{%trans"work"%}.

这就是我所做的:

Settings.py:

LANGUAGE_CODE = 'en-us'
USE_I18N = True
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.request",
)

LOCALE_PATHS = (
    '/home/m00p/PycharmProjects/astrid/locale'
)
Run Code Online (Sandbox Code Playgroud)

这是我的地图结构:

/
myproject/
apps/
locale/
template/
Run Code Online (Sandbox Code Playgroud)

所以我跑了

django-admin.py makemessages -l nl -i settings.py

它确实在locale文件夹nl/LC_MESSAGES/django.po中成功创建,然后编辑它在django.po中找到的翻译

#: templates/base.html:22
msgid "work"
msgstr "ddddddddddddd"
Run Code Online (Sandbox Code Playgroud)

然后我运行编译命令

django-admin.py compilemessages

它还成功地在正确的文件夹中创建了一个django.mo文件

我也在myproject/urls.py中添加了这个

urlpatterns = patterns('',
    url(r'^i18n/', include('django.conf.urls.i18n')),
)

urlpatterns …
Run Code Online (Sandbox Code Playgroud)

python django templates translation

9
推荐指数
2
解决办法
1万
查看次数

Django模板翻译在块中是不可能的

在Python 3.4下使用Django 1.7.1,我有一个问题,我没有找到任何答案,尽管看似平庸,并且在互联网上看到许多类似的问题.到目前为止我没有解决任何解决方案

我有一个简单的django模板,归结为必不可少的部分.它是内容块中的simle"trans"标签翻译字符串,它覆盖了admin/base内容块.

{% extends "admin/base.html" %}
{% block content %}
    {% trans "Entries" %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

有了这个我得到一个TemplateSyntaxError:

Invalid block tag: 'trans', expected 'endblock'
Run Code Online (Sandbox Code Playgroud)

到目前为止我学到了你需要使用块转换来做类似的事情.但我不明白 - 为什么这样做不起作用?有趣的是,如果我取代{% trans "Entries" %}{{ _("Entries") }}一切正常.但我需要使用trans标签获得额外的好处.

有很多例子,像在这里,它使用正是图案上方-和它的工作对子级.欢迎任何帮助.

python django templates translation python-3.x

2
推荐指数
1
解决办法
977
查看次数

Django 翻译在我的情况下不起作用

我为问这个感到难过,因为它被问了很多次:

django - 如何使翻译工作?

Django 国际化和翻译问题

如何以正确的方式设置 Django 翻译?

http://askbot.org/en/question/8948/weve-edited-djangopo-files-but-translations-do-not-work-why/

我想要英语(默认)和斯洛文尼亚语。我的设置是这样的:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
)
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Belgrade'
USE_I18N = True
USE_L10N = True
USE_TZ = True
from django.utils.translation import ugettext_lazy as _
LANGUAGES = (
  ('si', _('Slovenian')),
  ('en-us', _('English')),
)
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
Run Code Online (Sandbox Code Playgroud)

网址.py:

urlpatterns = i18n_patterns('',
    url(r'^', include('analytics.urls')),
    url(r'^login', RedirectView.as_view(url='/admin/login', permanent=False)),
    url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

模板:

<div class="time_range">{% trans "Time range:" %}</div>
Run Code Online (Sandbox Code Playgroud)

我将消息编译为 .po 文件,现在根据文档,人们希望它开始工作。但对我来说没有运气。如果我访问带有 /si/ 前缀的 url,我仍然会看到英文字符串。

python django internationalization django-i18n

2
推荐指数
1
解决办法
1480
查看次数