KDE Localization/vi/checking: Difference between revisions

From KDE Community Wiki
(Add a note to the build procedure)
(Highlight the notice)
Line 60: Line 60:
</syntaxhighlight>}}
</syntaxhighlight>}}
: Tất cả các bản dịch đã được đưa vào {{Path | $HOME/.local/share/locale/<mã_vùng>/LC_MESSAGES/}}. Giờ bạn cần đổi ngôn ngữ hiển thị trong <small>Thiết lập Hệ thống</small> (<small>System Settings</small>) và đăng nhập lại.
: Tất cả các bản dịch đã được đưa vào {{Path | $HOME/.local/share/locale/<mã_vùng>/LC_MESSAGES/}}. Giờ bạn cần đổi ngôn ngữ hiển thị trong <small>Thiết lập Hệ thống</small> (<small>System Settings</small>) và đăng nhập lại.
: '''Chú ý''': Nếu dùng SVN thì bạn cần báo cho SVN biết là nên bỏ qua các tệp <tt>CMakeLists.txt</tt> và thư mục <tt>vi-build</tt> liên quan đến quá trình biên dịch trên, để không đồng bộ các thứ đó lên <small>kho</small>. Cách làm là thêm chuỗi <code>CMakeLists.txt vi-build</code> vào phần <tt>global-ignores</tt> trong {{Path|~/.subversion/config}} (với Linux).
<div class="alert alert-warning" style="overflow:auto;">
Chú ý:<br>
Nếu dùng SVN thì bạn cần báo cho SVN biết là nên bỏ qua các tệp <tt>CMakeLists.txt</tt> và thư mục <tt>vi-build</tt> liên quan đến quá trình biên dịch trên, để không đồng bộ các thứ đó lên <small>kho</small>. Cách làm là thêm chuỗi <code>CMakeLists.txt vi-build</code> vào phần <tt>global-ignores</tt> trong {{Path|~/.subversion/config}} (với Linux).
</div>

Revision as of 07:52, 8 October 2020

Trang này mô tả các bước để người dịch kiểm tra một bản dịch trước khi chuyển cho người điều phối. Tài liệu hướng dẫn bản địa hoá của KDE có đề cập đến các bước này ở https://l10n.kde.org/docs/translation-howto/check-gui.html.

Kiểm tra cú pháp tệp PO

Trên Linux với gói gettext đã được cài đặt, chạy lệnh sau trong một chương trình dòng lệnh (ví dụ Konsole):

msgfmt --statistics --check-header <đường_dẫn_đến_tệp_bản_dịch>

Kiểm tra đối số đủ hay không

Một tệp quy tắc (rule file) Pology đơn giản đã được đặt tại <KDE_SVN>/trunk/l10n-support/scripts/pology/args-accels.rules. Tệp quy tắc này định ra các quy tắc rằng chuỗi đích phải có 3 đối số đầu tiên (%1, %2, %3) nếu chuỗi nguồn có đối số tương ứng. Ví dụ nếu chuỗi nguồn chứa "%2" mà chuỗi đích không có "%2" thì Pology khi chạy kiểm tra các quy tắc này sẽ báo lỗi.

Xem cách cấu hình Lokalize để kiểm tra bằng Pology

Chú ý:
Tệp quy tắc trên mới ở dạng đơn giản, chưa xét đến trường hợp chuỗi đích có một đối số mà chuỗi nguồn không có.
Thêm nữa, có thể có thông điệp có nhiều hơn 3 đối số, Pology khi kiểm tra các quy tắc này sẽ không xử lí đối số thứ tư.

Kiểm tra nút tăng tốc (accelerator)

Tệp quy tắc Pology trên cũng định ra một quy tắc rằng chuỗi đích phải có dấu tăng tốc (&) nếu chuỗi nguồn có, Pology sẽ báo lỗi khi kiểm tra quy tắc này mà chuỗi đích không có dấu tăng tốc nào.

Chú ý:
Tương tự như với việc kiểm tra đối số, quy tắc này chưa xét đến trường hợp chuỗi đích có dấu tăng tốc mà chuỗi nguồn không có, hoặc khi cả hai chuỗi đều có nhưng số lượng dấu tăng tốc ở hai chuỗi là khác nhau (tuy nhiên có thể coi đây là trường hợp khó xảy ra).
Một vấn đề quan trọng nữa cần kiểm tra với nút tăng tốc là liệu có nút tăng tốc nào xuất hiện nhiều hơn 1 lần trong cùng một trình đơn không. Nếu bạn kiểm tra khả năng trùng lặp này bằng cách tìm và so sánh thủ công trong bản dịch, bạn phải rất cẩn thận. Hoặc hãy kiểm tra theo ngữ cảnh để có thể chắc chắn hơn.

Kiểm tra cú pháp XML

Pology hỗ trợ kiểm tra cú pháp XML với sàng (sieve) check-kde4.

Kiểm tra theo ngữ cảnh

Có các cách sau:

  • Nội dung chuỗi ngữ cảnh "msgctxt" và dẫn giải (comment) của người lập trình, nếu có, đều được hiển thị ở ô Siêu dữ liệu đơn vị (Unit metadata) trong Lokalize.
  • Thông tin về nơi thông điệp xuất hiện trong mã nguồn cũng được hiển thị ở ô này trong Lokalize, dưới dạng liên kết mà khi bấm vào, bạn sẽ được Lokalize hỏi là tìm tệp mã nguồn đó trên máy cục bộ hay ở lxr.kde.org. Nếu bạn có thể đọc và hiểu (đoán) được mã nguồn, trong nhiều trường hợp thì thế là đủ để hiểu được ý nghĩa thông điệp cần dịch.
  • Bạn có thể thấy được ngữ cảnh thật sự của bản dịch bằng cách xem các thông điệp đã được dịch trong chính chương trình cần dịch. Các bước sau đều thực hiện trên Linux với gói gettext đã được cài đặt, các lệnh cần được chạy trong một chương trình dòng lệnh (ví dụ Konsole).
Nếu chỉ quan tâm đến một ứng dụng cụ thể, ví dụ Dolphin:
# Dòng này và các đoạn màu xanh chỉ là chú thích, không phải lệnh
msgfmt <đường_dẫn_đến_dolphin.po> # Chương trình msgfmt biên dịch dolphin.po thành messages.mo
# Với <mã_vùng> là "vi" cho tiếng Việt, chỉ cần chạy 1 trong 2 lệnh dưới đây
sudo mv messages.mo /usr/share/locale/<mã_vùng>/LC_MESSAGES/dolphin.mo # đưa vào thư mục hệ thống
mv messages.mo ~/.local/share/locale/<mã_vùng>/LC_MESSAGES/dolphin.mo # đưa vào thư mục của người dùng
# Với <mã_vùng> là "vi" cho tiếng Việt, mở Dolphin với các thông điệp bên trong đã được dịch
LANGUAGE=<mã_vùng> dolphin
Nếu muốn xem kết quả của toàn bộ các bản dịch, với điều kiện là cấu trúc thư mục dịch trên máy cục bộ giống trên kho:
# Dòng này và các đoạn màu xanh chỉ là chú thích, không phải lệnh
cd <đường_dẫn_đến_l10n-kf5> # có thể ở ngọn hoặc ở nhánh
# Với <mã_vùng> là "vi" cho tiếng Việt
./scripts/autogen.sh <mã_vùng>
mkdir <mã_vùng>-build
cd <mã_vùng>-build
cmake -DCMAKE_INSTALL_PREFIX=${XDG_DATA_HOME:-$HOME/.local/} ../<mã_vùng>
make
make install
Tất cả các bản dịch đã được đưa vào $HOME/.local/share/locale/<mã_vùng>/LC_MESSAGES/. Giờ bạn cần đổi ngôn ngữ hiển thị trong Thiết lập Hệ thống (System Settings) và đăng nhập lại.

Chú ý:
Nếu dùng SVN thì bạn cần báo cho SVN biết là nên bỏ qua các tệp CMakeLists.txt và thư mục vi-build liên quan đến quá trình biên dịch trên, để không đồng bộ các thứ đó lên kho. Cách làm là thêm chuỗi CMakeLists.txt vi-build vào phần global-ignores trong ~/.subversion/config (với Linux).