3

在 Django 中运行django-admin.py makemessages -l de创建翻译文件后,您可以使用纯文本编辑器或 Poedit 来填写它们。

Poedit 的优势在于它为输入这些数据提供了专门的 UI。但是,当我在单词之间切换时,我不断收到一条错误消息:

MyBookmarks/locale/de/LC_MESSAGES/django.po:7:标题字段“Project-Id-Version”仍然具有初始默认值

这是什么?是否有任何了解 Django 国际化或 po / GNU gettext 的普通用户的人遇到此错误消息?

非常感谢,

4

1 回答 1

2

我猜 Django 保留了用户可自定义的 .po 文件的标题,因此您可以将“PACKAGE VERSION”替换为更具描述性的内容,例如“MY FABULOUS APP v.1.0”。

要在给定路径中的任何相关文件上执行此操作,您可以从命令行和 *nix 环境中使用此命令(或任何sedfind可用的地方)

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 会记住该设置。

于 2012-08-10T04:54:55.843 回答