Polib yêu cầu Python 2.7 hoặc vượt trội. Có một số cách để cài đặt polib, điều này được giải thích trong phần cài đặt.the installation section. Đối với người thiếu kiên nhẫn, phương pháp dễ nhất là cài đặt polib qua PIP, chỉ cần loại: Một danh mục getText được tạo thành từ nhiều mục, mỗi mục giữ mối quan hệ giữa một chuỗi chưa được dịch và bản dịch tương ứng của nó. Tất cả các mục trong một danh mục nhất định thường liên quan đến một dự án duy nhất và tất cả các bản dịch được thể hiện bằng một ngôn ngữ đích duy nhất. Một mục nhập tệp PO có cấu trúc sơ đồ sau:Cài đặt polib¶
Một số điều cơ bản về danh mục gettext
# translator-comments
#. extracted-comments
#: reference...
#, flag...
msgid untranslated-string
msgstr translated-string
Một mục đơn giản có thể trông như thế này:
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"
Polib có hai điểm nhập chính để làm việc với danh mục getText:
- Các hàm
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"
5 và#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"
6 để tải các tệp PO hoặc MO hiện có,load existing po or mo files, - Các lớp
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"
7 và#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"
8 để tạo các tệp PO hoặc MO mới.create new po or mo files.
Tài liệu tham khảo * Hướng dẫn sử dụng GetText * Định dạng tệp PO * Định dạng tệp MO
Đang tải các danh mục hiện có
Tải một danh mục và phát hiện mã hóa của nó
Ở đây, việc mã hóa tệp PO được phát hiện tự động bởi polib [polib phát hiện nó bằng cách phân tích cú đung trong tiêu đề của pofile]:
import polib po = polib.pofile['path/to/catalog.po']
Tải một danh mục và chỉ định rõ ràng là mã hóa
Vì một số lý do, bạn có thể muốn chỉ định mã hóa tệp một cách rõ ràng [ví dụ: vì độ chao tựa không được chỉ định trong tiêu đề tệp PO], để làm như vậy:
import polib po = polib.pofile[ 'path/to/catalog.po', encoding='iso-8859-15' ]
Đang tải một tập tin mo
Trong một số trường hợp, bạn có thể bị buộc phải tải một tệp MO [vì tệp PO không khả dụng chẳng hạn], Polib xử lý trường hợp này:
import polib mo = polib.mofile['path/to/catalog.mo'] print[mo]
Đối với các tệp PO, MOFILE cũng cho phép chỉ định mã hóa rõ ràng.
Tạo danh mục PO từ đầu
Polib cho phép bạn tạo danh mục từ đầu, điều này có thể được thực hiện với lớp Pofile, ví dụ để tạo một danh mục đơn giản mà bạn có thể làm:
import polib po = polib.POFile[] po.metadata = { 'Project-Id-Version': '1.0', 'Report-Msgid-Bugs-To': '', 'POT-Creation-Date': '2007-10-18 14:00+0100', 'PO-Revision-Date': '2007-10-18 14:00+0100', 'Last-Translator': 'you ', 'Language-Team': 'English ', 'MIME-Version': '1.0', 'Content-Type': 'text/plain; charset=utf-8', 'Content-Transfer-Encoding': '8bit', }
Đoạn trích này tạo ra một pofile trống, với siêu dữ liệu của nó và bây giờ bạn có thể thêm các mục của mình vào tệp PO như thế này:
entry = polib.POEntry[ msgid=u'Welcome', msgstr=u'Bienvenue', occurrences=[['welcome.py', '12'], ['anotherfile.py', '34']] ] po.append[entry]
Để lưu tệp của bạn vào đĩa, bạn sẽ làm:
po.save['/path/to/newfile.po']
Và để biên dịch tệp MO tương ứng:
po.save_as_mofile['/path/to/newfile.mo']
Thêm ví dụ lor
Lặp lại trên các mục
Lặp lại trên tất cả các mục [theo mặc định Pofiles chứa tất cả các mục nhập danh mục, thậm chí các mục nhập lỗi và mờ]:all entries [by default POFiles contains all catalog entries, even obsolete and fuzzy entries]:
import polib po = polib.pofile['path/to/catalog.po'] for entry in po: print[entry.msgid, entry.msgstr]
Lặp lại trên tất cả các mục ngoại trừ các mục nhập lỗi:all entries except obsolete entries:
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"0
Chỉ lặp qua các mục được dịch:
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"1
Và trên đó, bạn cũng có thể lặp lại danh sách các đối tượng poentry được trả về bởi các phương pháp pofile sau:
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"
9import polib po = polib.pofile['path/to/catalog.po']
0
Nhận phần trăm các mục được dịch
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"2
Biên dịch các tệp PO đến MO và đảo ngược các tệp MO với các tệp PO công lý
Biên dịch tệp PO:
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"3
Đảo ngược một tệp MO sang tệp PO:
#: lib/error.c:116 msgid "Unknown system error" msgstr "Error desconegut del sistema"4