KDE Localization/vi/checking

From KDE Community Wiki
Revision as of 22:22, 8 July 2024 by Htruong (talk | contribs) (Update cho KF6 và các đường dẫn chính xác đến repo)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 địa phương 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.

Sàng check-tp-kde cũng có thể được dùng để phát hiện lỗi trong toàn bộ dự án dịch, với điều kiện cấu trúc thư mục được giữ giống như ở trên kho. Đội địa phương hoá của KDE sử dụng sàng này để tạo ra trang báo lỗi cho từng ngôn ngữ. Đội dịch tiếng Nga có hướng dẫn dùng sàng này, tuy nhiên vì một lí do nào đó tôi không thể chạy được lệnh tương tự với thư mục tiếng Việt. Mong nhận được sự trợ giúp ở đây.

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
svn co svn://anonsvn.kde.org/home/kde/trunk/l10n-kf6
git clone https://invent.kde.org/sysadmin/l10n-scripty.git
cd <đường_dẫn_đến_l10n-kf6> # có thể ở ngọn hoặc ở nhánh
# Với <mã_vùng> là "vi" cho tiếng Việt
../l10n-scripty/autogen.sh <mã_vùng> # <mã_vùng> là vi
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).