我应该在部署中的服务器上将 .po 文件重新编译为 .mo,还是部署 .mo?

Should I recompile .po files to .mo on the server in deployment, or deploy .mo?

我有一个 .po 文件,其中包含我的应用程序的翻译,并使用 django-admin compilemessages 在本地创建了 .mo 文件,这些文件工作正常。

在部署时,我应该在服务器 (Elastic Beanstalk) 上将 po 重新编译为 mo,还是只在版本控制中跟踪已编译的 mo 文件并上传它们? This .gitignore template 忽略了 .mo 个文件,这表明它们应该在服务器上编译,但我不确定为什么。编译后的文件是否以某种方式特定于每个服务器?

.po.mo 文件应在您的本地计算机中创建,并在 vcs(版本控制系统)中进行版本控制。一旦它们被上传,你不需要重新编译,只需重新启动你的应用程序,新的字符串就可以工作了。所以:

# local dev machine
python manage.py makemessages 
python manage.py compilemessages

# deploy
eb deploy

eb deploy 应该自动重启你的 django 应用程序(我没有使用 eb 的经验)