EngineHướng dẫnFAQPatreonDiscordTải xuống
Đăng nhập

RuneTranslate · dịch game từ tiếng Nhật và hơn 30 ngôn ngữ

Sản phẩm

  • Tải xuống
  • Engine
  • Chữ trong ảnh
  • Trình sửa tệp lưu
  • Chế độ gian lận
  • Nhật ký thay đổi

Tài nguyên

  • Hướng dẫn
  • So sánh
  • FAQ

Cộng đồng

  • Patreon
  • Discord
  • YouTube
  • Trustpilot

Pháp lý

  • Quyền riêng tư
  • Điều khoản
  • Hoàn tiền
  • Liên hệ
© 2026 RuneTranslate
RuneTranslateTất cả bài viết

unity · tutorial · engine

Cách dịch game Unity sang tiếng Anh

Dịch game Unity bằng RuneTranslate: đọc TextAsset, trường MonoBehaviour (Mono và IL2CPP) và StreamingAssets, văn bản nào nó với tới được (kể cả văn bản C# đã biên dịch trên Mono), và cách bộ bảo vệ định danh giúp bạn không làm hỏng game.

9 thg 6, 2026·6 phút đọc

Unity là engine đứng sau một phần ngày càng lớn các game indie và visual novel Nhật, và cũng là engine khó dịch nhất trong số các engine phổ biến, vì Unity không có định dạng văn bản duy nhất. Hội thoại có thể nằm trong các khối TextAsset, trong trường chuỗi của MonoBehaviour, trong script StreamingAssets rời, hoặc được biên dịch thẳng vào một DLL C#. Hướng dẫn này đi qua việc dịch một game Unity bằng RuneTranslate và, quan trọng không kém, giải thích quy tắc khiến Unity khác biệt: nơi văn bản nằm quyết định thứ có thể với tới.

Lưu ý lớn trước hết: văn bản nằm ở đâu

RuneTranslate dịch văn bản Unity nằm trong dữ liệu: các file asset mà engine nạp lúc chạy, gồm cả các trường chuỗi trên component MonoBehaviour (hội thoại, tên, nhãn). Nó đọc các trường đó trên cả bản dựng Mono lẫn IL2CPP: cấu trúc kiểu lấy từ các DLL của chính game trên Mono, hoặc được dựng lại từ metadata IL2CPP khi không có thư mục Managed/. Trên bản dựng Mono, nó còn đọc cả chuỗi literal biên dịch trong mã C# của game (Assembly-CSharp.dll) và bỏ qua những chuỗi mã dùng làm tên hay khóa. Thứ nó không với tới được là văn bản biên dịch vào mã native của bản dựng IL2CPP (GameAssembly.dll). Trên thực tế, những game giữ script trong asset và component sẽ dịch tốt, và bước đầu tiên là mở dự án sẽ cho bạn biết mình đang có gì.

Bạn cần gì

  • RuneTranslate cho Windows hoặc Linux: miễn phí, mở khóa mọi engine và mọi nhà cung cấp trừ RuneLingua.
  • Một thư mục game Unity: thư mục có file .exe của game và thư mục <GameName>_Data/ (chứa globalgamemanagers, resources.assets, data.unity3d và các file level*).
  • 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ữ nữa.
  • 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ộ và mọi API tương thích OpenAI đều dùng khóa của bạn.

Bước 1: Mở thư mục game

Mở RuneTranslate, bấm Dự án mới, rồi trỏ tới thư mục game Unity. Việc phát hiện engine tìm thư mục _Data/ và nhận ra dự án là Unity. Bộ đọc Unity tích hợp sẵn của RuneTranslate (là một phần của chính ứng dụng, không cần cài thêm gì) mở các file asset và liệt kê các chuỗi đọc được vào một không gian làm việc riêng của dự án trong bộ đệm game của ứng dụng (mặc định là %APPDATA%/RuneTranslate/unity-workspace/<projectId>/ trên Windows; Cài đặt > Ứng dụng > Bộ đệm game có thể chuyển nó đi). Thư mục game gốc của bạn không bao giờ bị chỉnh sửa. Hãy kiểm tra bản dựng đã xuất có chạy được trước khi chia sẻ.

Bước 2: Chuỗi được trích xuất thế nào

RuneTranslate đọc văn bản từ mọi nơi Unity tách văn bản ra ngoài:

  • TextAssets: các khối JSON / CSV / script nhúng trong .assets và AssetBundle, được cắt bằng bộ trích xuất nhận biết định dạng.
  • Trường chuỗi MonoBehaviour: văn bản hiển thị trên component (hội thoại, tên, nhãn), trên cả bản dựng Mono và IL2CPP (thông tin kiểu lấy từ DLL của game, hoặc dựng lại từ metadata IL2CPP).
  • StreamingAssets: các file script rời được duyệt thẳng trên đĩa (.json, .txt, .csv, .tsv, .xml, .yaml, .ks và hơn thế nữa).
  • Bundle Addressable đóng gói: những game phát hành bundle Addressable ở dạng đóng gói được đọc tự động, nên văn bản của chúng được trích xuất như mọi bundle khác.

Unity cũng là nơi dịch quá tay gây hại nhiều nhất, nên RuneTranslate có sẵn một bộ bảo vệ cho việc này. Nhiều chuỗi MonoBehaviour hoàn toàn không phải văn bản hiển thị: chúng là định danh điều khiển và toán hạng luồng, như tên cảnh mà lệnh gọi LoadScene tra theo chuỗi, khóa định tuyến thông điệp, tên animator / clip âm thanh, tên bộ phận Live2D, và các giá trị so sánh bên trong logic If / SetVariable của Fungus (ví dụ một cờ như 村落出口). Dịch những thứ đó và game hỏng trong im lặng; triệu chứng kinh điển là màn hình “đang tải” vô tận mà không có lỗi nào. RuneTranslate tự phân loại chúng là bị loại trừ (hiện màu đỏ, chỉ chọn tham gia), nên trình chỉnh sửa hiển thị hội thoại và nhãn thật và để yên phần bộ máy. Các phép thay {$var} của Fungus và mã đánh dấu {color=...} / TMP <...> được che sau placeholder để chúng sống sót qua lượt dịch nguyên vẹn.

Bước 3: Dịch và xem lại

Chọn nhà cung cấp và chạy. DeepL hoặc một LLM đọc hay nhất cho hội thoại; Google Translate miễn phí lo menu và tên vật phẩm. Hãy lập bảng thuật ngữ cho dàn nhân vật và thuật ngữ lặp lại trước, xem Bảng thuật ngữ 101. Mỗi dòng nằm trong trình chỉnh sửa cạnh văn bản gốc; sửa trực tiếp (lưu khi rời ô hoặc Ctrl+Enter), và chạy bộ tinh chỉnh AI tùy chọn để đọc soát lượt hai. Gói Miễn phí chạy với giới hạn tốc độ nhẹ (chậm hơn khoảng 2 lần với nhà cung cấp AI, ít hơn với nhà cung cấp miễn phí): cùng engine, cùng chất lượng đầu ra; gói trả phí chỉ chạy ở tốc độ tối đa.

Bước 4: Xuất bản dựng chơi được

Bấm Xuất. RuneTranslate sao chép game, rồi vá các chuỗi đã dịch ngược vào file asset tại chỗ. Cùng bộ bảo vệ loại trừ đó chạy khi ghi lại, nên một dự án cũ không thể vô tình đẩy một tên cảnh hay toán hạng luồng đã dịch khi xuất lại. Kết quả là một bản sao game đầy đủ, chạy được, ở nơi bạn chọn: mở file .exe và nó chạy bằng ngôn ngữ đích của bạn.

Dịch sang ngôn ngữ non-Latin (Trung, Nhật, Hàn, Thái, Ả Rập) mà phông chữ tích hợp của game không hiển thị được ký tự? Khi xuất, RuneTranslate chèn một phông dự phòng vào chuỗi phông TextMeshPro, để văn bản đã dịch hiện ra thay cho các ô thiếu ký tự.

Giới hạn đã biết

  • Văn bản biên dịch vào mã native của bản dựng IL2CPP (GameAssembly.dll) không được dịch. Trên bản dựng Mono, chuỗi literal trong Assembly-CSharp.dll thì được, trừ những chuỗi mã dùng làm tên hay khóa, còn các trường dữ liệu của MonoBehaviour được đọc trên cả bản dựng Mono và IL2CPP.
  • Đọc MonoBehaviour trên IL2CPP cần một global-metadata.dat phân tích được; metadata bị làm rối nặng có thể không dựng lại được (cố gắng hết sức).
  • Hãy xác nhận game đã xuất chạy và đọc đúng trước khi chia sẻ.
  • Chữ trong ảnh (logo, giao diện vẽ tay, chú thích CG) không được dịch: Studio ảnh không mở được texture Unity.

Vì sao cách này dễ hơn cách cũ

Dịch Unity thủ công nghĩa là giải nén asset bằng UABE hoặc AssetStudio, lần tìm TextAsset và trường MonoBehaviour nào chứa văn bản thật, tự tay tránh các chuỗi định danh làm game sập, rồi nhập lại mà không làm hỏng bảng asset. RuneTranslate gói trích xuất, phân loại (để bạn không dịch phần bộ máy), dịch và vá tại chỗ vào vài cú bấm, trong khi vẫn mở trình chỉnh sửa để bạn kiểm soát câu chữ.

Xem trang engine Unity để biết danh sách tính năng đầy đủ, đọc hướng dẫn TyranoBuilder cho một engine dựa trên HTML, hoặc tải RuneTranslate và thử trên một game thật.

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 RuneTranslate cho Windows & Linux

Bài liên quan

gettext · po · mo · engine · tutorial · 4 thg 8, 2026 · 7 phút

Cách dịch file .po và .mo của game (gettext)

Đọc →
godot · engine · tutorial · 17 thg 6, 2026 · 6 phút

Cách dịch game Godot sang tiếng Anh

Đọc →
renpy · tutorial · engine · 9 thg 6, 2026 · 6 phút

Cách dịch game Ren’Py sang tiếng Anh (hướng dẫn đầy đủ)

Đọc →

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