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

Django核心翻译缺失:makemessages注释自定义.po翻译条目问题问询

Django自定义翻译条目避坑方案

问题1:是否可以创建独立翻译文件不受makemessages影响

可以,Django原生支持多翻译目录优先级加载,操作步骤如下:

  • 新建独立的自定义翻译存放目录,例如custom_contrib_trans,内部按照Django翻译规范创建层级:custom_contrib_trans/locale/[你的语言代码]/LC_MESSAGES/,将你自行维护的contrib模块翻译存放在该路径下的django.po文件中
  • 在项目settings.py中调整LOCALE_PATHS配置,将自定义翻译目录放在最前,优先级高于项目默认翻译目录:
LOCALE_PATHS = [
    BASE_DIR / "custom_contrib_trans/locale",
    BASE_DIR / "locale", # 原有项目自动生成翻译的存放目录
]

注意:执行makemessages命令时默认只会扫描项目代码提取字符串,更新原有项目翻译目录下的文件,完全不会触碰独立存放的自定义翻译文件

问题2:是否可以配置makemessages不注释判定为已删除的翻译

可以,有两种实现方式:

  • 单次执行命令时添加参数,运行python manage.py makemessages --no-obsolete即可,该参数会跳过对找不到来源的旧翻译条目的处理,不会注释或删除对应条目
  • 如果需要默认开启该配置,可以在项目的manage.py中自定义makemessages命令的默认参数,或者在封装的执行脚本中固定携带--no-obsolete参数
    注意:长期使用该配置会导致po文件积累大量无效旧翻译条目,建议定期手动清理无用内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:06:01