我将django1.6.5与virtualenv(Vitrual环境)和apache2一起使用
我有以下settings.py结构:from django.utils.translation import ugettext_lazy as _
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',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
LANGUAGE_CODE = 'tr_TR'
LANGUAGE_COOKIE_NAME = 'wm_lang'
LOCALE_PATHS = (
'/home/mustafa/python/myproject/locale'
)
USE_I18N = True
USE_L10N = True
LANGUAGES = (
('tr', _(u'Türkçe')),
('en', _(u'English')),
)
我有一个模板文件看起来像那样
^{pr2}$
我运行以下命令来创建po文件django-admin.py makemessages --locale=tr --locale=en
它将创建以下文件/home/mustafa/python/myproject/locale/tr/LC_MESSAGES/django.po
/home/mustafa/python/myproject/locale/en/LC_MESSAGES/django.po
我应用翻译字符串,这样我的django.po翻译文件看起来像这样
英语:#: templates/websitesi/index.html:6
msgid "Hosgeldin"
msgstr "Welcome, that is a test"
tr:#: templates/websitesi/index.html:6
msgid "Hosgeldin"
msgstr "Hoşgeldiniz, bu bir deneme"
然后我用django-admin.py compilemessages
django在两种语言的django.mo文件附近创建django.mo文件。在
但是当我访问这个页面时,我看到的是Hosgeldin(翻译占位符),而不是翻译的文本。在
将{LANGUAGE}}}写入模板将显示所选的语言代码。当我的地址是someadress/en时,语言代码显示为en。。。在
我错过了什么?在
更新:这是我的root^{的一部分urlpatterns = patterns('',
(r'^i18n/', include('django.conf.urls.i18n')),
)
urlpatterns += i18n_patterns('',
url(r'^admin/docs/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)
urlpatterns += staticfiles_urlpatterns()
urlpatterns += i18n_patterns('websitesi.views',
url(r'^$', 'index', name='index'), # This is my home page
....
....
然后我去my_local_server/或my_local_server/tr或{}来测试,但是翻译都失败了。在
当我通过my_local_server/tr/admin或my_local_server/en/admin进入管理时,django trqnslations工作得很好。在