.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "DEBCONF-GETTEXTIZE 1" .TH DEBCONF-GETTEXTIZE 1 "2020-12-30" "" "po-debconf" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "TÊN" .IX Header "TÊN" debconf-gettextize — trích ra tập tin \s-1PO\s0 bản dịch của mẫu debconf .SH "TÓM TẮT" .IX Header "TÓM TẮT" \&\fBdebconf-gettextize\fR [\fB\-v\fR] [\fB\-h\fR] [\fB\-\-podir=\f(BITHƯ_MỤC\fB\fR] [\fB\-\-choices\fR] [\fB\-\-merge\fR] \fIchủ\fR [\fIchủ\fR ...] .SH "MÔ TẢ" .IX Header "MÔ TẢ" Các tập tin \fI/var/lib/dpkg/info/*.templates\fR đượ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 \fItemplates\fR chủ chỉ chứa văn bản tiếng Anh, còn tập tin \fItemplates.\fIxx\fI\fR chứa các chuỗi cả hai gốc và được dịch cho ngôn ngữ \fIxx\fR. Chương trình \fBdebconf-mergetemplate\fR đã trộn các tập tin mẫu chủ và được dịch. .PP Bản thực hiện mới với \f(CW\*(C`po\-debconf\*(C'\fR dựa vào \f(CW\*(C`gettext\*(C'\fR. 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 \s-1POT\s0; người dịch làm việc với tập tin \s-1PO\s0 chuẩn; và \fBpo2debconf\fR tạo ra một tập tin mẫu đã trộn có cùng cấu trúc. .PP Chương trình \fBdebconf-gettextize\fR đã được thiết kế ban đầu để giúp nâng cấp lên bản thức hiện mới. .IP "\(bu" 2 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 \fIpo/*.po\fR cho mỗi ngôn ngữ sang đó chuỗi đã được dịch. .IP "\(bu" 2 Mỗi tập tin nhập vào có tên mới với hậu tố \f(CW\*(C`.old\*(C'\fR (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. .IP "\(bu" 2 Tập tin \fIpo/POTFILES.in\fR cũng được tạo. Nó chứa danh sách các tập tin \&\fItemplates\fR nên được \fBdebconf-updatepo\fR xử lý. .PP Bình thường chương trình \fBdebconf-gettextize\fR 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 \f(CW\*(C`po\-debconf\*(C'\fR, nhưng nó cũng có thể được dùng về sau để chuyển dạng một trường \f(CW\*(C`_Choices\*(C'\fR sang \&\f(CW\*(C`_\|_Choices\*(C'\fR (hay ngược lại) mà không mất bản dịch, khi dùng cờ \f(CW\*(C`\-\-merge\*(C'\fR (cùng với \f(CW\*(C`\-\-choices\*(C'\fR hay không). Mẫu đã muốn mà chứa các trường \&\f(CW\*(C`_Choices\*(C'\fR hay \f(CW\*(C`_\|_Choices\*(C'\fR 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 \fBdebconf-gettextize\fR dưới dạng một đối số. Sau đó thì làm các bước sau : .IP "1." 3 \&\fBpo2debconf\fR được chạy trên tập tin mẫu này để tạo ra một tập tin mẫu đã dịch. .IP "2." 3 Tập tin mẫu đã dịch thì được xử lý như nói trên, và các tập tin \s-1PO\s0 được tạo ra. .IP "3." 3 Tập tin \s-1PO\s0 mới tạo được trộn với tập tin \s-1PO\s0 đã tồn tại. .PP Trộn các tập tin \s-1PO\s0 thì mỗi trường kiểu \f(CW\*(C`_Choices\*(C'\fR phải bị thay thế bằng kiểu\f(CW\*(C`_\|_Choices\*(C'\fR (hay ngược lại) trong tập tin mẫu gốc trước khi chạy \&\fBdebconf-updatepo\fR, không thì các bản dịch mới bị đánh dấu « dịch mờ ». .SH "TÙY CHỌN" .IX Header "TÙY CHỌN" .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Hiển thị bản tóm tắt cách sử dụng chương trình, sau đó thoát. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-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). .IP "\fB\-\-podir=\f(BITHƯ_MỤC\fB\fR" 4 .IX Item "--podir=THƯ_MỤC" Đặt thư mục chứa các tập tin \s-1PO.\s0 Mặc định là tìm các tập tin \s-1PO\s0 trong thư mục con \fIpo\fR bên dưới vị trí của tập tin chủ thứ nhất. .IP "\fB\-\-choices\fR" 4 .IX Item "--choices" Mặc định là \fBdebconf-gettextize\fR thay thế các trường kiểu \f(CW\*(C`Choices\*(C'\fR bằng kiểu \f(CW\*(C`_Choices\*(C'\fR. Bật cờ này thì ghi trường kiểu \f(CW\*(C`_\|_Choices\*(C'\fR thay vào đó. .IP "\fB\-\-merge\fR" 4 .IX Item "--merge" Bật cờ này thì các chuỗi được trộn với các tập tin \s-1PO\s0 đã tồn tại. Không sửa đổi tập tin mẫu hay \fIpo/POTFILES.in\fR. .SH "CẨN THẬN" .IX Header "CẨN THẬN" Trường \f(CW\*(C`Default\*(C'\fR là đặc biệt khi mẫu có kiểu \f(CW\*(C`Select\*(C'\fR hay \f(CW\*(C`Multiselect\*(C'\fR, vì phải chọn một giá trị trong danh sách các tùy chọn \fBEnglish\fR, 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 \f(CW\*(C`Default\*(C'\fR đã địa phương hoá cũng là đặc biệt, theo quy ước bạn cần phải gọi nó \f(CW\*(C`_DefaultChoice\*(C'\fR thay cho \f(CW\*(C`_Default\*(C'\fR. .SH "XEM CŨNG" .IX Header "XEM CŨNG" \&\fBdebconf\-updatepo\fR\|(1), \fBpo2debconf\fR\|(1), \fBdebconf\-devel\fR\|(7), \&\fBpo\-debconf\fR\|(7). .SH "TÁC GIẢ" .IX Header "TÁC GIẢ" .Vb 2 \& Denis Barbier \& Martin Quinson .Ve