我在使用
向Django用户发送本地化消息时遇到问题user.message_set.create(message="Message")
机构。首先,
user.message_set.create(message=_("Message"))
flat out不起作用,SQLite表示它不接受非ascii参数(本地化消息包含特殊字符)。
user.message_set.create(message=unicode(_("Message")))
发送原始英文消息,无论首选语言如何(应用程序的其他翻译部分都能正常工作)。
使用像这样的硬编码本地化消息
user.message_set.create(message=u"Localized message áýčš")
是唯一可行的,但这意味着我只能使用一种语言。
如何向用户发送从LC_MESSAGES加载的本地化消息?
答案 0 :(得分:1)
您是否尝试在显示之前对邮件进行本地化?
在您看来:
user.message_set.create(message="Message")
在您的模板中
{% if messages %}
<ul>
{% for message in messages %}
<li>{% trans message %}</li>
{% endfor %}
</ul>
{% endif %}
这样,您就不必在数据库中存储任何奇怪的字符。
答案 1 :(得分:1)
user.message_set.create(message=_("Message"))
......应该有效。您使用的是最新版本的SQLite,是否必须以某种方式启用UTF-8支持?你在其他地方的SQLite中存储非ascii字符吗?