2012-06-01 6 views
3

После запуска django-admin.py makemessages -l de в Django для создания файлов перевода вы можете использовать простой текстовый редактор или Poedit для их заполнения.Как предоставить данные для файлов перевода .po?

Poedit имеет то преимущество, что он предоставляет специализированный интерфейс для ввода этих данных. Тем не менее, я получаю сообщение об ошибке при переключении между словами:

MyBookmarks/локаль/де/LC_MESSAGES/django.po: 7: поле заголовка `Project-Id-Version» все еще имеет начальное значение по умолчанию

Что это? Кто-нибудь, кто знает об интернационализации в Django или общих пользователях po/GNU gettext, столкнулся с этим сообщением об ошибке?

Большое спасибо,

ответ

2

Я догадываюсь Django оставить заголовок файла .po настраиваемого пользователя, так до вас, чтобы заменить «пакетную версию» с чем-то более описательным, как «MY FABULOUS APP v.1.0 ».

Чтобы сделать это на любой соответствующий файл в заданном пути, вы можете использовать эту команду из командной строки и в среде * NIX (или где-нибудь СЭД и найти доступны)

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 запомнит настройку.

+0

А большое спасибо за решение этого вопроса. тогда я закончил использовать редактор и делал это вручную для каждого файла. Спасибо за более легкий путь. +1 – Houman

+0

Просто быстро заметите, что между '-i .bak' не может быть никакого пробела или он сломается. – Houman

+1

Я отредактировал его. Спасибо! – furins