debconf-gettextize — trích ra tập tin PO bản dịch của mẫu debconf
debconf-gettextize [-v] [-h] [--podir=THƯ_MỤC] [--choices] [--merge] chủ [chủ ...]
Các tập tin /var/lib/dpkg/info/*.templates được debconf đọc thì chứa cả văn bản tiếng Anh lẫn bản dịch đều trong cùng tập tin. Tuy nhiên, trong gói mã nguồn các bản dịch được quản lý trong tập tin riêng để giúp người dịch. Trong bản thực hiện đầu tiên, một tập tin templates chủ chỉ chứa văn bản tiếng Anh, còn tập tin templates.xx chứa các chuỗi cả hai gốc và được dịch cho ngôn ngữ xx. Chương trình debconf-mergetemplate đã trộn các tập tin mẫu chủ và được dịch.
Bản thực hiện mới với po-debconf
dựa vào gettext
. Nhà duy trì đánh dấu mỗi trường có thể dịch được bằng cách thêm dấu gạch dưới vào trước; các chuỗi tiếng Anh được trích tự động ra một tập tin POT; người dịch làm việc với tập tin PO chuẩn; và po2debconf tạo ra một tập tin mẫu đã trộn có cùng cấu trúc.
Chương trình debconf-gettextize đã được thiết kế ban đầu để giúp nâng cấp lên bản thức hiện mới.
Nó đọc một danh sách các tập tin chủ và các bản dịch tương ứng, rồi tạo ra các tập tin po/*.po cho mỗi ngôn ngữ sang đó chuỗi đã được dịch.
Mỗi tập tin nhập vào có tên mới với hậu tố .old
(cũ), và một tập tin chủ mới ghi đè lên tập tin cũ; nó trùng với tập tin chủ trước, trừ có một dấu gạch dưới đằng trước mỗi trường có thể dịch được. Nhà phát triển thì có thể chọn những trường cần dịch, và những trường cần bỏ qua vì không chứa giá trị phụ thuộc vào miền địa phương.
Tập tin po/POTFILES.in cũng được tạo. Nó chứa danh sách các tập tin templates nên được debconf-updatepo xử lý.
Bình thường chương trình debconf-gettextize nên được chạy chỉ một lần khi chuyển dạng từ bản thực hiện thứ nhất sang định dạng po-debconf
, nhưng nó cũng có thể được dùng về sau để chuyển dạng một trường _Choices
sang __Choices
(hay ngược lại) mà không mất bản dịch, khi dùng cờ --merge
(cùng với --choices
hay không). Mẫu đã muốn mà chứa các trường _Choices
hay __Choices
cần sửa đổi thì phải được sao chép vào một tập tin mẫu tạm thời, mà được gửi qua cho debconf-gettextize dưới dạng một đối số. Sau đó thì làm các bước sau :
po2debconf được chạy trên tập tin mẫu này để tạo ra một tập tin mẫu đã dịch.
Tập tin mẫu đã dịch thì được xử lý như nói trên, và các tập tin PO được tạo ra.
Tập tin PO mới tạo được trộn với tập tin PO đã tồn tại.
Trộn các tập tin PO thì mỗi trường kiểu _Choices
phải bị thay thế bằng kiểu__Choices
(hay ngược lại) trong tập tin mẫu gốc trước khi chạy debconf-updatepo, không thì các bản dịch mới bị đánh dấu « dịch mờ ».
Hiển thị bản tóm tắt cách sử dụng chương trình, sau đó thoát.
Xử lý ở chế độ chi tiết (xuất nhiều dữ liệu diễn tả tiến trình, hữu ích để gỡ lỗi).
Đặt thư mục chứa các tập tin PO. Mặc định là tìm các tập tin PO trong thư mục con po bên dưới vị trí của tập tin chủ thứ nhất.
Mặc định là debconf-gettextize thay thế các trường kiểu Choices
bằng kiểu _Choices
. Bật cờ này thì ghi trường kiểu __Choices
thay vào đó.
Bật cờ này thì các chuỗi được trộn với các tập tin PO đã tồn tại. Không sửa đổi tập tin mẫu hay po/POTFILES.in.
Trường Default
là đặc biệt khi mẫu có kiểu Select
hay Multiselect
, vì phải chọn một giá trị trong danh sách các tùy chọn English, ngay cả đối với giá trị đã địa phương hoá. Bình thường không cho phép thay đổi trường này, nhưng trong rất ít trường hợp, giá trị đã địa phương hoá vẫn có ý nghĩa (v.d. để chọn ngôn ngữ mặc định của ứng dụng). Để cho người dịch biết trường Default
đã địa phương hoá cũng là đặc biệt, theo quy ước bạn cần phải gọi nó _DefaultChoice
thay cho _Default
.
debconf-updatepo(1), po2debconf(1), debconf-devel(7), po-debconf(7).
Denis Barbier <barbier@linuxfr.org>
Martin Quinson <martin.quinson@ens-lyon.fr>