You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Django makemessages时如何调整模糊阈值或禁用模糊匹配?

解决Django makemessages生成模糊匹配行的替代方案

当执行python manage.py makemessages后出现类似下面的模糊匹配条目时:

#, fuzzy
#| msgid "Last Month"
msgid "Last Year"
msgstr "Dernier mois"

可以用以下几种替代方法解决:

  • 手动清理模糊条目
    直接打开生成的.po文件,删除#, fuzzy标记以及旧的#| msgid行,然后根据新的msgid修正对应的msgstr内容。这种方法适合翻译条目较少的场景,简单直接。

  • 手动调用gettext的msgmerge命令
    Django的makemessages底层依赖gettext的msgmerge工具,你可以绕开Django命令,手动完成提取和合并的步骤:

    1. 先生成新的模板文件(.pot):
      python manage.py makemessages -d django -l fr --pot
      
      (把fr换成你的目标语言代码)
    2. 使用msgmerge并加上--no-fuzzy参数合并到现有.po文件:
      msgmerge --no-fuzzy locale/fr/LC_MESSAGES/django.po django.pot -o locale/fr/LC_MESSAGES/django_updated.po
      
    3. 把生成的django_updated.po替换原来的django.po文件即可。
  • 自定义Django命令扩展makemessages
    如果你需要频繁处理这个问题,可以写一个自定义Django命令,先调用原生的makemessages生成文件,再自动执行带--no-fuzzy参数的msgmerge命令覆盖原文件。这样每次执行自定义命令就能一步到位。

  • 调整gettext全局配置(不推荐)
    可以修改gettext的全局配置文件,降低模糊匹配的阈值,但这种方法会影响所有使用gettext的工具,可能带来其他问题,所以不建议使用。

内容的提问来源于stack exchange,提问作者Sabrebar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:18:13