如何通过API重启Django应用以加载新增语言配置?
Django多语言项目动态添加语言及重启问题
项目背景与动态添加语言流程
我正在开发一个Django项目,需要通过API动态添加新语言,流程如下:
- 通过API添加新语言;
- 调用
/generate/API生成对应的.mo和.po文件; - 新语言信息写入
languages.json,该文件在Django启动时加载到settings.py中; - 需重启Django才能使新语言生效。
当前使用工具及重启尝试
目前使用Rosetta处理静态翻译,Parler处理数据库翻译。已尝试以下自动重启方案:
- ✅ 重启前清除Django缓存;
- ✅ 使用
.sh脚本终止进程并重启Django; - ✅ 手动启停Django(手动操作有效,但脚本执行无效)。
核心问题
调用重启API时,Django能成功停止但无法重启;手动在终端启停可正常生效,脚本可终止PID但无法重新启动Django。
待解决问题
- 从API调用内重启Django的最优方案是什么?
- 在Docker环境内重启Django的可靠方法是什么?
- 为何手动启停有效但脚本方案无效?
Parler长期支持替代方案
Parler仅支持到Django 4.0,需长期支持(LTS)的方案,可考虑:
- 将Parler源代码复制到项目中自行修复问题(Vendoring);
- 基于旧版Parler制作自定义包Parler-New并添加新特性;
- 使用其他维护中的多语言包;
- 自行编写自定义翻译方案。
内容的提问来源于stack exchange,提问作者Yousef Al-Hadhrami
相关产品推荐
相关产品推荐

