KDE Localization/vi/checking: Difference between revisions
(Add link to convention page in →Kiểm tra đối số đủ hay không) |
(Update cho KF6 và các đường dẫn chính xác đến repo) |
||
(9 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
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 | 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 === | === Kiểm tra cú pháp tệp PO === | ||
Line 8: | Line 8: | ||
=== Kiểm tra đối số đủ hay không === | === Kiểm tra đối số đủ hay không === | ||
Một <small>tệp quy tắc</small> (<small>rule file</small>) Pology đơn giản đã được đặt tại {{Path | [[KDE Localization/vi/ | Một <small>tệp quy tắc</small> (<small>rule file</small>) Pology đơn giản đã được đặt tại {{Path | [[KDE Localization/vi/conventions#kde-svn|<KDE_SVN>]]/trunk/l10n-support/scripts/pology/args-accels.rules}}. <small>Tệp quy tắc</small> này định ra các <small>quy tắc</small> 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 <small>quy tắc</small> này sẽ báo lỗi. | ||
Xem [[KDE Localization/vi/components# | Xem [[KDE Localization/vi/components#Lokalize-config|cách cấu hình Lokalize để kiểm tra bằng Pology]] | ||
<div class="alert alert-warning" style="overflow:auto;"> | <div class="alert alert-warning" style="overflow:auto;"> | ||
Chú ý:<br> | Chú ý:<br> | ||
<small>Tệp quy tắc</small> trên mới ở dạng đơn giản, chưa xét đến trường hợp | <small>Tệp quy tắc</small> 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ó.<br> | ||
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ư. | 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ư. | ||
</div> | </div> | ||
=== Kiểm tra <small>nút tăng tốc</small> (<small>accelerator</small>) === | === Kiểm tra <small>nút tăng tốc</small> (<small>accelerator</small>) === | ||
<small>Tệp quy tắc</small> Pology trên cũng định ra một <small>quy tắc</small> rằng | <small>Tệp quy tắc</small> Pology trên cũng định ra một <small>quy tắc</small> 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 <small>quy tắc</small> này mà chuỗi đích không có dấu tăng tốc nào. | ||
<div class="alert alert-warning" style="overflow:auto;"> | <div class="alert alert-warning" style="overflow:auto;"> | ||
Chú ý:<br> | Chú ý:<br> | ||
Tương tự như với việc kiểm tra đối số, <small>quy tắc</small> này chưa xét đến trường hợp | Tương tự như với việc kiểm tra đối số, <small>quy tắc</small> 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).<br> | ||
Một vấn đề quan trọng nữa cần kiểm tra với <small>nút tăng tốc</small> là liệu có <small>nút tăng tốc</small> 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 [[KDE Localization/vi/checking#Ki.E1.BB.83m_tra_theo_ng.E1.BB.AF_c.E1.BA.A3nh|kiểm tra theo ngữ cảnh]] để có thể chắc chắn hơn. | Một vấn đề quan trọng nữa cần kiểm tra với <small>nút tăng tốc</small> là liệu có <small>nút tăng tốc</small> 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 [[KDE Localization/vi/checking#Ki.E1.BB.83m_tra_theo_ng.E1.BB.AF_c.E1.BA.A3nh|kiểm tra theo ngữ cảnh]] để có thể chắc chắn hơn. | ||
</div> | </div> | ||
Line 29: | Line 29: | ||
=== Kiểm tra cú pháp XML === | === Kiểm tra cú pháp XML === | ||
Pology hỗ trợ kiểm tra cú pháp XML với <small>sàng</small> (<small>sieve</small>) <code>check-kde4</code>. | Pology hỗ trợ kiểm tra cú pháp XML với <small>sàng</small> (<small>sieve</small>) <code>check-kde4</code>. | ||
Sàng <code>check-tp-kde</code> cũng có thể được dùng để [http://pology.nedohodnik.net/doc/user/en_US/index-mono.html#sv-check-tp-kde 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ữ [[KDE Localization/vi/components#svn-depth|giống như ở trên kho]]. Đội địa phương hoá của KDE [https://invent.kde.org/sysadmin/l10n-scripty/-/blob/master/posieve_check-tp-kde_results_to_webpage.sh sử dụng sàng này] để tạo ra [https://l10n.kde.org/check-kde-tp-results/trunk-kf5/ trang báo lỗi] cho từng ngôn ngữ. Đội dịch tiếng Nga có [[RU/%D0%9F%D0%B5%D1%80%D0%B8%D0%BE%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F_%D0%B2_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8_KDE#.D0.9F.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D0.BA.D0.B0_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.82.D0.BA.D0.B8_XML | 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 === | === Kiểm tra theo ngữ cảnh === | ||
Có các cách sau: | Có các cách sau: | ||
* Nội dung | * Nội dung chuỗi 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. | * 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). | * 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: | : Nếu chỉ quan tâm đến một ứng dụng cụ thể, ví dụ Dolphin: | ||
{{Input|<syntaxhighlight lang="bash" line> | : {{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 | # 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 | msgfmt <đường_dẫn_đến_dolphin.po> # Chương trình msgfmt biên dịch dolphin.po thành messages.mo | ||
Line 47: | Line 49: | ||
</syntaxhighlight>}} | </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'']]: | : 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> | |||
: {{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 | # 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- | 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 | # 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 | mkdir <mã_vùng>-build | ||
cd <mã_vùng>-build | cd <mã_vùng>-build | ||
Line 59: | Line 64: | ||
make install | make install | ||
</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. | |||
<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> |
Latest revision as of 22:22, 8 July 2024
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).