向Django用户发送本地化消息

时间:2009-07-21 11:13:50

标签: django localization

我在使用

向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加载的本地化消息?

2 个答案:

答案 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字符吗?