2011-07-28 41 views
29

Tôi đang cố gắng để có được gettext làm việc trong Django trên OSX Leopard của tôiQuốc tế hóa Django (trên OSX)

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 

Trong ga tôi nhận được lỗi tương tự, trừ khi tôi đặt này trong hồ sơ bash của tôi:

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

Nhưng sau đó tôi nhận được lỗi này:

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

Trả lời

10

tôi nghĩ rằng bạn cần phải cài đặt gettext. Poedit chỉ bao gồm một số chương trình được cung cấp bởi gói gettext.

Có lẽ cách dễ nhất để cài đặt (không chỉ) gettext là qua homebrew. Khi bạn đã cài đặt homebrew, hãy chạy brew install gettext. Sau đó, hãy đảm bảo rằng các chương trình trong /usr/local/Cellar/gettext/0.18.1.1/bin nằm trên số $PATH của bạn.

Lưu ý rằng bạn cần cài đặt Xcode cho homebrew vì nó thường cài đặt các gói từ nguồn (bạn có thể nhận Xcode cho Lion miễn phí từ Mac App Store).

Chỉnh sửa: Tôi bỏ qua rằng bạn không sử dụng Lion. Đối với Snow Leopard, bạn có thể nhận được XCode từ App Store với giá $ 5. XCode cho Leopard là tôi nghĩ trên đĩa cài đặt.

+0

Và như vậy có thể được thực hiện với [rudix] (http: //rudix.org/) (một trình quản lý gói khác): cài đặt rudix, sau đó là 'sudo rudix -i gettext'. BTW, bản thân rudix có thể được cài đặt trong [virtualenvwrapper] (http://virtualenvwrapper.readthedocs.org/en/latest/index.html). – iutinvg

93

Sau khi cài đặt, hãy thử liên kết gettext. Điều này giải quyết các vấn đề đối với tôi.

brew install gettext 
brew link gettext --force 
+0

Lệnh đó cũng đã giải quyết vấn đề tiếp theo của tôi: Lỗi: xảy ra lỗi khi chạy msguniq /bin/sh: msguniq: lệnh không tìm thấy – vinyll

+15

Tôi phải thêm --force vào lệnh cuối cùng. –

+1

Vấn đề chính của tôi là tôi không chạy lệnh 'brew link - force gettext'. Một khi tôi chạy nó, mọi thứ hoạt động như một sự quyến rũ. Cảm ơn bạn! –

5

Buộc brew link có thể dẫn đến hậu quả tiêu cực. Tốt hơn là sửa đổi PATH của môi trường ảo thay vì liên kết lực. Vì vậy,

  1. Cài đặt GNU gettext:

    brew install gettext 
    
  2. Thêm nó vào môi trường ảo của bạn:

    # 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 
    
Các vấn đề liên quan