python - Django {% trans %} 模板标签给出 DjangoUnicodeDecodeError

标签 python django utf-8 internationalization

我们正在尝试在 Django 1.7.4 Web 应用程序中实现 i18n。 成功创建.mo和.po文件, 希伯来语 .po 文件:

#: templates/community/profile.html:109
msgid "Games"
msgstr "משחקים"

有些包含希伯来字符(非 ascii), 我创建了一个小模板,其中只有这个:

{% load i18n %}
{% trans "Games" %}

出现错误:

DjangoUnicodeDecodeError at /community/testtrans/
'ascii' codec can't decode byte 0xd7 in position 0: ordinal not in     range(128). You passed in <django.utils.functional.__proxy__ object at     0x05A29550> (<class 'django.utils.functional.__proxy__'>)

我注意到生成的 .PO 文件被编译为 ASCII,尝试更改为 UTF-8,但没有帮助

这些测试顺利通过:

  • 直接在 HTML 文件中写入希伯来语文本
  • 传递 View 参数viewParams['trans_games'] = _("Games"),然后使用{{trans_games}}将其显示在模板上

我们在两台本地计算机上进行了尝试:Windows 和 Mac

最佳答案

我在这里找到了解决方案: https://groups.google.com/forum/#!topic/django-users/5-EjBFQoeyU

结果我必须将此 header 添加到 .po 文件中

"Content-Type: text/plain; charset=UTF-8\n"

关于python - Django {% trans %} 模板标签给出 DjangoUnicodeDecodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31161440/

相关文章:

python - 从 pandas 数据框中删除重复的行,其中只有一部分列是相同的

python - 从 Python 中调用 Robot Framework 文件

python - Django 无法在 Windows 10 上运行

javascript - JS 编码解码 UTF 的问题?

python - 当前冲刺编号的用户故事

python - MySQL 连接器不工作 | Django 1.10 | window | Python 3.5

python - 在保存之前编辑 django-rest-framework 序列化程序对象

java - JSON文件处理错误: A JSONArray text must start with '[' at 1 [character 2 line 1] when use file in UTF-8 encoding

java - jsp中的UTF-8编码

Python设计问题(在这种情况下可以/应该使用装饰器吗?)