У меня проблема с переводом Django. Мой Django не переводит мои теги.
Я использую django-cms, а в django-cms у меня есть плагин djangocms-blog.
Django == 1.6.5
Django-cms == 3.0.3
Djangocms-blog == 0.2b5
Мои транстаги не переведены.
Пример тега:
{% trans "read more" %}
Я все установил правильно, мой settings.py содержит это:
gettext = lambda s: s
# Internationalization
LANGUAGE_CODE = 'nl'
TIME_ZONE = 'Europe/Brussels'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
LANGUAGES = (
('nl', _(u'Dutch')),
('fr', _(u'French')),
('en', _(u'English')),
)
CMS_LANGUAGES = {
1: [
{
'code': 'nl',
'name': gettext('Dutch'),
'fallbacks': ['en', 'fr'],
'public': True,
'hide_untranslated': True,
'redirect_on_fallback':False,
},
{
'code': 'en',
'name': gettext('English'),
'fallbacks': ['nl'],
'public': False,
'hide_untranslated': True,
'redirect_on_fallback':False,
},
{
'code': 'fr',
'name': gettext('French'),
'public': False,
'hide_untranslated': True,
},
],
2: [
{
'code': 'nl',
'name': gettext('Dutch'),
'public': True,
'fallbacks': ['en'],
},
],
'default': {
'fallbacks': ['en', 'fr'],
'redirect_on_fallback': True,
'public': False,
'hide_untranslated': False,
}
}
В моих классах промежуточного программного обеспечения:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
)
Мой urls.py:
from django.conf.urls import include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = i18n_patterns(
'',
url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^admin/', include(admin.site.urls)),
url(r'^products/', include('catalog.urls')),
url(r'^contact/', 'contact.views.contact'),
url(r'^pages/', include('django.contrib.flatpages.urls')),
url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
url(r'^', include('cms.urls')),
)
if settings.DEBUG:
import debug_toolbar
urlpatterns = i18n_patterns('',
url(r'^__debug__/', include(debug_toolbar.urls)),
url(r'^404/$', 'django.views.defaults.page_not_found'), # TODO MOET NOG VERPLAATST WORDEN
url(r'^500/$', 'django.views.defaults.server_error'), # TODO MOET NOG VERPLAATST WORDEN
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns
На моей странице blog_items.html (страница из шаблона плагина djangocms-blog, который я переопределяю)
{% load i18n thumbnail cms_tags %}
{% load url from future %}
Я создал свои языки в виртуальном окружении
- Переход к виртуальному окружению с помощью "workon app"
- Запускаю команду django-admin.py makemessages -l nl (файлы po создаются правильно)
- Я запускаю команду django-admin.py compilemessages и все в порядке
В корне моей программы находится папка locale с 3 подпапками: en, fr и nl. Они содержат всю папку LC_MESSAGES с файлами django.mo и django.po с правильными строками сообщений.
#: .\templates\djangocms_blog\includes\blog_item.html:37 #, fuzzy msgid "read more" msgstr "lees meer"