django - 当我在 Django 站点中切换语言时没有显示翻译的字符串

标签 django internationalization translation

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

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

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

  • 不太确定还有什么地方可以看...例如,有没有什么应用程序可以用来检查编译的 mo 文件是否有效和完整?这些字符串可以缓存吗? (我没有使用任何缓存中间件)

    最佳答案

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

    所以我在猜测,当您打开语言环境中间件时,某个地方会被编译/缓存,而刷新它的唯一方法是将其关闭再打开。重新启动服务器没有帮助,所以这有点违反直觉,但谁在乎它的工作原理! :)

    关于django - 当我在 Django 站点中切换语言时没有显示翻译的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734902/

    相关文章:

    django - 如何在 Django 模板中获取日期格式

    python - django请求getlist方法: does this preserve the sequence of my posted parameters?

    android - 在 Android 中使用 iText 生成的 PDF 中不显示西里尔字母

    ruby-on-rails - 如何覆盖 ruby​​-on-rails 中的通用 activerecord 错误消息?

    java - 如何解析 freedict 文件(*.dict 和 *.index)

    django - 使用 Django JWT token 进行 Ansible uri 调用

    python - Django 和 ManyToMany 字段

    spring-boot - 如何在 spring-boot 应用程序中外部化 i18n 属性文件

    python - 如何将gettext .mo文件转换为.po文件

    c++ - 动态 Qt 字符串翻译