当我在Django站点中切换语言时,翻译的字符串不显示

时间:2010-09-17 11:32:44

标签: django internationalization translation

我有一个相当简单的Django(1.1)网站,我需要一些基本的界面和其他文本在两种语言之间进行翻译。我使用manage.py makemessages创建了po文件,翻译它们(使用poedit),并使用manage.py compilemessages编译mo文件,如i18n docs for Django中所述。

但问题是;大多数字符串仍以原始语言显示...

  • 我检查了po文件实际上包含所有字符串
  • 我检查了mo文件是在最后一次翻译后新生成的
  • 当我使用getlang()方法
  • 切换时,语言确实发生了变化
  • 一些字符串 - 当我切换
  • 时,最终会被翻译
  • 但大部分都没有......

不确定在哪里查看...是否有任何应用程序可用于检查已编译的mo文件是否有效&完成比如?这些字符串可以缓存吗? (我没有使用任何缓存中间件)

1 个答案:

答案 0 :(得分:2)

发现它!!在拔出头发试图弄清楚是什么导致了我的困境时,我从django.middleware.locale.LocaleMiddleware评论了MIDDLEWARE_CLASSES并刷新了页面,试图尝试一切。显然,只是一起关闭了翻译,但是当我再次打开它时,我所有精美的翻译字符串都显示出来,因为它们应该一直存在。

所以我猜测某些东西,当你打开语言环境中间件时,某处得到了编译/缓存,刷新它的唯一方法就是关闭它。重新启动服务器没有帮助,所以这有点反直觉,但谁在乎它的工作! :)