KDE Localization/vi/components: Difference between revisions

From KDE Community Wiki
m (Orthography)
(→‎Lokalize: update translation of "glossary")
 
(8 intermediate revisions by the same user not shown)
Line 2: Line 2:


== Tệp PO ==
== 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.
"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 chuỗi nguồn (ID của thông điệp, "''msgid''") và PO chứa các chuỗi nguồn đi cùng với một phần hoặc toàn bộ các chuỗi đí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 chuỗi 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 <small>dẫn giải</small> (<small>comment</small>). 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ỗ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 <small>dẫn giải</small> (<small>comment</small>). 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à chuỗi nguồn cũ, trước khi chuỗi nguồn và/hoặc chuỗi 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.
Mặc dù bạn hoàn toàn có thể dùng một trình biên tập 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.


<div class="alert alert-success" style="overflow:auto;">
<div class="alert alert-success" style="overflow:auto;">
Line 35: Line 35:
svn co --depth empty svn://anonsvn.kde.org/home/kde <gốc_kde>
svn co --depth empty svn://anonsvn.kde.org/home/kde <gốc_kde>
cd <gốc_kde>
cd <gốc_kde>
svn up --set-depth empty trunk
svn up --depth empty trunk trunk/l10n-support trunk/l10n-kf5 # chỉ lấy về các thư mục rỗng
svn up --set-depth empty trunk/l10n-kf5 # chỉ lấy về các thư mục rỗng
svn up trunk/l10n-kf5/{templates,vi} # bắt đầu lấy dữ liệu về
svn up --set-depth infinity trunk/l10n-kf5/scripts # bắt đầu lấy về dữ liệu
svn up trunk/l10n-support/{scripts,vi}
svn up --set-depth infinity trunk/l10n-kf5/templates
svn up --depth empty branches branches/stable branches/stable/l10n-kf5 # chuyển sang nhánh ổn định
svn up --set-depth infinity trunk/l10n-kf5/vi
svn up branches/stable/l10n-kf5/{templates,vi} # lấy dữ liệu về
svn up --set-depth empty trunk/l10n-support # chuyển thư mục
svn up --set-depth infinity trunk/l10n-support/scripts # bắt đầu lấy về dữ liệu
svn up --set-depth infinity trunk/l10n-support/vi
svn up --set-depth empty branches # chuyển thư mục
svn up --set-depth empty branches/stable
svn up --set-depth empty branches/stable/l10n-kf5 # chỉ lấy về các thư mục rỗng
svn up --set-depth infinity branches/stable/l10n-kf5/scripts # bắt đầu lấy về dữ liệu
svn up --set-depth infinity branches/stable/l10n-kf5/templates
svn up --set-depth infinity branches/stable/l10n-kf5/vi
</syntaxhighlight>}}
</syntaxhighlight>}}
Sau này dù dùng dòng lệnh hay chương trình GUI (ví dụ kdesvn), có thể cập nhật (<code>svn update</code>) ngay từ <gốc_kde>, toàn bộ và chỉ các thư mục đã có sẽ được cập nhật, các thư mục khác không bị động đến.
Sau này dù dùng dòng lệnh hay chương trình GUI (ví dụ kdesvn), có thể cập nhật (<code>svn update</code>) ngay từ <gốc_kde>, toàn bộ và chỉ các thư mục đã có sẽ được cập nhật, các thư mục khác không bị động đến.
Line 63: Line 54:
Lokalize là chương trình chuyên dụng làm việc với tệp PO. Dưới đây là một số điểm đáng lưu ý về Lokalize:
Lokalize là chương trình chuyên dụng làm việc với tệp PO. Dưới đây là một số điểm đáng lưu ý về Lokalize:
* Trạng thái <small>dang dở</small> (<small>not ready</small>) của một thông điệp trong Lokalize tương ứng với cờ (thuộc tính) <small>mập mờ</small> (<small>fuzzy</small>) trong [[KDE Localization/vi/components#T.E1.BB.87p_PO|tệp PO]]. Có mấy lí do để một thông điệp có cờ này:
* Trạng thái <small>dang dở</small> (<small>not ready</small>) của một thông điệp trong Lokalize tương ứng với cờ (thuộc tính) <small>mập mờ</small> (<small>fuzzy</small>) trong [[KDE Localization/vi/components#T.E1.BB.87p_PO|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);
** Thông điệp được dịch, sau đó chuỗi nguồn và/hoặc chuỗi ngữ cảnh bị thay đổi (nên có khả năng nội dung dịch ở chuỗi đí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 (<small>kịch bản</small> (<small>script</small>) chạy trên máy chủ KDE), và Scripty đánh dấu các mục sai là "fuzzy".
** Có lỗi cú pháp trong tệp PO nhưng nó chỉ bị phát hiện bởi Scripty (<small>kịch bản</small> (<small>script</small>) 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 <small>mập mờ</small>, 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ừ <small>Dang dở</small> (xâu đích in nghiêng) thành <small>Đã dịch</small> (xâu đích không in nghiêng nữa).
: Với các thông điệp <small>mập mờ</small>, 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 nhấn <keycap>Ctrl + U</keycap> hoặc 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ừ <small>Dang dở</small> (chuỗi đích in nghiêng) thành <small>Đã dịch</small> (chuỗi đích không in nghiêng nữa).


<div id="glossary" style="height:0px; width:0px; overflow:hidden;"></div>
<div id="glossary" style="height:0px; width:0px; overflow:hidden;"></div>
* <small>Bảng thuật ngữ</small> (<small>glossary</small>): Tính năng này của Lokalize giúp thống nhất từ vựng giữa các bản dịch cho các phần mềm khác nhau, của những người dịch khác nhau. Người dịch không cần phải nhớ hay phải suy nghĩ lại về cách dịch các cụm từ đã được thống nhất. Lokalize hiển thị và cho phép nhanh chóng nhập các cụm từ này vào ô chỉnh sửa xâu đích.
* <small>Bảng ngữ</small> (<small>glossary</small>): Tính năng này của Lokalize giúp thống nhất từ vựng giữa các bản dịch cho các phần mềm khác nhau, của những người dịch khác nhau. Người dịch không cần phải nhớ hay phải suy nghĩ lại về cách dịch các cụm từ đã được thống nhất. Lokalize hiển thị và cho phép nhanh chóng nhập các cụm từ này vào ô chỉnh sửa chuỗi đích.
: Một <small>bảng thuật ngữ</small> cho tiếng Việt đã được đặt tại {{Path | [[KDE Localization/vi/conventions#kde-svn|<KDE_SVN>]]/trunk/l10n-support/vi/glossary.tbx}}. Người dịch cần cập nhật <small>bảng thuật ngữ</small> trong quá trình dịch và gửi cùng với bản dịch đến người điều phối khi dịch xong.
: Một <small>bảng ngữ</small> cho tiếng Việt đã được đặt tại {{Path | [[KDE Localization/vi/conventions#kde-svn|<KDE_SVN>]]/trunk/l10n-support/vi/glossary.tbx}}. Người dịch cần cập nhật <small>bảng ngữ</small> trong quá trình dịch và gửi cùng với bản dịch đến người điều phối khi dịch xong.


* <small>Bộ nhớ lời dịch</small> (<small>Translation Memory</small>): Tính năng này giúp tra cứu các cụm từ hay thông điệp trong một dự án dịch (với <small>thẻ</small> (<small>tab</small>) <small>Bộ nhớ lời dịch</small>, mở nhanh bằng phím F7), cho phép sử dụng lại lời dịch của các thông điệp tương tự như thông điệp đang dịch (với ô <small>Bộ nhớ lời dịch</small> trong mỗi <small>thẻ</small> dịch).
* <small>Bộ nhớ lời dịch</small> (<small>Translation Memory</small>): Tính năng này giúp tra cứu các cụm từ hay thông điệp trong một dự án dịch (với <small>thẻ</small> (<small>tab</small>) <small>Bộ nhớ lời dịch</small>, mở nhanh bằng phím F7), cho phép sử dụng lại lời dịch của các thông điệp tương tự như thông điệp đang dịch (với ô <small>Bộ nhớ lời dịch</small> trong mỗi <small>thẻ</small> dịch).
Line 76: Line 67:
: Hiện tại chúng ta chỉ dùng Pology để kiểm tra lại bản dịch, <small>kịch bản</small> Pology tên là {{Path | posieve}} được dùng để kiểm tra các lời dịch xem có đạt yêu cầu sau khi đi qua các <small>sàng</small> (<small>sieve</small>) hay không. 2 <small>sàng</small> mà chúng ta đang dùng là <code>check-kde4</code> để kiểm tra cú pháp XML và <code>check-rules</code> để kiểm tra các <small>quy tắc</small> (<small>rule</small>) do chúng ta tự định ra thông qua một <small>tệp quy tắc</small> (<small>rule file</small>). <small>Tệp quy tắc</small> đơn giản của chúng ta được đặt tại {{Path | [[KDE Localization/vi/conventions#kde-svn|<KDE_SVN>]]/trunk/l10n-support/scripts/pology/args-accels.rules}}, dùng để kiểm tra đối số và dấu tăng tốc (dấu &). Xem thêm về [[KDE Localization/vi/checking|việc kiểm tra bản dịch]].
: Hiện tại chúng ta chỉ dùng Pology để kiểm tra lại bản dịch, <small>kịch bản</small> Pology tên là {{Path | posieve}} được dùng để kiểm tra các lời dịch xem có đạt yêu cầu sau khi đi qua các <small>sàng</small> (<small>sieve</small>) hay không. 2 <small>sàng</small> mà chúng ta đang dùng là <code>check-kde4</code> để kiểm tra cú pháp XML và <code>check-rules</code> để kiểm tra các <small>quy tắc</small> (<small>rule</small>) do chúng ta tự định ra thông qua một <small>tệp quy tắc</small> (<small>rule file</small>). <small>Tệp quy tắc</small> đơn giản của chúng ta được đặt tại {{Path | [[KDE Localization/vi/conventions#kde-svn|<KDE_SVN>]]/trunk/l10n-support/scripts/pology/args-accels.rules}}, dùng để kiểm tra đối số và dấu tăng tốc (dấu &). Xem thêm về [[KDE Localization/vi/checking|việc kiểm tra bản dịch]].


<div id="Lokalize-config" style="height:0px; width:0px; overflow:hidden;"></div>
<div class="alert alert-info mw-collapsible" style="overflow:auto;">
<div class="alert alert-info mw-collapsible" style="overflow:auto;">
<div><span style="font-weight:bold;line-height:1.6;"></span><small>Cấu hình</small> (<small>configure</small>) Lokalize để dịch KDE</div>
<div id="Lokalize-config"><span style="font-weight:bold;line-height:1.6;"></span><small>Cấu hình</small> (<small>configure</small>) Lokalize để dịch KDE</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
''(Tạm thời dùng tiếng Anh để chỉ các mục trong trình đơn)''
* Để kiểm tra bằng Pology: Đi đến trình đơn <menuchoice>Thiết lập</menuchoice> &rarr; <menuchoice>Cấu hình Lokalize...</menuchoice> &rarr; <menuchoice>Pology</menuchoice>. Tại đây, chọn <tt>Enable Pology verification</tt> và nhập lệnh sau vào ô lệnh bên dưới (dành cho lệnh kiểm tra cả tệp) <code>posieve check-kde4,check-rules -s lokalize -s rfile:<đường_dẫn_đến_args-accels.rules> %f</code>.<br>Phím tắt mặc định để chạy lệnh này là <keycap>Ctrl + Alt + P</keycap>, hoặc bạn có thể chạy lệnh này bằng mục trình đơn <menuchoice>Tệp</menuchoice> &rarr; <menuchoice>Launch the Pology command on this file</menuchoice>.
* Để kiểm tra bằng Pology: Đi đến trình đơn <menuchoice>Settings</menuchoice> &rarr; <menuchoice>Configure Lokalize...</menuchoice> &rarr; <menuchoice>Pology</menuchoice>. Tại đây, chọn <tt>Enable Pology verification</tt> và nhập lệnh sau vào ô lệnh bên dưới (dành cho lệnh kiểm tra cả tệp) <code>posieve check-kde4,check-rules -s lokalize -s rfile:<đường_dẫn_đến_args-accels.rules> %f</code>.<br>Phím tắt mặc định để chạy lệnh này là <keycap>Ctrl + Alt + P</keycap>, hoặc bạn có thể chạy lệnh này bằng mục trình đơn <menuchoice>File</menuchoice> &rarr; <menuchoice>Launch the Pology command on this file</menuchoice>.
* Nếu bạn thực hiện theo hướng dẫn [[KDE_Localization/vi/components#svn-depth|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]] ở trên, thì chỉ cần vào Lokalize, <menuchoice>Project</menuchoice> &rarr; <menuchoice>Open project...</menuchoice> rồi tìm đến tệp <tt>index.lokalize</tt> (ở <tt>trunk/l10n-support/vi/index.lokalize</tt>) là xong, không cần cấu hình như các mục dưới nữa.
* Nếu bạn thực hiện theo hướng dẫn [[KDE_Localization/vi/components#svn-depth|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]] ở trên, thì chỉ cần vào Lokalize, <menuchoice>Project</menuchoice> &rarr; <menuchoice>Open project...</menuchoice> rồi tìm đến tệp <tt>index.lokalize</tt> (ở <tt>trunk/l10n-support/vi/index.lokalize</tt>) là xong, không cần cấu hình như các mục dưới nữa.
* Các mục sau đều liên quan đến <small>dự án</small> (<small>project</small>) trong Lokalize và đều được thực hiện trong phần "Cấu hình dự án..." ở <menuchoice>Project</menuchoice> &rarr; <menuchoice>Configure project...</menuchoice>:
* Các mục sau đều liên quan đến <small>dự án</small> (<small>project</small>) trong Lokalize và đều được thực hiện trong phần "Cấu hình dự án..." ở <menuchoice>Project</menuchoice> &rarr; <menuchoice>Configure project...</menuchoice>:
Line 92: Line 81:
<div id="sync"><span style="font-weight:bold;line-height:1.6;">Mở rộng: </span>Đồng bộ các nhánh</div>
<div id="sync"><span style="font-weight:bold;line-height:1.6;">Mở rộng: </span>Đồng bộ các nhánh</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Từ [[KDE Localization/vi/components#trunk-branch|phần mở rộng về ngọn và nhánh]] ở trên, có thể thấy nội dung <small>nhánh ổn định</small> sẽ ít nhiều giống với <small>ngọn</small>. Lokalize hỗ trợ việc đồng bộ lời dịch của những thông điệp trùng nhau giữa <small>ngọn</small> (được chỉ ra trong cấu hình <tt>Root folder</tt>) và <small>nhánh</small>. Vị trí <small>nhánh</small> được chỉ ra ở cấu hình <tt>Branch folder</tt> trong <small>thẻ</small> <tt>Advanced</tt> của hộp thoại "Cấu hình dự án...". Bạn nên nhập vào đây đường dẫn đến thư mục {{Path | branches/stable/l10n-kf5/vi}}. Sau khi Lokalize nhận được cấu hình về thư mục <small>nhánh</small> này, ở mỗi <small>thẻ</small> dịch sẽ xuất hiện thêm một ô <small>Đồng bộ cấp hai</small> (<small>Secondary Sync</small>). Khi thông điệp đang dịch (ở <small>ngọn</small>) cũng xuất hiện ở <small>nhánh</small>, trong ô này sẽ hiện nội dung lời dịch ở <small>nhánh</small>. Trong lần đầu xem xét hai bản dịch (ở <small>ngọn</small> và ở <small>nhánh</small>), có thể có sai khác, bạn có thể đồng bộ lời dịch từ <small>ngọn</small> vào <small>nhánh</small> bằng cách chuột phải vào ô này rồi chọn <menuchoice>Copy to merging source</menuchoice>, hoặc có thể dùng phím tắt mặc định <keycap>Ctrl + Alt + Return</keycap>. Sau khi nội dung hai lời dịch đã được đồng bộ, các thay đổi bạn tạo ra ở ô chỉnh sửa xâu đích (ở <small>ngọn</small>) đều sẽ được đồng bộ vào ô <small>Đồng bộ cấp hai</small> (vào <small>nhánh</small>) và như vậy bạn thay đổi được 2 bản dịch cùng một lúc.
Từ [[KDE Localization/vi/components#trunk-branch|phần Mở rộng về ngọn và nhánh]] ở trên, có thể thấy nội dung <small>nhánh ổn định</small> sẽ ít nhiều giống với <small>ngọn</small>. Lokalize hỗ trợ việc đồng bộ lời dịch của những thông điệp trùng nhau giữa <small>ngọn</small> (được chỉ ra trong cấu hình <tt>Root folder</tt>) và <small>nhánh</small>. Vị trí <small>nhánh</small> được chỉ ra ở cấu hình <tt>Branch folder</tt> trong <small>thẻ</small> <tt>Advanced</tt> của hộp thoại "Cấu hình dự án...". Bạn nên nhập vào đây đường dẫn đến thư mục {{Path | branches/stable/l10n-kf5/vi}}. Sau khi Lokalize nhận được cấu hình về thư mục <small>nhánh</small> này, ở mỗi <small>thẻ</small> dịch sẽ xuất hiện thêm một ô <small>Đồng bộ cấp hai</small> (<small>Secondary Sync</small>). Khi thông điệp đang dịch (ở <small>ngọn</small>) cũng xuất hiện ở <small>nhánh</small>, trong ô này sẽ hiện nội dung lời dịch ở <small>nhánh</small>. Trong lần đầu xem xét hai bản dịch (ở <small>ngọn</small> và ở <small>nhánh</small>), có thể có sai khác, bạn có thể đồng bộ lời dịch từ <small>ngọn</small> vào <small>nhánh</small> bằng cách chuột phải vào ô này rồi chọn <menuchoice>Copy to merging source</menuchoice>, hoặc có thể đặt phím tắt ở <menuchoice>Thiết lập</menuchoice> &rarr; <menuchoice>Cấu hình phím tắt...</menuchoice> &rarr; <menuchoice>Lokalize</menuchoice> &rarr; <menuchoice>Synchronization 2</menuchoice> &rarr; <menuchoice>Copy to merging source</menuchoice> (mặc định chỉ có các phím tắt cho <menuchoice>Synchronization 1</menuchoice>, bạn có thể chuyển phím tắt <keycap>Ctrl + Alt + Return</keycap> sang cho <menuchoice>Synchronization 2</menuchoice> cũng được). Sau khi nội dung hai lời dịch đã được đồng bộ, các thay đổi bạn tạo ra ở ô chỉnh sửa chuỗi đích (ở <small>ngọn</small>) đều sẽ được đồng bộ vào ô <small>Đồng bộ cấp hai</small> (vào <small>nhánh</small>) và như vậy bạn thay đổi được 2 bản dịch cùng một lúc.
</div>
</div>
</div>
</div>

Latest revision as of 08:20, 14 July 2021

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 chuỗi nguồn (ID của thông điệp, "msgid") và PO chứa các chuỗi nguồn đi cùng với một phần hoặc toàn bộ các chuỗi đí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 chuỗi 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à chuỗi nguồn cũ, trước khi chuỗi nguồn và/hoặc chuỗi ngữ cảnh bị thay đổi.

Mặc dù bạn hoàn toàn có thể dùng một trình biên tập 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.

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ộ.

Mở rộng: Ngọn (trunk) và nhánh (branch)

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á.

Mở rộng: 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

Chạy các lệnh sau trong một chương trình dòng lệnh (ví dụ Konsole), với <gốc_kde> là đường dẫn đến thư mục mà bạn muốn dùng để coi tương đương với <KDE_SVN>:

# 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 --depth empty svn://anonsvn.kde.org/home/kde <gốc_kde>
cd <gốc_kde>
svn up --depth empty trunk trunk/l10n-support trunk/l10n-kf5 # chỉ lấy về các thư mục rỗng
svn up trunk/l10n-kf5/{templates,vi} # bắt đầu lấy dữ liệu về
svn up trunk/l10n-support/{scripts,vi}
svn up --depth empty branches branches/stable branches/stable/l10n-kf5 # chuyển sang nhánh ổn định
svn up branches/stable/l10n-kf5/{templates,vi} # lấy dữ liệu về

Sau này dù dùng dòng lệnh hay chương trình GUI (ví dụ kdesvn), có thể cập nhật (svn update) ngay từ <gốc_kde>, toàn bộ và chỉ các thư mục đã có sẽ được cập nhật, các thư mục khác không bị động đến.

Lokalize

Lokalize là chương trình chuyên dụng làm việc với tệp PO. Dưới đây là 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 đó chuỗi nguồn và/hoặc chuỗi ngữ cảnh bị thay đổi (nên có khả năng nội dung dịch ở chuỗi đí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 nhấn Ctrl + U hoặc 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ở (chuỗi đích in nghiêng) thành Đã dịch (chuỗi đích không in nghiêng nữa).
  • Bảng ngữ (glossary): Tính năng này của Lokalize giúp thống nhất từ vựng giữa các bản dịch cho các phần mềm khác nhau, của những người dịch khác nhau. Người dịch không cần phải nhớ hay phải suy nghĩ lại về cách dịch các cụm từ đã được thống nhất. Lokalize hiển thị và cho phép nhanh chóng nhập các cụm từ này vào ô chỉnh sửa chuỗi đích.
Một bảng ngữ cho tiếng Việt đã được đặt tại <KDE_SVN>/trunk/l10n-support/vi/glossary.tbx. Người dịch cần cập nhật bảng ngữ trong quá trình dịch và gửi cùng với bản dịch đến người điều phối khi dịch xong.
  • Bộ nhớ lời dịch (Translation Memory): Tính năng này giúp tra cứu các cụm từ hay thông điệp trong một dự án dịch (với thẻ (tab) Bộ nhớ lời dịch, mở nhanh bằng phím F7), cho phép sử dụng lại lời dịch của các thông điệp tương tự như thông điệp đang dịch (với ô Bộ nhớ lời dịch trong mỗi thẻ dịch).
  • Pology: Đây là một thư viện và tập hợp các kịch bản Python để xử lí tệp PO. Lokalize có khả năng chạy các kịch bản của Pology ngay từ giao diện của mình, để người dịch không phải chạy chúng bằng cách gõ lệnh.
Hiện tại chúng ta chỉ dùng Pology để kiểm tra lại bản dịch, kịch bản Pology tên là posieve được dùng để kiểm tra các lời dịch xem có đạt yêu cầu sau khi đi qua các sàng (sieve) hay không. 2 sàng mà chúng ta đang dùng là check-kde4 để kiểm tra cú pháp XML và check-rules để kiểm tra các quy tắc (rule) do chúng ta tự định ra thông qua một tệp quy tắc (rule file). Tệp quy tắc đơn giản của chúng ta được đặt tại <KDE_SVN>/trunk/l10n-support/scripts/pology/args-accels.rules, dùng để kiểm tra đối số và dấu tăng tốc (dấu &). Xem thêm về việc kiểm tra bản dịch.
Cấu hình (configure) Lokalize để dịch KDE
  • Để kiểm tra bằng Pology: Đi đến trình đơn Thiết lậpCấu hình Lokalize...Pology. Tại đây, chọn Enable Pology verification và nhập lệnh sau vào ô lệnh bên dưới (dành cho lệnh kiểm tra cả tệp) posieve check-kde4,check-rules -s lokalize -s rfile:<đường_dẫn_đến_args-accels.rules> %f.
    Phím tắt mặc định để chạy lệnh này là Ctrl + Alt + P, hoặc bạn có thể chạy lệnh này bằng mục trình đơn TệpLaunch the Pology command on this file.
  • Nếu bạn thực hiện theo hướng dẫn 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 ở trên, thì chỉ cần vào Lokalize, ProjectOpen project... rồi tìm đến tệp index.lokalize (ở trunk/l10n-support/vi/index.lokalize) là xong, không cần cấu hình như các mục dưới nữa.
  • Các mục sau đều liên quan đến dự án (project) trong Lokalize và đều được thực hiện trong phần "Cấu hình dự án..." ở ProjectConfigure project...:
    • Trong thẻ General: Đặt Root folder là đường dẫn đến thư mục trunk/l10n-kf5/vi; đặt Glossary là đường dẫn đến tệp glossary.tbx mà nếu theo cấu trúc thư mục giống trên kho thì nó nằm ở trunk/l10n-support/vi/glossary.tbx.
    • Trong thẻ Advanced: Đặt Template files folder là đường dẫn đến thư mục trunk/l10n-kf5/templates.
Mở rộng: Đồng bộ các nhánh

Từ phần Mở rộng về ngọn và nhánh ở trên, có thể thấy nội dung nhánh ổn định sẽ ít nhiều giống với ngọn. Lokalize hỗ trợ việc đồng bộ lời dịch của những thông điệp trùng nhau giữa ngọn (được chỉ ra trong cấu hình Root folder) và nhánh. Vị trí nhánh được chỉ ra ở cấu hình Branch folder trong thẻ Advanced của hộp thoại "Cấu hình dự án...". Bạn nên nhập vào đây đường dẫn đến thư mục branches/stable/l10n-kf5/vi. Sau khi Lokalize nhận được cấu hình về thư mục nhánh này, ở mỗi thẻ dịch sẽ xuất hiện thêm một ô Đồng bộ cấp hai (Secondary Sync). Khi thông điệp đang dịch (ở ngọn) cũng xuất hiện ở nhánh, trong ô này sẽ hiện nội dung lời dịch ở nhánh. Trong lần đầu xem xét hai bản dịch (ở ngọn và ở nhánh), có thể có sai khác, bạn có thể đồng bộ lời dịch từ ngọn vào nhánh bằng cách chuột phải vào ô này rồi chọn Copy to merging source, hoặc có thể đặt phím tắt ở Thiết lậpCấu hình phím tắt...LokalizeSynchronization 2Copy to merging source (mặc định chỉ có các phím tắt cho Synchronization 1, bạn có thể chuyển phím tắt Ctrl + Alt + Return sang cho Synchronization 2 cũng được). Sau khi nội dung hai lời dịch đã được đồng bộ, các thay đổi bạn tạo ra ở ô chỉnh sửa chuỗi đích (ở ngọn) đều sẽ được đồng bộ vào ô Đồng bộ cấp hai (vào nhánh) và như vậy bạn thay đổi được 2 bản dịch cùng một lúc.