Django 如何为.po翻译文件提供数据?
在django中运行Django 如何为.po翻译文件提供数据?,django,internationalization,gettext,po,Django,Internationalization,Gettext,Po,在django中运行django-admin.py makemessages-l de来创建翻译文件后,您可以使用纯文本编辑器或Poedit来填写这些文件 Poedit的优点是它提供了一个专门的用户界面来输入这些数据。但是,当我在两个词之间切换时,会不断收到错误消息: MyBookmarks/locale/de/LC_MESSAGES/django.po:7:头字段 `“项目Id版本”仍具有初始默认值 这是什么?了解Django国际化知识的人或po/GNU gettext的普通用户是否遇到过此错
django-admin.py makemessages-l de
来创建翻译文件后,您可以使用纯文本编辑器或Poedit来填写这些文件
Poedit的优点是它提供了一个专门的用户界面来输入这些数据。但是,当我在两个词之间切换时,会不断收到错误消息:
MyBookmarks/locale/de/LC_MESSAGES/django.po:7:头字段
`“项目Id版本”仍具有初始默认值
这是什么?了解Django国际化知识的人或po/GNU gettext的普通用户是否遇到过此错误消息
非常感谢,我想Django会让用户自定义.po文件的标题,因此由您用更具描述性的内容(如“我的精彩应用程序v.1.0”)替换“软件包版本” 要在给定路径中的任何相关文件上执行此操作,可以从命令行在*nix环境中使用此命令(或在sed和find可用的任何位置) 我经常在我的fabbile中包含这个命令,它使用POedit 1.5.x解决了这个问题(但在以前的版本中也应该可以使用)
注意:每个.po文件只需执行一次。下次启动./manage.py makemessages时,Django将记住该设置 啊,非常感谢你解决了这个问题。当时,我最终使用了一个编辑器,并手动为每个文件进行编辑。谢谢你给我简单的方法+1请注意,
-i.bak
之间不能有空格,否则它会断开。您的命令中有一个问题:*.po将由shell展开,如果当前目录中有任何*.po文件。如果是这样,命令很可能会失败。您希望在“*.po”周围添加引号,以防止shell进行任何替换。我冒昧地编辑了你的答案。
find <YOUR_PATH_HERE> -type f -name '*.po' -exec sed -e s'/PACKAGE VERSION/<YOUR_APP_NAME> <YOUR_APP_VERSION>/g' -i.bak {} \;
find MyBookmarks/ -type f -name '*.po' -exec sed -e s'/PACKAGE VERSION/MyBookmarks v.1.0/g' -i.bak {} \;