Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何为.po翻译文件提供数据?_Django_Internationalization_Gettext_Po - Fatal编程技术网

Django 如何为.po翻译文件提供数据?

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中运行
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 {} \;