Quay lại blog
Split-screen flat illustration on a white background. Left side shows a simple document icon labeled “.txt” in muted blue-grey, producing a single output document tagged “EN.” Right side shows a JSON file with visible nested keys, connected to three separate document outputs labeled “EN,” “FR,” and “ES.” The right side uses teal and amber accents. A thin vertical line divides the two halves. Clean geometric style, minimal detail, no people or branding.

PolyLingo vs DeepL API: cái nào bảo toàn JSON và Markdown tốt hơn?

By Robert M

PolyLingo vs DeepL API: cái nào bảo toàn JSON và Markdown tốt hơn?

DeepL tạo ra phần mềm dịch thuật thực sự xuất sắc. Bộ máy dịch thần kinh của họ được đánh giá là một trong những bộ máy tốt nhất hiện có, và với văn bản thuần túy thì rất khó để đánh bại. Nếu bạn đang dịch câu, đoạn văn hoặc tài liệu viết dưới dạng văn bản liên tục, DeepL là một lựa chọn mạnh mẽ.

Câu hỏi mà bài viết này trả lời là một câu hỏi hẹp hơn: DeepL API hoạt động thế nào khi nội dung của bạn có cấu trúc? Khi bạn cần dịch một tệp locale JSON mà không chạm vào các khóa, hoặc một bài đăng blog Markdown mà không làm hỏng cú pháp, hoặc một trang HTML mà không làm hỏng các thuộc tính? Và nó so sánh thế nào với PolyLingo cho trường hợp sử dụng cụ thể đó?


Cách DeepL API được xây dựng

API dịch văn bản DeepL chấp nhận văn bản thuần túy. Đó là định dạng đầu vào gốc của nó. Mỗi yêu cầu chấp nhận tối đa 50 chuỗi văn bản và chúng được dịch độc lập, không có ngữ cảnh chia sẻ giữa chúng. Chỉ có thể chỉ định một ngôn ngữ đích cho mỗi yêu cầu. Nếu bạn cần năm ngôn ngữ, bạn phải gửi năm yêu cầu.

DeepL hỗ trợ dịch tài liệu cho các định dạng như PDF, Word, PowerPoint và HTML, nhưng điều đó diễn ra qua một điểm cuối tài liệu riêng biệt với quy trình khác: tải lên tệp, kiểm tra hoàn thành, tải xuống kết quả. Nó được thiết kế cho tài liệu văn phòng, không phải cho các pipeline nội dung lập trình.

Đối với HTML cụ thể, có một tham số tag_handling bạn có thể đặt thành html, điều này bảo DeepL xử lý đầu vào như HTML và cố gắng bảo toàn các thẻ. Điều này hoạt động khá tốt với đánh dấu đơn giản, nhưng đó là một cờ tùy chọn bạn phải biết để đặt, và nó không mở rộng đến JSON hoặc Markdown.

Đối với JSON, không có hỗ trợ gốc. Điểm cuối văn bản của DeepL không biết khóa JSON là gì. Nếu bạn gửi cho nó một đối tượng JSON được tuần tự hóa, nó sẽ dịch nội dung như một chuỗi và không có đảm bảo rằng các khóa, cấu trúc hoặc giá trị không phải chuỗi sẽ còn nguyên vẹn. Thư viện R babeldown, bao bọc DeepL cho nội dung Markdown, đã ghi nhận các trường hợp DeepL nhầm lẫn dấu câu bên trong liên kết Markdown và định dạng, đây là một hạn chế đã biết của việc truyền văn bản có cấu trúc qua bộ dịch văn bản thuần túy.

Đây không phải là chỉ trích DeepL. Đây là mô tả về những gì API được thiết kế để làm. Trường hợp sử dụng cốt lõi của DeepL là dịch văn bản có thể đọc được bởi con người với chất lượng cao. Đó là điều nó tối ưu và nó làm rất tốt.


Nơi sự khác biệt xuất hiện trong thực tế

Sự khác biệt trở nên rõ ràng ngay khi nội dung của bạn không phải là văn bản thuần túy.

Hãy xem xét một tệp locale Next.js tiêu chuẩn:

{
  "nav": {
    "home": "Home",
    "about": "About us",
    "contact": "Get in touch"
  },
  "hero": {
    "title": "Welcome to our platform",
    "subtitle": "Everything you need in one place"
  }
}

Để dịch tệp này bằng DeepL API sang năm ngôn ngữ, bạn sẽ cần:

  1. Trích xuất từng giá trị chuỗi riêng lẻ
  2. Thực hiện một yêu cầu API riêng cho mỗi ngôn ngữ (năm ngôn ngữ, năm yêu cầu)
  3. Tái tạo cấu trúc JSON với các giá trị đã dịch ở đúng vị trí
  4. Xử lý bất kỳ trường hợp nào khi bản dịch thay đổi dấu câu hoặc thêm ký tự làm hỏng tính hợp lệ của JSON Đó là một lượng mã kết dính không đơn giản. Nó cũng dễ bị lỗi. Bất kỳ sai lệch nào trong đầu ra bản dịch so với những gì trình phân tích cú pháp của bạn mong đợi sẽ gây ra lỗi im lặng hoặc lỗi thời gian chạy trong ứng dụng của bạn.

Với PolyLingo, bạn gửi đối tượng nguyên trạng với format: "json" và nhận lại phiên bản dịch của toàn bộ cấu trúc cho mọi ngôn ngữ đích trong một phản hồi. Các khóa không bị động chạm. Cấu trúc lồng nhau được bảo toàn. Giá trị không phải chuỗi được giữ nguyên. Đầu ra có thể dùng ngay trong dự án của bạn.

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav\":{\"home\":\"Home\",\"about\":\"About us\"}}",
    "format": "json",
    "targets": ["fr", "de", "es", "ja", "nl"]
  }'

Một yêu cầu. Năm ngôn ngữ. Cấu trúc nguyên vẹn.


Nội dung Markdown

Cùng một mô hình áp dụng cho Markdown. Điểm cuối văn bản của DeepL không có khái niệm về cú pháp Markdown. Gửi cho nó một bài đăng blog và nó sẽ xử lý toàn bộ như một chuỗi. Các tiêu đề có thể còn nguyên. Các khối mã gần như chắc chắn sẽ không còn, vì nội dung bên trong chúng có khả năng được xử lý như văn bản có thể dịch. Cú pháp liên kết có thể bị hỏng, đặc biệt là xung quanh dấu câu ở ranh giới văn bản liên kết.

Cờ markdown của PolyLingo hướng dẫn mô hình xử lý cú pháp Markdown như cấu trúc chứ không phải để dịch. Tiêu đề vẫn là tiêu đề. Các khối mã có hàng rào được giữ nguyên. URL liên kết không bị thay đổi. Chỉ có nội dung văn bản thay đổi.

Đối với một trang tài liệu hoặc blog có nội dung kỹ thuật, sự khác biệt là đáng kể. Một khối mã bị hỏng trong hướng dẫn không phải là vấn đề trình bày nhỏ, mà là một hướng dẫn bị hỏng.


Sự khác biệt giữa một yêu cầu và một yêu cầu cho mỗi ngôn ngữ

Điều này đáng được chú ý vì tác động về chi phí là có thật.

API của DeepL chỉ chấp nhận một ngôn ngữ đích cho mỗi yêu cầu. Để dịch một nội dung sang mười ngôn ngữ, bạn phải thực hiện mười cuộc gọi API. Đối với một trang lớn hoặc CMS với việc xuất bản thường xuyên, đó là mười lần chi phí yêu cầu, mười lần độ trễ để quản lý và mười lần điểm lỗi.

PolyLingo chấp nhận một mảng mã ngôn ngữ đích và trả về tất cả các bản dịch trong một phản hồi duy nhất. Ba mươi sáu ngôn ngữ là một yêu cầu, không phải ba mươi sáu.

Đối với các dự án nhỏ, sự khác biệt có thể quản lý được. Đối với bất cứ thứ gì ở quy mô lớn, nó thay đổi kiến trúc cách bạn xây dựng pipeline dịch của mình.


Mô hình giá cả

DeepL tính phí theo ký tự. Gói API miễn phí cho phép tối đa 500.000 ký tự mỗi tháng, và các gói trả phí tính phí dựa trên lượng ký tự sử dụng. Vì bạn gửi một yêu cầu cho mỗi ngôn ngữ, số ký tự của một nội dung được nhân với số ngôn ngữ đích mà bạn gửi qua các yêu cầu riêng biệt.

PolyLingo tính phí theo token và đếm tổng hợp cả đầu vào và đầu ra cho tất cả các ngôn ngữ trong một yêu cầu duy nhất. Việc tính phí minh bạch và có thể dự đoán: tầng miễn phí bao gồm 50.000 token mỗi tháng, với các gói trả phí bắt đầu từ 9 đô la mỗi tháng cho 600.000 token.

Hai mô hình không thể so sánh trực tiếp về chi phí trên mỗi từ vì chúng sử dụng các đơn vị khác nhau, nhưng kiến trúc một yêu cầu cho tất cả các ngôn ngữ của PolyLingo có nghĩa là bạn không nhân số lượng yêu cầu tuyến tính với số ngôn ngữ đích.


Mỗi cái phù hợp với ai

DeepL API là lựa chọn đúng khi:

  • Nội dung của bạn là văn bản thuần túy không có yêu cầu cấu trúc
  • Chất lượng dịch cho văn bản có thể đọc được bởi con người là ưu tiên hàng đầu
  • Bạn dịch sang số lượng ngôn ngữ nhỏ và khối lượng yêu cầu thấp
  • Bạn đã đầu tư vào hệ sinh thái DeepL và sử dụng từ điển hoặc tính năng trang trọng của họ
  • Bạn cần hỗ trợ ngôn ngữ ngoài 36 ngôn ngữ hiện có của PolyLingo (DeepL hỗ trợ hơn 100 ngôn ngữ)

PolyLingo là lựa chọn đúng khi:

  • Nội dung của bạn là JSON, Markdown hoặc HTML và cần bảo toàn cấu trúc
  • Bạn cần dịch sang nhiều ngôn ngữ trong một lần gọi API
  • Bạn đang xây dựng tích hợp CMS hoặc pipeline i18n nơi hiệu quả yêu cầu quan trọng
  • Bạn muốn giao diện nhất quán trên tất cả các định dạng nội dung mà không cần giải pháp riêng cho từng định dạng
  • Bạn muốn tính phí dựa trên token với hạn mức hàng tháng có thể dự đoán được

Tóm tắt so sánh

PolyLingoDeepL API
Hỗ trợ JSON gốcKhông
Hỗ trợ Markdown gốcKhông
Hỗ trợ HTMLCó (cờ tag_handling)
Tất cả ngôn ngữ trong một yêu cầuKhông, một ngôn ngữ mỗi yêu cầu
Tự động phát hiện định dạng nội dungKhông
Ngôn ngữ được hỗ trợ36Hơn 100
Tầng miễn phí50.000 token/tháng500.000 ký tự/tháng
Đơn vị tính phíTokenKý tự
Trình dịch web không cần mãCó (ứng dụng web)

DeepL có danh mục ngôn ngữ lớn hơn và lịch sử lâu dài về chất lượng dịch văn bản. PolyLingo được xây dựng dành riêng cho quy trình làm việc nội dung có cấu trúc, nơi tính toàn vẹn định dạng là điều không thể thương lượng.

Họ giải quyết các vấn đề liền kề nhau. Lựa chọn đúng phụ thuộc vào nội dung của bạn thực sự trông như thế nào.


Thử PolyLingo

Tầng miễn phí bao gồm 50.000 token mỗi tháng. Không cần thẻ tín dụng. Tài liệu API đầy đủ tại usepolylingo.com/docs.

curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
  -H "Authorization: Bearer $POLYLINGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "# Hello\n\nThis is **structured** content.",
    "format": "markdown",
    "targets": ["fr", "de", "es"]
  }'

Lấy khóa API của bạn