CAT / OmegaT

Hướng dẫn tạo dự án dịch với nhóm bằng phần mềm OmegaT và Gitlab

OmegaT là phần mềm nguồn mở hỗ trợ dịch thuật (CAT) được dùng rộng rãi. Phần mềm OmegaT dựa trên nền tảng Java, cho phép chạy trên nhiều loại hệ điều hành (Windows, Linux, Mac…), và nó cũng nổi tiếng là chạy rất ổn định, không bị hỏng hóc. Ngoài việc có những chức năng CAT thông dụng như các phần mềm CAT khác (làm việc với glossary, translation memory, segmenting…), OmegaT còn hỗ trợ tính năng cùng dịch theo nhóm (team translation) rất linh hoạt và tiện lợi. Cách thức dùng OmegaT để hợp tác một nhóm dịch được ghi trong tài liệu hướng dẫn phần mềm này ở: http://omegat.sourceforge.net/manual-standard/en/appendix.TeamProjects.html.
Trong bài này, chúng tôi hướng dẫn từng bước cách lập một dự án dịch nhóm với phần mềm OmegaT, sử dụng dịch vụ git của gitlab.com để lưu trữ trên internet nhằm chia sẻ dữ liệu trong nhóm dịch. Đối tượng của bài này là những người phụ trách công việc tổ chức dự án dịch nhóm, có thể chưa biết cách dùng công cụ git. Còn đối với thành viên tham gia dịch thì chỉ cần đơn giản là điền địa chỉ kho lưu trữ dự án dịch vào OmegaT, và dịch như một bài dịch bình thường trên máy tính của mình; chúng tôi cũng sẽ làm một hướng dẫn bằng hình cho người dùng dễ làm theo.
1. Phần mềm cần cài đặt (cho hệ điều hành Windows):
– TortoiseGit: https://tortoisegit.org/
– Git for Windows: http://gitforwindows.org/

– OmegaT (lấy Latest version): https://omegat.org/download

Phần mềm Git for Windows cung cấp chức năng để làm việc với công cụ git, còn TortoiseGit là để tích hợp thêm menu làm việc git vào Windows Explorer để giúp thao tác với git cho tiện.
2. Quy trình tạo dự án trên OmegaT và đẩy lên server Gitlab.com:

Tóm tắt các bước, cho người đã biết dùng git và OmegaT:

  • Dùng phần mềm OmegaT để tạo một dự án trên máy tính
  • Chuyển thư mục dự án của OmegaT thành một dự án git, thêm tất cả các tập tin trong thư mục vào dữ liệu git, ngoại trừ một số tập tin không cần thiết sẽ được ghi trong tập tin .gitignore (gồm *.bak, omegat/project_stats.txt, omegat/project_stats_match.txt)
  • Đưa local repository của git lên gitlab.com, thành một remote repository
  • Chỉnh chế độ quyền hạn trong remote repository ở gitlab.com để các thành viên tham gia dịch có quyền “push” đối với dự án git này

Sau đó, thành viên cùng dịch có thể dùng tính năng “Download team project” trong phần mềm OmegaT để tải về dự án dịch nhóm từ địa chỉ repository ở gitlab.com.

a/. Dùng OmegaT để tạo một dự án, ví dụ đặt ở thư mục: E:\OmegaT\omegat-test-project

Lưu ý là trong hình trên, ô “Remove Tags” được chọn thêm, nó sẽ xóa đi hết các “tag” chứa thông tin định dạng trong các văn bản. Việc bỏ đi các tag có nhược điểm là không tận dụng một tính năng rất mạnh của phần mềm CAT để hỗ trợ trình bày văn bản (nếu giữ các tag, thì chữ chỗ nào đậm, nghiêng… sẽ được duy trì sang tài liệu dịch ra); tuy nhiên điểm lợi là nó sẽ làm cho việc dịch văn bản được sáng sủa, các đoạn text không có các tag chen vào gây khó chịu cho người dịch, đặc biệt là người ít thuần thục phần mềm CAT.
Sau khi tạo xong dự án thì thoát ra khỏi OmegaT, dùng Windows Explorer để copy các file từ điển (dữ liệu cho phần mềm Stardict) vào thư mục …project/dictionary/, copy các file glossary (dạng file .CSV 2 cột cho 2 ngôn ngữ) vào thư mục …project/glossary/, copy các file translation memory (dạng file .TMX) vào thư mục …project/tm/. Các dữ liệu đó nếu có cái nào muốn chia sẻ thì dùng cái đó, không có thì thôi.
Dùng phần mềm soạn thảo văn bản như Notepad để tạo ra một file nằm ở thư mục gốc của dự án OmegaT, tên là .gitignore (tên bắt đầu bằng dấu chấm; file đặc biệt này liệt kê những files sẽ được công cụ git bỏ qua và không đưa lên mạng), có nội dung như sau (như gợi ý ở hướng dẫn http://omegat.sourceforge.net/manual-standard/en/appendix.TeamProjects.html):

*.bak
omegat/project_stats.txt
omegat/project_stats_match.txt

b/. Tạo một project (còn gọi là “repository”) trên Gitlab.com như hình sau, nếu không muốn người ngoài truy cập được dữ liệu thì chọn chế độ hiển thị là “Private”:

Lưu ý, khi tạo repository trên Gitlab xong thì nó thường hiện địa chỉ git là “SSH”, cần bấm vào đó và chọn cho nó hiện ra địa chỉ git là “HTTPS”, để copy địa chỉ đó ​và dùng cho các bước sau:

c/. Trong project trên gitlab, click ở cột bên trái để chọn menu: “Settings” -> “Members”. Những thành viên cùng tham gia dịch thì add thành members của repository đó, với quyền hạn tối thiểu là “Developer”. Tuy vậy chúng tôi khuyến khích đặt vai trò của thành viên là “Master” để đỡ bị một số hạn chế quyền hạn đối với “Developer” mà có thể làm cho việc ghi dữ liệu lên Gitlab bị trục trặc. (nếu thành viên có sẵn trong nhóm 4NNT ở gitlab.com thì họ được tự động cấp quyền thành viên cho các repository nằm trong nhóm 4NNT).

Chế độ quyền hạn mặc định của Gitlab có hạn chế đối với “Developers”: chỉ có “Masters” mới được dùng chức năng git push để ghi vào dự án, do vậy cần đặt lại chế độ là cho phép “Developers + Masters” được push (hoặc cấp quyền cho tất cả các thành viên tham gia dịch là “Masters”, như gợi ý ở trên). Thao tác: chọn menu “Settings” -> “Repository”, trong phần “Protect a branch” click vào ô “Allowed to push” để chọn là “Developers + Masters”.

​d/. Mở phần mềm Windows Explorer, nhấn chuột phải vào thư mục E:\OmegaT\omegat-test-project, chọn “Git Create repository here…” để tạo ra một repository nằm trong thư mục đó.

e/. Sau đó, lại nhấn chuột phải vào thư mục trên, chọn “Git Commit -> “master”…”. Điền một dòng mô tả ngắn gọn ở ô “Message”, rồi chọn tất cả các files trong thư mục đó “Check: All”, sau đó nhấn nút “Commit” để đưa các file trong thư mục đó vào trong cái “git repository”. (nếu không commit files thì cái “git repository” ở trong thư mục đó vẫn được tính là trống).

Thông báo thành công: (để ý là có các file dictionary và glossary được dùng trong dự án, đặt trong thư mục được OmegaT quy ước về tên)

f/. Nhấn chuột phải vào thư mục trên, chọn menu “TortoiseGit” -> “Push…” và sẽ thấy một hộp thoại push hiện lên. Ban đầu, chưa có địa chỉ “Remote” nào được lưu trong cái git repository ở thư mục đó, nên nó bị trống. Cần bấm vào nút “Manage” để thêm địa chỉ remote vào.

Điền vào chỗ “URL” cho cái remote là địa chỉ của repository trên Gitlab, trong ví dụ này là địa chỉ HTTPS sau: https://gitlab.com/4NNT/omegat-test-project.git (tên “Remote” đầu tiên được cho mặc định là “origin”, nếu thích thì đổi tên khác, nhưng thông lệ người dùng git là cứ để tên “origin” cho dễ hỏi nhau).

Khi làm việc lần đầu tiên với server Gitlab.com, phần mềm sẽ hiện ra câu hỏi là có tin tưởng vào chữ ký bảo mật của server này không, và đưa ra một chuỗi chữ số để đại diện (security key fingerprint), chỉ cần bấm “Yes” để xác nhận. Điều này là bước xác nhận để đảm bảo an toàn cho việc truyền dữ liệu giữa máy tính với server qua giao thức HTTPS.

Sau khi đã “Manage” địa chỉ của remote repository xong, nhấn OK thì trở về hộp thoại push, lại nhấn OK để xác nhận. Người dùng sẽ được hỏi tên và mật khẩu đăng nhập ở gitlab.com. Sau khi nhập xong và nó được xác thực, chương trình TortoiseGit sẽ bắt đầu đẩy dữ liệu từ máy tính lên server Gitlab.

Khi việc “Push” kết thúc, ta sẽ nhận được thông báo từ phần mềm:

và có thể kiểm tra là các file và thư mục đã được upload lên địa chỉ trên gitlab.com:

Đến đây, dự án dịch được tạo ra bằng phần mềm OmegaT đã được đưa lên dịch vụ Gitlab thành công.


Vài ghi chú:

  • Địa chỉ dự án git trong bài hướng dẫn này là đóng kín, chỉ những người có quyền hạn truy cập vào nhóm 4NNT mới thấy được dự án đó.
  • Bài này chọn cách dùng địa chỉ dự án git dạng HTTPS. Người dùng git thuần thục và am hiểu về chế độ xác thực dùng SSH thì có thể dùng địa chỉ SSH và xác thực với Gitlab bằng chữ ký mã hóa.
  • Có nhiều dịch vụ lưu trữ git trên internet, như gitlab.com, github.com, bitbucket.com… tính năng có đôi chút khác nhau. Bài hướng dẫn này chọn gitlab.com vì họ cho phép tạo git repository miễn phí rất thoải mái, repository miễn phí cũng có thể chọn chế độ “Public” hoặc “Private” để hạn chế người xem. Ở dịch vụ github.com phổ biến hơn, thì repository miễn phí bắt buộc phải ở chế độ “Public”.
  • Nếu nhóm dịch không muốn phụ thuộc vào dịch vụ lưu trữ có sẵn trên mạng (như Gitlab.com được hướng dẫn trong bài này), thì có thể cài đặt một máy chủ git riêng để làm nơi lưu trữ dữ liệu (sẽ tốn thêm tiền thuê/mua máy chủ, và công sức bảo trì máy chủ).