【发布时间】:2013-01-11 13:17:27
【问题描述】:
我创建了我的语言文件(其中包含来自我的模板的消息),然后编译它们。
这是我的设置文件中的内容:
USE_I18N = True
LOCALE_PATHS = (
'/srv/www/rewards_system/locale',
)
ugettext = lambda s: s
LANGUAGES = (
('bg', ugettext('Bulgarian')),
('en', ugettext('English')),
)
LANGUAGE_CODE = 'bg'
USE_L10N = True
我得到的结果是,所有从带有 ugettext() 函数的代码运行的翻译都完美地翻译成保加利亚语,但所有来自内部模板 ({% trans "word" %}) 的翻译都以英语显示。
我的模板顶部有{% load i18n %}。
我正在使用render 函数加载它
render(request,
'company/signup.html',
{ 'form': form })
这意味着RequestContext被发送到模板。
我在这里做错了什么?
谢谢
【问题讨论】:
-
您在 po-file 中看到您的翻译吗?
-
是的,来自模板的消息(以及相应的翻译)出现在 .po 文件中。
-
你能不能尝试打印当前的语言,以确保它不只是运行英语。
-
它实际上打印的是英文,但代码的翻译是保加利亚语?
-
Django 将从几个参数中读取当前语言,然后渲染该语言的文本。一个想法是在调用 render 之前对 activate('bg') 进行硬编码。
标签: django internationalization django-templates translation