exclusions · regex · filters
Loại trừ dòng không cần dịch bằng bộ lọc regex
Chuỗi debug, đường dẫn tài nguyên và chữ thừa của nhà phát triển có thể lọt qua phần tự loại trừ. Bộ lọc regex theo dự án của RuneTranslate loại mọi dòng có nguồn khớp mẫu, kèm xem trước trực tiếp đúng những gì nó bắt, để bạn không tốn lượt dịch cho rác. Miễn phí, ở mọi gói.
Trỏ RuneTranslate vào một game và nó kéo vào mọi chuỗi dịch được mà nó tìm thấy. Phần lớn là hội thoại và văn bản menu thật, nhưng một phần là rác: dòng debug còn sót, tên file tài nguyên, cờ nội bộ và định danh lạc mà game không bao giờ cho người chơi thấy. RuneTranslate đã loại trừ các trường hợp rõ ràng theo từng engine và đánh dấu chúng thành các hàng đỏ chọn tham gia, nhưng mỗi game một khác, và có loại rác chỉ riêng tựa game bạn đang làm mới có.
Đó là việc của bộ lọc loại trừ bằng regex. Bạn đưa cho RuneTranslate một hoặc nhiều mẫu, và mọi dòng có văn bản nguồn khớp một mẫu sẽ bị loại khỏi lượt chạy: trình dịch bỏ qua, và nó hiện thành hàng đỏ chọn tham gia mà bạn luôn bật lại được. Cơ chế giống hệt phần loại trừ tích hợp sẵn theo engine, nhưng chạy theo quy tắc của riêng bạn và lưu cùng dự án. Lại không tốn gì: khác với bảng thuật ngữ và bộ nhớ dịch, loại trừ bằng regex miễn phí ở mọi gói.
Vì sao phải loại trừ dòng?
Có hai lý do, một cái hiển nhiên, một cái quan trọng hơn:
- Chi phí và thời gian. Mỗi dòng rác bạn dịch là hạn mức nhà cung cấp (hoặc giới hạn tốc độ của nhà cung cấp miễn phí) tiêu vào thứ chẳng ai đọc. Cả game cộng lại là đáng kể.
- Giữ cho game chạy được. Đây mới là lý do thật. Một số dòng không phải văn bản mà là khóa, đường dẫn file hay toán hạng luồng mà engine xử lý theo giá trị. Dịch
bg_office_01hayEV_FLAG_TRUEcó thể âm thầm làm hỏng một lần chuyển cảnh hoặc một lần tra biến. Loại chúng ra giúp bản dựng xuất ra ổn định.
Tìm nó ở đâu
Mở một dự án, rồi trên thanh công cụ của trình chỉnh sửa mở menu ⋯ Thêm và chọn Loại trừ bằng regex. Nó mở bảng bộ lọc loại trừ tùy chỉnh: bạn thêm mẫu, xem chính xác chúng bắt được gì, và áp dụng, tất cả trong một hộp thoại.
Xem trước trực tiếp là điểm mấu chốt
Bạn không bao giờ áp một mẫu mà không nhìn. Khi bạn gõ một regex, RuneTranslate hiện Khớp N trong TOTAL dòng và liệt kê một số dòng thật mà nó sẽ bắt, cập nhật sau mỗi lần gõ phím. Mẫu không hợp lệ được báo ngay kèm lỗi, nên bạn không thể lưu một mẫu hỏng.
Vì bản xem trước hiển thị các dòng thật của dự án của bạn, bạn chỉnh mẫu cho tới khi nó bắt đúng rác và không dính dòng thật nào, rồi mới áp dụng. Một chi tiết đáng nhớ: các mẫu khớp với văn bản nguồn, tức tiếng Nhật gốc hoặc ngôn ngữ nguồn của bạn, chứ không phải bản dịch. Bạn viết mẫu dựa trên văn bản chưa dịch.
Mẫu dựng sẵn
Bảng có sẵn các chip một chạm cho những mẫu xuất hiện ở hầu hết game tiếng Nhật:
- Chỉ ASCII:
^[\x00-\x7F]+$: dòng không có ký tự nào của ngôn ngữ nguồn (tiếng Anh sót, romaji hoặc một định danh). Thường loại được an toàn khi nguồn của bạn là tiếng Nhật. - Đường dẫn tài nguyên:
\.(png|jpe?g|gif|webp|ogg|mp3|wav|webm|mp4)$: mọi thứ kết thúc bằng đuôi file media. - Biến:
^[a-z_]+\.[a-z_]: tham chiếu code có dấu chấm nhưf.pagehaystate.flag. - Token VIẾT_HOA:
^[A-Z0-9_]+$: hằng số và cờ nhưEVENT_FLAG_3. - Số / ký hiệu:
^[\d\s.,:%/+\-]+$: các hàng chỉ có số và mặt nạ ô như11111112222. - Thẻ trong ngoặc:
^\[.*\]$: cả dòng chỉ là một[tag].
Bảng cũng hiện một bảng tra nhanh để bạn tự dựng mẫu: ^ và $ neo đầu và cuối dòng, . là ký tự bất kỳ, * và + nghĩa là không hoặc nhiều và một hoặc nhiều, ? là tùy chọn, \d một chữ số, \w một ký tự chữ và \s khoảng trắng.
Tự viết bộ lọc
Các mẫu dựng sẵn phủ những trường hợp phổ biến; với thứ riêng của từng game, bạn tự viết biểu thức chính quy JavaScript. Vài quy tắc ngón tay cái:
- Neo vào cả dòng. Một
debugtrần khớp mọi dòng chứa từ đó, kể cả hội thoại thật nói về debug.^DEBUG:chỉ khớp những dòng bắt đầu bằng dấu hiệu đó, và bọc mẫu trong^...$sẽ khớp cả dòng. Neo là mặc định an toàn nhất. - Theo dõi số khớp trong bản xem trước. Nếu một mẫu nhảy từ bắt 12 dòng rác lên 400 dòng, gần như chắc chắn bạn đã bắt cả văn bản thật: xem các mẫu thử và siết lại.
- Ưu tiên cấu trúc hơn từ ngữ. Rác thường nhận ra qua hình dạng: viết hoa toàn bộ, đường dẫn có dấu chấm, đuôi file ở cuối, toàn số, chứ không phải qua những từ cụ thể. Mẫu theo cấu trúc áp được cho cả dự án.
- Mỗi quy tắc một ý. Nhiều mẫu nhỏ, rõ ràng dễ nghĩ và dễ gỡ về sau hơn một mẫu khổng lồ không đọc nổi.
Áp dụng và hoàn tác
Bấm Áp dụng & lưu. RuneTranslate lưu các mẫu cùng dự án và phân loại lại mọi dòng, rồi báo chính xác chuyện gì đã xảy ra, ví dụ Đã loại trừ 340 dòng · 5 được khôi phục. Số được khôi phục là các dòng trước đây bị bộ lọc bắt nhưng nay không còn, được đưa trở lại tự động.
Mọi thứ đều đảo ngược được: xóa một mẫu, áp dụng lại, và các dòng của nó quay về. Bộ lọc chỉ sở hữu phần loại trừ của chính nó, không bao giờ ghi đè phần tự loại trừ của engine, và bạn vẫn bật lại từng dòng bằng nút gạt trên hàng nếu bộ lọc hơi rộng tay.
Lời nhắc đặt lại bản dịch đã lọc
Một tình huống RuneTranslate tự lo: nếu bạn lọc ra những dòng mà bạn đã dịch rồi thì sao? Dòng bị loại trừ xuất ra văn bản nguồn, nhưng bản dịch cũ vẫn gắn với nó. Nên ngay sau khi bạn áp dụng, nếu có dòng vừa bị lọc đã có bản dịch, RuneTranslate hỏi bạn có muốn đặt chúng về chờ xử lý (bỏ bản dịch để lúc xuất tự quay về văn bản nguồn) hay giữ lại. Thường thì đặt lại là điều bạn cần, vì bạn loại các dòng đó chính là vì không muốn dịch chúng.
Nó khớp với phần còn lại thế nào
Bộ lọc regex là công cụ chặng cuối. Các bộ điều hợp engine đã loại phần rác cấu trúc mà chúng biết cho từng định dạng, nên với một game được hỗ trợ tốt, AI không bao giờ thấy một đường dẫn tài nguyên. Bộ lọc dành cho phần còn sót: một dấu hiệu riêng của game, một kênh debug kỳ lạ, hay chuỗi mà một engine ít gặp đưa ra nhưng không hẳn là hội thoại.
Dùng bộ lọc trạng thái Loại trừ của trình chỉnh sửa để duyệt mọi thứ đang bị giữ lại (cả phần engine loại và phần regex của bạn) và chọn bật lại bất kỳ dòng nào. Và nếu bộ lọc gỡ dòng đi thì bảng thuật ngữ làm ngược lại: nó khóa các thuật ngữ bạn chọn để chúng luôn dịch giống nhau. Có cả hai, bạn kiểm soát được cái gì được dịch lẫn dịch như thế nào.
Năm phút với bảng Bộ lọc ở đầu dự án (thả vào vài chip dựng sẵn, liếc bản xem trước, áp dụng) tiết kiệm hạn mức ở mọi lần chạy sau và giữ phần không phải văn bản có rủi ro khỏi trình dịch hoàn toàn. Tải RuneTranslate, mở một game bất kỳ, và tìm Loại trừ bằng regex trong menu ⋯ Thêm.
Bài liên quan
Sẵn sàng thử RuneTranslate?
Gói miễn phí mở khóa mọi engine và mọi nhà cung cấp dịch trừ RuneLingua. Supporter ($3.99/tháng) mở khóa tốc độ tối đa.
Tải cho Windows & Linux
