KDE Localization/vi/checking: Difference between revisions

From KDE Community Wiki
m (Change a link text)
(Write about the last check: by context)
Line 2: Line 2:


=== Kiểm tra cú pháp tệp PO ===
=== Kiểm tra cú pháp tệp PO ===
Trên Linux với gói {{Path | gettext}} đã được cài đặt, chạy lệnh sau trong một chương trình dòng lệnh:
Trên Linux với gói {{Path | gettext}} đã được cài đặt, chạy lệnh sau trong một chương trình dòng lệnh (ví dụ Konsole):
{{Input|1=<nowiki>
{{Input|<syntaxhighlight lang="bash" line>
msgfmt --statistics --check-header <đường_dẫn_đến_bản_dịch>
msgfmt --statistics --check-header <đường_dẫn_đến_tệp_bản_dịch>
</nowiki>}}
</syntaxhighlight>}}


=== Kiểm tra đối số đủ hay không ===
=== Kiểm tra đối số đủ hay không ===
Line 32: Line 32:
=== Kiểm tra theo ngữ cảnh ===
=== Kiểm tra theo ngữ cảnh ===
Có các cách sau:
Có các cách sau:
*
* Nội dung xâu ngữ cảnh "msgctxt" và [[KDE Localization/vi/components#T.E1.BB.87p_PO|<small>dẫn giải</small>]] (<small>comment</small>) của người lập trình, nếu có, đều được hiển thị ở ô <small>Siêu dữ liệu đơn vị</small> (<small>Unit metadata</small>) 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 ở {{Path | 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 {{Path | 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:
{{Input|<syntaxhighlight lang="bash" line>
# 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
</syntaxhighlight>}}
 
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à [[KDE Localization/vi/components#svn-depth|''cấu trúc thư mục dịch trên máy cục bộ giống trên kho'']]:
{{Input|<syntaxhighlight lang="bash" line>
# 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
</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.

Revision as of 22:12, 16 September 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 xâu đích phải có 3 đối số đầu tiên (%1, %2, %3) nếu xâu nguồn có đối số tương ứng. Ví dụ nếu xâu nguồn chứa "%2" mà xâu đí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 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 xâu đích có một đối số mà xâu 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 xâu đích phải có dấu tăng tốc (&) nếu xâu nguồn có, Pology sẽ báo lỗi khi kiểm tra quy tắc này mà xâu đí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 xâu đích có dấu tăng tốc mà xâu nguồn không có, hoặc khi cả hai xâu đều có nhưng số lượng dấu tăng tốc ở hai xâu 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 xâu 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.