DEBCONF-GETTEXTIZE(1) | po-debconf | DEBCONF-GETTEXTIZE(1) |
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.
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 :
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ờ ».
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>
2020-12-30 |