我正在制作一个多语言的Django网站.我创建了一个消息文件,填充并编译它.我用我想要的语言(希伯来语)检查了网站(在这种情况下是管理员),并且大多数短语都像希伯来语一样出现,但有些则没有.我检查了源代码,这些仍然显示为_('Whatever')
他们应该,它们也被翻译在消息文件中,是的,我记得这样做compilemessages
.
翻译的一些常见原因是什么?
我已经为我的virtualenv安装了一个Django应用程序,我想为该应用程序添加额外的翻译.
是否可以将安装在virtualenv中的应用程序中的消息导入到项目locale/pt/LC_MESSAGES
文件夹中的django.po ?
或者,我应该翻译第三方应用程序吗?如果是这样,我如何使用makemessages
在virtualenv中安装的应用程序中生成消息?
我正在使用Django很长一段时间,但每次我一次又一次地问自己同样的问题.
我应该使用哪种多语言数据库后端?
我django-multilingual
在Django 1.1 django-multilingual-ng
上使用了Django 1.1
我再看看django-nani
Django 1.3,但问题很少:
我有些人可以帮助我找到处理多语言网站的方法.
我喜欢管理员使用多语言,多语言-ng和nani处理语言的方式.
我正在尝试使用django-multilingual并正确设置它.但我发现除了模板用法示例之外,django-multilingual的一切都很清楚.
我刚开始使用django并且我不知道,也许是因为这个原因,我无法弄清楚如何在模板端切换语言.
您是否有任何示例或任何"更多"明确的来源/文档?
按照翻译 URL 模式,我可以使我的 URL 以活动语言为前缀,但无法翻译它们。
urls.py
from django.conf.urls import include, url
from django.conf.urls.i18n import i18n_patterns
from django.utils.translation import ugettext_lazy as _
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
from exercises.views import ExerciseListView
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
]
urlpatterns += i18n_patterns(
...
url(_(r'^exercises/$'), ExerciseListView.as_view(), name='list'),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
语言环境/es/LC_MESSAGES/django.po
#: myproject/urls.py:54
msgid "^exercises/$"
msgstr "^ejercicios/$"
Run Code Online (Sandbox Code Playgroud)
管理.py shell
>>> from django.core.urlresolvers import reverse
>>> from django.utils.translation import activate
>>> activate('en')
>>> reverse('list')
'/en/exercises/' …
Run Code Online (Sandbox Code Playgroud)