为何我的Django i18n无效??

CuGBabyBeaR 2013-09-14 05:53:19
我刚刚开始学习Django 在学i18n的时候出现了很蛋疼的事情

Django1.4下

我在模板里添加了trans标签
然后 django-admin.py makemessages -l zh-cn
在app目录下生成了/locale/zh-cn/LC_MESSAGES/django.po
用poeditor编辑了中文(添加了头部信息)
django-admin.py compilemessages
也没有任何报错 django.mo 也存在

但是无论是在views里 还是模板里都没有显示出正确的翻译

settings中的相关设置如下:


USE_I18N = True

USE_L10N = True

LANGUAGE_CODE = 'zh-CN'

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)


django.po里有:

#: .\forms.py:13 .\views.py:20
msgid "Weekly"
msgstr "每周"


我在app/views.py里添加了一个view:


from django.utils.translation import ugettext as _

def i18n(request):
from django.utils import translation
return HttpResponse( "%s %s %s" % (_("Weekly"), translation.get_language(),"haha" ) )
pass


浏览器返回结果是:
Weekly zh-cn haha


这下我已经困惑了
说好的当前语言是zh-cn呢? 为何不显示"每周"
...全文
285 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CuGBabyBeaR 2013-09-14
  • 打赏
  • 举报
回复
解决了... 语言文件的文件夹应该用下划线而不是短横线 将zh-cn 改为zh_cn就行了

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧