【发布时间】:2015-07-01 12:32:39
【问题描述】:
我们正在尝试在我们的 Django 1.7.4 网络应用程序中实现 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 文件中写入希伯来文本
- 传递一个视图参数
viewParams['trans_games'] = _("Games"),然后用{{trans_games}}在模板上显示它
我们在两台本地计算机上进行了尝试:Windows 和 Mac
【问题讨论】:
标签: python django utf-8 internationalization