KDE Localization/vi/components: Difference between revisions
m Put id inside the list item |
Add an advanced section of SVN in depth (but it's a TODO) |
||
Line 21: | Line 21: | ||
<div class="alert alert-info mw-collapsible mw-collapsed" style="overflow:auto;"> | <div class="alert alert-info mw-collapsible mw-collapsed" style="overflow:auto;"> | ||
<div style="font-weight:bold;line-height:1.6;">Mở rộng: <small> | <div id="trunk-branch"><span style="font-weight:bold;line-height:1.6;">Mở rộng: </span><small>Ngọn</small> (<small>trunk</small>) và <small>nhánh</small> (<small>branch</small>)</div> | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
Hai khái niệm liên quan đến việc dịch ở đây là <small>ngọn</small> (<small>trunk</small>) và <small>nhánh ổn định</small> (<small>stable branch</small>). <small>Ngọn</small> là nơi các tính năng mới được thêm vào, nên ở đây sẽ luôn có nội dung mới được cập nhật. Còn <small>nhánh</small> (<small>branch</small>) là một cách thức để chia tách việc phát triển thành các hướng khác nhau, ở đây <small>nhánh ổn định</small> chỉ hướng phát triển được tách ra từ <small>ngọn</small> để trở thành bản phát hành. Sau khi nội dung từ <small>ngọn</small> được đưa vào <small>nhánh ổn định</small>, <small>ngọn</small> tiếp tục nhận được các tính năng mới, còn nội dung <small>nhánh ổn định</small> thì tương đối "ổn định", nó chỉ nhận thêm các cập nhật nhỏ (nhỏ hơn ở <small>ngọn</small>) hay các bản vá. | Hai khái niệm liên quan đến việc dịch ở đây là <small>ngọn</small> (<small>trunk</small>) và <small>nhánh ổn định</small> (<small>stable branch</small>). <small>Ngọn</small> là nơi các tính năng mới được thêm vào, nên ở đây sẽ luôn có nội dung mới được cập nhật. Còn <small>nhánh</small> (<small>branch</small>) là một cách thức để chia tách việc phát triển thành các hướng khác nhau, ở đây <small>nhánh ổn định</small> chỉ hướng phát triển được tách ra từ <small>ngọn</small> để trở thành bản phát hành. Sau khi nội dung từ <small>ngọn</small> được đưa vào <small>nhánh ổn định</small>, <small>ngọn</small> tiếp tục nhận được các tính năng mới, còn nội dung <small>nhánh ổn định</small> thì tương đối "ổn định", nó chỉ nhận thêm các cập nhật nhỏ (nhỏ hơn ở <small>ngọn</small>) hay các bản vá. | ||
</div> | |||
</div> | |||
<div class="alert alert-info mw-collapsible mw-collapsed" style="overflow:auto;"> | |||
<div id="svn-depth"><span style="font-weight:bold;line-height:1.6;">Mở rộng: </span>Cách lấy chỉ những thư mục và tệp cần thiết và vẫn giữ được cấu trúc thư mục như trên kho</div> | |||
<div class="mw-collapsible-content"> | |||
TODO | |||
</div> | </div> | ||
</div> | </div> |
Revision as of 21:43, 16 September 2020
Trang này tóm tắt cơ bản các thành phần tham gia vào việc dịch. Người đọc được khuyến khích đọc thêm các liên kết ở cuối mỗi mục. Tài liệu https://l10n.kde.org/docs/translation-howto/index.html đặc biệt hữu ích cho việc dịch, với hai chương quan trọng nhất (cho công việc hiện tại) là chương 2 ("Bringing a New Language to KDE"), có thể có phần phù hợp cho người điều phối hơn là người dịch nhưng cũng có các thông tin cần thiết cho việc dịch, và chương 3 ("GUI Translation"), hầu hết là thông tin cho việc dịch và rất nên đọc.
Tệp PO
"PO" là dạng viết tắt của "Portable Object", POT là "PO Template". Đây là một kiểu tệp văn bản, với POT chỉ chứa các xâu nguồn (ID của thông điệp, "msgid") và PO chứa các xâu nguồn đi cùng với một phần hoặc toàn bộ các xâu đích (lời dịch của thông điệp, "msgstr"). Ngoài hai trường này, có thể còn có trường "msgctxt" chứa xâu ngữ cảnh, mô tả về ngữ cảnh của thông điệp.
Mỗi thông điệp có thể đi kèm với một hoặc một số dòng mang thông tin với ý nghĩa khác nhau để hỗ trợ việc dịch thông điệp đó, gọi chung là các dẫn giải (comment). Các thông tin đó có thể là: dẫn giải của người lập trình, thường để làm rõ hơn ngữ cảnh của thông điệp; nơi thông điệp xuất hiện trong mã nguồn; các thuộc tính của thông điệp - còn gọi là các cờ; và xâu nguồn cũ, trước khi xâu nguồn và/hoặc xâu ngữ cảnh bị thay đổi.
Mặc dù bạn hoàn toàn có thể dùng một trình soạn thảo văn bản thông thường (ví dụ KWrite hay Kate) để chỉnh sửa tệp POT/PO, việc dùng một chương trình chuyên dụng như Lokalize sẽ thuận tiện hơn nhiều.
Đọc chi tiết:
https://l10n.kde.org/docs/translation-howto/gui-translation.html
https://techbase.kde.org/Localization/Concepts/PO_Odyssey
https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files
SVN
SVN là một hệ thống quản lí phiên bản, hoạt động dựa trên ý tưởng về một kho mã nguồn chung ở một địa điểm tập trung và các thành viên làm việc trên các bản sao tạo ra vào những thời điểm khác nhau của kho chung đó. Các thay đổi do mỗi thành viên tạo ra được đưa lên kho chung, từ đó được chuyển đến các thành viên khác.
Mã nguồn của KDE không còn lưu trong một hệ thống SVN nữa, nhưng các bản dịch của KDE thì vẫn còn. Nội dung của các tệp POT và PO ở kho chung có thể thay đổi hàng ngày. Sử dụng một chương trình SVN giúp bạn có thể cập nhật nhanh chóng các thay đổi này, và dễ dàng giải quyết các xung đột nếu có xảy ra giữa các thay đổi đó và các thay đổi do bạn tạo ra trên máy cục bộ.
Hai khái niệm liên quan đến việc dịch ở đây là ngọn (trunk) và nhánh ổn định (stable branch). Ngọn là nơi các tính năng mới được thêm vào, nên ở đây sẽ luôn có nội dung mới được cập nhật. Còn nhánh (branch) là một cách thức để chia tách việc phát triển thành các hướng khác nhau, ở đây nhánh ổn định chỉ hướng phát triển được tách ra từ ngọn để trở thành bản phát hành. Sau khi nội dung từ ngọn được đưa vào nhánh ổn định, ngọn tiếp tục nhận được các tính năng mới, còn nội dung nhánh ổn định thì tương đối "ổn định", nó chỉ nhận thêm các cập nhật nhỏ (nhỏ hơn ở ngọn) hay các bản vá.
TODO
Đọc chi tiết:
https://l10n.kde.org/docs/translation-howto/resources.html
https://community.kde.org/Infrastructure/Subversion
Lokalize
Lokalize là chương trình chuyên dụng làm việc với tệp PO. Một số điểm đáng lưu ý về Lokalize:
- Trạng thái dang dở (not ready) của một thông điệp trong Lokalize tương ứng với cờ (thuộc tính) mập mờ (fuzzy) trong tệp PO. Có mấy lí do để một thông điệp có cờ này:
- Thông điệp được dịch, sau đó xâu nguồn và/hoặc xâu ngữ cảnh bị thay đổi (nên có khả năng nội dung dịch ở xâu đích không còn đúng nữa);
- Có lỗi cú pháp trong tệp PO nhưng nó chỉ bị phát hiện bởi Scripty (kịch bản (script) chạy trên máy chủ KDE), và Scripty đánh dấu các mục sai là "fuzzy".
Với các thông điệp mập mờ, người dịch cần kiểm tra lại, nếu cần thì sửa, và kể cả khi không cần sửa gì thì cũng cần có tác động nào đó vào khung dịch (chẳng hạn xoá một chữ cái rồi gõ lại đúng chữ đó) để xác nhận với Lokalize rằng đó là nội dung đúng, trạng thái của thông điệp sẽ chuyển từ Dang dở (xâu đích in nghiêng) thành Đã dịch (xâu đích không in nghiêng nữa).
- Bảng thuật ngữ (glossary)
- Đồng bộ các nhánh: Từ đây có thể thấy nội dung nhánh ổn định sẽ ít nhiều giống với ngọn.
- Bộ nhớ lời dịch (translation memory)
- Bản dịch khác (alternate translations)
- Pology