Dịch bằng AI tích hợp sẵn

Xuất bản: ngày 13 tháng 11 năm 2024, Cập nhật lần gần đây nhất: ngày 20 tháng 5 năm 2025

Video giải thích Web Phần mở rộng Trạng thái của Chrome Intent
MDN Chrome 138 Chrome 138 Xem Ý định vận chuyển

Sử dụng Translator API trong Chrome để dịch văn bản bằng các mô hình AI có trong trình duyệt.

Trang web của bạn có thể đã cung cấp nội dung bằng nhiều ngôn ngữ để người dùng trên toàn cầu có thể truy cập. Với Translator API, người dùng có thể đóng góp bằng ngôn ngữ chính của mình. Ví dụ: người dùng có thể tham gia các cuộc trò chuyện hỗ trợ bằng ngôn ngữ chính của họ và trang web của bạn có thể dịch ngôn ngữ đó sang ngôn ngữ mà nhân viên hỗ trợ của bạn sử dụng, trước khi rời khỏi thiết bị của người dùng. Điều này giúp mang lại trải nghiệm mượt mà, nhanh chóng và toàn diện cho tất cả người dùng.

Việc dịch nội dung trên web thường yêu cầu sử dụng một dịch vụ đám mây. Trước tiên, nội dung nguồn được tải lên một máy chủ, máy chủ này sẽ chạy bản dịch sang ngôn ngữ đích, sau đó văn bản kết quả được tải xuống và trả về cho người dùng. Bằng cách chạy bản dịch trên máy khách, bạn tiết kiệm được thời gian cần thiết cho các chuyến đi của máy chủ và chi phí lưu trữ dịch vụ dịch.

Bắt đầu

Translator API có trong Chrome 138 phiên bản ổn định. Trước tiên, hãy chạy tính năng phát hiện để xem trình duyệt có hỗ trợ Translator API hay không.

if ('Translator' in self) {
  // The Translator API is supported.
}

Mặc dù luôn biết ngôn ngữ đích của bản dịch, nhưng bạn có thể không phải lúc nào cũng biết ngôn ngữ nguồn. Trong những trường hợp như vậy, bạn có thể sử dụng Language Detector API.

Xem các yêu cầu về phần cứng

Nhà phát triển và người dùng vận hành các tính năng bằng những API này trong Chrome phải đáp ứng các yêu cầu sau. Các trình duyệt khác có thể có các yêu cầu khác về hoạt động.

Language Detector API và Translator API hoạt động trong Chrome trên máy tính. Các API này không hoạt động trên thiết bị di động. Prompt API, Summarizer API, Writer API và Rewriter API hoạt động trong Chrome khi đáp ứng các điều kiện sau:

  • Hệ điều hành: Windows 10 hoặc 11; macOS 13 trở lên (Ventura trở lên); hoặc Linux. Chrome dành cho Android, iOS và ChromeOS chưa được các API sử dụng Gemini Nano hỗ trợ.
  • Bộ nhớ: Ít nhất 22 GB trên ổ đĩa chứa hồ sơ Chrome của bạn.
  • GPU: VRAM phải lớn hơn 4 GB.
  • Mạng: Gói dữ liệu không giới hạn hoặc kết nối không đo lượng dữ liệu.

Kích thước chính xác của Gemini Nano có thể thay đổi một chút. Để biết kích thước hiện tại, hãy truy cập vào chrome://on-device-internals rồi chuyển đến phần Trạng thái mô hình. Mở Đường dẫn tệp được liệt kê để xác định kích thước mô hình.

Kiểm tra xem cặp ngôn ngữ có được hỗ trợ hay không

Bản dịch được quản lý bằng các gói ngôn ngữ, được tải xuống theo yêu cầu. Gói ngôn ngữ giống như một từ điển cho một ngôn ngữ nhất định.

  • sourceLanguage: Ngôn ngữ hiện tại của văn bản.
  • targetLanguage: Ngôn ngữ cuối cùng mà văn bản sẽ được dịch sang.

Sử dụng mã ngôn ngữ ngắn BCP 47 dưới dạng chuỗi. Ví dụ: 'es' cho tiếng Tây Ban Nha hoặc 'fr' cho tiếng Pháp.

const translatorCapabilities = await Translator.availability({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
});
// 'available'

Hàm availability() trả về một promise có các giá trị sau:

  • "unavailable": Việc triển khai không hỗ trợ tính năng dịch hoặc phát hiện ngôn ngữ của các ngôn ngữ đã cho.
  • "downloadable": Việc triển khai hỗ trợ dịch hoặc phát hiện ngôn ngữ của các ngôn ngữ đã cho, nhưng bạn cần tải xuống để tiếp tục. Tệp tải xuống có thể là mô hình trình duyệt.
  • "downloading": Việc triển khai hỗ trợ dịch hoặc phát hiện ngôn ngữ của các ngôn ngữ đã cho. Trình duyệt đang hoàn tất một lượt tải xuống đang diễn ra, trong quá trình tạo đối tượng được liên kết.
  • "available": Quá trình triển khai hỗ trợ dịch hoặc phát hiện ngôn ngữ của các ngôn ngữ đã cho và mọi nội dung tải xuống bắt buộc đều đã hoàn tất.

Theo dõi tiến trình tải mô hình xuống bằng sự kiện downloadprogress:

const translator = await Translator.create({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

Nếu quá trình tải xuống không thành công, thì các sự kiện downloadprogress sẽ dừng và lời hứa ready sẽ bị từ chối.

Tạo và chạy trình dịch

Để tạo một trình dịch, hãy gọi hàm không đồng bộ create(). Hàm này yêu cầu một tham số options có 2 trường, một cho sourceLanguage và một cho targetLanguage.

// Create a translator that translates from English to French.
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

Sau khi bạn có một trình dịch, hãy gọi translate() không đồng bộ.

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

Ngoài ra, nếu cần xử lý văn bản dài hơn, bạn cũng có thể sử dụng phiên bản truyền trực tuyến của API và gọi translateStreaming().

const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
  console.log(chunk);
}

Bản dịch tuần tự

Bản dịch được xử lý tuần tự. Nếu bạn gửi một lượng lớn văn bản cần dịch, thì các bản dịch tiếp theo sẽ bị chặn cho đến khi các bản dịch trước đó hoàn tất.

Để nhận được câu trả lời tốt nhất cho các yêu cầu của bạn, hãy nhóm các yêu cầu lại với nhau và thêm một giao diện tải, chẳng hạn như vòng quay, để cho biết quá trình dịch đang diễn ra.

Bản minh hoạ

Bạn có thể xem Translator API (được dùng kết hợp với Language Detector API) trong Translator và Language Detector API playground.

Nỗ lực chuẩn hoá

Chúng tôi đang nỗ lực chuẩn hoá Translator API để đảm bảo khả năng tương thích trên nhiều trình duyệt.

Đề xuất API của chúng tôi đã nhận được sự ủng hộ của cộng đồng và được chuyển đến Nhóm cộng đồng ươm tạo web của W3C để thảo luận thêm. Nhóm Chrome đã yêu cầu Nhóm kiến trúc kỹ thuật của W3C đưa ra ý kiến phản hồi và hỏi MozillaWebKit về vị trí tiêu chuẩn của họ.

Bạn có thể tham gia vào nỗ lực xây dựng tiêu chuẩn bằng cách tham gia Nhóm cộng đồng Web Incubator.

Chia sẻ ý kiến phản hồi

Chúng tôi muốn xem những gì bạn đang xây dựng bằng Language Detector API. Chia sẻ trang web và ứng dụng web của bạn với chúng tôi trên X, YouTubeLinkedIn.

Để gửi ý kiến phản hồi về cách triển khai của Chrome, hãy gửi một báo cáo lỗi hoặc một yêu cầu về tính năng.