Подтвердить что ты не робот

Интернационализация Django (на OSX)

Я пытаюсь получить 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 
4b9b3361

Ответ 1

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

brew install gettext
brew link gettext --force

Ответ 2

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

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

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

Изменить: я забыл, что вы не используете Lion. Для Snow Leopard вы можете получить XCode из App Store за 5 долларов США. Я думаю, что на XCode для Leopard на установочном диске.

Ответ 3

Принуждение brew link может привести к негативным последствиям. Лучше изменить виртуальную среду PATH вместо принудительной привязки. Таким образом,

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

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

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