python - Django 翻译不适用于我的情况

标签 python django internationalization django-i18n

我为这个问题问了很多次而感到难过:

django - how to make translation work?

django internationalization and translations issue

How to setup up Django translation in the correct way?

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'),
)

网址.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)),
)

模板:

<div class="time_range">{% trans "Time range:" %}</div>

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

最佳答案

创建 .po 文件后,还有两个步骤:

  1. 翻译 .po 文件中的消息
  2. 运行./manage.py compilemessages将你的.po文件编译成.mo文件

引用Django translation documentation , 创建消息文件后——每次对其进行更改时——你都需要将其编译成更高效的形式,以供 gettext 使用。使用 django-admin compilemessages 实用程序执行此操作。

关于python - Django 翻译不适用于我的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32536665/

相关文章:

python - 自动增加每个类别中的字段?

django - Google App Engine 对 Django 的优缺点?

python - Django-summernote 工作正常,但显示带有 HTML 标签的文本

php - PHP 网站的数据库支持国际化

Python requests_ntlm导入错误

python - Numpy:如何检查数组是否包含某些数字?

python - 如何从 python 启用 Windows 控制台快速编辑模式?

python - 在 Python 中使用 polib 修改/更新 po 文件中的条目

ios - 基于 Iphone 电话号码格式化语言环境

datetime - 为什么在修补/保存时日期/时间值解释不正确?