# TÊN

debconf-gettextize — trích ra tập tin PO bản dịch của mẫu debconf

# TÓM TẮT

debconf-gettextize [-v] [-h] [--podir=THƯ_MỤC] [--choices] [--merge] chủ [chủ ...]

# MÔ TẢ

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 :

1. 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.

2. 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.

3. 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ờ ».

# TÙY CHỌN

-h, --help

  Hiển thị bản tóm tắt cách sử dụng chương trình, sau đó thoát.

-v, --verbose

  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).

--podir=THƯ_MỤC

  Đặ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.

--choices

  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 đó.

--merge

  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.

# CẨN THẬN

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`.

# XEM CŨNG

debconf-updatepo(1), po2debconf(1), debconf-devel(7), po-debconf(7).

# TÁC GIẢ

      Denis Barbier <barbier@linuxfr.org>
      Martin Quinson <martin.quinson@ens-lyon.fr>