godot · engine · tutorial
Cách dịch game Godot sang tiếng Anh
RuneTranslate dịch game Godot 3.x / 4.x: mở .pck (kể cả khi nhúng trong .exe), giải mã GDScript và scene bằng GDRE Tools, rồi liệt kê UI và hội thoại. Khi xuất, bản dịch được đóng gói lại vào .exe hoặc .pck đứng riêng. Hãy kiểm tra bản dựng có chạy không.
RuneTranslate dịch được các game xây trên Godot, engine mã nguồn mở miễn phí đã âm thầm trở thành một trong những cách phổ biến nhất để phát hành game indie. Godot từ trước đến nay là một trong những engine khó dịch từ bên ngoài nhất, vì một game Godot đã phát hành là một chiếc hộp kín: mọi thứ nằm trong một archive .pck (thường được gắn thẳng vào cuối chính file .exe), script được biên dịch thành bytecode GDScript, còn scene được lưu dạng nhị phân. RuneTranslate mở chiếc hộp đó, đọc văn bản và đóng gói bản dịch của bạn trở lại.
Godot có nhiều phiên bản và kiểu đóng gói, nên trước hết: nếu bạn trỏ RuneTranslate vào một game Godot mà nó không phát hiện được, không mở được, hoặc bản sao đã xuất không chạy, hãy báo cho chúng tôi. Chi tiết ở cuối bài.
Godot thực chất là gì
Godot là engine game mã nguồn mở, miễn phí, giấy phép MIT, đã trở thành lựa chọn phổ biến cho game indie 2D và 3D, và ngày càng nhiều game indie Nhật phát hành trên đó. Game thường được viết bằng GDScript, ngôn ngữ riêng của Godot giống Python, và bố trí thành các scene, tức là những cây node được lưu dưới dạng tài nguyên. Khi game được xuất, tất cả (script, scene, hình ảnh, âm thanh) được gói vào một file pack .pck, nằm cạnh file thực thi hoặc, rất thường gặp, được nối vào cuối chính file .exe. Chính cách đóng gói đó khiến game Godot trông như không thể đụng tới.
Vì sao game Godot khó dịch
Không như engine hướng script như Ren'Py, một game Godot đã phát hành gần như không để lộ gì ở dạng văn bản thuần:
- Mọi thứ nằm trong `.pck`. Không có file script hay văn bản rời để chỉnh sửa, và khi pack được nhúng trong
.exethì thậm chí không có file.pcknào hiện ra để trỏ công cụ vào. - Script đã được biên dịch. GDScript được phát hành dưới dạng bytecode đã biên dịch (
.gdc), và ở Godot 4 hiện đại bytecode đó còn bị nén thêm, nên hội thoại nằm trong mã không thể tìm bằng grep hay mở bằng trình soạn thảo văn bản. - Scene ở dạng nhị phân. Nhãn UI và văn bản menu nằm trong các file scene lưu theo định dạng tài nguyên nhị phân của Godot (
.scn), không phải.tscndễ đọc mà bạn thấy trong trình chỉnh sửa. - Không phải game nào cũng dùng file dịch. Godot có hệ thống bản địa hóa hoàn chỉnh (CSV /
.po→.translation), nhưng rất nhiều game, nhất là các tựa indie nhỏ, không dùng nó mà ghi cứng văn bản vào script và scene. RuneTranslate đọc cả hai: các chuỗi ghi cứng (trong.gd,.tscn,.tres,.cfgvàproject.godot) và các bảng dịch CSV đã biên dịch, mà nó vá tại chỗ khi xuất. Các catalog.pobên trong pack thì chưa được đọc.
RuneTranslate làm được gì hiện nay
RuneTranslate coi Godot là một engine được hỗ trợ đầy đủ và dựng lại dự án đọc được cho bạn. Bên trong RuneTranslate, nó kèm sẵn một bản GDRE Tools (bộ công cụ dịch ngược Godot mã nguồn mở) và dùng để:
- Giải nén `.pck`: dạng đứng riêng,
data.pck, hoặc pack nhúng ở cuối.exe(RuneTranslate tự phát hiện chữ ký pack nhúng). - Giải mã GDScript đã biên dịch (
.gdc→.gd) để hội thoại và lời dẫn trong mã đọc được trở lại. - Chuyển scene nhị phân (
.scn→.tscn) để lấy được nhãn và văn bản UI trên đó.
Sau đó nó quét dự án đã dựng lại và liệt kê mọi chuỗi cần dịch (hội thoại trong script, văn bản scene/UI, bảng dịch, hội thoại Dialogic và Dialogue Manager, và file dữ liệu JSON), nhóm theo file trong trình chỉnh sửa, với mã đánh dấu của engine được che sau placeholder để nhà cung cấp không làm hỏng. Khi xuất, nó ghép bản dịch của bạn trở lại vào mã nguồn đã dựng lại và đóng gói lại một bản sao game chạy được (chi tiết bên dưới).
Bạn cần gì
- RuneTranslate cho Windows hoặc Linux: miễn phí, mọi engine và mọi nhà cung cấp trừ RuneLingua đều mở sẵn.
- Một thư mục game Godot: thường chỉ cần
.execủa game (với pack nhúng), hoặc.execùng.pck/data.pckbên cạnh. Hỗ trợ cả Godot 3.x lẫn 4.x. - Một ngôn ngữ đích: tiếng Anh, Tây Ban Nha, Pháp, Đức, Bồ Đào Nha, Nga, Trung, Ý, Thổ Nhĩ Kỳ, Việt và hơn 20 ngôn ngữ khác.
- Một nhà cung cấp dịch. Google Translate miễn phí dùng được ngay; DeepL có bậc miễn phí; OpenAI, Anthropic, mô hình cục bộ (Ollama / LM Studio) và mọi API tương thích OpenAI thì dùng khóa của bạn. Game Godot thường nặng hội thoại, nên LLM (OpenAI / Anthropic) hoặc DeepL cho bản đọc hay nhất với văn bản cốt truyện.
Bước 1: Mở thư mục game
Mở RuneTranslate, bấm Dự án mới và trỏ vào thư mục game Godot, tức thư mục có .exe của game (và .pck nếu phát hành riêng). Engine được tự phát hiện: RuneTranslate nhận ra chữ ký pack nhúng ở cuối file thực thi, một file .pck rời hoặc một dự án Godot. File gốc của bạn không bao giờ bị chỉnh sửa.
Bước 2: Giải nén và dựng lại dự án
RuneTranslate chạy sidecar GDRE Tools kèm sẵn để giải nén pack, giải mã GDScript đã biên dịch và chuyển scene nhị phân thành mã nguồn đọc được. Sau đó nó quét dự án đã dựng lại và liệt kê mọi dòng cần dịch (hội thoại và lời dẫn từ script, nhãn và văn bản UI từ scene, các bảng dịch của game, hội thoại Dialogic và Dialogue Manager, và file dữ liệu JSON), nhóm theo file. Đường dẫn tài nguyên, tên node và các định danh khác trong mã bị lọc ra, để bạn chỉ dịch những chuỗi người chơi thực sự nhìn thấy.
Bước 3: Dịch
Chọn nhà cung cấp rồi bấm Dịch. Với game thiên về cốt truyện, LLM (OpenAI / Anthropic) là lựa chọn tốt nhất cho giọng nhân vật, DeepL nhanh và sạch cho phần dẫn truyện, còn Google Translate miễn phí đủ cho các chuỗi UI ngắn. Game Godot thường giữ hội thoại thành những mảng dòng dài trong một script duy nhất (một “cơ sở dữ liệu truyện”), nên cùng một tên nhân vật hay địa danh xuất hiện hàng trăm lần. Hãy lập bảng thuật ngữ cho dàn nhân vật và thuật ngữ chính ngay từ đầu để chúng được dịch giống nhau ở mọi nơi, xem Bảng thuật ngữ 101. Một lượt tùy chọn với bộ tinh chỉnh AI sẽ làm mượt những chỗ cứng mà dịch máy thường để lại.
Bước 4: Xuất bản dựng đã dịch
Bấm Xuất. Vì script gốc là bytecode đã biên dịch, RuneTranslate dùng cách ghi đè bằng mã nguồn: nó ghi bản dịch vào mã nguồn .gd / .tscn đã dựng lại, bỏ các file .gdc đã biên dịch / .scn nhị phân để engine quay sang dùng mã nguồn rời đã dịch, đóng gói lại một .pck mới và đặt nó về đúng chỗ game giữ nó: nhúng lại vào một bản sao của .exe, hoặc ghi thành .pck cạnh nó. Game gốc của bạn không bị đụng tới; bạn có một bản sao đã dịch, chạy được và tách riêng.
Phạm vi xuất: việc xuất hoạt động với cả game Godot 3 lẫn Godot 4, dù pack nhúng trong .exe hay là .pck đứng riêng cạnh nó. Dù trường hợp nào, bạn cũng nhận một bản sao đã dịch, chơi được và tách riêng.
Bước 5: Kiểm tra bản sao có chạy
Bản dựng đã xuất dựa vào việc runtime Godot biên dịch mã nguồn đã dịch nằm rời lúc nạp, nên hãy chạy thử game đã xuất một lần và xác nhận hội thoại cùng menu hiện đúng ngôn ngữ của bạn trước khi chia sẻ. Nếu một script không nạp được, đó chính là loại báo cáo giúp chúng tôi củng cố engine (xem bên dưới).
Giới hạn đã biết
- Hãy kiểm tra game đã xuất khởi chạy được và đọc đúng trước khi bạn dựa vào nó.
- Catalog `.po`. RuneTranslate đọc văn bản ngôn ngữ nguồn trong script, scene, file dữ liệu JSON, file Dialogic và Dialogue Manager và các bảng dịch CSV đã biên dịch, nhưng không đọc các catalog
.pobên trong pack. - Game C# / .NET (Mono). RuneTranslate tập trung vào GDScript; văn bản biên dịch vào logic của game Godot viết bằng C# chỉ với tới được khi game nạp chuỗi của nó từ một file thay thế riêng.
- Chữ vẽ vào hình ảnh. Tiêu đề hay logo dựng thành ảnh là điểm ảnh chứ không phải chuỗi, đó là việc của dịch chữ trong ảnh, không phải trích xuất script.
- Với ngôn ngữ đích không dùng chữ Latin, game phải có sẵn phông hiển thị được chúng.
Hãy báo chúng tôi những gì hỏng
Godot trải qua nhiều phiên bản engine và kiểu đóng gói, và chúng tôi chưa thấy hết. Nếu một game không được phát hiện, không giải nén được, hoặc xuất ra bản không khởi chạy được, hãy báo cho chúng tôi. Tên game, phiên bản Godot và cách nó được đóng gói (pack nhúng hay .pck rời) giúp chúng tôi củng cố nhanh nhất.
Tải RuneTranslate, trỏ vào game Godot mà bạn đã định đọc từ lâu và thử xem. Với một engine hiện đại khác, đọc tiếp hướng dẫn Unity.
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
