2012-07-12 17 views
6

Tôi muốn dịch các chuỗi trong ứng dụng Python trên Mac OS X 10.7 của mình. Tôi có thể nhập mô-đun gettext nhưng tôi không thể tìm thấy các công cụ pygettext.pymsgfmt.py, theo tài liệu Python nên ở đâu đó trong cài đặt Python của tôi.pygettext.py và msgfmt.py trên Mac OS X

Phiên bản Python được cài đặt sẵn trên Mac OS X 10.7 thiếu các công cụ này và nếu có, làm thế nào tôi có thể nhận được chúng?

Cảm ơn.

Trả lời

7

Cả hai tập lệnh đó đều nằm trong thư mục Công cụ linh tinh của nguồn Python. Thư mục này thường không được bao gồm trong bản cài đặt nhị phân của Python, chẳng hạn như những cái mà Apple cung cấp trong OS X. Tuy nhiên, thật dễ dàng để tải chúng một cách riêng biệt từ một bản phát hành nguồn Python; xem các bản phát hành gần đây nhất here. Đối với dòng điện Python 2.7.3 phát hành, bạn có thể làm như sau:

$ curl -O http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz 
$ tar -xf Python-2.7.3.tgz 
$ cd Python-2.7.3 
$ cd Tools/i18n/ 
$ ls 
makelocalealias.py msgfmt.py*   pygettext.py* 

Bắt đầu với Python 3.2, thư mục Tools được cài đặt bởi python.org OS X cài đặt nhị phân. Bạn sẽ tìm thấy nó bên trong khung công tác Python tại:

/Library/Frameworks/Python.framework/Versions/3.2/share/doc/python3.2/examples/Tools 
+0

Cảm ơn, tôi đã tải về các công cụ riêng biệt. – verbit

+0

trên Mac 10.8.5 curl không hoạt động đối với tôi, nhưng 'wget http: // www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz' đã thực hiện thủ thuật – jrgray

0

Nếu bạn cài đặt Python đúng cách trong Linux, bạn có thể truy cập phiên bản nhị phân từ dòng lệnh. Vì vậy, để làm cho các tập tin .pot, bạn có thể gõ:

$> pygettext [options] source_file_list 

tôi thấy tôi có hai phiên bản của pygettext, một cho 2.7, và một cho 3.2, nhưng họ dường như làm việc khá nhiều như nhau. Để tạo tệp .mo từ tệp .po:

$> msgfmt [options] file.po 

nhưng bạn cần đảm bảo bạn không vô tình sử dụng phiên bản gnu. Phiên bản Python của msgfmt đơn giản hơn rất nhiều. Cả hai lệnh có sự giúp đỡ, vì vậy bạn có thể kiểm tra các tùy chọn (và các phiên bản) với:

$> pygettext --help 

$> msgfmt --help 

Nếu nghi ngờ, tải nguồn Python như gợi ý ở trên là vành đai-and-niềng răng tiếp cận.

tôi vẫn đang tìm kiếm con đường của tôi tròn i18n bản thân mình, vì vậy nếu ai đó biết tốt hơn, xin vui lòng thêm ý kiến ​​của bạn :)

7

Với python 3 và hệ điều hành MacOS> = 10,9, lắp đặt gettext qua homebrew sẽ không liên kết các thư viện và điều này sẽ tạo ra lỗi Can't find msgfmt.

này giúp:

$ brew install gettext # if not already done 
$ brew link gettext --force 

Nhờ https://stackoverflow.com/a/8785138/621690