Интернационализация Django (на OSX) - PullRequest
31 голосов
/ 28 июля 2011

Я пытаюсь заставить gettext работать в Django на моем OSX Leopard

django_manage.py makemessages -l nl
Importing Django settings module settings
processing language nl
Error: errors happened while running xgettext on __init__.py
/bin/sh: xgettext: command not found

В Терминале я получаю ту же ошибку, если я не добавлю ее в свой профиль bash:

PATH=$PATH:/Applications/Poedit.app/Contents/MacOS/

Но тогда я получаю эту ошибку:

Error: errors happened while running msguniq
/bin/sh: msguniq: command not found os x 

Ответы [ 3 ]

98 голосов
/ 20 марта 2012

После установки попробуйте связать gettext.Это решило проблему для меня.

brew install gettext
brew link gettext --force
10 голосов
/ 28 июля 2011

Я думаю, вам нужно установить gettext.Poedit включает в себя только некоторые программы, предоставляемые пакетом gettext.

Вероятно, самый простой способ установить (не только) gettext - через homebrew .После того, как вы установили homebrew, запустите brew install gettext.После этого убедитесь, что программы в /usr/local/Cellar/gettext/0.18.1.1/bin находятся на вашем $PATH.

Обратите внимание, что для работы homebrew необходимо установить Xcode, поскольку он обычно устанавливает пакеты из исходного кода (вы можете бесплатно получить Xcode для Lion в Mac App Store).

Редактировать: я упустил из виду, что вы не используете Lion.Для Snow Leopard вы можете получить XCode в App Store за 5 долларов.XCode For Leopard - это, я думаю, на установочном диске.

7 голосов
/ 02 ноября 2016

Форсирование brew link может привести к негативным последствиям .Лучше модифицировать PATH виртуальной среды, чем принудительное связывание.Итак,

  1. Установите GNU gettext:

    brew install gettext
    
  2. Добавьте его в свою виртуальную среду:

    # Get this from the brew's "Summary"
    GETTEXT_PATH="/usr/local/Cellar/gettext/0.19.8.1/bin" 
    
    # Change "postactivate" to "activate" if you're using python3's venv
    FILE="YOUR_VENV/bin/postactivate"   
    
    echo "" >> $FILE
    echo "export PATH=\$PATH:$GETTEXT_PATH" >> $FILE
    
...