在Django中运行django-admin.py makemessages -l de
以创建翻译文件后,您可以使用纯文本编辑器或Poedit来填充它们。
Poedit的优势在于它提供了用于输入此数据的专用UI。但是,当我在单词之间切换时,我不断收到错误消息:
这是什么?有没有Django国际化知识或po / GNU gettext的一般用户的人都会遇到此错误消息?MyBookmarks / locale / de / LC_MESSAGES / django.po:7:标题字段 `Project-Id-Version'仍然具有初始默认值
非常感谢,
答案 0 :(得分:2)
我猜Django会保留用户可自定义的.po文件的标题,因此您可以用“MY FABULOUS APP v.1.0”等更具描述性的内容替换“PACKAGE VERSION”。
要在给定路径中的任何相关文件上执行此操作,您可以在命令行和* nix环境中使用此命令(或在任何地方 sed 和查找可用)
find <YOUR_PATH_HERE> -type f -name '*.po' -exec sed -e s'/PACKAGE VERSION/<YOUR_APP_NAME> <YOUR_APP_VERSION>/g' -i.bak {} \;
该命令将替换每个.po文件中的上述文本,并且还将保存每个文件的未修改的备份文件。
因此,在您的情况下,命令将是:
find MyBookmarks/ -type f -name '*.po' -exec sed -e s'/PACKAGE VERSION/MyBookmarks v.1.0/g' -i.bak {} \;
我经常在我的fabfile中包含这个命令,它使用POedit 1.5.x解决了这个问题(但也应该在以前的版本中使用)。
注意:每个.po文件只需执行一次。下次你将启动 ./ manage.py makemessages Django将记住该设置。