Skip to content

Repository files navigation

Offline Translator

Offline Translator

Dịch Anh ↔ Việt hoàn toàn ngoại tuyến, ngay trong trình duyệt.

License: MIT Manifest V3 Chrome Edge


⚡ Không cần mạng. Không cần tải model. Không gửi dữ liệu đi đâu.

Model dịch đã được đóng gói sẵn trong extension (~58 MB). Bạn không phải tải thêm gì sau khi cài. Ngay từ lần dùng đầu tiên, extension đã chạy được hoàn toàn offline — kể cả khi rút mạng, đi máy bay, hay dùng máy không có internet.

Toàn bộ quá trình dịch diễn ra ngay trên máy bạn. Không một ký tự nào được gửi lên server. Không tài khoản, không API key, không theo dõi.


Tính năng

  • Dịch cả câu, cả đoạn — Anh → Việt và Việt → Anh
  • Dịch trong popup — gõ hoặc dán văn bản, kết quả hiện ngay khi bạn ngừng gõ
  • Dịch ngay trên trang web — bôi đen chữ bất kỳ, bấm nút hiện lên
  • Tự nhận diện chiều dịch khi bôi đen văn bản
  • Hoạt động 100% offline — không cần internet ở bất kỳ bước nào
  • Riêng tư tuyệt đối — không có request mạng nào rời khỏi máy bạn

Yêu cầu

Trình duyệt Chrome 109+ hoặc Microsoft Edge 109+
Hệ điều hành Windows, macOS, hoặc Linux
Dung lượng trống Khoảng 150 MB
Kết nối mạng Không cần

Cần Chrome/Edge từ phiên bản 109 trở lên vì extension dùng offscreen document. Kiểm tra phiên bản tại chrome://settings/help hoặc edge://settings/help.


Cài đặt cho người dùng

Extension chưa có trên Chrome Web Store, nên bạn cài thủ công. Chỉ mất khoảng 2 phút.

Bước 1 — Tải file về

  1. Mở trang Releases
  2. Ở mục Assets, bấm tải file offline-translator-chrome.zip
  3. Giải nén file vừa tải (bấm chuột phải → Extract All trên Windows, hoặc bấm đúp trên macOS)
  4. Bạn sẽ được một thư mục — nhớ vị trí thư mục này, đừng xóa nó sau khi cài, vì trình duyệt cần đọc từ đây mỗi lần chạy

Cài đặt trên Chrome

  1. Mở Chrome, gõ vào thanh địa chỉ:
    chrome://extensions
    
  2. Bật công tắc Developer modegóc trên bên phải
  3. Bấm nút Load unpacked vừa hiện ra ở góc trên bên trái
  4. Chọn thư mục bạn vừa giải nén ở Bước 1, rồi bấm Select Folder
  5. Xong. Bấm biểu tượng mảnh ghép 🧩 trên thanh công cụ, rồi ghim Offline Translator lại cho dễ dùng

Cài đặt trên Microsoft Edge

  1. Mở Edge, gõ vào thanh địa chỉ:
    edge://extensions
    
  2. Bật công tắc Developer modegóc dưới bên trái
  3. Bấm nút Load unpacked ở phía trên
  4. Chọn thư mục bạn vừa giải nén ở Bước 1, rồi bấm Select Folder
  5. Xong. Bấm biểu tượng mảnh ghép trên thanh công cụ để ghim extension

Bước 2 — Dùng thử

Cách 1 — Dịch trong popup: Bấm vào biểu tượng extension, gõ câu tiếng Anh vào ô trên, bản dịch hiện ở ô dưới. Bấm nút ⇄ để đổi chiều Anh ↔ Việt.

Cách 2 — Dịch trên trang web: Bôi đen một đoạn chữ bất kỳ trên trang, một nút nhỏ sẽ hiện lên, bấm vào đó để xem bản dịch.

Lần dịch đầu tiên sẽ mất vài giây để khởi động máy dịch. Những lần sau sẽ nhanh hơn nhiều.


Câu hỏi thường gặp

Có cần mạng không?

Không. Model đã nằm sẵn trong extension. Bạn có thể rút mạng hoàn toàn và extension vẫn dịch bình thường.

Xóa cache trình duyệt thì model có mất không?

Không. Model được lưu như một phần của extension, giống file code, chứ không nằm trong cache. Xóa lịch sử, cookie, hay dữ liệu duyệt web đều không ảnh hưởng.

Model chỉ mất khi bạn gỡ cài đặt extension.

Dữ liệu của tôi có bị gửi đi đâu không?

Không. Extension không có bất kỳ request mạng nào. Bạn có thể tự kiểm chứng bằng cách mở tab Network trong DevTools khi đang dịch.

Xóa thư mục đã giải nén có sao không?

Có. Khi cài bằng Load unpacked, trình duyệt đọc trực tiếp từ thư mục đó mỗi lần khởi động. Nếu xóa hoặc di chuyển, extension sẽ ngừng hoạt động. Hãy để thư mục ở nơi cố định.

Extension có tự cập nhật không?

Không. Vì cài thủ công nên bạn cần tải bản mới từ trang Releases và lặp lại các bước cài đặt khi muốn cập nhật.


Dành cho lập trình viên

Công nghệ

Thành phần Lựa chọn
Framework WXT + React 18 + TypeScript
Giao diện Tailwind CSS
Máy dịch Bergamot — Marian NMT biên dịch sang WebAssembly
Model Firefox Translations models của Mozilla

Kiến trúc

Phần suy luận chạy trong offscreen document, không phải service worker. Lý do: service worker của Manifest V3 cấm import() động, mà WebAssembly runtime lại cần đúng thứ đó.

popup / content script
        │  TRANSLATE_REQUEST
        ▼
   background.ts          relay, quản lý vòng đời offscreen document
        │  OFFSCREEN_TRANSLATE
        ▼
offscreen/main.ts         Bergamot + model
        │
        ▼
  Web Worker + WASM

Kéo repo về và tự build

# 1. Clone
git clone https://github.com/vbth7777/offline-translator.git
cd offline-translator

# 2. Cài dependency
npm install

# 3. Tải model từ Mozilla (chỉ cần chạy một lần)
npm run fetch-models

# 4. Chạy development
npm run dev

npm run dev sẽ mở sẵn một cửa sổ trình duyệt đã nạp extension và tự reload khi bạn sửa code.

Vì sao model không nằm trong repo? Model nặng ~58 MB nên không commit vào git. Script fetch-models tải từ registry chính thức của Mozilla, tự giải nén và kiểm tra SHA-256 để đảm bảo file toàn vẹn.

Build bản phát hành

npm run typecheck   # kiểm tra kiểu TypeScript
npm run build       # xuất ra .output/chrome-mv3
npm run zip         # đóng gói để phân phối

Cấu trúc thư mục

src/
├── entrypoints/
│   ├── background.ts        relay message, quản lý offscreen
│   ├── content.ts           dịch khi bôi đen trên trang
│   ├── offscreen/           chạy Bergamot + model
│   └── popup/               giao diện React
├── public/
│   ├── models/              model dịch (tạo bởi fetch-models)
│   ├── bergamot/worker/     worker + WASM
│   └── icon/                icon extension
└── vendor/bergamot/         bản vendor của Bergamot runtime
scripts/
└── fetch-models.js          tải + giải nén + verify model

Chất lượng model

Chiều Kiến trúc Kích thước BLEU COMET22
Anh → Việt base-memory 31.6 MB 43.09 0.8712
Việt → Anh tiny 17.1 MB 32.33 0.8487

Số liệu đo trên tập flores200-plus, lấy trực tiếp từ registry chính thức của Mozilla.


Giới hạn hiện tại

  • Việc nhận diện tiếng Việt khi bôi đen dựa vào dấu thanh, nên câu tiếng Việt không dấu có thể bị nhận nhầm là tiếng Anh
  • Đoạn văn quá dài sẽ bị cắt bớt; nên dịch theo từng đoạn ngắn
  • Chỉ hỗ trợ cặp Anh ↔ Việt

Giấy phép

Mã nguồn phát hành theo giấy phép MIT.

Thành phần bên thứ ba:

  • Bergamot Translator — MPL-2.0
  • Model dịch của Mozilla — CC-BY-SA 4.0

About

Dịch Anh ↔ Việt hoàn toàn ngoại tuyến ngay trong Chrome/Edge. Model đóng gói sẵn, không cần mạng, không gửi dữ liệu đi đâu. Offline English-Vietnamese translator extension powered by Bergamot WASM.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages