dwww Home | Manual pages | Find package

PO-DEBCONF(7)                     po-debconf                     PO-DEBCONF(7)

TÊN
       po-debconf — giới thiệu

 TẢ
       Mục đích của "debconf" là làm cho tiến trình cấu hình gói là thân thiện
       với người dùng. Để đạt được, quan trọng là đảm bảo mỗi người dùng sẽ
       thấy câu hỏi bằng ngôn ngữ mẹ đẻ. Người dịch yêu cầu một khuôn khổ để
       dịch dễ dàng mà không cần theo dõi tiến trình phát triển gói phần mềm.
       "po-debconf" đã được thiết kế để chạy đúng với các công cụ "gettext"
       tiêu chuẩn khi dịch tập tin mẫu debconf.

THÊM HỔ TRỢ I18N VÀO TẬP TIN MẪU DEBCONF
       Muốn thêm hỗ trợ debconf vào gói thì bạn đã ghi một tập tin mẫu chứa
       văn bản tiếng Anh (ngôn ngữ gốc). Để thêm khả năng hỗ trợ tiến trình
       quốc tế hoá (i18n) vào gói, bạn cần phải:

       • Tạo debian/po/POTFILES.in
           Tập tin này chứa danh sách các mẫu chủ. Bình thường nó chứa chỉ một
           dòng riêng lẻ:

             [type: gettext/rfc822deb] templates

           Đường dẫn tương đối với thư mục cha.

       • Thêm một dấu gạch dưới vào trước mọi trường có thể dịch được trong
       mỗi mẫu
           Bình thường có thể dịch được các trường kiểu "Description",
           "Choices" và đôi khi "Default".

       • Chạy debconf-updatepo
           Tiến trình này sẽ tạo tập tin debian/po/templates.pot mà người dịch
           sẽ dịch sang ngôn ngữ khác.

       • Thêm vào debian/control một quan hệ phụ thuộc xây dựng vào
       "po-debconf".

CẬP NHẬT MẪU
       Để giúp đỡ người dịch thì bạn nên bảo tồn một gói phần mềm có các tập
       tin PO hiện thời. (Không thì người dịch hoài phí thì giờ vì dịch chuỗi
       vô ích.) Để cứ cập nhật các tập tin PO, hãy gọi câu lệnh theo đây
       (không có đối số):

         $ debconf-updatepo

       Để duy trì các tập tin PO hiện thời, bạn nên chạy lệnh này mỗi lần thay
       đổi chuỗi tiếng Anh trong mẫu. Cũng nên chạy nó khi bạn nhận bản dịch
       mới hay bản dịch đã cập nhật, vì người dịch có thể đã dịch tập tin PO
       cũ.

       Nếu bạn thay tên, thêm hay gỡ bỏ bất kỳ tập tin mẫu, cũng nhớ để chỉnh
       sửa tập tin debian/po/POTFILES.in một cách tương ứng. Không thì một số
       chuỗi tiếng Anh bị thiếu trong tập tin PO; các chuỗi tiếng Anh này sẽ
       được hiển thị cho người dùng xem, thậm chí nếu các tập tin PO đã được
       dịch hoàn toàn.

       Chương trình debconf-updatepo là luỹ đẳng: nó sửa đổi tập tin PO chỉ
       nếu nội dung bị cập nhật. Vì vậy phương pháp tốt nhất cung cấp các tập
       tin PO hiện thời trong gói mã nguồn là gọi câu lệnh này từ đích "clean"
       của tập tin debian/rules.

       Ghi chú rằng bạn cần phải chạy debconf-updatepo thậm chí nếu bạn sử
       dụng dh_installdebconf. Hàm thứ hai này gọi po2debconf mà từng gọi
       debconf-updatepo nếu phát hiện tập tin bị lỗi thời, nhưng không còn là
       trường hợp lại vì hai lý do :

       1. po2debconf nhờ nhãn giờ để phát hiện tập tin bị lỗi thời, và có thể
          không chạy đúng khi dùng "pbuilder" hoặc nếu bản dịch cũ đã được lưu
          vào đĩa sau khi mẫu bị sửa đổi.

       2. dh_installdebconf được gọi đã lâu sau khi tạo ra tập tin ".diff.gz".

TRỘN BẢN DỊCH VỚI BẢN GỐC
       Bạn cần phải kiểm tra các bản dịch được hợp nhất trong gói đã xây dựng
       khi nó được biên dịch. Bạn có thể tự kiểm tra, hoặc tự động kiểm tra
       bằng cách sử dụng văn lệnh dh_installdebconf (hãy đảm bảo có một quan
       hệ phụ thuộc xây dựng đặt phiên bản với "debhelper (>= 4.1.16)").

       Để tự kiểm tra, bạn cần phải trộn các mẫu với các bản dịch vào lúc biên
       dịch (và đặt quan hệ phụ thuộc xây dựng với "po-debconf") như thế:

         $ po2debconf debian/templates > debian/tmp/DEBIAN/templates

       BE CAREFUL: hai tập tin tên templates không phải trùng nhau. Tập tin
       thứ nhất chứa chỉ văn bản gốc (thường là tiếng Anh), và đánh dấu một số
       trường cần dịch, còn tập tin thứ hai chứa tất cả các ngôn ngữ. Vì vậy
       bạn KHÔNG thể giữ chỉ những mẫu đã trộn: có giữ thì bạn không thể xử lý
       mỗi bản dịch được đệ trình.

MẪU CHỦ MỚI
       Định dạng nguồn tập tin mẫu mới là gần trùng với một của những tập tin
       mẫu đã phát hành, nhưng mỗi trường có thể dịch được có dấu gạch dưới
       nằm trước. Thí dụ :

         Template: debconf/frontend
         Type: select
         _Choices: Dialog, Readline, Gnome, Editor, Noninteractive
         Default: Dialog
         _Description: Interface to use for configuring packages:
          Packages that use debconf for configuration share a common look and
          feel.  You can select the type of user interface they use.
          .
          The dialog frontend is a full-screen, character based interface,
          while the readline frontend uses a more traditional plain text
          interface, and the gnome frontend is a modern X interface.  The
          editor frontend lets you configure things using your favorite text
          editor. The noninteractive frontend never asks you any questions.

   XẺ DANH SÁCH TÙY CHỌN
       Kể từ "po-debconf" 0.6.0, trường đã địa phương hoá có thể chứa hai dấu
       gạch dưới đi trước. Trong trường hợp này, giá trị trường nên là một
       danh sách các giá trị định giới bằng dấu phẩy, mỗi chuỗi msgid thì chứa
       một giá trị. Do đó, nếu mẫu ví dụ trước chứa

         __Choices: Dialog, Readline, Gnome, Editor, Noninteractive

       thì tạo 5 chuỗi msgid khác nhau. Ghi chú rằng dấu cách nằm sau dấu phẩy
       không có nghĩa.

       Có một danh sách sự chọn không bao giờ biến đổi thì "_Choices" là đúng.
       Tuy nhiên, chia tách danh sách như vậy có thể giúp tránh lỗi thường gặp
       trong bản dịch (v.d. bỏ sót một sự chọn, sử dụng dấu phẩy không tiêu
       chuẩn). Vì lý do này, rất khuyên bạn sử dụng "__Choices" để thay thế.

       Tiếc là nếu bạn chuyển đổi từ "_Choices" sang "__Choices" thì cũng làm
       cho mọi chuỗi dịch là dịch mờ (fuzzy). Tuy nhiên, có một phương pháp
       chuyển đổi như thế mà không mất trạng thái về chuỗi dịch (phương pháp
       này yêu cầu "po-debconf" >= 1.0). Muốn chuyển đổi mẫu ví dụ trước sang
       "__Choices": trước tiên cần sao chép tập tin templates vào một tập tin
       tạm thời.

         $ cp debian/templates debian/foo

       Sửa debian/foo, giữ chỉ những trường "Template", "Type" và "_Choices"
       mà nằm trong thí dụ này.

         Template: debconf/frontend
         Type: select
         _Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive

       Chạy debconf-gettextize với hai cờ "--merge" và "--choices" để xây dựng
       các tập tin PO như thể là "__Choices" đã được ghi, và trộn các tập tin
       PO này với các tập tin đã tồn tại:

         $ debconf-gettextize --merge --choices debian/foo

       Cuối cùng bạn cần phải gỡ bỏ foo và tự chỉnh sửa debian/templates để
       thay thế "_Choices" bằng "__Choices" trước khi chạy debconf-updatepo.

   GHI CHÚ DÀNH CHO NGƯỜI DỊCH
       Các nhà duy trì "Dpkg" đã quyết định rằng theo quy ước mỗi dòng bắt đầu
       với dấu thăng ("#") là chú thích trong tập tin debian/control:
       "po-debconf" cũng theo quy ước này. Kể từ "po-debconf" 0.8.0, các chú
       thích như vậy được ghi vào tập tin PO, và có thể chứa thông tin hữu ích
       cho người dịch. Hơn nữa, các phiên bản "po-debconf" trước bỏ qua mọi
       dòng không chứa dấu hai chấm, vì vậy nếu chú thích không chứa dấu hai
       chấm thì không cần thêm quan hệ phụ thuộc xây dựng lập phiên bản đối
       với "po-debconf". Thí dụ :

         Template: debconf/button-yes
         Type: text
         # Translators, this text will appear on a button, so KEEP IT SHORT
         _Description: Yes

       Chú thích đặc biệt đã được giới thiệu trong "po-debconf" 1.0 để quản lý
       chuỗi chứa vài mục khác nhau (như trong trường Choices) hay vài đoạn
       văn khác nhau (như Description). Hai chỉ thị này cho nhà phát triển
       điều khiển hữu ích hơn thông tin được hiển thị cho người dịch. Chú
       thích này theo dạng "#flag:directive"; các chỉ thị được diễn tả bên
       dưới.

       translate:spec, translate!:spec
          Đánh dấu chỉ một số mục là « có thể dịch được »; spec là danh sách
          con số định giới bằng dấu phẩy, nó xác định những chuỗi nào sẽ được
          in ra tập tin PO. Cũng có thể xác định phạm vi bằng dấu trừ (v.d.
          "2-6"), và dấu sao ("*") có nghĩa « mọi chuỗi ». Chẳng hạn, đối với

            Template: partman-basicfilesystems/fat_mountpoint
            Type: select
            #flag:translate:3,4
            __Choices: /dos, /windows, Enter manually, Do not mount it
            _Description: Mount point for this partition:

          Hai mục "Enter manually" và "Do not mount it" sẽ xuất hiện trong tập
          tin PO, nhưngkhông phải hai mục "/dos" và "/windows". Có dấu chấm
          than nằm sau từ khoá translate thì spec xác định những chuỗi nào sẽ
          bị hủy ra tập tin PO: các chuỗi khác được in ra. Thí dụ trước tương
          tự với

            Template: partman-basicfilesystems/fat_mountpoint
            Type: select
            #flag:translate!:1,2
            __Choices: /dos, /windows, Enter manually, Do not mount it
            _Description: Mount point for this partition:

          Có thể áp dụng cùng từ khoá cho trường Description để đảm bảo một số
          chuỗi riêng sẽ không được dịch.

            Template: partman-crypto/options_missing
            Type: error
            #flag:translate!:3
            _Description: Required encryption options missing
             The encryption options for ${DEVICE} are incomplete. Please
             return to the partition menu and select all required options.
             .
             ${ITEMS}

          Nhưng mà trường hợp này nguy hiểm, vì ngữ cảnh có thể bị hủy ra tập
          tin PO: hãy ghi chú để cho người dịch thông tin cần thiết.

       comment:spec, comment!:spec
          Ghi chú đúng bên dưới chỉ thị này áp dụng cho những chuỗi được ghi
          rõ bởi spec, mà được xác định bên trên. Mặc định là ghi chú được ghi
          vào đằng trước một trường có thể dịch được thì được in ra cùng với
          tất cả các chuỗi thuộc về trường đó. (Ghi chú : dùng "po-debconf" <
          1.0, ghi chú được ghi chỉ với chuỗi thứ nhất.)

            Template: arcboot-installer/prom-variables
            Type: note
            # Translators, the 4th string of this description has been dropped
            # from PO files.  It contains shell commands and should not be
            # translated.
            #flag:comment:3
            # "Stop for Maintenance" should be left in English
            #flag:translate!:4
            _Description: Setting PROM variables for Arcboot
             If this is the first Linux installation on this machine, or if the
             hard drives have been repartitioned, some variables need to be set
             in the PROM before the system is able to boot normally.
             .
             At the end of this installation stage, the system will reboot.
             After this, enter the command monitor from the "Stop for
             Maintenance" option, and enter the following commands:
             .
                setenv OSLoader arcboot
                setenv OSLoadFilename Linux
             .
             You will only need to do this once.  Afterwards, enter the "boot"
             command or reboot the system to proceed to the next stage of the
             installation.

          Thí dụ bên trên có một ghi chú mà không dùng chỉ thị
          "#flag:comment", vào đó một "#flag:comment:*" ngầm được thêm. Ghi
          chú này xuất hiện với mọi chuỗi, nhưng lời về Stop for Maintenance
          được in ra chỉ đằng trước chuỗi thích hợp.

       partial
          Từ khoá này báo po2debconf nên giữ lại các chuỗi đã dịch, thậm chí
          nếu chưa dịch mọi chuỗi. Hãy sử dụng cẩn thận: từ khoá này đã được
          giới thiệu nhằm mục đích chính xác.

   THÔNG BÁO NGƯỜI DỊCH TRƯỚC KHI TẢI LÊN
       Dù người dịch có thể thấy bản dịch cũ trên các trang Web trạng thái
       (xem dưới), và gửi đắp vá để bao gồm trong bản tải lên về sau, người
       dịch (giống như nhà phát triển) có ít thời gian rảnh. Để tiết kiệm thời
       gian cho cả hai nhà phát triển và người dịch, và cải tiến tiến trình
       liên lạc giữa cả hai, Dự án Debian cung cấp một công cụ chuyên dụng,
       podebconf-report-po. Dùng công cụ này, bạn có thể yêu cầu người dịch
       trước cập nhật bản dịch (v.d. 2 tuần đằng trước ngày tải lên), cuối
       cùng nhận nhiều bản dịch được cập nhật hơn. Rất khuyên nhà phát triển
       sử dụng công cụ này.

GỠ RỐI
       debconf-loadtemplate không chấp nhận tập tin mẫu có mã đánh dấu quốc tế
       hoá. Tuy nhiên, nó có phải chấp nhận một tập tin hoà trộn, thì nếu bạn
       từng gỡ rối thiết lập debconf như thế

         rm /tmp/{config,templates}.dat{,-old}
         debconf-loadtemplate debian/templates
         DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0

       bây giờ bạn cần phải sử dụng (v.d.):

         po2debconf debian/templates > debian/tmp/DEBIAN/templates
         rm /tmp/{config,templates}.dat{,-old}
         debconf-loadtemplate debian/tmp/DEBIAN/templates
         DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0

CẨN THẬN
       • "Debconf" 1.2.0 nhận ra trường theo dạng Name-lang.encoding, v.d.
         "Description-de.ISO-8859-1" hay "Choices-vi.UTF-8".  Mặc định là
         po2debconf ghi các tập tin mẫu theo định dạng mới đó. "debconf" cũ sẽ
         bỏ qua các trường này, chỉ hiển thị văn bản gốc (thường là tiếng
         Anh). Xem po2debconf(1) để biết cách thay đổi bảng mã và định dạng
         kết xuất.

       • Một chuỗi tiếng Anh đưa ra có thể nhận bằng mỗi ngôn ngữ chỉ một bản
         dịch duy nhất. Không thể cung cấp được hai bản dịch khác nhau phụ
         thuộc vào ngữ cảnh. Để giải quyết vấn đề này, bạn cần phải đánh dấu
         đặc biệt các lần gặp chuỗi khác nhau, để tạo nhiều chuỗi riêng. (Dấu
         này chỉ hiển thị cho người dịch: nó bị gỡ bỏ ra chuỗi trước khi người
         dùng xem.)

         Dấu như vậy phải được phụ thêm vào chuỗi cần dịch: nó phải bắt đầu
         với "[ " (dấu ngoặc mở có dấu cách theo sau) và kết thúc với "]" (dấu
         ngoặc đóng), và có thể chứa bất cứ ký tự nào trừ dấu ngoặc hay ký tự
         dòng mới. Chẳng hạn, "[ bi_bô]" là dấu hợp lệ, còn "[ bi[bô]bi]"
         không phải. Các dấu này bị gỡ bỏ bằng biểu thức chính quy này:

           $msg =~ s/\[\s[^\[\]]*\]$//s;

       • Khoảng cách không phải được xử lý một cách trùng bởi "po-debconf" và
         "debconf-utils"; hàm thứ hai định dạng lại các đoạn văn khi cập nhật
         và trộn các bản dịch, vì vậy "debconf-utils" rất khéo, dấu cách không
         phải được xử lý là một phần của chuỗi khi quyết định chuỗi nào được
         dịch mờ (fuzzy: chuỗi có bản dịch cần chỉnh sửa vì chuỗi gốc bị thay
         đổi).

         Mặt khác, "po-debconf" nhờ "gettext" phát hiện chuỗi dịch mờ, và nó
         không xử lý dấu cách như ký tự đặc biệt. Vì vậy, các dấu cách thừa
         phải bị gỡ bỏ ra kết thúc dòng trong mỗi mẫu chủ, để tránh xuất hiện
         trong các tập tin PO va POT.

         Vì lý do tương tự, debconf-gettextize có khả năng đánh dấu chuỗi là «
         dịch mờ » do các ký tự khoảng cách khác nhau, thì người dịch cần phải
         tự chỉnh sửa mỗi chuỗi như vậy. Trường hợp này chỉ xảy ra một lần khi
         chuyển đổi mẫu sang định dạng "po-debconf", trừ bạn thay đổi khoảng
         cách một cách ngẫu nhiên trong tập tin chủ, mà làm phiền các người
         dịch.

       • Bình thường không nên dịch trường Default: khi mẫu có kiểu Select hay
         Multiselect. Trong rất ít trường hợp (v.d. khi chọn ngôn ngữ mặc định
         cho ứng dụng), giá trị đã địa phương hoá cũng có ích.

         Không nên dịch giá trị đã địa phương hoá: nên chọn nó trong những giá
         trị tiếng Anh được liệt kê trong trường Choices. Phương pháp tốt nhất
         để làm như thế là ghi chú vào tập tin mẫu : chú thích này sẽ cũng
         được sao chép vào các tập tin PO.

           Template: geneweb/lang
           Type: select
           __Choices: Danish (da), Dutch (nl), English (en), Esperanto (eo)
           #  You must NOT translate this string, but you can change its value.
           #  The comment between brackets is used to distinguish this msgid
           #  from the one in the Choices list; you do not have to worry about
           #  them, and have to simply choose a msgstr among the English values
           #  listed in the Choices field above, e.g. msgstr "Dutch (nl)"
           _Default: English (en)[ default language]
           _Description: Geneweb default language

         Giá trị mặc định cũng xuất hiện trong trường Choices, và mỗi giá trị
         có bản dịch riêng: giá trị thứ nhất là giá trị chưa được dịch mà được
         chọn trong các giá trị Choices, còn giá trị thứ hai là bản dịch
         chuẩn. Vì "gettext" không thể chứa hai bản dịch khác nhau cho cùng
         một msgid, mỗi msgids phải được khác biệt bằng chú thích nằm trong
         dấu ngoặc, như diễn tả trong phần con trên.

         Trước "po-debconf" 0.8.0, không có khả năng ghi chú như vậy nên nhà
         duy trì phải thay thế trường _Default: bằng _DefaultChoice: để phân
         biệt trường riêng trong tập tin PO:

           #. DefaultChoice
           msgid ""
           "English[ default: do not translate bracketed material, put your "
           "own language here but UNTRANSLATED.  If it is not in the list, "
           "put English (without bracketed material)]"
           msgstr ""
           "Swedish"

         Chú thích chuẩn trong tập tin mẫu ít bị lỗi hơn thì khuyến khích.

TRANG WEB TRẠNG THÁI
       Thống kê về bản dịch "po-debconf" sẵn sàng ở
       <http://www.debian.org/intl/l10n/po-debconf/> (hoặc từ máy nhân bản);
       tất cả được tự động cập nhật khi gói mới được tải lên. Chỉ gói có sẵn
       tập tin debian/po/templates.potdebian/po/POTFILES.in được xử lý, vì
       vậy bạn nên kiểm tra gói mã nguồn chứa các tập tin này.

       Người dịch có thể lấy tập tin PO và POT từ trang trạng thái, nhưng cũng
       nên liên lạc với người dịch trước (địa chỉ thư điện tử nằm trong phần
       đầu của tập tin PO) và/hay nhóm dịch trong hộp thư chung
       debian-l10n-<language>@lists.debian.org (nếu có : một số nhóm dịch dùng
       hộp thư chung bên ngoài) để kiểm tra không có người dịch khác đảm nhận
       cùng bản dịch, và đọc các báo cáo lỗi hiện thời về gói đó để kiểm tra
       bản dịch đã được đệ trình chưa.

       Sau khi dịch tập tin thì người dịch nên đệ trình bản dịch cho nhà duy
       trì bằng cách gửi một báo cáo lỗi có mức quan trọng wishlist và thẻ
       patch.

XEM CŨNG
       debconf-gettextize(1), debconf-updatepo(1), dh_installdebconf(1),
       podebconf-report-po(1), po2debconf(1), debconf-devel(7).

TÁC GIẢ
         Martin Quinson <Martin.Quinson@ens-lyon.fr>
         Denis Barbier <barbier@linuxfr.org>

                                  2020-12-30                     PO-DEBCONF(7)

Generated by dwww version 1.15 on Mon Jul 1 05:02:40 CEST 2024.