我有一个相当简单的 Django (1.1) 站点,我需要一些基本的界面和其他文本在两种语言之间进行翻译。我已经使用 manage.py makemessages
创建了 po 文件,翻译它们(使用 poedit),并使用 manage.py compilemessages
编译 mo 文件如 i18n docs for Django 中所述.
但问题是;大多数字符串仍然以原始语言显示......
getlang()
切换时,语言确实发生了变化方法 不太确定还有什么地方可以看...例如,有没有什么应用程序可以用来检查编译的 mo 文件是否有效和完整?这些字符串可以缓存吗? (我没有使用任何缓存中间件)
最佳答案
找到了!!在拔头发试图弄清楚是什么导致我的困境时,我评论了 django.middleware.locale.LocaleMiddleware
来自我的 MIDDLEWARE_CLASSES
并刷新页面以尝试一切。显然,这只是一起关闭了翻译,但是当我再次打开它时,我所有的翻译好的字符串都显示为它们应该一直存在。
所以我在猜测,当您打开语言环境中间件时,某个地方会被编译/缓存,而刷新它的唯一方法是将其关闭再打开。重新启动服务器没有帮助,所以这有点违反直觉,但谁在乎它的工作原理! :)
关于django - 当我在 Django 站点中切换语言时没有显示翻译的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734902/