【问题标题】:Why is Django only showing some of my translations为什么 Django 只显示我的一些翻译
【发布时间】:2010-11-12 14:49:41
【问题描述】:

我的网站在 HTML 模板和 views.pyforms.pymodels.py 文件中都有翻译字符串。 Django 为我的第二语言创建了django.po 文件,我已经输入了大部分翻译。但是,网站上只显示我的 .html 和 view.py 文件中的翻译。其他似乎被忽略了(models.py,forms.py - 都默认为英文)

发生了什么事?

我显然已经编译了我的 django.mo 文件,并且它正在工作 - 否则很多模板字符串不会被翻译 - 那么为什么它忽略我的 models.py 翻译。在管理站点和前端。

一种想法是django.mo 文件中可能有一个错误导致它中断。有什么方法可以测试django.mo 文件的错误吗?如果出现错误,它会起作用吗?

我的项目也安装了 Django-cms,这可能会导致一些冲突?

感谢您提供的任何启发。

男人

【问题讨论】:

    标签: django internationalization django-cms


    【解决方案1】:

    1.确保在模型和表单定义中始终使用ugettext_lazy(而不是ugettext

    2.删除.mo文件中可能的fuzzy tags

    【讨论】:

    • 简单地说- _lazy 和 not _lazy 有什么区别呢?这使它工作......
    • _lazy 版本在每次访问字符串时都会进行转换,普通版本仅在代码运行时进行,仅在 django 启动时才会发生在表单和模块上!
    猜你喜欢
    • 2021-03-19
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多